Langage de programmation Qu'est-ce que c’est ? Pascal Writeln ("Bonjour"); Ada PUT_LINE ("Bonjour"); System.out.println ("Bonjour"); Java printf ("Bonjour\n"); C Perl PHP cout << "Bonjour" << endl; C++
Résultat de l’exécution Fichier source Editeur de texte sur disque dans un répertoire Code source path/a.out /users/etud1/ taralf/ tp/tpC++/ tp_01/ Bonjour .cxx Fichier exécutable Compilateur Exécution Résultat de l’exécution
Compilation nom du compilateur g++ Bonjour.cxx a.out allegro/users/etud1/taralf/tp/tpC++/tp_01> allegro/users/etud1/taralf/tp/tpC++/tp_01> a.out Bonjour allegro/users/etud1/taralf/tp/tpC++/tp_01>
Premier programme /** * * @File : Bonjour.cxx * @Author : D. Mathieu * @Date : 18/07/2003 **/ Premier programme #include <iostream> using namespace std; int main () { } cout << "Bonjour" << endl; return 0; // main()
commentaires instruction bloc d’instructions fonction flux de sortie injecteur chaîne de caractères littéral (constante) entier manipulateur mot clé mot réservé identificateurs opérateurs préprocesseur
Quelques types standard du C++ Qu'est-ce qu'un type ? Quelques types standard du C++ int unsigned char -N .... 0 .... +N 0 .... +N .... +2N
On peut injecter des tas de choses dans le flux : des nombres, des caractères, des chaînes de caractères, des manipulateurs, et + si affinités ! : tout ce qui peut être affiché
5 injections 2 injections cout << "Bonjour" << " tout" << " le" << " monde" << endl; 5 injections cout << "Bonjour" " tout" " le" " monde" << endl; 2 injections
Chaîne contenant le caractère " cout << "Rencontre du troisième \"type\"" << endl; Caractère d'échappement
cout << 12 << endl << -25 << ' ' << 123.45 << '\n' << "salut" << '\t' << " à toi"; allegro>nom_du_programme 12 123.45 -25 salut à toi
Soigner l'affichage (sortie formattée) cout << 12 << 13 << 14 << '\n' << 120 << 130 << 140 << endl; cout << 12 << ' ' << 13 << ' ' << 14 << '\n' << 120 << ' ' << 130 << ' ' << 140 << endl; allegro>nom_du_programme 121314 120130140 12 13 14 120 130 140
mais, si la tabulation vaut 3 caractères : ou, mieux : cout << 12 << '\t' << 13 << '\t' << 14 << '\n' << 120 << '\t' << 130 << '\t' << 140 << endl; allegro>nom_du_programme 12 13 14 120 130 140 mais, si la tabulation vaut 3 caractères : allegro>nom_du_programme 12 13 14 120 130 140
ou, ENCORE mieux : #include <iostream> #include <iomanip> // setw() cout << setw (4) << 12 << setw (4) << 13 << setw (4) << 14 << '\n' << setw (4) << 120 << setw (4) << 130 << setw (4) << 140 << endl; allegro>nom_du_programme 12 13 14 120 130 140
Traduction des schémas de programme en C++ Rappel : séquence d’instructions Alignement vertical instruction1; instruction2; instruction3; 1 instruction 2 lignes cout << "Bonjour" << " tout"; cout << " le" << " monde" << endl; 1 instruction 3 lignes
Traduction des schémas de programme en C++ Rappel : bloc d’instructions (au sein d'une séquence) instruction2; instruction1; { séquence d’instructions; }
Traduction des schémas de programme en C++ Schéma alternatif if (condition) { séquence d'instructions; } else Alignements verticaux si (condition) alors Action1; sinon Action2; fin
exemple if (i == 1) { cout << "i est égal à 1"; } else cout << "i est différent de 1"; cout << endl;
Diagrammes syntaxiques schéma alternatif expression conditionnelle if ( ) instruction instruction else
schéma alternatif (maison !!!) expression conditionnelle if ( ) { suite d'instructions } else { suite d'instructions }
opérateurs de comparaison opérateurs d'égalité if (A == B) == if (A != B) != opérateurs de comparaison if (A < B) < if (A <= B) <= if (A > B) > if (A >= B) >=
N compris entre 0 et 9 ? ... if (N <= 9) { if (N >= 0) cout << "0 <= " << N << "<= 9" << endl; } else { cout << N << " < 0" << endl; } else { cout << N << " > 9" << endl; }
Traduction des schémas de programme en C++ Schéma répétitif répéter Action1; si (condition) alors sortir; Action2; fin répéter for ( ; ; ) { séquence d'instructions; if (condition) break; }