Les tableaux - PowerPoint PPT Presentation

About This Presentation
Title:

Les tableaux

Description:

Le type simple une variable n'a qu'une valeur. Le type structur une variable a ... Quand on doit sortir brusquement d'une boucle imbriqu e. ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 23
Provided by: bogdanshi
Category:

less

Transcript and Presenter's Notes

Title: Les tableaux


1
Les tableaux
  • Comment traiter les foules?

2
Les types structurés
  • Le type simple une variable n'a qu'une valeur
  • Le type structuré une variable a plusieurs
    valeurs
  • tableau tous les valeurs sont du même type
  • structure les valeurs sont de types différents

3
Tableau
  • Définition structure (objet) qui a plusieurs
    éléments du même type. Chaque élément est accédé
    par le nom du tableau et une valeur d'indice qui
    détermine sa place dans le tableau.

a
a0
a5
  • Problèmes
  • Pour quoi ? Quel est le besoin ?
  • Comment ?

4
Les besoin de tableaux
  • Sommer les valeur de 4 variables entières

début
a
s0 i0
sai i1
sai i1
...
afficher s
fin
5
L'algorithme générique
début
Initialisation i0
non
iltN
oui
Traitement de ai
i1
fin
6
Les tableaux unidimensionnels en C
  • Déclaration syntaxe
  • Déclaration simple
  • Exemple
  • Déclaration avec initialisation seulement par
    constantes
  • Exemple

Type de base.
type nom taille
int a4, b100 float z30
type nom val1,val2,val3,...
int a 3,56,12,24 float b2
1.5,2.3 int c5 1,2,3
Dans ce cas le nombre des constantes doit être ?
au nombre d'éléments déclaré.
7
L'arithmétique de pointeurs
  • Le nom du tableau c'est le nom d'un pointeur
    constant qui désigne le premier élément

int a
Mémoire
  • C'est-à-dire que
  • a ? a0 ou a ? a0
  • Autres opérateurs sur pointeurs
  • addition de pointeur et entier pi est égale à
    une adresse qui est la valeur de p
    isizeof(type de p)
  • soustraction de deux pointeurs du même type au
    nombre d'objets de ce type qui peuvent se trouver
    entre le deux adresses.

a
11
1
102
int a 11,1,102,3 int p a3 printf("d
d d d", a, a1,(a1),(p-1)) printf(" ("d
d d d ",a2,p,a3,p-a)
13
p
102 13 13 3
11 1 1 102
8
L'algorithme générique en C
for (i0 iltN i) //Traitement de ai
i0 while (iltN) //Traitement de ai i
  • La somme des éléments d'un tableau

include ltstdio.hgt void main (void) int a
11,3,6,34 int i,s 0 for (i0 ilt4i)
sai // ou s(ai) printf ("d\n", s)
9
Un pointeur marche sur le tableau
include ltstdio.hgt void main (void) int a
11,3,6,34 int s 0 int p for (pa
p-alt4p) sp printf ("d\n", s)
Mémoire
11
a
3
6
34
?
0
s
14
20
11
54
?
p
Cet instruction peut être abrégée for (pa
p-alt4 ) sp
10
Paramètres de type tableau
  • Le paramètre formel est
  • soit le nom d'un tableau sans nombre d'éléments
  • soit le nom d'un pointeur
  • Le paramètre effectif est le nom du tableau
    actuel
  • Note C'est indispensable de fournir comme un
    paramètre et le nombre d'éléments

type nom_de_fonction(type nom,...)
type nom_de_fonction(type nom,...)
nom_de_fonction(nom_du_tableau,...)
type nom_de_fonction(type nom,int nombre)
11
Exemples
  • Fonction qui trouve la somme des éléments d'un
    tableau d'entiers

include ltstdio.hgt int intsomme(int a, int
n) void main (void) int a 11,3,6,34
printf ("d\n", intsomme(a,4)) int
intsomme(int a, int n) int i,s 0 for
(i0 iltni) sai return s
L'appel de la fonction
Résultat la somme des éléments
2 ème paramètre le nombre d'éléments qui
doivent être sommés
1 er paramètre le tableau (l'adresse de son
premier élément
int intsomme(int a, int n)
L'instruction qui rend le résultat
int intsomme(int const a, int n)
12
Exemples
Résultat le nombre d'élements lus
  • Fonction qui lit les éléments d'un tableau et une
    autre qui les affiche.

int lir_tab( int a, const int maxnom) int
n,i n lit_entier_verifie(1,maxnom) if (n
lt0) return 0 printf("Tapez d nombres
entiers\n",n) for (i0 iltn i)
scanf("d",ai)//scanf("d",ai) return
n void aff_tab( const int a, const int n)
int i printf("Les d éléments du
tableau\n",n) for (i0 iltn i)
printf("d, ",ai) printf ("\n")
2 ème paramètre le nombre maximal d'éléments
(la talle du tableau)
2 ème paramètre le nombre maximal d'éléments
(la talle du tableau)
1 er paramètre le tableau (l'adresse de son
premier élément
1 er paramètre le tableau (l'adresse de son
premier élément
13
Exemples
  • Trouver le nombre maximal d'un tableau d'entiers

int maxel( int a, int n) int i,maxa0
for (i1 iltni) if (aigtmax) maxai
return max
int maxel( int a, int n) int i,max for
(i1,maxa0 iltni) if ((ai)gtmax)
maxai return max
14
Les tableaux bidimensionnels
  • Définition
  • un tableau (uni-dimensionnel) de dimension L dont
    chaque composante est un tableau
    (uni-dimensionnel) de dimension C

m13
15
Les tableaux bidimensionnels
  • Déclaration
  • Disposition dans la mémoire
  • m ? m0 ? (m00)
  • m00 ? m0 ? m

type nom nombre_lignes nombre_colonnes
int m34
16
Les tableaux bidimensionnels
  • Initialisation

int t144 1, 2, 3 , 4, 5, 6 , 7, 8,
9 int t244 1, 2, 3, 4, 5, 6, 7, 8, 9

t1
t2
17
Les tableaux bidimensionnels
  • Algorithme générique

for (i 0 iltnumlin i) //Traitement de
ligne i for(j0 jltnumcolj) //
Traitement de l'élément i,j
  • Exemple affichage d'une matrice

for (i 0 ilt3 i) for(j0 jlt4j)
printf("3d ",mij) printf("\n")
18
Les tableaux bidimensionnels
  • Déclaration d'un type nouveau typedef
  • Dans la déclaration le rôle du nom de la variable
    est joué par le nom du type qu'on veut définir
  • Exemple

typedef déclaration
typedef float MATRICE510 ... MATRICE mat1,
mat2 MATRICE m
19
Les tableaux bidimensionnels
  • Paramètres de fonctions

define MAXCOL 10 define MAXROW 20 typedef float
MATRICE MAXROWMAXCOL float floatsomme(
float aMAXCOL, int nl, int nc) int i,j
float s 0 for (i0 iltnli) for (j0
jltnc j) saij return s
20
Linstruction goto
  • Syntaxe
  • UtilisationQuand on doit sortir brusquement
    dune boucle imbriquée.

goto label ... labelinstruction
21
Exemple
  • Trouver la somme de premiers L nombres positifs
    dune matrice.

non
iltnl
float floatsommeL(float aMAXCOL, int
nl, int nc) int i,j,cont0 float s 0
for (i0 iltnli) for (j0 jltnc j)
if (aijgt0) saij cont
if (cont L) goto ex ex return s
oui
non
jltnc
oui
aijgt0
oui
non
saij cont
oui
contL
non
j1
i1
return s
22
Tableaux de pointeurs
  • On peut créer des tableaux bidimensionnelles qui
    ne sont pas carrés

Constantes!!
include ltstdio.hgt int TAILLE1,2,3 int
ligne12 int ligne23,4 int
ligne31,2,3 void affichemat( int a,
const int n) void main (void) int
mattriangligne1,ligne2,ligne3
affichemat(mattriang,3) void affichemat( int
a, const int n) int i,j printf("Les
éléments du tableau\n") for (i0 iltn i)
for (j0 jltTAILLEi j) printf("3d,
",aij) printf ("\n")
Write a Comment
User Comments (0)
About PowerShow.com