Académique Documents
Professionnel Documents
Culture Documents
Principales Améliorations :
C C++
Programme
simple
Fichier
Interface
Programme
simple
Fichier
Interface
Programme
simple
Fichier
d’implémentation
Extension :
Fichier .h
Interface
(Header)
Programme
simple
.c
Fichier Ou
d’implémentation
.cpp
Exemple n°1 :
int main()
{
Exemple n°1 :
Exemple n°1 :
Exemple n°1 :
}
{
Équivalent
du begin et Bloc d’instructions
end en ;
ADA
}
Exemple n°1 :
}
{
Équivalent
du begin et Bloc d’instructions
end en ;
ADA
Instruction
} vide
Exemple n°1 :
}
{
Équivalent
du begin et Bloc d’instructions
end en ;
ADA
}
Instruction
vide
Quelques règles
2 méthodes :
2 méthodes :
Exemple n°2 :
2 méthodes :
Exemple n°2 :
Exemple n°3 :
char Caractère
int Entier
float Réel
Exemple n°4 :
int main()
{
int A, B; En C, pas de déclarations possible
double C; après la première instruction
B=A;
}
Exemple n°4 :
int main()
{
int A, B; En C, pas de déclarations possible
double C; après la première instruction
B=A;
}
Exemple n°5 :
int main()
{
int A, B;
En C++, tout est possible !!
B=A;
double C;
}
Exemple n°6 :
A+B Addition
A–B Soustraction
A*B Produit
A/B Division
A%B Modulo
-A Opérateur Unaire
Exemple n°7 :
Exemple n°7 :
A = C + 1;
char D = 'b';
D = D + 1;
}
Exemple n°7 :
== Égal
!=
différent
Exemple n°8 :
if ( A == B ) À évité :
{
Si B est égale à 2 alors
A++;
(B==2) vaudra 1 et donc A
C = A; vaudra 1*4=4
}
A=(B==2)*4
&& ET logique
|| OU logique
! NON logique
Exemple n°9 :
if (A < 1 && B > 3)
{
instructions;
}
Exemple n°10 :
A = B + 3;
B + C = A; INTERDIT!!!
i = i + 1; i++; ou ++i;
i = i – 1; i--; ou --i;
Exemple n°11 :
i = i + 2; i += 2;
Exemple n°12 :
A = 3 * A; A *= 3;
B = B / 3; B /= 3;
C = C - 2; C -= 2;
A = A << 1; A *= 2;
A = A >> 1; A /= 2;
~ Complément à 1
& ET logique
| OU logique
^ OU Exclusif logique
Exemple n°13 :
{
int X=1;
{
X *= 2;
}
cout << X;
}
Exemple n°14 :
{
int X=1;
{
X *= 2; Bloc "Père"
}
cout << X;
}
Exemple n°14 :
{
int X=1;
{
X *= 2; Bloc "Fils"
}
cout << X;
}
if (Condition) if (C==0)
{ {
cout << "perdu" << endl;
instructions; C = 1;
} }
else
else cout << "gagné << endl;
{
instructions;
}
if (Condition) if (C==0)
{ {
cout << "perdu" << endl;
instructions; C = 1;
} }
else
else cout << "gagné << endl;
{
instructions; Exemple n°14 :
}
if (C==0)
i++;
Le bloc else n'est pas obligatoire si il
ne contient pas d'instructions.
Exemple n°15 :
if (i==0)
if (A>10)
{
instructions;
}
else
instructions;
else
instructions;
Exemple n°16 :
Exemple n°16 :
int i = 2;
switch (i)
{
case 0 : instructions;
break;
On termine toujours par break si on ne
case 1 : instructions; souhaite pas que les instructions des
break; autres case soit executer .
case 2 : instructions;
break;
default : instructions;
break;
}
Exemple n°16 :
int i = 2;
switch (i)
{ Le default n'est pas obligatoire
case 0 : instructions;
break;
case 1 : instructions;
break;
case 2 : instructions;
La valeur de i n'est
break; évaluer qu'une seule fois
default : instructions;
break;
}
Exemple n°17 :
p = i = 1;
do { La répétitive est exécutée
p = p * i; au moins une fois
i++;
} while (i != 10);
Exemple n°18 :
p = i = 1;
while (i != 10)
Pas d'obligation d'exécution
{
p *= i;
i++;
}
Exemple n°18 :
{ Partie d'initialisation
int i, Somme = 0;
for ( i = 1; i <= 10 ; i++ )
{
Somme += i;
}
A = 0;
}
Exemple n°18 :
{ Partie d'initialisation
int i, Somme = 0;
for ( i = 1; i <= 10 ; i++ )
{
Somme += i;
}
A = 0;
}
Condition de continuité
Exemple n°18 :
{ Partie d'initialisation
int i, Somme = 0;
for ( i = 1; i <= 10 ; i++ ) Partie Incrémentation
{
Somme += i;
}
A = 0;
}
Condition de continuité
Exemple n°18 :
{
int i, Somme = 0; 1 2 4 3
for ( i = 1; i <= 10 ; i++ )
{ 1 2 3 2 4 3 2
Somme += i;
} 4
A = 0;
}
Exemple n°19 :
Exemple n°20 :
Exemple n°21 :
void F();
int A = 0; Variable Globale
main()
{
int B = 0;
float A;
F();
{
char C;
instructions;
}
A++;
}
void F();
{
int C;
instructions;
}
Exemple n°21 :
void F();
int A = 0; Variable Globale
main()
{
int B = 0; Variables locales à main()
float A;
F();
{
char C;
instructions;
}
A++;
}
void F();
{
int C;
instructions;
}
Exemple n°21 :
void F();
int A = 0; Variable Globale
main()
{
int B = 0; Variables locales à main()
float A;
F();
{
char C;
Variables locales à ce bloc
instructions;
}
A++;
}
void F();
{
int C;
instructions;
}
Exemple n°21 :
void F();
int A = 0; Variable Globale
main()
{
int B = 0; Variables locales à main()
float A;
F();
{
char C;
Variables locales à ce bloc
instructions;
}
A++;
}
void F();
{
Variables locales à F()
int C;
instructions;
}
Exemple n°22 :
int A;
main ()
{
instructions;
F();
F();
F();
}
void F(void)
{
int B = 1;
static int C = 1;
La variable C est statique dans la
B++; fonction F()
C++;
}
Exemple n°23 :
Exemple n°24 :
Exemple n°28 :
-> Récursivité impossible
inligne int Min(int A, int B)
{ -> Pas instanciée donc pas de
return A<B?A:B; pointeur
}
-> Le compilateur ne respecte pas
forcement ce mot clé!
Exemple n°29 :
int F()
{ Il ne faut pas mettre &C
int C;
C=1;
return C;
}
Exemple n°30 :
Exemple n°31 :
}
void F3()
{ Définition de la fonction F3()
instructions;
}
}
static void F4()
{ Définition de la fonction F4()
instructions;
}
Exemple n°32 :
#include <stdio.h>
int main(void)
{
int i, som, nbm ;
double moy ;
int t[20] ;
for (i=0 ; i<20 ; i++)
{
printf ("donnez la note numéro %d : ", i+1) ;
scanf ("%d", &t[i]) ;
}
for(i=0, som=0 ; i<20 ; i++)
som += t[i] ;
moy = som / 20 ;
printf ("\n\n moyenne de la classe : %f\n", moy) ;
for (i=0, nbm=0 ; i<20 ; i++ )
if (t[i] > moy)
nbm++ ;
printf ("%d élèves ont plus de cette moyenne", nbm) ;
return 0 ;
}
AP4 - Programmation Orientée Objet
Chapitre 2 : Introduction au langage C++
Aucun contrôle de "débordement d'indice" n'est mis en place par la plupart des
compilateurs.
Exemple n°34 :
Exemple n°35 :
Exemple n°36 :
int * ad1, * ad2; Les variables ad1, ad2 et ad sont donc des pointeurs
int n = 10, p = 20; sur des entiers
ad1 = &n; ad2 = &p;
ad1 = * ad2 + 2; On place dans ad1 et ad2 les adresses de n et p
*ad1 +=3 ;
affecte à *ad1 la valeur de l'expression : *ad2 + 2
int Tab[10];
0 9
int *Ptr; Tab:
Ptr=Tab;
int Tab[10];
0 9
int *Ptr; Tab
Ptr=Tab; :
Ptr
int Tab[10];
0 9
int *Ptr; Tab
Ptr=Tab; :
Ptr
Ptr
Ptr
Ptr
Ptr
Ptr
Ptr
int Tab[3][4]; 0 3
Int *Ptr; Tab
:
Ptr=Tab;
0
Lignes Colonnes
2
Tab[2][3]
int Tab[3][4]; 0 3
Int *Ptr; Tab
:
Ptr=Tab;
Ptr
0
int Tab[3][4];
Tab
0 3
Int *Ptr;
:
Ptr=Tab;
Ptr
0
int Tab[3][4];
Tab
0 3
Int *Ptr;
:
Ptr=Tab;
Ptr
0
(Tab+1)
:
(Tab+2)
2
:
}
}
int main()
{ Tab
int Tab[10]; main
Remplir(Tab);
} 0 9
}
// ou void Remplir(int T[10])
// ou void Remplir(int *T) T i
{ Remplir
for(int i=0;i<10;i++) 0
T[i]=5;
}
}
int main()
{ Tab
int Tab[10]; main
Remplir(Tab);
} 0 9
}
{
int Tab[10], N=10;
Remplir2(Tab, N); Tab
main
}
N-
0 1
}
{
for(int i=0;i<Nb;i++) T Nb
Remplir2
T[i]=5;
10
}
int main()
}
{
int Tab[10], N=10;
Remplir2(Tab, N); Tab
main
}
N-
0 1
En pile :
int main()
{
int A=1, B=1, C=1;
F(A, B, &C);
}
}
void F(int X, int &Y, int *Z)
X Y Z
{
X=2; F
Y=2;
*Z=2;
}
}
Passage par valeur (IN)
A B C
Passage par référence (IN/OUT) main
1 1 1
Passage par adresse (IN/OUT)
En pile :
int main()
{
int A=1, B=1, C=1;
F(A, B, &C);
}
}
void F(int X, int &Y, int *Z)
X Y Z
{
X=2; 1 F
Y=2;
*Z=2;
}
}
Passage par valeur (IN)
A B C
Passage par référence (IN/OUT) main
1 1 1
Passage par adresse (IN/OUT)
En pile :
int main()
{
int A=1, B=1, C=1;
F(A, B, &C);
}
}
void F(int X, int &Y, int *Z)
X Y Z
{
X=2; 1 F
Y=2;
*Z=2;
}
}
Passage par valeur (IN)
A B C
Passage par référence (IN/OUT) main
1 1 1
Passage par adresse (IN/OUT)
En pile :
int main()
{
int A=1, B=1, C=1;
F(A, B, &C);
}
}
void F(int X, int &Y, int *Z)
X Y Z
{
X=2; 1 F
Y=2;
*Z=2;
}
}
Passage par valeur (IN)
A B C
Passage par référence (IN/OUT) main
1 1 1
Passage par adresse (IN/OUT)
En pile :
int main()
{
int A=1, B=1, C=1;
F(A, B, &C);
}
}
void F(int X, int &Y, int *Z)
X Y Z
{
X=2; 1 F
Y=2;
2
*Z=2;
}
}
Passage par valeur (IN)
A B C
Passage par référence (IN/OUT) main
1 1 1
Passage par adresse (IN/OUT)
En pile :
int main()
{
int A=1, B=1, C=1;
F(A, B, &C);
}
}
void F(int X, int &Y, int *Z)
X Y Z
{
X=2; 1 F
Y=2;
2
*Z=2;
}
}
Passage par valeur (IN)
A B C
Passage par référence (IN/OUT) main
1 1 2 1
Passage par adresse (IN/OUT)
En pile :
int main()
{
int A=1, B=1, C=1;
F(A, B, &C);
}
}
void F(int X, int &Y, int *Z)
X Y Z
{
X=2; 1 F
Y=2;
2
*Z=2;
}
}
Passage par valeur (IN)
A B C
Passage par référence (IN/OUT) main
1 1 2 1 2
Passage par adresse (IN/OUT)
En C:
int main()
{
int N;
cout << "Nb d'étudiants";
cin >> N;
//Allocation mémoire d'un tableau de N
entiers
int *Tab, *Pi;
Pi=(int *)malloc(sizeof(int));
Tab=(int *)malloc(N*sizeof(int));
if ((Pi != NULL) && (Tab != NULL))
{
//instructions;
free(Pi);
free(Tab);
}
}
AP4 - Programmation Orientée Objet
Chapitre 2 : Introduction au langage C++
En C ++:
int main()
{
int N;
cout << "Nb d'étudiants";
cin >> N;
//Allocation mémoire d'un tableau de N
entiers
int *Tab, *Pi;
Pi=new int;
Tab=new int[N];
if ((Pi != NULL) && (Tab != NULL))
{
//instructions;
delete Pi;
delete[] Tab;
}
}
AP4 - Programmation Orientée Objet
Chapitre 2 : Introduction au langage C++
En C ++:
int main()
{ Attention :
int N;
cout << "Nb d'étudiants";
cin >> N;
//Allocation mémoire d'un tableau de N Ne pas croiser les
entiers
int *Tab, *Pi;
allocations/libérations
Pi=new int; dynamiques entre les
Tab=new int[N]; instructions C et C++
if ((Pi != NULL) && (Tab != NULL))
{
//instructions;
delete Pi;
delete[] Tab;
}
}
AP4 - Programmation Orientée Objet
Chapitre 2 : Introduction au langage C++
#define AffChaine(Ch) cout << Ref++ << "—" << Ch << endl
#define AffCarac(Car) cout << Ref++ << "—" << Car << endl;
int main ()
{
char Ref='A'; quand on rencontrera ça on
char *Chaine="merci"; remplacera jusqu'aux bout de la
char Mot[]="beaucoup"; ligne
char *p=Mot;
char *Tab[3]={"ZERO","UN","DEUX"};
AffChaine(Chaine);
AffCarac(Chaine[23]);;
AffChaine(Mot+3);
AffCarac(*++p);
AffCarac(++*++p);
AffChaine(Tab[1]);
AffChaine(Tab[2]+1);
Tab[0][2]='\Ø';
AffChaine (*Tab);
retour 0;
}
AP4 - Programmation Orientée Objet
Chapitre 2 : Introduction au langage C++
#define AffChaine(Ch) cout << Ref++ << "—" << Ch << endl
#define AffCarac(Car) cout << Ref++ << "—" << Car << endl;
int main ()
{
char Ref='A'; quand on rencontrera ça on
char *Chaine="merci"; remplacera jusqu'au bout de la ligne
char Mot[]="beaucoup";
char *p=Mot;
obligatoire car il n'y en pas à la fin
char *Tab[3]={"ZERO","UN","DEUX"};
AffChaine(Chaine);
du #define
AffCarac(Chaine[23]);; inutile car le ";" est déjà présent a la
AffChaine(Mot+3); fin du #define
AffCarac(*++p);
AffCarac(++*++p); 1
AffChaine(Tab[1]);
2
AffChaine(Tab[2]+1);
Tab[0][2]='\Ø'; 3
AffChaine (*Tab);
retour 0;
}
AP4 - Programmation Orientée Objet
Chapitre 2 : Introduction au langage C++
En Mémoire : Affichage :
Ref 'A'
Chaine M E R C I \Ø
0 1 2
Mot b e a u c o u p \Ø
Mot mot mot mot
+1 +2 +3
Tab Z E R O \Ø
U N \Ø
D E U X \Ø
En Mémoire : Affichage :
Ref 'A' 'B'
A--merci
Chaine M E R C I \Ø
0 1 2
Mot b e a u c o u p \Ø
Mot mot mot mot
+1 +2 +3
Tab Z E R O \Ø
U N \Ø
D E U X \Ø
En Mémoire : Affichage :
Ref 'A' 'B'
A -- merci
Chaine M E R C I \Ø
B -- r
0 1 2
Mot b e a u c o u p \Ø
Mot mot mot mot
+1 +2 +3
Tab Z E R O \Ø
U N \Ø
D E U X \Ø
En Mémoire : Affichage :
Ref 'A' 'B' 'C'
A -- merci
Chaine M E R C I \Ø
B -- r
0 1 2
C -- ucoup
Mot b e a u c o u p \Ø
Mot mot mot mot
+1 +2 +3
Tab Z E R O \Ø
U N \Ø
D E U X \Ø
En Mémoire : Affichage :
Ref 'A' 'B' 'C' 'D'
A -- merci
Chaine M E R C I \Ø
B -- r
0 1 2
C -- ucoup
Mot b e a u c o u p \Ø
Mot mot mot mot D -- e
+1 +2 +3
Tab Z E R O \Ø
U N \Ø
D E U X \Ø
En Mémoire : Affichage :
Ref 'A' 'B' 'C' 'D' 'E'
A -- merci
Chaine M E R C I \Ø
B -- r
0 1 2
C -- ucoup
Mot b e ab u c o u p \Ø
Mot mot mot mot D -- e
+1 +2 +3
E -- b
p
Tab Z E R O \Ø
U N \Ø
D E U X \Ø
En Mémoire : Affichage :
Ref 'A' 'B' 'C' 'D' 'E' 'F'
A -- merci
Chaine M E R C I \Ø
B -- r
0 1 2
C -- ucoup
Mot b e ab u c o u p \Ø
Mot mot mot mot D -- e
+1 +2 +3
E -- b
p
F -- UN
Tab Z E R O \Ø
U N \Ø
D E U X \Ø
En Mémoire : Affichage :
Ref 'A' 'B' 'C' 'D' 'E' 'F' 'G'
A -- merci
Chaine M E R C I \Ø
B -- r
0 1 2
C -- ucoup
Mot b e ab u c o u p \Ø
Mot mot mot mot D -- e
+1 +2 +3
E -- b
p
F -- UN
Tab Z E R O \Ø G -- EUX
U N \Ø
D E U X \Ø
En Mémoire : Affichage :
Ref 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H'
A -- merci
Chaine M E R C I \Ø
B -- r
0 1 2
C -- ucoup
Mot b e ab u c o u p \Ø
Mot mot mot mot D -- e
+1 +2 +3
E -- b
p
F -- UN
\Ø
Tab Z E R O \Ø G -- EUX
U N \Ø H -- ZE
D E U X \Ø
p
char p*;
p="Toto";
while (*p)
cout << *p++;
T o t o \Ø
p
char p*;
p="Toto";
while (*p)
cout << *p++;
T o t o \Ø
p
char p*;
p="Toto";
while (*p)
cout << *p++;
T o t o \Ø
p
char p*;
p="Toto";
while (*p)
cout << *p++;
T o t o \Ø
p
char p*;
p="Toto";
while (*p)
cout << *p++;
T o t o \Ø
code ASCII = 0
char p[20];
p="Toto"; p
0 19
char p[20]="Toto";
// ou
char p[20]={'T','o','t','o','\Ø'};
char p[]="Toto";
char p[20];
p="Toto"; p
0 19
char p[20]="Toto";
p T o t o \Ø
// ou
0 19
char p[20]={'T','o','t','o','\Ø'};
char p[]="Toto";
char *Tab[7]={"lundi","mardi",...};
Tab l u n d i \Ø
m a r d i \Ø
char *Tab[7][9];
Tab
0 8
0 l u n d i \Ø
m a r d i \Ø
#include <cstring> // en c
#include <string.h> // en c++
char Ch[]="Toto";
int lg=strlen(Ch);
strcat(ch1;ch2);
strcat(ch1;ch2;lgmax);
strcmp(ch1;ch2);
strcpy(ch1;ch2);
char Ch[]="Toto";
int lg=strlen(Ch);
strcat(ch1;ch2);
strcat(ch1;ch2;lgmax);
strcmp(ch1;ch2);
strcpy(ch1;ch2);
strcmp(ch1;ch2);
strcpy(ch1;ch2);
strcmp(ch1;ch2);
copie la ch2 dans la ch1
strcpy(ch1;ch2);
int main()
{
int A=12;
float B=123.4567;
cout << setw(5) << A;
}
int main()
{
int A;
float B;
char C;
char D[10];
printf("bonjour, %d, %f toto %c %s\n",A,B,C,D);
scanf("%d %f %c %s", &A, &B, &C, D);
}
FILE *file;
File=fopen("NomPhysique",Mode);
Ne pas oublier d'inclure :
fclose(File);//File == NomLogique cstdio en C++
ou
stdio.h en C
Modes Disponibles
"a" appened ouverture d'un fichier existant pour ajouter à la suite. si le fichier n'existe pas il sera créé
"r" read only
"r+" ouverture en lecture/écriture d'un fichier existant
"w" création et ouverture en write only. Si existant remplacement
"w+" création et ouverture en lecture et écriture. Si existant remplacement
int A=1;
Tab[10]={1,2,3,4,5,6,7,8,9,10};
File * Fich;
Fich=fopen("Essai","w");
if (Fich)
{
fwrite(tab,sizeof(int),7,Fich);
fwrite(&A,sizeof(int),1,Fich); //fprintf(Fich,"%d",A);
fclose(Fich);
}
fseek(Fich,Deplacement,Origine);//fonction de positionnement
rewind(Fich); //reviens au début
int ftell(Fich); //positionnement dans le fichier par rapport au début
namespace ProjetA{
int i;
int j=10;
void f(){cout << "lol";};
void g();
}
int main()
{
using namespace ProjetA;
j++;
}
#...........
int main()
{
int B = 2*LARG
}
#undef LONG
struct Client
{ Indispensable!!
char Nom[25];
int Age;
};
Client UnClient;
Client * PtrClient; UnClient PtrClient
PtrClient= & UnClient;
UnClient.Age=20; Nom
PClient->Age=30;//(*PClient).Age=30;
Age
struct Elt
{
Client Donnees;
Elt *pSuivant;
};
pDebut
Client1
struct Elt
{
Client Donnees;
Elt *pSuivant;
};
pDebut
Client1 Client2
struct Elt
{
Client Donnees;
Elt *pSuivant;
};
pDebut
Client1 Client2
struct Elt
{
Client Donnees;
Elt *pSuivant;
};
pDebut
Client1 Client2 Client3
struct Elt
{
Client Donnees;
Elt *pSuivant;
};
pDebut
Client1 Client2 Client3