13
1 ++-1 M. BENJELLOUN : 2019-20 U MONS Résumé 1 e Bac Mohammed BENJELLOUN Service d’Informatique Faculté Polytechnique de Mons [email protected] 2019-2020 Résumé Ba1 ++-2 M. BENJELLOUN : 2019-20 U MONS Résumé 1 e Bac (pseudo-code/organigramme) (langage) Ce programme doit gérer en boucle le menu suivant : 1- Saisie et Affiche 2- Tri et Affiche 3- Seuil de lipolyse et Affichage 4- Efface et Affiche 5- Ajoute et Affiche { char Rep; Rep = ‘X’ ; cout << "Voulez vous continuer ? (O/N)" ; if (Rep <> "O" ) cout << "Saisie …" ; cout << "Fin …« } (suite finie d’opérations élémentaires) Résumé Ba1

Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include On y trouve essentiellement les classes: • ofstream ( o utput f

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

1

++- 1M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Mohammed BENJELLOUN

Service d’Informatique

Faculté Polytechnique de Mons

[email protected]

2019-2020

Résumé Ba1

++- 2M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

(pseudo-code/organigramme)

(langage)

Ce programme doit gérer en boucle le menu suivant :

1- Saisie et Affiche2- Tri et Affiche3- Seuil de lipolyse et Affichage4- Efface et Affiche5- Ajoute et Affiche

{char Rep;

Rep = ‘X’ ;cout << "Voulez vous continuer ? (O/N)" ;

if (Rep <> "O" ) cout << "Saisie …" ;

cout << "Fin …«…}

(suite finie d’opérations élémentaires)

Résumé Ba1

Page 2: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

2

++- 3M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Programmer: Y = X2, Z = X3 et

#include <iostream> // pour cout et cin#include <cmath> // pour sqrt( )using namespace std;

void main() {int X, Y, Z ; // variablesfloat racine;

cout << " ??valeur de X = ";cin >> X;

Y= X * X ; // X²Z= Y * X ; // X³racine = sqrt(X);

cout << "La racine de" << X << " est " << racine << endl;cout << " Y = " << Y << " et Z = " << Z ;

}

++- 4M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Un identificateur ne peut pas être un mot réservé du langage :

Les mots réservés du langage C++ doivent être écrits en minuscules.

Identificateurs

Page 3: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

3

++- 5M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

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

Bloc 1

d’instructions

Bloc 2

d’instructions

oui non

Suite du programme

oui non

Suite du

programmeBloc

d’instructions

Condition

vraie

oui

non

Bloc

d’instructions

programme

Conditionvraie

Suite du programme

programme

Condition

vraie

if-else while

do-while

++- 6M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Les décisions - if … else

if (Condition vraie) {instruction 1;instruction 2;

}else {

instruction 3;instruction 4;

}

Selon qu’une certaine condition est vérifiée ou non, on exécutera une ou plusieurs instructions.

Les décisions - if sans elseif (Condition vraie){

instruction 1;instruction 2;…

instruction N;}

Page 4: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

4

++- 7M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Les itérations

for( init ; (Condition vraie); itération)

{

/* bloc 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);

++- 8M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

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: .......; /* Si 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

Page 5: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

5

++- 9M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Tableaux et Strings

Un tableau est une collection de variables de même type, appelées éléments

Type Nom_Tableau[dim];

int tab[4]; déclare un tableau de 4 valeurs entières tab[0] tab[1] tab[2] tab[3]

Constante

Chaînes de caractères ou string

• Un tableau de char à une dimension : char Nom[dim];

• Un type spécial string : string Nom; // Il faut inclure <string>

++- 10M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Lecture d’un string contenant des espaces

Attention ! On ne peut donc pas lire en une fois une ligne entièrecontenant des blancs (espaces) avec cin

☞ il faut utiliser getline pour lire une ligne entière (contenant des espaces)

Exemple :

string nom_compose, nom;cout << " Introduisez le nom avec espace : "; // Van den bosschegetline(cin, nom_compose);cout << nom_compose << endl; // ==> Van den bosschecout << " Introduisez un nom avec espace : "; // Van Coolcin >> nom_compose;cout << nom_compose << endl; // ==> Van

Page 6: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

6

++- 11M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Début programme

Fin

instructions

cout << " Modifier n = " ;cin >> n ;

if ( n == x) {…

}else {

…}

for (x = 0; x < 4; x++) {cout << "x = " << x << endl;

}

while(x<4 ) {…

}

do {…

} while(x < 4 );

#include <iostream>

using namespace std;

int main ()

{

return 1;

}

int n=2, x ; // commentaire

x=3;

instructions2

instructions1

If OK?O

If OK?

instructions

O

N

N

++- 12M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

#include <iostream>

using namespace std;int Somme(int x, int y);

void main(void) {

int Som;

Som = Somme(7,9); //appel de la fonction

if ( Som > 10 ) {

cout <<" Som > 10 "<< Som<< endl;

}

else {cout <<" Som <= 10 "<< Som;

}

int Somme(int x, int y) { /* Définition de

la fonction */

int S;

S= x+y;

return S ;

}

Directives du préprocesseur : accès avant la compilation

Programme

principal

Déclarations

TraitementsDonnéesStructures de contrôleCommentaires

Structure d'un programme C++ : exemple

Page 7: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

7

++- 13M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

void main(){

Fnct_SomCar(5) ;

Fnct_SomCar(10) ;

Fnct_SomCar(7) ;

}

void Fnct_SomCar(int N){

int i, S=0;

for (i = 0; i <N; i++)

S = S + i*i ;

cout<<" SC="<<S<< endl;

}

5

Fonctions pourquoi ?10

++- 14M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

void main(){

int Val1, Val3;

Val1 = Fnct1_() ;

Fnct2_() ;

Val3 = Fnct3_() ;

}

……….………..return entier;

int Fnct1_()

……….………..Fnct4_();………..………..

void Fnct2_()

……….………..………..………..

void Fnct4_()

……….………..return entier;

int Fnct3_()

Fonctions pourquoi ?

Une fonction peut, pendant son exécution, faire appel à une autre fonction, qui elle-même en appelle d'autres, etc.

Page 8: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

8

++- 15M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Écrire un programme modulaire qui permet de saisir et afficher les éléments de deux

tableaux (Tab1[10] et Tab2[10]) contenant des noms. Le nombre d’éléments (N1 et

N2) saisis peut être différents pour chacun des deux tableaux mais ne peut dépasser

10 éléments.

Combien de fonctions Saisie et Affichage contiendra votre programme? Justifiez.

int main () // Programme principal

{ .....

string T1[Nmax], T2[Nmax];

…..

case 1: saisie (N1, T1);affichage (N1, T1);

break;case 2: saisie (N2, T2);

affichage (N2, T2);break;

…..

}

………..

return 1;

saisie (N1, T1, N2, T2);affichage (N1, T1, N2, T2);

++- 16M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

#include …

void Modifier(int v);

void main(){

int v = 5;

Modifier(v);

cout << "\nmain: v = " << v;

}

void Modifier(int v){

v = v *100;

cout << "Modifier: v = "<< v;

}

#include …

void Modifier(int *v);

void main(){

int v = 5;

Modifier(&v);

cout << "\nmain: v = " << v;

}

void Modifier(int *v){

*v = *v *100;

cout << "Modifier: *v = "<< *v;

}

#include …

void Modifier(int &v);

void main(){

int v = 5;

Modifier(v);

cout << "\nmain: v = " << v;

}

void Modifier(int &v){

v = v *100;

cout << "Modifier: v = "<< v;

}

par Valeur Pointeur Référence

Appel par valeurs, pointeurs, références ??!!

var = 5

var = 500

Modifier: v = 500

main: v = 5

Modifier: *v = 500

main: v = 500

Modifier: v = 500

main: v = 500

var = 5

var = 500

Page 9: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

9

++- 17M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

#include …

void fonct (int a)

{

a=1 ;

}

void main(void){

int var = 5;

fonct (var);

cout << var << endl;

}

5

#include …

int fonct (int a)

{

a=1 ;

return a;

}

void main(void){

int var = 5;

var = fonct (var);

cout << var << endl;

}

1 1

#include …

void fonct (int *a)

{

*a=1 ;

}

void main(void){

int var = 5;

fonct (&var);

cout << var << endl;

}

#include …

void fonct (int &a)

{

a=1 ;

}

void main(void){

int var = 5;

fonct (var);

cout << var << endl;

}

1

++- 18M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Règles de visibilité des variables

#include <iostream>

using namespace std;

void main() {

const float PI= 3.14159;

float rayon = 3.5;

float circonference, surface;

int choix;

cout << "1. Calculer la circonference\n";

cout << "2. Calculer la surface\n";

cout << "Votre choix?";

cin >> choix;

switch (choix) {

case 1 : rayon = 0;

circonference = 2*PI*rayon;

cout << circonference << endl; break;

case 2 : surface = PI*rayon*rayon;

cout << surface << endl; break;

}

}

Le C++ est un langage structuré en blocs { } , les variables ne peuvent être utilisées que là où elles sont déclarées.

Page 10: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

10

++- 19M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Gestion des fichiers en C++

Pour manipuler un fichier en C++ il faut #include <fstream>

On y trouve essentiellement les classes:• ofstream (output file stream) permet d’écrire les données dans le fichier ;• ifstream (input file stream) permet de lire les données du fichier ;

Ouverture et fermeture d’un fichier :

ofstream output, X;output.open("Res.txt"); ou output.open("c:\\labojeudi\\Res.txt");X.open("Data"); ou X.open("A:\\Data");

Écriture :

Lecture : ifstream input ;input.open("Data.txt"); ou input.open("c:\\labojeudi\\Data.txt");

++- 20M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

Student191000

Obé

Lix

191001

Astér

Ix

100009

Tint

In

101899

Tourne

Sol

struct Student { // mot-clé struct + nomStructint Id;char nom[30];string prenom;

};

struct Student Tab[Nmax];

Les Structures

Structure = ensemble de variables définissant un nouveau type sous un seul nom.

Page 11: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

11

++- 21M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

struct E{

int x;

int y ;

} ;

#include …

void fonct (E *a) {

*a.x=1 ; *a.y=2;

}

void main(void){

struct E V;

V.x=V.y=0;fonct (&V);

cout << V.x << V.y;}

1 2

#include …

void fonct (E a) {

a.x=1 ; a.y=2;

}

void main(void){

struct E V;

V.x=V.y=0;

fonct (V);

cout << V.x << V.y;

}

0 0

#include …

E fonct (E a) {

a.x=1 ; a.y=2;

return a;

}

void main(void) {

struct E V;

V.x=V.y=0;

V = fonct (V);

cout << V.x << V.y;}

1 2

#include …

void fonct (E &a) {

a.x=1 ; a.y=2;

}

void main(void){

struct E V;

V.x=V.y=0;fonct (V);

cout << V.x << V.y;}

1 2

++- 22M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

struct Article{

int x ;

string nom ;

} ;

3

Nom1

2

Nom4

5

Nom5

Elem Tab[Cste];

void Saisie(Article Tab[], int n) {

for(int i=0; i<n; i++) {

cout << "\n le nom de l article: "

cin >> Tab[i].nom;cout << "\n le prix de l article: ";

cin >> Tab[i].x;}

}

Manipulation d’un tableau

Page 12: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

12

++- 23M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

void main() {

struct Article Tab[Nmax];

do{

rep_menu=menu();

switch(rep_menu) {

case 1: Saisie(Tab,n);

Affichage(Tab, n);

break;

default : cout << " Il faut choisir entre 1) .... et 8) \n";

}

}while (rep_menu!=8);

. . . . . . Manipulation d’un tableau

struct Article{

int x ;

string nom ;

} ;

++- 24M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

void saisie(Etudiant T[], int &n, int &NM) {

int i, j;

? n et NMfor(i=0;i<n;i++){

cout << " nom[" i << " ] = ";

cin>> T[i].nom;cout <<" num " ;

cin >> T[i].num;

for(j=0;j< NM;j++){

cout << " Matiere " << i ;

cin >> T[i].Matieres[j] ;}

}

}

struct Etudiant{string nom ;int numero ;int Matieres[NMax] ;

} ;

Résumé 1e Bac

Manipulation d’un tableau. . . . . .

Page 13: Présentation PowerPoint C++ : Transp 1er Bac...Pour manipuler un fichier en C++ il faut #include  On y trouve essentiellement les classes: • ofstream ( o utput f

13

++- 25M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

☺☺☺

Les listes sont des structures de données dynamiques, linéaires. Elles sont composées de cellules chaînées les unes aux autres par pointeurs.

NULL

NULL

Une cellule étant une structure qui contient un élément à stocker et un pointeur sur la prochaine cellule de la liste.

struct Cellule{int Data;

struct Cellule *suiv; // pointeur sur le prochain maillon};

++- 26M. BENJELLOUN : 2019-20 UMONS Résumé 1e Bac

debut

Noeud?

debut

NULL

struct Noeud {int data;Noeud *next;Noeud *prev;

};

Liste chaînée

Liste doublement chaînée