-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
See-also: https://gitlab.ensimag.fr/bugbusters/wiki/-/tree/73a3002c6ab70874fe2a49c00f479883faa41eca/content/ensimag/formations_cpp See-also: https://bugbusters.pages.ensimag.fr/wiki/ensimag/formations_cpp/ Signed-off-by: Mattéo Rossillol‑‑Laruelle <beatussum@protonmail.com>
- Loading branch information
Showing
5 changed files
with
1,453 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
title: "Formations C++ 17" | ||
--- | ||
|
||
{{% notice "warning" %}} | ||
|
||
Il est important de rappeler que ce cours est réalisé par **un étudiant**. | ||
|
||
Par conséquent, il n'a pas la même fiabilité qu'un cours dispensé par **un réel enseignant de l'ENSIMAG**. | ||
|
||
N'utilisez pas ce cours comme **un argument d'autorité** ! | ||
|
||
Si un professeur semble, a posteriori, contredire des éléments apportés par ce cours, **il a très probablement raison**. | ||
|
||
Cette page est **vivante** : je veillerai à corriger les coquilles ou erreurs plus problématiques. | ||
|
||
{{% /notice %}} | ||
|
||
## Introduction | ||
|
||
Le **C++** est un langage de programmation polyvalent et puissant, célèbre pour sa performance élevée et sa flexibilité. Il offre un support étendu pour **la programmation orientée objet**, permettant aux développeurs de créer des applications complexes et efficaces. Le **C++** est largement utilisé dans le développement de jeux vidéo, de logiciels système et d'applications d'entreprise robustes. C'est un langage incontournable auquel vous serez très probablement confronter dans votre vie future d'ingénieur en informatique. | ||
|
||
Cette formation a débuté pendant **l'année scolaire 2023-2024** et est organisé par [Mattéo Rossillol‑‑Laruelle](mailto:Mattéo%20Rossillol‑‑Laruelle%20<matteo.rossillol--laruelle@grenoble-inp.org>). | ||
|
||
Si vous êtes intéressé par la formations, n'oubliez pas de rejoindre [le serveur Discord](https://discord.gg/kzs5p28kGf) pour faciliter l'échange avec moi (Mattéo Rossillol‑‑Laruelle). En outre, n'hésitez surtout pas à me contacter par [mail](mailto:Mattéo%20Rossillol‑‑Laruelle%20<matteo.rossillol--laruelle@grenoble-inp.org>) ou par MP sur Discord. | ||
|
||
## Pourquoi cette page ? | ||
|
||
Sur cette page, vous trouverez plusieurs sections vous permettant d'accéder au différentes resources de chaque cours. En d'autres termes, vous pourrez retrouver : | ||
- les sujets de T.P., | ||
- les supports de cours, | ||
- et autres annotations. | ||
|
||
Chaque sous-section correspond à un cours. | ||
|
||
## Quelques resources et précision | ||
|
||
Si vous êtes particulièrement intéressé, je vous conseille la consultation : | ||
- du _final draft_ du standard (**C++ 17**) que vous retrouverez [ici](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf) gratuitement, | ||
- du site [cppreference.com](https://en.cppreference.com/w/) qui présente le standard de manière très exhaustive tout en étant assez digeste. | ||
|
||
Les différents supports de cours sont écris avec [XeLaTeX](https://xetex.sourceforge.net/) et la classe personnalisée utilisée est retrouvable [ici](cppcourses.cls). Cette dernière s'appuie particulièrement sur l'utilisation de [beamer](https://ctan.org/pkg/beamer). | ||
|
||
Tous les documents que j'ai personnellement écris (Mattéo Rossillol‑‑Laruelle) sont distribués, sauf en cas de mention contraire, sous licence [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.fr). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
title: "Premier cours" | ||
weight: 01 | ||
--- | ||
|
||
Ce cours a été dispensé **le jeudi 23/11/2023**, **entre 14h et 16h**, dans **l’amphithéâtre D** à **l'ENSIMAG**. | ||
|
||
## Le programme étudié | ||
|
||
1. Notion de programmation impérative | ||
1. Syntaxe élémentaire | ||
2. Afficher en console | ||
3. Fonction `main()` | ||
2. Définition de variables | ||
1. Notion de typage | ||
2. Les alias | ||
3. Types fondamentaux à l'exception de `std::nullptr_t` (point sur les entiers signés) | ||
4. Les littéraux | ||
5. Les tableaux | ||
6. Initialisation de variables (_default initialization_, _direct initialization_, _list initialization_, _copy initialization_, _value initialization_, _aggregate initialization_ et _reference initialization_) et mot clef `auto` | ||
|
||
## Errata | ||
|
||
Certaines erreurs et coquilles se sont glissé (je n'assume pas du tout…) dans le support de cours : | ||
- **à la page 32** : un `long` fait au moins quatre octet et un `long long` en fait au moins huit ; | ||
|
||
- **à la page 53** : le code utilisé dans l'exemple devrait être le suivant : | ||
|
||
```cpp | ||
int a[5] = {1, 2, 3, 4, 5}; | ||
a[10]; // cette ligne est valide | ||
``` | ||
|
||
## Resources | ||
|
||
Les différentes resources utilisées pendant ce cours sont les suivantes : | ||
- le support de cours que vous pouvez retrouver [ici](ressources/01.pdf), | ||
- ainsi que son source LaTeX que pouvez retrouver [ici](ressources/01.tex) (il est important de noter qu'il faut compiler ce document avec [XeLaTeX](https://xetex.sourceforge.net/)). |
Binary file not shown.
Oops, something went wrong.