Skip to content

Commit

Permalink
upload files from Bubu Wiki
Browse files Browse the repository at this point in the history
  • Loading branch information
beatussum committed Jan 8, 2024
1 parent 8c952b8 commit c57a52f
Show file tree
Hide file tree
Showing 5 changed files with 1,453 additions and 0 deletions.
44 changes: 44 additions & 0 deletions content/_index.md
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).
38 changes: 38 additions & 0 deletions content/cours/01/index.md
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 added content/cours/01/ressources/01.pdf
Binary file not shown.
Loading

0 comments on commit c57a52f

Please sign in to comment.