Faculté Polytechnique de Mons

Slides:



Advertisements
Présentations similaires
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Advertisements

GEF 243B Programmation informatique appliquée
Premier programme en C :
La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Rappels C.
Développement logiciel sur micro-contrôleurs PIC en C
Le langage C++ Les boucles.
la programmation en langage C
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Introduction : Compilation et Traduction
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Principes de programmation (suite)
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Nous allons vous présenter: - Photoshop - Algorithme et programmation
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Introduction : Compilation et Traduction
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Introduction à la programmation (Java)
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Programmation Initiation Aux Langages C et C++ (2) Bruno Permanne 2006.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Structures de données IFT Abder Alikacem Espace de nommage Département d’informatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000
Conteneurs STL.
Un langage de programmation hybride
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
8PRO100 Éléments de programmation Les chaînes de caractères.
8PRO100 Éléments de programmation Les types composés.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Standard Template Library
Les chaînes de caractères
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 4 Polymorphisme II.
LANGAGE C LP A2I IUT St DIE
Tableaux Introduction aux tableaux à une dimension. Déclaration, stockage, initialisation et accès en lecture ou en écriture aux composantes d’un tableau.
Structures de données IFT-2000
Types de données fondamentaux
Les fichiers texte en C++
Shell Equipe ID Bioinformatics Training Course June 2014.
Programmer en langage c
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
La notion de type revisitée en POO
Héritage multiple En langage C++, il est possible d’utiliser l’héritage multiple. Il permet de créer des classes dérivées à partir de plusieurs classes.
8PRO107 Éléments de programmation Les chaînes de caractères.
Autres éléments du langage
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Les surcharges d'opérateurs
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Ecrire 10 fois "Bonjour" sur 10 lignes différentes
Langage de programmation
PRO-1027 Programmation Scientifique en C
Exception Handling "Unfortunately, it's almost accepted practice to ignore error conditions, as if we're in a state of denial about errors." Bruce Eckel.
Principes et variables
Introduction au langage C
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
M. BENJELLOUN : 2005 Mohammed BENJELLOUN Service d’Informatique Faculté Polytechnique de Mons 2005 Programmation.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
Transcription de la présentation:

Faculté Polytechnique de Mons Programmation en Mohammed BENJELLOUN Said Mahmoudi Service d’Informatique Faculté Polytechnique de Mons Mohammed.Benjelloun@umons.ac.be 2010

Variables : déclarations, initialisations Y=X2 et Z=X3 ?? Y = X * X ; Z = Y * X ; // ou Z=X*X*X …. corps du programme void main(void) // ou void main() { } int X, Y, Z; // déclaration des Variables : identificateur X = 2 ; // initialisation Variables : déclarations, Syntaxe : Type identificateur1, id2,…. ; char c1, c2, c3; int i, j, var_ent; float f, variable; Exemple: initialisations int i=9; ou int i; i=9; char c1= 'A'; ou char c1; c1= 'A';

Fichier source / Fichier exécutable Le code source doit obligatoirement fournir au compilateur le « point d’entrée » : la fonction main ()

Identificateurs   Les identificateurs nomment les objets C++ (fonctions, variables ...). Le C++ distingue les minuscules des majuscules. Exemple: ab, Ab, AB sont des identificateurs valides et tous différents. Identificateurs valides : xx y1 somme_5 _position Noms Programme_1 Identificateurs invalides : 3eme commence par un chiffre x#y caractère non autorisé (#) no-commande caractère non autorisé (-) taux change caractère non autorisé (espace)

Un identificateur ne peut pas être un mot réservé du langage : asm auto bool break case catch char class const continue default delete do double else enum extern float for friend goto if inline int long mutable namespace new operator private protected public register return short signed sizeof static struct switch template this typedef union unsigned using virtual void volatile while Les mots réservés du langage C++ doivent être écrits en minuscules.

Directives du préprocesseur Affichage !! Y=X2 et Z=X3 ?? #include < iostream > using namespace std; Directives du préprocesseur accès avant la compilation void main(void) // ou void main() { int Y, Z, X; // déclaration des Variables X = 2 ; // instruction1 Y = X * X ; // instruction2 Z = Y * X ; // instruction3 } using namespace std; /* espace de nommage std pour importer les symboles de la bibliothèque standard C++ */ cout  Y cout  Z

Directives du préprocesseur Une directive préprocesseur est une directive de compilation (précédées par un #) Exemples d’inclusion de librairies standards: Gestion des Entrées-Sorties standard <iostream> Fonctions mathématiques <cmath> Traitement de chaînes de caractères <string> Contrôler les paramètres d'affichage <iomanip>

: 7 Les entrées /sorties : cin et cout définies dans la librairie <iostream>   cout, le flux standard de sortie, habituellement associé à l'écran, Syntaxe : cout << expression << expression … ; cin, le flux standard d’entrée, habituellement associé au clavier, Syntaxe : cin >> valeur >> valeur >> valeur … ; : 7 #include <iostream> using namespace std; void main() { cout <<" Salut a vous tous" << endl; cout << " oui tous " ; } endl signifie un saut de ligne

Résultat : \t \t \t cout <<"Qu'il est agreable d'utiliser " <<"cout en\t C++,\nlorsqu'on l'utilise " <<endl << "\t\tproprement"; Résultat : Qu'il est agreable d'utiliser cout en C++, lorsqu'on l'utilise proprement \t \t \t Caractères Signification CODE ASCII (hexadécimal) \n ou endl Génère une nouvelle ligne (newline) 0x0A \t Tabulation horizontale 0x09 \v Tabulation verticale 0x0B \b Retour d’un caractère en arrière (backspace) 0x08 \r Retour chariot (return) 0x0D \f Saut de page (form feed) 0x0C .. setw(x) : la prochaine sortie sera sur une largeur de x setfill(c) : utilisera c comme caractère de remplissage.

#include < iostream > Y=X2 et Z=X3 ?? using namespace std; Y=X2 et Z=X3 ?? void main(void) // ou void main() { int Y, Z, X; // déclaration des Variables X = 2 ; Y = X * X ; Z = Y * X ; } cout << " valeur de Y = " << Y << endl; cout << " valeur de Z = " << Z; valeur de Y= 4 valeur de Z = 8 cout << " valeur de Y = " << Y << endl << " valeur de Z = " << Z; cout << " valeur de Y = " << Y << " \nvaleur de Z = " << Z;

 X !! -3 #include < iostream > using namespace std; void main(void) { int Y, Z, X; // déclaration des Variables X = 2 ; Y = X * X ; Z = Y * X ; } -3 valeur de Y= 9 valeur de Z = -27 cout << " ??valeur de X = ";  cin >> X; cout << " valeur de Y = " << Y << endl; cout << " valeur de Z = " << Z; valeur de Y= 4 valeur de Z = 8

cout << "Entrez n, x et C : "; #include <iostream> using namespace std; void main () { int n=2; float x= 3.4; char C= 'A' ;   cout << " Entier n = "<< n << " ; Entrez un nouveau = " ; cin >> n ; cout << " Float x = "<< x << " ; Entrez un nouveau = " ; cin >> x ; cout << " Char C = "<< C << " ; Entrez un nouveau = " ; cin >> C ; cout << "\n L'entier vaut maintenant : " << n << endl; cout << " Le flottant vaut maintenant :" << x << endl; cout << " Le caractere vaut maintenant :" << C << endl ; } int n=2; float x= 3.4; char C= 'A' ; cout << "Entrez n, x et C : "; cin >> n >> x >> C; cout << C << ' ' << x << ' ' << n; Entrez n, x et C : 5 9.9 V V 9.9 5 Entier n = 2 ; Entrez un nouveau = 3 Float x = 3.4 ; Entrez un nouveau = 5.67 Char C = A ; Entrez un nouveau = y   L'entier vaut maintenant : 3 Le flottant vaut maintenant :5.67 Le caractere vaut maintenant :y

Constantes : déclarations+initialisations Si X est une constante !! #include < iostream > using namespace std; void main(void) { int Y, Z, X; // déclaration des Variables Y = X * X ; Z = Y * X ; } valeur de Y= 16 valeur de Z = 64 const int X = 4 ; cout << " valeur de Y = " << Y << endl; cout << " valeur de Z = " << Z; Constantes : déclarations+initialisations Syntaxe : const Type identificateur1=Val1, identificateur2=Val2, …,…. ; const char c = 'A'; const int i=5, var_ent=8; Exemple: const int i; i= 5;

#include < iostream > TP Affichage !! #include < iostream > using namespace std; void main(void) {/* programme disque1 Ce programme calcule la circonférence et la surface d’un disque de rayon 2 */ const float PI= 3.14159; int rayon = 2; float circonference, surface; circonference = 2* PI*rayon; surface = PI * rayon *rayon ; } cout  circonference cout  surface

#include < iostream > using namespace std; TP : suite void main(void) { /* programme disque2 : Ce programme calcule et affiche la circonférence et la surface d’un disque de rayon 2. */ const float PI= 3.14159; int rayon = 2; float circonference, surface; circonference = 2* PI*rayon; surface = PI * rayon *rayon ; }  rayon !! La circonference = 12.56636 La surface = 12.56636 cout << " La circonference = " << circonference << endl; cout << " La surface = " << surface;

#include < iostream > using namespace std; TP : suite Seulement si ( rayon >= 0 ) !! void main(void) { /* programme disque2 : Ce programme calcule et affiche la circonférence et la surface d’un disque de rayon quelconque positif. */ const float PI= 3.14159; int rayon = 2; float circonference, surface; circonference = 2* PI*rayon; surface = PI * rayon *rayon ; } cout << " ?valeur rayon = ";  cin >> rayon; cout << " La circonference = " << circonference << endl; cout << " La surface = " << surface;

Les opérateurs logiques Les opérateurs de comparaison < plus petit <= plus petit ou égal > plus grand >= plus grand ou égal == égal != différent Le résultat d'une expression logique est un booléen. Il vaut true si elle est vraie et false sinon. ! Toute valeur non nulle est considérée comme vraie et la valeur nulle comme fausse. Les opérateurs logiques ! && et || ou (non exclusif) ! non

Les structures de contrôle Alternative: if-else Itérations: for, while, do-while Rupture de Contrôle: break, continue, return … Choix Multiple: switch-case programme programme oui non Condition vraie oui Condition vraie non Bloc d’instructions Bloc 1 d’instructions Bloc 2 d’instructions Suite du programme do-while Bloc d’instructions oui Condition vraie Suite du programme non Suite du programme if-else while

Les structures de contrôle   Les décisions - if … else void main() { // corps du programme déclaration des Cstes et Var ; instruction1 ; instruction2 ; …. } int a, b; a = 1; oui Condition vraie non if (Condition vraie) { BLOC 1 D'INSTRUCTIONS } else BLOC 2 D'INSTRUCTIONS Bloc 1 d’instructions Bloc 2 d’instructions if (i)  if (i != 0) Suite du programme

Les décisions - if … else programme if ( X== Y) { X= X+1; Y= Y+2; } else { X = X-1 ; Y = Y- 2 ; if (Condition vraie) { BLOC 1 D'INSTRUCTIONS } else BLOC 2 D'INSTRUCTIONS oui Condition vraie non Bloc 1 d’instructions Bloc 2 d’instructions if (Condition vraie) instruction A; else instruction B; if (a<b) min=a; min=b; Suite du programme Bloc 1 d’instructions oui non Suite du programme Condition vraie if (Condition vraie) { instruction 1; instruction 2; instruction 3; … instruction N; } if ( temperature > 70.0) cout << " Alarme "<<endl;

cout <<" i < 0 \n"; cout <<" Il faut un i > 0 \n"; int i = 1; if(i < 0) cout <<" i < 0 \n"; cout <<" Il faut un i > 0 \n"; cout <<" alors!! \n"; … non oui Condition vraie Bloc 1 d’instructions Il faut un i > 0 alors!! int i = 1; if(i < 0){ cout <<" i < 0 \n"; cout <<" Il faut un i > 0" << endl; } cout <<" alors!! \n"; alors!!

cout <<" i < 0 \n"; int i = 1; if(i < 0){ cout <<" i < 0 \n"; cout <<" Il faut un i > 0" << endl; } cout <<" alors!! \n"; non oui Condition vraie Bloc 1 d’instructions alors!! int i = -1; if(i < 0){ cout <<" i < 0 \n"; cout <<" Il faut un i > 0" << endl; } cout <<" alors!! \n"; i < 0 Il faut un i > 0 alors!!

else (i>=0) { … int i = -1; if(i < 0){ cout <<" i < 0 \n"; cout <<" Il faut un i > 0" << endl; } cout <<" alors!! \n"; i < 0 Il faut un i > 0 alors!! non int i = -1; if(i < 0){ cout <<" i < 0 \n"; cout <<" Il faut un i > 0" << endl; } else { cout <<" alors!! \n"; oui Condition vraie Bloc 1 d’instructions Bloc 2 d’instructions i < 0 Il faut un i > 0 else (i>=0) { …

Ce programme calcule la circonférence et la surface d’un disque de rayon quelconque positif if ( rayon < 0 ) { cout << "je ne peux calculer avec un rayon négatif!\n"; } else { ….

#include < iostream > using namespace std; TP : suite Ce programme calcule et affiche la circonférence et la surface d’un disque de rayon quelconque positif. void main(void) { const float PI= 3.14159; float circonference, surface; int rayon; cout << " ?valeur rayon = ";  cin >> rayon; if ( rayon < 0 ) { cout << "je ne peux calculer avec un rayon négatif!\n"; } else{ circonference = 2* PI*rayon; surface = PI * rayon *rayon ; cout << " La circonference = " << circonference << endl; cout << " La surface = " << surface;

Les itérations – for i=0 i=1 i=2 i=3 for( init ;(Condition vraie); itération) { /* liste d'instructions */ } #include <iostream> using namespace std; void main() { int i=0; cout << "i = " << i << endl; i++; } i=0 i=1 i=2 i=3 for (i = 0; i <4; i++) { cout << "i = " << i << endl; } for (i = 0; i <4; ) { cout << "i = " << i << endl; i++ ; }

setw(x) : la prochaine sortie sera sur une largeur de x #include <iomanip > 7 10 5 1 2 3 2 3 4 3 4 5 4 5 6 5 6 7 6 7 8 7 8 9 for (int i = 1; i < 8; i++) cout << setw(7) << i << setw(10) << i+1 << setw(5) << i+2 << endl;

#include < iostream > using namespace std; TP : suite ??? rayon=2.0 rayon=4.0 rayon=6.0 rayon=8.0 void main(void) { const float PI= 3.14159; float circonference, surface; float rayon; cout << " rayon\t circonference \t surface\n"; for (rayon=2.0; rayon <= 8.0; rayon+=2.0) { circonference = 2* PI*rayon; surface = PI * rayon *rayon ; cout << rayon << "\t " << circonference << "\t " << surface << endl; }

# 8 Instructions d'échappement for (i = -10; i <= 10; i++) { int i, j=1; char a; for (i = -10; i <= 10; i++){ while(j!=0)   { cin >> a ; if(a=='x')   break; } } Pour rompre le déroulement séquentiel d'une suite d'instructions while (Condition vraie) { ............ ; continue; break; } 8 # for (i = -10; i <= 10; i++) { if (i == 0) continue; // pour éviter la division par zéro cout << 1 / i; } return (expression); permet de sortir de la fonction qui la contient exit (expression); La fonction est interrompue. ‘expression’ : un entier indiquant le code de terminaison du processus

switch = AU CAS OU ... FAIRE ... … switch(variable de type char ou int) // au cas où la variable vaut: { case valeur1: ......; // variable=valeur1 : exécutez ce bloc d'instructions. .......; break;   case valeur2:........; // variable=valeur2: exécutez ce bloc d'instructions. ........; break; . . // etc ... default: .......; /* aucune des valeurs précédentes: exécutez ce bloc ........; d'instructions, pas de "break" ici.*/ } Le bloc "default" n'est pas obligatoire. valeur1, valeur2, …. doivent être des expressions constantes. L’instruction switch correspond à une cascade d’instructions if ...else

switch : instruction commode pour les "menus" …. void main( ) { const float PI= 3.14159; float rayon = 3.5; float diametre, circonference, surface; int choix;   cout << "1. Calculer la circonference\n"; cout << "2. Calculer la surface\n"; cout << "3. Calculer le diametre\n"; cout << "Votre choix?"; cin >> choix; switch (choix) { case 1 : circonference = 2*PI*rayon; break; case 2 : surface = PI*rayon*rayon; break; case 3 : diametre = 2*rayon; break; default : cout << "Mauvais choix…\n"; } char choix; switch(choix) { case '1': … float f; switch(f) { case 2: .... ! switch(i) { case 2 * j: ....

Corrigez, si nécessaire, ce programme pour ne plus avoir d’erreurs lors de la compilation. Qu’affiche-t-il à l’écran (après correction)? Si choix = 1 Si choix = 5 char choix; cout << " Case 1 : 1\n"; cout << " Case 2 : 2" <<endl; cout << "\nVOTRE CHOIX: "; cin >> choix; switch(choix) { case 1 : cout << "case 1";   case 2 : cout << "case 2"; default : cout << "\n Default "; } int choix; EXCES ' ' break;

void main(void) { float rayon = 3.5; float diametre, circonference, surface; int choix;   cout << "1. Calculer la circonference\n"; cout << "2. Calculer la surface\n"; cout << "3. Calculer le diametre\n"; cout << "Votre choix?"; cin >> choix; switch (choix) { case 1 : circonference = 2*PI*rayon; break; case 2 : surface = PI*rayon*rayon; break; case 3 : diametre = 2*rayon; break; default : cout << "Mauvais choix…\n"; } /* poursuite du programme….*/

tant que, pas jusqu’à ce que! La boucle TANT QUE ... FAIRE ...     Boucle pré-testée Il s'agit de l'instruction while : tant que (expression vraie) faire{ BLOC D'INSTRUCTIONS } Organigramme: (Boucles) tant que, pas jusqu’à ce que! Syntaxe: while (Condition vraie) { ............; /* bloc d'instructions */ ............; }   Le test se fait d'abord, le bloc d'instructions n'est pas forcément exécuté. oui Condition vraie non Bloc 1 d’instructions Suite du programme

tant que, pas jusqu’à ce que! Exemples i=1; while(i<5) { cout<<"Interieur " <<i << endl; i++; } cout<<"Exterieur " <<i << endl; Interieur 1 Interieur 2 Interieur 3 Interieur 4 Exterieur 5 itération int j = 5; cout<<"start\n"; while(j == 0) cout<<"j = "<<j--<<endl; cout<<"end\n"; start end tant que, pas jusqu’à ce que! i=1; while(i<5); { cout<<"Interieur " <<i << endl; i++; } "tant que l'expression est vraie attendre".

(garantit l’exécution au moins une fois) do while = REPETER … tant que (garantit l’exécution au moins une fois) do { ............; /* bloc d'instructions */ ............; } while (Condition vraie); programme Bloc d’instructions oui Condition vraie non Suite du programme int j = 5; do cout<<"j = "<<j--<<endl; while(j > 0); cout <<"stop\n"; int j = 5; do { cout<<"j = "<<j <<endl; j--; } while(j > 0); cout <<"stop\n"; j = 5 j = 4 j = 3 j = 2 j = 1 stop

Les itérations for( init ;(Condition vraie); itération) { /* liste d'instructions */ } for (i = 0; i <4; i++) { cout << "i = " << i << endl; } while (Condition vraie) { ............; /* bloc d'instructions */ ............; } int i = 0; while(i < 4) { cout<<"i = "<< i <<endl; i++; } do { ............; /* bloc d'instructions */ ............; } while (Condition vraie); int i = 0; do { cout<<"i = "<< i <<endl; i++; } while(i < 4);