Académique Documents
Professionnel Documents
Culture Documents
ENISO
Fascicule
TP Langage C
Préparé par :
Mme Saoussen Ben Jabra
AU 2010/2011
TRAVAUX PRATIQUES N°1
Introduction au langage C , Types de base, Opérateurs,
Expressions du langage C et Les entrées-sorties
1-Introduction
Turbo C n’est pas qu’un langage de programmation, mais aussi un système complet de
développement de programmes. Il offre tous les outils permettant d’écrire, d’éditer, de compiler, de lier
et de déboguer vos programmes.
L’E.D.I possède 3 éléments principaux :
• La barre de menu (en haut de l’écran)
• La zone de travail (au milieu de l’écran).
• La ligne d’état (en bas de l’écran)
La barre des menus est votre moyen principal d’accès aux commandes des différents menus.
1-Chaque étudiant doit créer un répertoire de travail (Nom + Prénom + TPX).
2-Se familiariser avec l’environnement C/C++ :
• Barre de menu (File, Edit, Search, View, Project,...).
• Barre d’outils.
• Barre d’état.
2- Histoire de C + Avantages
¾ Le langage C a été créé dans les années 1970 par Dennis Rithcie.
¾ Un programme en langage C est une suite d'instructions.
¾ Un programme en C est un ensemble de fonctions, parmi ces fonctions, il existe une fonction de
démarrage dont le nom est "main".
Le grand succès du langage C s'explique par les avantages suivants; C est un langage:
Universel
C n'est pas orienté vers un domaine d'applications spéciales, comme par exemple FORTRAN
(applications scientifiques et techniques) ou COBOL (applications commerciales ou traitant de grandes
quantités de données).
Compact
C est basé sur un noyau de fonctions et d'opérateurs limités, qui permet la formulation
d'expressions simples, mais efficaces.
Moderne
C est un langage structuré, déclaratif et récursif; il offre des structures de contrôle et de
déclaration comparables à celles des autres grands langages de ce temps (FORTRAN, ALGOL68,
PASCAL).
Rapide
Comme C permet d'utiliser des expressions et des opérateurs qui sont très proches du langage
machine, il est possible de développer des programmes efficients et rapides.
Extensible
C ne se compose pas seulement de la fonction standard; le langage est animé par des
bibliothèques de fonctions privées ou livrées par de nombreuses maisons de développement.
3- Structure d’un programme en C
main()
{ < Déclarations >
< Instructions >
return 0 ;
}
5- Fichiers « include »
Se trouvent dans un répertoire nommé "include",
Ils possèdent l'extension h,
Ils renferment les déclarations des fonctions du système.
Exemple:
# include<stdio.h> (Fichiers d’entrée, sortie).
#include<math.h> (Fichiers Mathématiques).
#include <graph.h> (Fonctions Graphiques).
Le programme précédant devient :
#include<stdio.h>
main()
{
printf("Bonjour");
return 0 ;
}
7-Les commentaires
Un commentaire commence toujours par les deux symboles '/*' et se termine par les symboles '*/'. Il est
interdit d'utiliser des commentaires imbriqués.
Exemples
/* Ceci est un commentaire correct */
/* Ceci est /* évidemment */ défendu */
11-Les opérateurs
11-1- Les opérateurs connus
Avant de nous lancer dans les 'spécialités' du langage C, retrouvons d'abord les opérateurs
correspondant à ceux que nous connaissons déjà en langage descriptif et en Pascal.
Opérations logiques
Les résultats des opérations de comparaison et des opérateurs logiques sont du type int:
la valeur 1 correspond à la valeur booléenne vrai
la valeur 0 correspond à la valeur booléenne faux
Les opérateurs logiques considèrent toute valeur différente de zéro comme vrai et zéro comme faux:
32 && 2.3 → 1
!65.34 → 0
0||!(32 > 12) → 0
11-2- Les opérateurs particuliers de C
11-2-1- Les opérateurs d'affectation
En pratique, nous retrouvons souvent des affectations comme: i=i+2
En C, nous utiliserons plutôt la formulation plus compacte: i += 2
L'opérateur += est un opérateur d'affectation.
Pour la plupart des expressions de la forme:
expr1 = (expr1) op (expr2)
il existe une formulation équivalente qui utilise un opérateur d'affectation:
expr1 op= expr2
Les parenthèses
Les parenthèses sont seulement nécessaires si nous devons forcer la priorité, mais elles sont
aussi permises si elles ne changent rien à la priorité. En cas de parenthèses imbriquées, l'évaluation se
fait de l'intérieur vers l'extérieur.
Exemple
En supposant à nouveau que A=5, B=10, C=1 l'expression suivante s'évaluera à 134:
X = ((2*A+3)*B+4)*C
Observez la priorité des opérateurs d'affectation :
X *= Y + 1 <=> X = X * (Y + 1)
X *= Y + 1 n'équivaut PAS à X = X * Y + 1
%d ou %i entier relatif
%u entier naturel (unsigned)
%o entier exprimé en octal
%x entier exprimé en hexadécimal
%c caractère
%f rationnel en notation décimale
%e rationnel en notation scientifique
%s chaîne de caractères
%d ou %i entier relatif
%u entier naturel (unsigned)
%o entier exprimé en octal
%b entier exprimé en hexadécimal
%c caractère
%f ou %e rationnel en notation décimale ou exponentielle (scientifique)
%s chaîne de caractères
1. Les signes d'espacement
Lors de l'entrée des données, une suite de signes d'espacement (espaces, tabulateurs, interlignes) est
évaluée comme un seul espace. Dans la chaîne de format, les symboles \t, \n, \r ont le même effet
qu'un simple espace.
Exemple
Pour la suite d'instructions
int JOUR, MOIS, ANNEE;
scanf("%i %i %i", &JOUR, &MOIS, &ANNEE);
les entrées suivantes sont correctes et équivalentes:
12 4 1980
ou
12 004 1980
ou
12
4
1980
2. Formats 'spéciaux'
Si la chaîne de format contient aussi d'autres caractères que des signes d'espacement, alors ces
symboles doivent être introduits exactement dans l'ordre indiqué.
Exemple
La suite d'instructions
int JOUR, MOIS, ANNEE;
scanf("%i/%i/%i", &JOUR, &MOIS, &ANNEE);
accepte les entrées: rejette les entrées:
12/4/1980 12 4 1980
12/04/01980 12 /4 /1980
Exercice 2
Soit un programme C contenant les instructions suivantes :
#include<stdio.h>
void main()
{
int i, j, k ;
………..
………..
}
1- Ecrire un programme C qui permet de :
saisir des valeurs numériques pour i, j, et k.
D’afficher chacune des expressions suivantes en utilisant des messages, des codes formats et les
caractères de contrôles :
Ben Jabra Saoussen Page : 10
♦ i, j et k sont des entiers,
♦ i est un entier décimal, j un entier octal et k un entier hexadécimal,
♦ i et j sont des entiers hexadécimaux et k un entier octal,
♦ (i+j), (i-k),
♦ sqrt(i + j) , abs(i-k)
2- Saisir ce programme source avec l’éditeur de texte.
3- Sauvegarder ce programme source sous le nom TP1_EX2 dans votre répertoire.
4- Compiler le programme TP1_EX2 pour effectuer la correction
5- Exécuter ce programme.
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… …………………………………………………….
Exercice 3
Les opérateurs d’incrémentation sont très utiles et très puissants ; ils peuvent être combinés avec
l’instruction d’affectation. Je vous propose de les découvrir au travers du programme suivant :
#include<stdio.h>
void main()
{
int X,Y,RES;
X=Y=6;
RES = X+Y;
printf("X = %i \t Y = %i \t RES = %i \n", X , Y, RES);
RES = X++ + Y;
printf("X = %i \t Y = %i \t RES = %i \n", X , Y, RES);
RES = ++X + Y;
printf("X = %i \t Y = %i \t RES = %i \n", X , Y, RES);
RES = X-- + Y;
printf("X = %i \t Y = %i \t RES = %i \n", X , Y, RES);
RES = --X + Y;
printf("X = %i \t Y = %i \t RES = %i \n", X , Y, RES);
RES = X+Y;
printf("X = %i \t Y = %i \t RES = %i \n", X , Y, RES);
}
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
Exercice 4
1- Ecrire un programme C qui permute et affiche les valeurs de trois variables A, B et C de type entier
qui sont entrées au clavier.
2-Saisir ce programme source avec l’éditeur de texte.
3- Sauvegarder ce programme source sous le nom TP1_EX4 dans votre répertoire.
4- compiler et exécuter ce programme.
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
Exercice 5
1-Essayez le programme suivant et modifiez-le de façon à ce qu'il affiche:
AB,
l'hypoténuse d'un triangle rectangle de côtés A et B,
la tangente de A en n'utilisant que les fonctions sin et cos,
la valeur arrondie (en moins) de A/B,
la valeur arrondie (en moins) à trois positions derrière la virgule de A/B.
2-Saisir ce programme source avec l’éditeur de texte.
3- Sauvegarder ce programme source sous le nom TP1_EX5 dans votre répertoire.
4- compiler et exécuter ce programme.
2- if sans else
if (<expression>)
{
< Bloc d’instructions1> ;
}
3- Test Imbriqués
if (<expr 1>)
<Bloc 1> ;
else
if (<expr 2>)
<Bloc 2> ;
else
.
.
else
if (<expr N>)
<Bloc N> ;
else
< Bloc N+1> ;
Exercice 2
On considère 3 variables entières positives x, y et z .
1-Ecrire un programme permettant de :
a- de déclarer l’entier positif x.
b- de saisir un entier x.
c- d’insérer le commentaire.
d- si x est pair afficher un message signalant que x est pair sous la forme suivante " x est pair"
2- Sauvegarder ce programme source sous le nom TP2_EX2 dans votre répertoire.
3-Compiler le programme TP2_EX2 pour effectuer la correction.
4-Exécuter ce programme et introduire des valeurs.
5- Modifier ce programme pour qu’il puisse afficher, dans le cas ou x n’est pas pair, un massage
signalant que x est impair.
Ben Jabra Saoussen Page : 14
6- Enregistrer les modifications, compiler et exécuter le programme.
7- Ajouter au programme les déclarations des entiers positif x et y.
8- Saisir les valeur de y et z.
9- Insérer, après la dernière instruction, le commentaire suivant : " Partie 2 : Parité de deux entiers".
10- Ajouter l’instruction permettant de dire si x et y sont de même parité.
11- Enregistrer les modifications, compiler et exécuter le programme.
12- Insérer, après la dernière instruction, le commentaire suivant : " Partie 3 : une des trois variables est
paire".
13- Ecrire l’expression ainsi que l’instruction nécessaire permettant de dire l’une au moins des trois
variables est paire.
14- Enregistrer les modifications, compiler et exécuter le programme.
15- Insérer, après la dernière instruction, le commentaire suivant : " Partie 4 : Parité entre trois
variables".
16- Ecrire l’expression ainsi que l’instruction nécessaire permettant de dire que deux d’entre elles au
moins ont la même parité.
17- Enregistrer les modifications, compiler et exécuter le programme.
18- Insérer, après la dernière instruction, le commentaire suivant : " Partie 5 : deux variables,
exactement, parmi les trois sont de même parité".
19- Ecrire l’expression ainsi que l’instruction nécessaire permettant de dire qu’exactement deux sur les
trois sont paires.
20- Enregistrer les modifications, compiler et exécuter le programme.
21- Le programme est ainsi formé de 5 parties, on désire activer à chaque exécution une seule de ces
parties, suivant le choix de l’utilisateur. Ajouter les modifications nécessaires pour avoir ce résultat.
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. ……………………………………………………
…………………………………………………… …………………………………………………….
……………………………………………………. ……………………………………………………
…………………………………………………… …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
…………………………………………………… ……………………………………………………
Ben Jabra Saoussen Page : 15
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
Exercice 3
Ecrire un programme C qui permet de lire un entier N (On suppose qu’il est de 4 chiffres) et
déterminer :
¾ le plus grand chiffre et
¾ la position du plus grand chiffre.
Remarque :
¾ on suppose que les chiffres de N sont différents
¾ Les positions des chiffres sont numérotées de la gauche vers la droite en commençant par 1.
Exemple :
Donner l’entier N : 1925
Résultat
Le plus grand chiffre est 9 et sa position = 2
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… …………………………………………………….
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
……………………………………………………. …………………………………………………….
…………………………………………………… ……………………………………………………
• Si le bloc d'instructions ne doit pas être exécuté si la condition est fausse, alors utilisez while ou
for.
• Si le bloc d'instructions doit être exécuté au moins une fois, alors utilisez do - while.
• Si le nombre d'exécutions du bloc d'instructions dépend d'une ou de plusieurs variables qui sont
modifiées à la fin de chaque répétition, alors utilisez for.
• Le choix entre for et while n'est souvent qu'une question de préférence ou d'habitudes.
U1 = 1
U2 = 2
Un = Un-1 + Un-2 (n≥3)
Vn = Un / Un-1 (n≥2)
La suite (Vn) tend vers une limite, appelée nombre d’or.
On suppose que le kième terme de la suite ( V ) donne une valeur approchée du nombre d’or avec une
précision E, dés que |Vk – Vk-1| < E
Ecrire un programme C qui permet de calculer et d’afficher Vk à 10-4 prés et son rang.
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
Exercice 6
Un nombre est dit totalement impair si tous ses chiffres impairs occupent des positions impaires.
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
Exercice 7
Ecrire un programme en C qui affiche les nombres premiers inférieurs à 100.Un nombre est
premier s’il est divisible par 1 et par lui même uniquement.
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
U0 = 2
U1 = 3
Un = Un-1 + 2*Un-2 (n≥2)
On suppose que cette suite est croissante.
On vous demande d’écrire les procédures/fonctions suivantes :
1- Une fonction SAISIE permettant de saisir un entier X (X > 2).
2- Une fonction VERIFICATION permettant de vérifier et d’afficher si X est un terme de la suite U
ou non.
N.B : Si X est un terme de la suite U afficher aussi son rang.
3- Ecrire un programme principal pour tester les procédures/fonctions ci-dessus.
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
T
3-Accées aux composantes d’un tableau
Considérons un tableau T de dimension N
¾ L’accès au premier élément du tableau se fait par T[0]
¾ L’accès au dernier élément du tableau se fait par T[N-1]
Exemple :
int T[5] = { 100,200,300,400,500} ;
100 200 300 400 500
Nom :
T
Indice : 0 1 2 3 4
Contenu T[0] T[1] T[2] T[3] T[4]
4-Chargement d’un tableau
#include<stdio.h>
void main()
{
int T[5] , i ;
for (i=0 ; i<5 ; i++)
{
printf(" T[%d] : ",i) ;
scanf("%d" , &T[i]) ;
}
}
5- Affichage du contenu d’un tableau
#include<stdio.h>
void main()
{
int T[5], i ;
for (i=0 ; i<5 ; i++)
printf("%d\t", T[i]) ;
}
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
Résumé
1-Déclaration et mémorisation
1-1-Déclaration
<type simple> <Nom tableau> [<dimlig>][<dimcol>];
Exemples :
1-int A[10] [10] ;
2-float B[2][20];
3-char C[10][20];
1-2- Mémorisation
Comme pour les tableaux à une dimension, le nom d’une matrice est le représentant de l’adresse du
premier élément du tableau (l’adresse de la première ligne du tableau).
Les composantes d’un tableau à deux dimensions sont stockées ligne par lignes dans la mémoire.
Exemple :
int A[3][2] = { {1,2},{10,20},{100,200}};
A
Exemples :
int A[3][4] = { {1,2,3,4},{10,20,30,40},{100,200,300,400}};
Réservation : 3*4*2 = 24 octets
2-Accées aux composantes d’une matrice
Considérons un tableau A de L lignes et C colonnes.
¾ Les indices du tableau varient de 0 à L -1, respectivement de 0 à C-1.
¾ La composante de la Nième ligne et Mième colonne est notée : A[N-1][M-1].
<Nom du tableau> [<ligne>] [<colonne>]
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
Exercice 3
Soit A une matrice de M lignes et N colonnes contenant des valeurs numériques quelconques. On
appelle COL de la matrice l’élément qui est le plus petit de sa ligne et le plus grand de sa colonne.
Ecrire un algorithme permettant de
¾ saisir les dimensions de la matrice A,
¾ saisir les éléments de la matrice A de dimension (M, N) et
¾ chercher et afficher tous les COLS de la matrice A.
Exemple :
Donner M : 4
Ben Jabra Saoussen Page : 37
Donner N : 3
A:
4 8 5
9 8 8
3 4 5
8 1 5
A(2,2) = 8 est un point COL .
A(2,3) = 8 est un point COL .
Notes Personnelles
……………………………………………………. ……………………………………………………
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….
……………………………………………………. …………………………………………………….