C++, La référence des langages de programmation

Table des matières   Liens internes à cette page

i) Introduction
ii) Quelques références de sites Web et de vidéos.
1) ex0010_hello_world.cpp, le classique.
2) ex0020_sommes.cpp, calcule une somme d'inverses d'entiers.
°) ex0030.cpp_cout_cin.cpp, affichage et entrée de données.
°) ex0035.cpp_sommes.cpp, calcule une somme d'inverses d'entiers.
°) ex0040.cpp_getline.cpp, lecture d'un string avec des espaces.
°) ex0050.cpp_devine_nombre.cpp, devine le nombre caché par l'ordinateur.
°) ex0060.cpp_.conversion_nombre_entier.cpp, conversions en divers bases
°) ex0070.cpp_conversion_nombre_virgule.cpp, conversion de float en représentation binaire.
°) ex0080.cpp_conio_console_in_out.cpp, codes escapes dans un Terminal.
  Déplacement du curseur et changement de couleurs dans un Terminal.
  "Non blocking getch()", lecture du clavier sans arrêter le programme.
°) ex0090.cpp_imprecisions_numeriques.cpp, exemples d'imprécisions numériques.
°) ex0100.cpp_ex0100_Fonction_Reference_Tableau.cpp, fonctions, tri, récursivité.
°) ex0110.cpp_ex0110_jour_de_semaine.cpp, calcule du jour de la semaine d'une date donnée.
  Explications de l'algorithme, à faire de tête.
  Un calendrier perpétuel.

 

i) Introduction   Top

L'ancienne version, avec les .zip à télécharger. Ils contiennent également le fichier de projet code::blocks.
J'ai fait plusieurs améliorations dans cette nouvelle version.

C++ est un langage de programmation compilé.
C'est la référence de bases de beaucoup de langages de programmation.
La synthaxe de java, javascript et plusieurs autres langages est calquée sur celle du langage C.
Le C++ est une évolution du langage C, permettant la programmation objet. Il fonctionne sur toutes les platformes, Linux, Windows et Mac.
Sous Linux, pour compiler, il faut avoir installé gcc et build-essential.

sudo apt install gcc
sudo apt install build-essential

Il existe plusieurs environnements de développement.
Plus d'information concernant Geany.
J'ai également fait des essais avec
Code::Blocks est un environnement simple.
Qt est un autre environnement.

Quelques informations, aux formats : .odt et .pdf

Vu que C++ est un langage typé, j'utilise la notation hongroise, je place une ou quelques minuscules devant la première majuscule, pour indiquer le type de la variable.
n    pour indiquer un  int
v    pour indiquer un  double  (nombre à virgule)
c    pour indiquer un  char
str  pour indiquer une chaîne de caractères
a    pour indiquer un array
an   sera donc l'indication d'un array d'entiers
p    pour indiquer un  pointeur
printf les "specifiers"   ;   data types de wikipedia".
"%d %u "%ld %lu %f %e %g %c %s %% %x %X %lli % llu"

quadmath library of quadruple precision   ;   quadruple-precision floating-point format   ;   MPFR multiple-precision floating-point library   ;   MPFRCPP the C++ interface to MPFR library.

ii) Quelques références de sites Web et de vidéos   Top

Pour la numérotation des lignes, j'ai utilisé le site suivant : https://jsfiddle.net/tovic/AbpRD/.
J'ai repris le code et je l'ai simplifié.

Pour la coloration syntaxique du code en langage C, L'outil de coloration syntaxique du site suivant est utilisable :
https://highlightjs.org/.
Autre information sur : highlight.js
Vu qu'il ne faisait pas exactement ce que je voulais, il est trop généraliste et trop compliqué pour moi, j'ai écrit un petit programme en javascript qui fait la coloration syntaxique.
Le code javascript est disponible ici.
Regardez aussi le code source de cette page pour les styles CSS associés, mis en début du code html.
Regardez en fin de code pour l'appelle aux fonctions de coloration et de numérotation.

Je me suis rapproché de la coloration syntaxique par défaut de l'éditeur de textes geany.
J'ai ajouté une coloration pour les symboles + - * / ( ) = [ ] { }

Pour les bases de la programmation en langage C, voici de très bonnes vidéos.
Publié sur Youtube par FormationVidéo
Il a une série de 29 vidéos d'introduction, plus d'autres vidéos, sur le langage C.
Il a également des vidéos d'introductions au C++ et sur d'autres langages.
161001 Langage C #1 - introduction
171222 Langage C #23 - introduction SDL

Une page Web sur le Langage C que j'ai écrite en mai-juin 2021.

ex0010_hello_world.cpp, le classique.   Top

Il est coutume d'écrire un premier programme qui affiche "Hello world".
Le jeux de caractères par défaut est codé en utf-8, donc les caractères accentués sont affichés.

Le programme "Hello world" :

ex0020_sommes.cpp, calcule une somme d'inverses d'entiers.   Top

Demande un nombre et boucle pour faire la somme des carrés des entiers de 1 jusqu'au nombre demandé.

Somme d'inverse de carré d'entiers :

ex0030_cout_cin.cpp, affichage et entrée de données.   Top

Illustre le type string et les entrées - sorties.

Entrées - sorties :

3) ex0035_sommes.cpp, calcule une somme d'inverses d'entiers.   Top

Illustre les boucles for et while.

Somme d'inverse de carré d'entiers :

2) ex0040_getline.cpp, lecture d'un string avec des espaces.   Top

Illustre la commande getline, pour lire un string avec des espaces.

La commande getline :

ex0050_devine_nombre.cpp, devine le nombre caché par l'ordinateur.   Top

L'ordinateur cache un nombre entre 1 et 100.
À vous de le trouver par essais successifs.

Devine mon nombre :

ex0060_conversion_nombre_entier.cpp, conversions en divers bases.   Top

Conversion de nombres entiers de base 2 (binaire) en base 10.
Conversion de n'importe quelle base entre 2 et 36 dans une base entre 2 et 36.
Saviez-vous qu'il n'existe que 10 types de personnes, ceux qui comprennent le binaire et les autres ?
Si vous ne comprenez pas le gag, c'est que vous ne connaissez pas le binaire !

Somme d'inverse de carré d'entiers :

ex0070_conversion_nombre_virgule.cpp, conversion de float en représentation binaire.   Top

Conversion d'un float 32 bits en sa représentation binaire.
Conversion de la représentation binaire d'un float 32 bits en un nombre à virgule.
Ne traite pas les cas particuliers de nombres très proche de 0 et de nombres très grand.
La page Wikipédia sur le format IEEE 754.

Conversion de float 32 bits :

ex0080_conio_console_in_out.cpp, codes escapes dans un Terminal.   Top

Écriture à diverses positions dans le Terminal.
Correspond à la commande "gotoxy(nX, nY)" du BASIC.
Exemple de "Non blocking getch()", lecture du clavier sans arrêter le programme.

Code escapes dans un Terminal :

ex0090_imprecisions_numeriques.cpp, exemples d'imprécisions numériques.   Top

Met en évidence le fait que l'ordinateur fait des calculs avec une précision limitée qui peut mener à des erreurs importantes.

Exemples d'imprécisions numériques :

ex0100_ex0100_Fonction_Reference_Tableau.cpp, fonctions, tri, récursivité.   Top

Exemples de :
° fonctions avec passage des paramètres par référence
° de tableaux
° de fonctions de tris
° de récursivité

Fonctions, tableaux, tri, récursivité :

ex0110_ex0110_jour_de_semaine.cpp, calcule du jour de la semaine d'une date donnée.   Top

Un algorithme simple à réaliser de tête pour calculer le jour de la semaine d'une date donnée.

Les détails de l'algorithme, à faire de tête, et d'autres informations : .pdf   .odt
Contient également un calendrié perpétuel.
Il peut être surprenant de constater qu'il n'existe que 14 calendriers différents.

Jour de la semaine d'une date donnée :

Plan du Site : Home   arrow   Langages   arrow   cpp.html ( = http://www.juggling.ch/gisin/cpp/cpp.html )


Page mise à jour le 28 mai 2021 par Bernard Gisin     ( Envoyer un e-mail )
Hébergement par : www.infomaniak.ch