Académique Documents
Professionnel Documents
Culture Documents
Tableaux
Le langage C/C++ Cela signifie que nous pouvons stocker 5 valeurs de type int dans un
tableau sans avoir dclarer 5 variables diffrentes, chacune avec
TOUHTOUH Samira un identifiant diffrent.
O type est un type valide (comme int, float ...), le nom est un
identifiant valide et le champ des lments (qui est toujours entre Le champ des lments entre crochets [] qui reprsente le nombre
crochets []), indique combien de ces lments, le tableau doit d'lments du tableau, doit tre une valeur constante, puisque les
contenir. tableaux sont des blocs de mmoire non-dynamique dont la taille
doit tre dtermine avant l'excution.
1
08/11/2015
Initialiser un tableau
Cette dclaration va crer un tableau comme celui-ci:
Dans les deux cas lorsque nous dclarons un tableau, nous avons la
possibilit d'affecter des valeurs initiales de chacun de ses lments La quantit de valeurs entre accolades {} ne doit pas tre plus grand que
en enfermant les valeurs entre accolades { }. le nombre d'lments que nous dclarons pour le tableau entre crochets [].
nom[indice]
int T [] = { 16, 2, 77, 40, 12071 };
2
08/11/2015
// Exemple tableau :
{
for ( n=0 ; n<5 ; n++ )
int T[5]; // dclaration dun nouveau tableau. {
T[2] = 75; // accder un lment du tableau. result += T[n];
}
cout << result;
return 0;
}
3
08/11/2015
0 1 2 3 4
0
1 Le moyen pour rfrencer le deuxime lment verticalement et le
2 quatrime lment est :
T [1][3];
Exemple :
Exemple 2
crire un programme qui lit 10 nombres entiers dans un tableau avant
den rechercher le plus grand et le plus petit : Soit le tableau t dclar ainsi :
float t[3] [4] ;
4
08/11/2015
Les fonctions
Type est le type des donnes retournes par la fonction de donnes.
Utilisation des fonctions pour une programmation structure en C++. Nom est l'identifiant par lequel il sera possible d'appeler la fonction.
Une fonction est un groupe d'instructions qui est excute quand il est paramtres: Chaque paramtre est constitu d'un spcificateur de type de
appel un certain point du programme. donnes, suivi par un identifiant, comme toute dclaration de variables
rgulire (par exemple: int x). Il agit au sein de la fonction comme une
variable locale.
type nom de la fonction (parameter1, parameter2, ...)
{
instructions Instructions, est le corps de la fonction. Il s'agit d'un bloc d'instructions
} entre accolades {}.
Exemple :
#include <iostream> La fonction principale commence par dclarer la variable z de type int. Il
using namespace std; fait ensuite un appel une fonction appele addition.
5
08/11/2015
La fonction addition dclare une autre variable locale (int r), et au moyen #include <iostream>
de l'expression r = a + b, il attribue r le rsultat de a plus b. using namespace std;
int addition (int a, int b)
{
int r;
r=a+b; Variables locales
return (r);
}
int main ()
L'appel une fonction (addition (5,3)) est remplac par la valeur qu'elle {
retourne (8). int z;
z = addition (5,3);
cout << "The result is " << z;
cout << "The result is " << z; return 0;
}
Exemple :
Dans la fonction principale => plusieurs appels la fonction soustraction.
#include <iostream>
using namespace std;
6
08/11/2015
Dans la dernire expression, les paramtres de soustraction sont des Pour dclarer une fonction
variables au lieu de constantes. Les valeurs transmises la fonction nom du type (parameter1, parameter2, ...) {instructions}
soustraction sont les valeurs de x et y, qui sont de 5 et 3 respectivement, ce
qui donne comme rsultat 2.
La dclaration commence par un type, qui est le type de la fonction elle-
mme (par exemple, le type de la donne qui sera renvoy par la fonction).
z = 4 + soustraction (x,y);
Si on veut pas retourner de valeur?
Exemple :
Void peut galement tre utilis dans la liste des paramtres de la fonction
permettant de spcifier que nous voulons que la fonction prenne pas de
#include <iostream> paramtres rels.
using namespace std;
Exemple, la fonction Message aurait t dclar comme:
void message ()
{
void message (void)
cout << Je suis une fonction!";
{
}
cout << Je suis une fonction!";
int main () }
{
message ();
return 0; En C + +, une liste de paramtres peut tre simplement laiss vide si nous
} voulons une fonction sans paramtres;
7
08/11/2015
Exemple :
dclarer la fonction avant son utilisation dans main, de
Quelle modification faut-il apporter au programme suivant pour quil prfrence au dbut :
devienne correct :
#include <iostream>
#include <iostream> using namespace std ;
using namespace std ; main()
main() { int fct (int) ; // dclaration de fct ; on pourrait crire int fct (int x)
{ int n, p=5 ;
int n, p=5 ;
n = fct (p) ;
n = fct (p) ;
cout << "p = " << p << " n = " << n ;
cout << "p = " << p << " n = " << n ;
} }
int fct (int r) int fct (int r)
{ return 2*r ; { return 2*r ;
} }
Exemple 2 :
placer la dfinition de la fonction avant celle de la fonction main : Quels rsultats fournira ce programme :
#include <iostream>
using namespace std ;
int n=10, q=2 ;
#include <iostream> main()
{
using namespace std ; int fct (int) ;
void f (void) ;
int n=0, p=5 ;
n = fct(p) ;
int fct (int r) cout << "A : dans main, n = " << n << " p = " << p
<< " q = " << q << "\n" ;
{ return 2*r ; }
f() ;
cout << "p = " << p << " n = " << n ; void f (void)
{
} int p = q * n ;
cout << "C : dans f, n = " << n << " p = " << p
<< " q = " << q << "\n" ;
}
8
08/11/2015
Cela signifie que lorsque vous appelez une fonction avec des
paramtres, ce que nous avons passs la fonction taient des
copies de leurs valeurs, mais jamais les variables elles-mmes.
Par exemple, supposons que nous avons appel notre premier ajout De cette faon, lorsque la fonction est appele outre, la valeur de ses
de fonction en utilisant le code suivant: variables locales a et b devenir 5 et 3 respectivement, mais toute
modification de A ou B au sein de la fonction ajout n'aura aucun
int x=5, y=3, z; effet sur les valeurs de x et y extrieures , parce que les variables x et
y ne sont pas eux-mmes passs la fonction, mais seulement des
z = addition ( x , y );
copies de leurs valeurs au moment de la fonction a t appele.
Mais il pourrait y avoir certains cas o vous avez besoin de manipuler Dcouper son projet
de l'intrieur en fonction de la valeur d'une variable externe. Pour ce
faire, nous pouvons utiliser des arguments passs par rfrence, comme Lutilisation dun seul fichier pour un programme peut rendre la
dans la fonction double de l'exemple suivant: lisibilit du programme mdiocre.
#include <iostream>
using namespace std; Mme si l'on dcoupe bien son projet en fonctions, ce dernier est
void duplicate (int& a, int&b, int& c) difficile relire si tout est contenu dans le mme fichier.
{
a*=2;
b*=2;
La notion de porte
c*=2;
} La porte d'une variable ou d'une fonction est la partie du
int main ( ) programme o cette dernire est utilisable.
{
int x=1, y=3, z=7;
duplicate (x, y, z); -Porte au niveau d'un bloc;
cout << "x=" << x << ", y=" << y << ", z=" << z;
return 0; -Porte au niveau d'un fichier.
}
9
08/11/2015
Dans le cas de lutilisation de plusieurs variables, leurs portes int nombre = 10;
dpend de comment elles sont utilises?. Si elles sont utilises dans int main(void) {
un mme bloc, le compilateur retournera une erreur. int nombre = 20;
Cout<<nombre;
int main(void) return 0;
{ int nombre = 10; }
int nombre = 20;
return 0;
}
Si elles ont des portes diffrentes, alors celle ayant la porte la plus
faible sera privilgie, on dit qu'elle masque celle(s) de porte plus
leve. Dans l'exemple qui suit, c'est la variable du bloc de la
fonction main qui sera affiche.
10
08/11/2015
/* Fichier autre.c */
int nombre = 10; /* une dfinition */
extern int valeur; /* une dclaration */
Fichier fonction.c */
/* Fichier main.c */
#include <stdio.h>
static int nombre = 20;
int main(void) {
printf("%d\n", nombre);
return 0;
}
11