Gnralits 1/
Que dsigne le terme Informatique ?
Science qui tudie les ordinateurs (partie matriel = hardware ) Traitement automatique de linformation (partie logicielle = software)
Suite 2/
2. Mmoire centrale
0
N bits
case mmoire
Donnes et
. . .
2M - 1
programmes
La mmoire centrale RAM permet de stocker les informations traiter. Elle est compose dun ensemble de bits (1 bit = 0 ou 1) dit case mmoire. Chaque case est identifie par un numro dit adresse
3.
Units priphriques
1. 2. dentre & sortie qui permettent lutilisateur de communiquer avec lordinateur (saisie, affichage, ) mmoires auxiliaires qui permettent de stocker les informations en permanence (disque dur, CD, )
Codage binaire
Les informations traites par une machine sont traduites en informations binaires (suite de bits de 0 et 1). On parle du codage binaire. Pour une base de numrotation b, un nombre n peut scrire sous la forme: n = aibi / 0ai<b i0,m
Code binaire pur: reprsente les entiers positifs en base 2. Avec n bits, on peut coder de 0 2n -1;
exemple: n = 23, b=2 sur 8 bits n = (00010111)2
Code complment 2: reprsente les entiers ngatifs; dans ce cas, on rajoute la valeur 1 au complment 1 du nombre coder;
exemple : n = -15, b=2 sur 8 bits n = (11110001)2 15 = 2x7 + 1= 2 x (22 + 21 + 20) + 20 = 1x23 + 1x22 + 1x21 + 1x20 = (00001111)2 (11110000)2 complment 1 (00000001)2 on rajoute la valeur 1 (11110001)2 donc (-15) = (11110001)2
Partie I Algorithmique
Introduction
Que signifie le terme Algorithme?
ensemble dtapes qui permettent de rsoudre un problme donn; une suite de rgles appliquer dans un ordre dtermin afin darriver au rsultat attendu; un algorithme est indpendant des donnes, de la machine et du langage de programmation Exemple: problme pos = calcul de la moyenne de 2 entiers
Analyse: les donnes fournies = 2 entiers Rsultat dsir = un nombre qui reprsente la moyenne des donnes il faut ensuite dcrire les tapes qui permettent de passer des donnes au rsultat (algorithme)
Saisir deux entiers Calculer leur somme Diviser la somme par 2 Problme
analyse
I . algorithme
traduction
II. programmation
Rsultat
Mthodologie gnrale
Comprendre la nature du problme pos et prciser les donnes (entres) Prciser le(s) rsultat(s) dsir(s) (sorties) Les entres et les sorties sont des variables Dterminer le processus de transformation des donnes en rsultats
Nom_algorithme
Entres
2. Pseudo-code
Reprsentation textuelle de la solution propose Squelette dun algorithme:
Dclaration de variables (entres) Dbut Bloc dinstructions Fin rsultat1 tests
rsultat2
Notion de variables
a. Dfinition = information stocker et utiliser au cours dun programme dsigne par son nom (identificateur attribu par un utilisateur) et une tiquette (rfrence attribue par lordinateur) Dclaration
Attribuer un nom une variable au sein dun programme en prcisant son type Syntaxe = Variables nom_var en Type
b.
c.
Initialisation
Affecter une valeur aux variables laide de loprateur Syntaxe = nom_var valeur
d.
Types de variables
Type numrique (entier, rel, ) Type alphanumrique (caractres et chanes de caractres) Type boolen (vrai ou faux)
Familles dinstructions 1/
-- Ensemble doprations manipuler sur les diffrentes variables a. Affectation
Attribuer une valeur pour initialisation ou modification par loprateur
b.
c.
Structure de choix
Dans le cas o il existe plusieurs choix correspondants un certain rsultat, on utilise une structure de choix indiquant quel ensemble doit tre excut i. forme simple: si (condition est vraie) alors (excuter bloc dinstructions 1) sinon (excuter bloc dinstructions 2) finsi ii. forme complexe: selon que (condition 1) faire (bloc dinstructions 1) ou que (excuter bloc dinstructions 2) ou que (excuter bloc dinstructions n) autrement (excuter bloc dinstructions n+1) fselon (fin du selon)
Suite 2/
d.
i.
Structures de rptition
Boucle pour : utiliser lorsque le nombre doprations ou de rptitions effectuer est connu davance;
Syntaxe : pour nom_var val_initiale val_finale faire (bloc instructions) nom_var Suivant Exemple : calculer la moyenne dune classe
Donnes = n nombre dtudiants, nt note de chaque tudiant Rsultat = moyenne de la classe = somme divise par n Algo = lire n S0 Pour i 1 n Lire nt S S + nt i Suivant Ecrire la moyenne des notes est :, S/n
ii.
Boucle tantque : aucune condition sur le nombre ditrations. Le bloc est excut tant que la
condition est vraie. Sinon on sarrte.
Syntaxe : tantque (condition) faire (bloc instructions) fintantque
iii.
iv.
Boucle rpter jusqu : ici on rpte lexcution du bloc jusqu ce que la valeur de la condition
soit vraie. On sarrte dans ce cas.
Syntaxe : rpter (bloc instructions) jusqu (condition)
Tableau logique
and ^
0 1 0 0 0 1 0 1
or v
0 1
xor
0 0 1 1 1 1
0 1 0 0 1 1 1 0
b 0 1
b 1 0
bvc
A 0 0
a 0 1
b 0 0
a^b
b 1 1
b^a
B 0 1
0 1
1 0
0 0
0 1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
Exercices 1/
1.
2. 3.
Donner un algorithme qui calcule la somme de deux entiers Donner un algorithme qui permet dchanger les valeurs de 3 variables Donner le type et la valeur des expressions suivantes:
2 + 3*2 -0.5 + 3*5 Vrai et (faux ou vrai) (2 <3) ^(4>5)
4.
5. 6.
crire un algorithme qui calcule partir dun rel x et une valeur positive a, la puissance xa crire un algorithme qui retourne la partie entire infrieure de la racine carre dun entier donn m
Suite 2/
7. 8. crire un programme qui demande un nombre lutilisateur, ensuite il lui rpond si cest un chiffre pair ou impair crire un programme qui lit trois chanes de caractres puis les retourne tries dans lordre alphabtique inverse
9.
10. 11. 12. 13.
crire un algorithme qui donne le signe (+/-) du produit de 2 nombres sans le calculer
crire un programme qui dcrmente la valeur dun produit sachant quil na pas atteint sa valeur minimale crire un programme qui naffiche que les valeurs paires dun d crire un programme qui demande lutilisateur de saisir une chane de caractres jusqu la lecture du mot bye . Dans ce cas, on sarrte Reformuler ce pseudo-code:
Variables A, N en Rel Dbut A0 N0 ecrire entrez votre variable N: Tantque N >= 0 AN Lire N si N > A ecrire le max est : , N sinon ecrire le max est : , A finsi fin
Suite 3/
14. Reformuler ce pseudo-code:
Variables x, cptp, cptn en Numrique Variables rep en caractres Dbut cptp 0 cptn 0 Lire rep rpter ecrire voulez-vous continuer?: Lire x si x >= 0 alors cptp cptp +1 sinon cptn cptn + 1 finsi jusqu rep = non Fin
15.
crire un algorithme qui daprs une valeur initiale affiche les cents chiffres suivants dun pas de 2. par exemple, si la valeur est 25 alors les chiffres suivantes seront 27, 29, jusqu 225
16.
17. 18.
Tableaux
Un autre type de variable que nous traitons dans cette partie concerne les variables indices. IL sagit de regrouper un ensemble de valeurs portant le mme nom de variable et diffrencies par un numro dit indice. A chaque fois que lon veut insrer, chercher, modifier un lment du tableau, on le fait par le nom du tableau suivi de lindice entre (). Lindice dbute par dfaut 0;
Syntaxe : Tableau nom_tableau(taille) en Type Exemple : soit Note(10) en Numrique un tableau de rels de taille 10 si je cherche la 3me note, il suffit dcrire Note(2) Remplissage et affichage dun tableau numrique
Variables N, i en Numrique Tableau Tab(N) en Numrique Dbut saisie Pour i 0 N-1 Ecrire saisir la donne n=, i Lire Tab(i) i Suivant Ecrire Maintenant, nous allons afficher notre tableau Pour i 0 N-1 Ecrire la valeur de llment : , i Ecrire est : , Tab(i) i Suivant fin
1.
Tableau de caractres
Tableau Tab(7) en caractres Variable i en Entier Dbut Tab(0) b Tab(1) o Tab(2) n Tab(3) j Tab(4) o Tab(5) u Tab(6) r Fin
Exercices 1/
19. crire un algorithme qui saisi la note dune matire X pour 30 tudiants; ensuite la note dune autre matire Y. Puis calcule la moyenne pondre de ce module sachant que le coefficient respectif de X et Y est 4 et 3
20.
crire un algorithme qui affiche les lments dune suite de Fibonacci de taille 15. une suite de Fibonacci est donne par F0 = 0; F1 = F2 = 1; Fn = Fn-1 + Fn-2
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
21.
Tableau dynamique
Jusquici nous avons trait des tableaux statiques o leur taille maximale est connue lavance. Dans certains cas, cette information dpend des donnes insrer et donc inconnue lors de la dclaration du tableau. Ce nest quaprs la saisie par lutilisateur que cette information devient disponible. Ainsi, pour lattribuer au tableau en question, on utilise la fonction Redim Syntaxe: Redim nom_tableau (taille - 1)
Exemple :
variables i, N en Entier Tableau Tab() en Numrique taille non connue Dbut crire donner la taille du tableau lire N Redim Tab(N-1) pour i 0 N-1 Tab(i) 0 i Suivant Fin
Exercices 2/
22. crire un algorithme qui mesure lamplitude de la mare (diffrence entre la pleine et la basse mer), linsre dans un tableau. Ensuite, affiche la frquence des valeurs suprieures et infrieures la mare moyenne durant une certaine priode crire un algorithme qui somme 2 tableaux de mme dimension. Est quon peut le faire pour des tableaux de dimensions diffrentes) crire un algorithme qui multiplie un tableau par son inverse crire un algorithme qui partir de 2 tableaux saisis, calcule leur Schtroumpf S. Le Schtroumpf se calcule en multipliant chaque lment du 1er tableau par chaque lment du 2me et additionne le tout.
1 2 3
Le Schtroumpf sera S = 1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*5 = 54 26. crire un algorithme qui inverse un tableau en gardant la mme variable.
Le tri est une opration darrangement des valeurs dans un ordre donn croissant ou dcroissant.
Il consiste chercher llment le plus petit (le plus grand), le mettre dans la 1re (dernire) position. Ensuite, chercher le second le plus petit(grand) et le mettre en seconde (avant-dernire) position et ainsi de suite jusqu ce que le tableau soit tri. Le nombre de comparaison ncessaire pour ce tri est N(N-1)/2 Le nombre dchange est de lordre de N et sa complexit est de O(N2)
Algorithme :
Tableau Tab(N) en Numrique Variables i, j, min, c en Entier Dbut pour i 0 N-1 min i //on suppose que chaque est un minimum puis on teste sur le reste du tableau pour j 1 N-1 si Tab(j) < tab(min) alors min j finsi j Suivant // fin de la boucle sur j si min <> i alors // on change c Tab(i) Tab(i) Tab(min) Tab(min) c finsi i Suivant // fin de la boucle sur i Fin
A. Tri bulles
Le tri bulles consiste comparer deux lments successifs du tableau. Sils sont dans le bon ordre, on passe aux suivants; sinon, on les permute et on reprend la comparaison ds le dbut.
Algorithme :
Tableau Tab(N) en Numrique Variables i, c en Entier Variables test en Boolen Dbut test vrai tantque test test faux pour i 0 N-1 si Tab(i) > tab(i+1) alors c Tab(i) Tab(i) Tab(i+1) Tab(i+1) c test vrai finsi i Suivant // fin de la boucle sur i fintantque Fin
Recherche
1. Recherche squentielle
Elle consiste parcourir le tableau ds sa premire valeur et tester lment par lment jusqu atteindre celui en question
2.
Recherche dichotomique
Llment trouver est compar au milieu du tableau. Sil est suprieur, la recherche est effectue sur la partie droite du tableau, sinon la partie gauche est traiter. La tableau est suppos tri dans lordre croissant
Exercices
27. crire un algorithme qui trie dans lordre dcroissant un tableau numrique pour les 2 types de tri slectif Mme exercice pour le tri bulles Donner lalgorithme de recherche squentielle et dichotomique pour un tableau numrique et alphanumrique tri dans lordre croissant Mme question que (29) sauf que dans ce cas le tableau est tri dans lordre dcroissant
28. 29.
30.
Partie II Programmation en C
Introduction
A. Historique:
1972 : Dennis M. Ritchie a fond ses premires origines 1978: publication du standard K&R-C (Brian w.Kerrighan) 1982: publication du standard ANSI-C universel : il est utilisable pour tous types dapplication et non spcifique pour un domaine prcis (Fortran applications scientifiques) haut niveau: le langage C est structur, dclaratif et rcursif
B.
Caractristiques du langage C:
saisir un texte programme source l'aide d'un programme appel EDITEUR, le traduire en langage machine (en codes binaires) : c'est la compilation et, si plusieurs modules ont t compils sparment, l'dition de liens (LINK ou BIND), l'excuter.
C.
Phases de programmation en C:
Fichiers en tte (*.h) stdio.h math.h programme source (.c) #include<stdio.h> #include<math.h> #include main() { Corps excuter } dition
Compilation
dition de liens
Notions de base
Premier programme en C:
include fonctions standards
#include<stdio.h> directives #include<math.h> define dfinit une constante #define Pi 3.14 main fonction principale int main(void) { int a, b, s; dclaration de variables (type nom_var) s = 0; printf( veuillez saisir deux entiers); Instructions (affichage, lecture, affectation,) scanf( %d, %d: , &a, &b); bloc dinstructions s = a + b; printf( la somme des deux entiers est %d\n, s); return 0; valeur de retour pour la fonction main }
Dclaration de variables :
Syntaxe : <Type> <liste des identificateurs> (nom attribu aux variables commenant par une lettre et suivi de caractres et de chiffres) Le C distingue entre les minuscules et les majuscules Les mots cls suivants sont des identificateurs rservs par le systme:
auto, break, case, char, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, sizeof, static, typedef, switch, unsigned, void, while, strucy, asm, large, fortran, far, pascal, near
Dclaration de fonctions :
Syntaxe: <type rsultat><nom fonction>(<type arg1>, <type arg2>, , <type argn>) {
<dclarations locales>; // donnes utilises uniquement lintrieur de la fonction <bloc dinstructions>; // liste des instructions qui dfinissent laction excuter
} Fonction main :
Fonction principale pour lexcution du programme Un seul appel main par programme Le type du rsultat du main est un int . Il peut ne pas tre dclar. Linstruction return 0 signifie que le programme sest termin avec succs
Commentaires en C :
/* ceci est un commentaire sur plusieurs lignes */ // ceci est un commentaire sur une seule ligne
Types de base
Un type dfinit les valeurs que peut prendre une variable, la taille mmoire allouer et les oprateurs que lon peut appliquer dessus; Les types entiers:
4 variables du type entier existent en C : les caractres (char), les entiers courts (short int), les entiers standards (int) et les entiers larges (long int); Un caractre sidentifie son code ASCII. Ainsi, une variable de type char peut subir les mmes oprations que les autres entiers; Si on ajoute le prfixe unsigned lune de ces variantes, ceci signifie que nous sommes entrain de manipuler des entiers non signs (positifs)
1.
Type
char short int
Valeur minimale
-128 -32768
Valeur maximale
127 32767
Nombre doctets
1 2
-32768 -2147483648
32767 2147483647
2 4
Type
Prcision
approximation
Nombre doctets
float
double long double
simple
double trs grande
6
15 19
4
8 10
e) Loprateur (const) pour fixer une valeur dune variable, on utilise lattribut const
const int a = 10; // la valeur de a ne change pas au cours du programme
Caractres de contrle
\a \b \t \n \\ bip sonore retour arrire tabulation horizontale retour la ligne antislash
signification
\o \? \
\ \f \v \nombre \xnombre
Oprateurs standards
1. Oprateurs classiques:
a. Affectation <variable> = <nouvelle expression>;
int a = 5, b=2, c; //initialisation et affectation c = a + b; //affectation avec autres valeurs Loprateur % permet dobtenir le reste de la division entire (mod) Loprateur / retourne le quotient entier des deux oprandes Sappliquent des expressions logiques (vrai ou faux) (cf. tableau logique, 1re partie) Exemple: (2>3) && 40 vaut 0 !!1 vaut 1
b.
c.
d.
Oprateurs de comparaison < ==, !=, <, >, <=, >= >
0 si la comparaison est fausse, 1 sinon Exemple: 0 || (32 >12) vaut 1 0 || !(32 >12) vaut 0
e.
a << (>>) b
Les oprandes sont de type entier (char, short int, int, long int); Loprande gauche a est lobjet dcaler; (conversion en binaire) Loprande droite b reprsente le nombre de bits de dcalage Si lentier dcaler est sign alors le bit sign (position binaire dextrme gauche) est prserv lors du dcalage droite Si lentier dcaler est non sign, alors les bits laisss libres sont mis 0; Exemple : int i, j; i= 5; // i en binaire (0000 0101) j = i<<2; /* j aprs dcalage (00010100) = 20 */ j = i>>2; /* j aprs dcalage (00000001) = 1 */ i = - 3; /* i en binaire (11111101) */ j = i <<2; /* j devient (11110100) = -15 */ j = i >>2; /* j devient (11111111) = -1 */
f.
2.
Oprateurs particuliers de C:
a. Oprateur daffectation <+=, -=, /=, %=, <<=, >>=, &=, |=, ^= >;
oprande1 = oprande1 op oprande2 <==> oprande1 op= oprande2 Exemple: a = a /b a /= b; c = c >> 2 c >>= 2 post-incrmentation (dcrmentation) <variable>++(--) La valeur de variable est dabord utilise puis incrmente (dcrmente) pr incrmentation (dcrmentation) (- -)++<variable> La valeur de variable est dabord incrmente (dcrmente) puis utilise Exemple: int a = 3, b = 0; Que vaut a++ et ++b?
b.
c.
d.
e.
f.
3.
b. c. d.
Un spcificateur indique la manire dont les valeurs des expressions <expr1>,,<exprn> seront affiches Un spcificateur par expression, il commence par le symbole % et se termine par 1 ou 2 caractres qui indiquent le format daffichage On peut indiquer la largeur minimale du champ o sera affiche la valeur. La forme est donne par : %[ [-] <n1>] [.<n2>] <spcificateur> avec: - : aligne laffichage sur la gauche n1> : taille minimale du champ daffichage n2 : dans le cas des rels, n2 indique le nombre de chiffres afficher aprs la virgule
%c %d ou %i %u %o %x %X
un seul caractre un entier relatif un entier non sign un entier en octale un entier en hexadcimale(a-f) un entier en hexadcimale(A-F)
%f
%e %E %s
un rel
un rel en exponentiel (e) un rel en exponentiel (E) une chane de caractres
float ou double
`` `` *char
Exemples
1. Donner lordre et la valeur dvaluation des expressions suivantes:
a=5, b= 10, c = -1; X = 2*a + 3*b 4*c; a = b = c; a *= b += 5; !- -a == ++ !b; ((2*a + 3)*b 4)*c; int x = 4,y; float z = 15. 76; char c; A = x*z + y; c = c + 1; y = z/x; (float)y = (float)z/x; printf(%4d, 14297); printf(%4x, 142); printf(%f, 1429.7); printf(%.2f, 14.297); printf(%4f, 142.97);
2.
3.
2.
Structures de contrle
1. Structures de choix:
Utilisable lorsquon a besoin de n'effectuer certaines instructions que dans certains cas. On dispose pour cela du if et du switch . a. Linstruction if
if (expression)
bloc dinstructions1
else
bloc dinstructions2
Si lexpression est vraie, alors le bloc dinstructions 1 est excut sinon cest le second bloc; Remarques :
if (!expr) <==> if (expr == 0) if (expr1) if (expr2) if (expr3) bloc1 else bloc2 else bloc 3 Un else se rapporte au if le plus proche; un if peut aussi se terminer sans else
Exemples :
int a = 0, b=2, n= -1, m = 0; 1. if(n>0)
if(a>b)
m = a;
else m = b;
2.
if(n>0) { }
if(a>b) m = a;
m = b;
else
3. 4. 5.
crire un programme qui permet de rsoudre lquation du second degr Ax2 + Bx + C = 0; crire un programme qui vrifie la validit de lheure saisie(hh:mm:ss); crire un programme qui calcule le chiffre daffaires dune entreprise (recettes dpenses). Si ce chiffre dpasse les 100000 dhs, lentreprise est en bonne tat sinon elle souffre dune crise.
b.
Linstruction switch
switch (expression) {
case <choix1> : bloc dinstructions1 case <choix2> : bloc dinstructions2 case <choixn> : bloc dinstructionsn
default : bloc dinstructions } Le test seffectue sur la valeur de lexpression, si elle prend la ime valeur, alors on excute le ime bloc correspondant Exemple : char c; switch ( c) {
case + : puts(opration daddition); break; case - : puts(opration de soustraction); break; case * : puts(opration de multiplication); break; case / : puts(opration de division); break; default : puts(opration non valide); break; }
Remarques : linstruction break permet de sortir immdiatement du bloc excut, sinon le switch risque de tester le cas suivant.
2.
Structures de rptition:
Utilisable lorsquon a besoin de rpter un bloc dinstructions plusieurs fois. a. La boucle for
for (expr1; expr2; expr3)
{ bloc dinstructions } expr1 : valeur dpart; expr2 : condition darrt; expr3 : mise jour de la condition darrt On value lexpression1, puis on ritre le processus suivant: valuer lexpression 2; si elle est valide, on excute le bloc dinstructions puis on value lexpression3; sinon on sarrte
Exemple :
/* affichage du double des valeurs entre 0 et 15 */ int i; for (i=0; i<=15; i++) printf(%d\t, 2*i); 1. crire ce programme en utilisant loprateur squentiel , ; 2. crire un programme qui calcule pour un nombre compris entre 1 et 10 les cinq premiers termes de la suite Un dfinie par : U0 = une valeur saisir; Un = 2Un-1 si n est impair ; Un-1 + 1 si n est pair; 3. crire un programme qui fait le compte rebours dune valeur donne
b.
La boucle while
while (expr)
{ bloc dinstructions } Elle correspond tantque (expr) faire bloc instructions
L'expression est au moins value une fois. Tant qu'elle est vraie, on excute le bloc d'instructions; ds qu'elle est fausse, on sort du bloc et on passe aux autres instructions (si elle est fausse ds le dbut, le bloc n'est jamais excut).
Exemple :
/* affichage de la racine des chiffres entre 0 et 10 */
.. float nombre,racine=0; puts("entrez un nombre rel entre 0 et 10"); scanf("%f",&nombre); while (racine*racine<nombre) racine+=0.01; printf("la racine de %f vaut %4.2f 1%% prs\n", nombre, racine);
1. 2. 3.
crire un programme qui affiche les puissances dun entier n saisi jusqu atteindre une valeur
crire un programme qui fait le compte rebours dune valeur donne Que fait ce programme?:
c.
La boucle do while
do
{ bloc dinstructions } while (expr) Elle correspond faire bloc instructions tantque (expr) Semblable while mais le bloc d'instructions est au moins excut une fois, avant la premire valuation de l'expression.
int i, j; puts( donner le i"); scanf("%d",&i); puts("entrez un j"); scanf("%d",&j); while (i != j) { puts( donner le i"); scanf("%d",&i); puts("entrez un j"); scanf("%d",&j); if (i == j) { printf(votre pivot est (%d,%d), i,j); break;} }
Exemple :
/* affichage du double des valeurs entre 0 et 15 */ int i; do printf(%d\t, 2*i); while (i<0|| i>15)
1. 2.
3.
break
Il provoque la sortie immdiate de la boucle ou switch en cours. Il est limit un seul niveau d'imbrication
b.
continue
Elle permet de passer directement litration suivante dune boucle
c.
return
Permet de sortir de la fonction actuelle (par exemple main), en se branchant son dernier }. Return permet galement de rendre la valeur rsultat dune fonction
d.
Exit
Permet de quitter directement le programme
Tableaux
Dfinition
Un tableau est une variable structure forme dun ensemble de valeurs de mme type dites composantes du tableau ;
2.
Initialisation :
Syntaxe: <type><nom tableau>[dimension] = {c1,c2,,cn} Si la liste des composantes c1,,cn ne contient pas toutes les valeurs, les composantes restantes sont initialises 0; Si la dimension nest pas fixe linitialisation, le systme alloue automatiquement lespace ncessaire. float Note[] = {10, 12, 16, 8}
3.
Mmorisation :
Le nom du tableau est le reprsentant de ladresse du 1er lment du tableau; Les adresses des autres composantes sont calcules relativement cette adresse; par exemple, ladresse du ime lment dun tableau donn X se calcule par : X + (i*taille_de_la_composante) Pour un tableau form de N composantes de taille M octets, lespace total allouer pour ce tableau est (N*M) octets.
4. Accs :
Pour accder au ime lment du tableau, on utilise son indice selon la syntaxe suivante: Syntaxe : nom_tableau[indice-1], avec indice >= 0
5. Exemples :
a. saisie et affichage dun tableau de rels #include<stdio.h> main() { // dclaration int i, N; printf(veuillez saisir une dimension\n); scanf(%d, &N); flaot T[N]; // saisie for(i=0; i<N; i++) { printf(llment %d\n, i); scanf(%f, &T[i]); } // affichage for(i=0; i<N; i++) printf(%f\n,T[i]); return 0; }
2.
3.
Exercices :
crire un programme de tri par slection et par propagation;
Recherche squentielle
Il sagit de comparer successivement les valeurs du tableau avec la valeur donne
2.
Recherche dichotomique
Dcomposer le tableau en 2. Comparer la valeur recherche celle du milieu; si elle est suprieure, la recherche est effectue sur la partie droite du tableau, sinon la partie gauche est traiter. La tableau est suppos tri dans lordre croissant.
3.
Exercices :
crire un programme de recherche squentielle et dichotomique dans le cas croissant et dcroissant
2.
3.
Mmorisation :
Le nom dune matrice est le reprsentant de ladresse du 1er lment(ladresse de la 1re ligne); Les composantes dune matrice sont stockes ligne par ligne en mmoire; Les adresses des autres composantes sont calcules comme suit : M + (i* lignes* taille_de_la_composante) + (j* taille_de_la_composante) Pour une matrice forme de L lignes et C colonnes de taille M octets, lespace total allouer est (L*C*M) octets.
4. Accs :
Pour accder llment (i,j) dune matrice, on utilise ses indices selon la syntaxe suivante: Syntaxe : nom_matrice[i] [j]
5. Exemples :
a. saisie et affichage dune matrice de rels
#include<stdio.h> main() { // dclaration int i, j, L, C; printf(veuillez saisir un nombre de lignes\n); scanf(%d, &L); printf(veuillez saisir un nombre de colonnes); scanf(%d, &C); flaot M[L][C]; // saisie for(i=0; i<L; i++) for (j=0; j;C; j++) { printf(llment [%d,%d]\n, i,j); scanf(%f, &M[i][j]); } // affichage for(i=0; i<L; i++) for (j=0; j;C; j++) printf (%f\t, M[i][j]); return 0;
Pointeurs
Fonctions
Chanes de caractres
Structures