Apprendre l'algorithmique et C
Apprendre l'algorithmique et C
Algorithmique et programmation
Objectifs:
Apprendre les concepts de base de l'algorithmique et de la programmation
Etre capable de mettre en œuvre ces concepts pour analyser des problèmes simples et
écrire les programmes correspondants
Plan:
I.Généralités (matériel d’un ordinateur, systèmes d’exploitation, langages de
programmation, …)
Gestion des flux : Arrivées départs dans les aéroports (les gares, périphérique) ;
Robotique : robot autonome (robot sur Mars, footballeurs) semi-autonome,
télécommandé ;
L'unité de traitement (UT) qui commande tout traitement fait par l'ordinateur.
Une instruction est un ordre compris par l’ordinateur et qui lui fait exécuté une action,
c-à-d une modification de son environnement
Les catégories d’ordres
la lecture / écriture
les tests
les boucles
Exemple: Les Actions d’un ordinateur
Langage binaire: l’information est exprimée et manipulée sous forme d’une suite de bits. Ce
langage produit, en effet, des programmes automatiquement consommables (compréhensibles)
par la machine mais qui sont illisibles et non portables.
Le code ASCII (American Standard Code for Information Interchange) donne les
correspondances entre les caractères alphanumériques et leurs représentation binaire, Ex. A=
01000001, ?=00111111
électriques
7B en base 16 (hexadécimale)
Codage binaire
De la base 2 à la base 10
De la base 2 à la base 10
Deux exemples de nombre en notation binaire et sa valeur en notation décimale
La somme de
résultats de
multiplication
De la base 10 à la base 2
Il faut diviser le nombre par 2 puis réitérer l'opération en considérant que le nouveau
numérateur est l'ancien quotient jusqu'à ce que ce dernier soit nul. La suite inverse
des restes représente le nombre binaire
Codage binaire
Exemple
Un autre système, l'hexadécimal (base 16), est très souvent employé en informatique
◦ représentation :
0123456789ABCDEF
101101100010000001100011010011 (binaire)
2d8818d3 (hexadécimale)
Transcodage binaire/hexadécimal
Un autre système, l'hexadécimal (base 16), est très souvent employé en informatique
0123456789ABCDEF
101101100010000001100011010011 (binaire)
2d8818d3 (hexadécimale)
Transcodage binaire/hexadécimal
Transcodage hexadécimal/binaire
Langages de Programmation
L'assembleur
Idée: trouver un langage compréhensible par l'homme qui sera ensuite converti en langage machine
Idée: trouver un langage compréhensible par l'homme qui sera ensuite converti en langage machine
fichier source
+: exécution instantanée appréciable pour les débutants
-: exécution lente par rapport à la compilation
Langages de programmation:
Langages orientés objets : sont des langages non procéduraux dans lesquels les éléments du
programme sont considérés comme des objets qui peuvent s'échanger des messages.
Un algorithme est une description complète et détaillée des actions à effectuer et de leur
séquencement pour arriver à un résultat donné
Pour prendre une image, si un programme était une dissertation, l’algorithmique serait le
plan, une fois mis de côté la rédaction et l’orthographe. Mieux faire d’abord le plan et rédiger
ensuite que l’inverse…
Représentation d’un algorithme
Problème du tri
+ Entrée: une séquence de n
nombres (a1, : : : ,an)
+ Sortie: une permutation
(a1’; : : : ;an’) de la séquence d’entrée: a1’<a2’<….<an’
Décrire une manière de
résoudre ce problème?
Exemple : (31;41;59;26;41;58)
à (26;31;41;41;58;59)
Exemple de pseudo code
Problème du tri
+ Entrée: une séquence de n
nombres (a1, : : : ,an)
+ Sortie: une permutation
(a1’; : : : ;an’) de la séquence
d’entrée: a1’<a2’<….<an’
Exemple : (31;41;59;26;41;58)
à (26;31;41;41;58;59)
Algorithmique
Certains voient, à tort, dans l'ordinateur une machine pensante et intelligente, capable de
résoudre bien des problèmes. En fait, celui-ci ne serait capable de rien si quelqu'un (le
programmeur en l'occurence) ne lui avait fourni la liste des actions à exécuter. Cette
description doit être faite de manière non ambigüe car il ne faut pas s'attendre à la moindre
interprétation des ordres fournis. Ils seront exécutés de manière purement mécanique
Algorithme
début
instruction 1
Instruction 2
Instruction n
fin
Notion de variable
Dans les langages de programmation une variable sert à stocker la valeur d’une donnée
Une variable désigne en fait un emplacement mémoire dont le contenu peut changer au
cours d’un programme (d’où le nom variable)
Règle : Les variables doivent être déclarées avant d’être utilisées, elle doivent être
caractérisées par :
◦ un nom (Identificateur)
Le choix des noms de variables est soumis à quelques règles qui varient selon le langage, mais
en général:
La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage
utilisé
Choix des identificateurs (2)
Conseil: pour la lisibilité du code choisir des noms significatifs qui décrivent les données
manipulées
Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre, les types
offerts par la plus part des langages sont:
Type numérique (entier ou réel)
◦ Byte (codé sur 1octet): de 0 à 255
◦ Entier court (codé sur 2 octets) : -32 768 à 32 767
◦ Entier long (codé sur 4 ou 8 octets)
◦ Réel simple précision (codé sur 4 octets)
◦ Réel double précision (codé sur 8 octets)
Type logique ou booléen: deux valeurs VRAI ou FAUX
Type caractère: lettres majuscules, minuscules, chiffres, symboles, … exemples: ’A’, ’a’, ’1’, ’?’,
…
Type chaîne de caractère: toute suite de caractères, exemples: "Nom", "Prénom", "code
postale: 1000", …
Déclaration des variables
Rappel: toute variable utilisée dans un algorithme ou programme doit avoir fait l’objet d’une
déclaration préalable
En pseudo-code, on va adopter la forme suivante pour la déclaration de variables
variables liste d'identificateurs : type
Exemple:
Variables i, j,k : entier
x, y : réel
OK: booléen
ch1, ch2 : chaîne de caractères
Remarque: pour le type numérique on va se limiter aux entiers et réels sans considérer les
sous types
L’instruction d’affectation
L’affectation consiste à attribuer une valeur à une variable (ça consiste en fait à remplir où à
modifier le contenu d'une zone mémoire)
En pseudo-code, l'affectation se note avec le signe ←
Var← e : attribue la valeur de e à la variable Var
- e peut être une valeur, une autre variable ou une expression
- Var et e doivent être de même type ou de types compatibles
- L’affectation ne modifie que ce qui est à gauche de la flèche
Ex valides: i ←1; j ←i; k ←i+j;
x ←10.3 ; OK ←FAUX; ch1←"SMI";
ch2 ←ch1 ; x ←4; x ←j;
(voir la déclaration des variables dans le transparent précédent)
Ex non valides: i ←10.3; OK ←"SMI"; j ←x;
Quelques remarques
Certains langages donnent des valeurs par défaut aux variables déclarées. Pour éviter tout
problème il est préférable d'initialiser les variables déclarées
Exercices simples sur l'affectation (1)
Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ?
Algorithme Test_Var
Variables A, B, C: Entiers
Début
A ← 3;
B ← 7;
A ← B;
B ←A+5;
C ←A + B;
C ← B – A;
Fin
Exercices simples sur l'affectation (2)
Donnez les valeurs des variables A et B après exécution des instructions suivantes ?
Algorithme Test_Permut
Variables A, B : Entier
Début
A ← 1;
B ← 2;
A ← B;
B ←A;
Fin
Une expression peut être une valeur, une variable ou une opération constituée de variables
reliées par des opérateurs
exemples: 1, b, a*2, a+ 3*b-c, …
L'évaluation de l'expression fournit une valeur unique qui est le résultat de l'opération
Les opérateurs dépendent du type de l'opération, ils peuvent être :
◦ des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance)
◦ des opérateurs logiques: NON, OU, ET
◦ des opérateurs relationnels: =, <, >, <=, >=
◦ des opérateurs sur les chaînes:& (concaténation)
Une expression est évaluée de gauche à droite mais en tenant compte de priorités
Priorité des opérateurs
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant (du plus
prioritaire au moins prioritaire) :
◦ ^ : (élévation à la puissance)
◦ * , / (multiplication, division)
◦ % (modulo)
◦ + , - (addition, soustraction)
exemple: 2 + 3 * 7 vaut 23
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à
effectuer en priorité
exemple: (2 + 3) * 7 vaut 35
Les instructions d'entrées-sorties: lecture/Ecriture
◦ Remarque: Le programme s'arrête lorsqu'il rencontre une instruction Lire et ne se poursuit qu'après la
frappe d’une valeur au clavier et de la touche Entrée
Les instructions d'entrées-sorties: lecture/Ecriture 2
L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un fichier)
◦ Conseil:Avant de lire une variable,il est fortement conseillé d’écrire des messages à l’écran,afin de
prévenir l’utilisateur de ce qu’il doit frapper
Exemple (Lecture / Ecriture)
Ecrire un algorithme qui demande un nombre entier à l'utilisateur,puis qui calcule et affiche le double de ce
nombre
Algorithme Calcul_double
variables A, B : entiers
Début
Ecrire un algorithme qui vous demande de saisir votre nom puis votre prénom et qui
Ecrire un algorithme qui vous demande de saisir votre nom puis votre prénom et qui affiche ensuite votre nom
complet
AlgorithmeAffichageNomComplet
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
Ecrire("entrez votrenom");
Lire(Nom);
Ecrire("entrez votreprénom");
Lire(Prenom);
Nom_Complet ← Nom & Prenom;
Ecrire("Votre nom complet est : ", Nom_Complet);
Fin
Méthode de construction d’un algorithme simple (1/4)
Exemple :
Écrire un algorithme qui consiste a calculer l’air S d’un cercle selon la formule S = Pi * R* R;
Méthodologie a suivre:
Algorithme Calcul_Aire
Constantes
Pi = 3,14159
Variables
Rayon, Surface: réels
Début
Lire (Rayon);
Fin
Méthode de construction d’un algorithme simple (4/4)
• Les tests simples : permet de réaliser un choix parmi deux possibilités (Ex : Booléenne :vrais ou faux).
• Les instructions conditionnelles : c’est un concept de tests multiples, permet de comparer un objet à une série
de valeurs,et exécuter si la condition est vérifier (Ex :recherche des nombres premier dans une ensemble)
• Les itérations : consiste a exécuté un bloc d’instructions un certain nombre de fois (Ex : calcul d’une suite
numérique)
• Les boucles conditionnelles : consiste a exécuté un bloc d’instructions un certain nombre de fois si la condition
est vérifier (Ex : On veut afficher le 100 premiers nombres :.Tant que i est plus petit que 100, afficher la valeur de
i).
Tests: instructions conditionnelles (1)
Les instructions conditionnelles serventà n'exécuter une instruction ou une séquence d'instructions
que si une condition est vérifiée
La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la condition est
fausse, aucun traitementn'est réalisé
Si condition alors
Finsi
Exemple (Si…Alors…Sinon)
Algorithme AffichageValeurAbsolue(version1)
Variable x :réel
Début
Ecrire (" Entrez un réel :”);
Lire (x);
Si ( x < 0) alors
Ecrire ("la valeur absolue de ", x,"est:",-x);
Sinon
Ecrire ("la valeur absolue de ", x,"est:",x);
Finsi
Fin
Exemple (Si…Alors)
Algorithme AffichageValeurAbsolue(version2)
Variable x,y :réel Début
Ecrire (" Entrez un réel :”);
Lire (x);
y← x;
Si x < 0 alors
y ← -x;
Finsi
Ecrire ("la valeur absolue de ", x,"est:",y);
Fin
Exemple (tests)
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et affiche s'il est
divisible par 3
Algorithme Divisible_par3
Variable n :entier
Début
Ecrire (" Entrez un entier : ”);
Lire (n);
Si (n%3=0) alors
Ecrire (n," est divisible par 3");
Sinon
Ecrire (n," n'est pas divisible par 3");
Finsi
Fin
Exercice (tests)
Une condition composée est une condition forméede plusieurs conditions simples reliées par des
opérateurs logiques:
ET,OU,OU exclusif (XOR) et NON
Exemples :
◦ deux valeurs et deux seulement sont identiques parmi a,b et c : (a=b) XOR (a=c) XOR (b=c)
L'évaluation d'une condition composée se fait selon des règles présentées généralement dans ce qu'on
appelle tables devérité
Tables de vérité
C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI VRAI
VRAI FAUX VRAI FAUX
FAUX VRAI FAUX VRAI
FAUX FAUX FAUX FAUX
C1 C2 C1 XOR C2 C1 NON C1
VRAI VRAI VRAI
VRAI FAUX FAUX
FAUX VRAI
FAUX FAUX
Tables de vérité
C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI VRAI VRAI VRAI
VRAI FAUX FAUX VRAI FAUX VRAI
FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX FAUX
C1 C2 C1 XOR C2 C1 NON C1
VRAI VRAI FAUX VRAI FAUX
VRAI FAUX VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX
Tests imbriqués
Algorithme NegPos
Variables n :entier
Début
Ecrire ("entrez un nombre :");
Lire (n);
Si (n < 0) alors
Ecrire ("Ce nombre est négatif");
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul");
Sinon
Ecrire ("Ce nombre est positif");
Finsi
Finsi
Fin
Tests imbriqués: exemple (version 2)
Algorithme NegPos2
Variables n :entier
Début
Ecrire ("entrez un nombre :");
Lire (n);
Si (n < 0) alors
Ecrire("Ce nombre est négatif");
Finsi
Si (n = 0) alors
Ecrire("Ce nombre est nul");
Finsi
Si (n > 0) alors
Ecrire ("Ce nombre est positif");
Finsi
Fin
Remarque :dans la version 2 on fait trois tests systématiquement alors que dans la version 1,si le nombre est négatif on ne
fait qu'un seultest .
Conseil : utiliser les tests imbriqués pour limiter le nombre de tests et placer d'abord les conditions les plus probables
(minimiser la complexité)
Tests imbriqués: exercice
Le prix de photocopies dans une reprographie varie selon le nombre demandé: 0,5 DH la
copie pour un nombre de copies inférieur à 10. 0,4DH pour un nombre compris entre 10
et 20 et 0,3DH au-delà.
Algorithme cop
Variables copies :entier
prix :réel
Début
Ecrire ("Nombre de photocopies :");
Lire (copies);
Si (copies < 10) alors
prix ← copies*0.5;
Sinon
Si (copies < 20) alors
prix ← copies*0.4;
Sinon
prix ← copies*0.3;
Finsi
Finsi
Ecrire (“Le prix à payer est :”,prix);
Fin
Tests imbriqués: Exercice 2
Algorithme Eq
Variables A,B,C,Delta,sol1,sol2 :réels
Début
Ecrire(« entrer les coefficientsA,B,C »);
Lire (A,B,C);
Delta ← B*B – 4*A*C;
Si (Delta < 0)alors
Ecrire ( « le trinôme n’a pas de racine réelle »);
Sinon
Si (Delta > 0) alors
sol1 ← (-B + racine(Delta)) / 2*A;
sol2 ← (-B -racine(Delta)) / 2*A;
Ecrire (« le trinome possède deux racines réelles :»,sol1,sol2);
Sinon
sol1 ← -B /(2*A);
Ecrire (« le trinome possède une racine réelle :»,sol1);
Finsi
Finsi
Les Instructions répétitives:
Les boucles
Les types de boucles:
FinTantQue
Vrai
Condition instructions
Faux
Les boucles Tant que exemple
Algorithme Pnombre
Variables som, i :entier
Debut
i ← 0;
som← 0;
TantQue (som <=100) Faire
i ← i+1;
som ← som+i;
FinTantQue
Ecrire (" La valeur cherchée est N= ",i);
Fin
Les boucles Pour
Les boucles Pour
instructions
FinPour
i←initiale
Vrai
Condition instructions i ← i + pas
Faux
Les boucles Pour
Remarques :
Compteur est une variable de type entier (ou caractère).Elle doit être déclarée
Pas est un entier qui peut être positif ou négatif. Pas peut ne pas être mentionné,car par défaut sa
valeur est égal à [Link] ce cas,le nombre d'itérations est égal à finale - initiale+ 1
Initiale et finale peuvent être des valeurs,des variables définies avant le début de la boucle ou des
expressions de même type que compteur
Déroulement des boucles Pour
a) Si la valeur du compteur est > à la valeur finale dans le cas d'un pas positif (ou si compteur est < à finale
pour un pas négatif), on sort de la boucle et on continue avec l'instruction qui suit FinPour
b) Si compteur est <= à finale dans le cas d'un pas positif (ou si compteur est >=à finale pour un pas négatif),
instructions seront exécutées
i. Ensuite, la valeur de compteur est incrémentée de la valeur du pas si pas est positif (ou décrémenté si
pas est négatif)
ii. On recommence l'étape 2 : La comparaison entre compteuret finale est de nouveau effectuée, et ainsi
de suite …
Boucle Pour : Exercice
Algorithme Plus-Grand-Element
//Réécriture de l’algorithme précédent mais avec une boucle ``Pour’’
Variable grand,i,S,n, :entiers
Debut
Ecrire(« donnez un nombre»);
Lire(S);
grand S;
Pour i allant de 1 à n
Ecrire(« donnez le nombre »,i);
Lire( S);
Si (S > grand) alors //une plus grande valeur a été trouvée
grand <- S ;
FinSi
FinPour
Ecrire (grand);
Fin
Boucle Pour : Remarque
Il faut éviter de modifier la valeur du compteur (et de finale) à l'intérieur de la [Link] effet,une telle
action :
i i -1;
Ecrire(" i = ",i);
FinPour
Lien entre Pour et Tant Que
La boucle Pour est un cas particulier de TantQue (cas où le nombre d'itérations est connu et fixé) .Tout ce
qu'on peut écrire avec Pour peut être remplacé avec TantQue (la réciproque est fausse)
instructions
FinPour
compteur ← initiale;
TantQue ( compteur <= finale) Faire
peut être remplacé par :
instructions;
(cas d'un pas positif)
compteur ← compteur+pas;
FinTantQue
Lien entre Pour et Tant Que : exemple
AlgorithmeTestPour
Variables x,puiss :réel
n, i :entier
Debut
Ecrire (" Entrez respectivement les valeurs de x et n ");
Lire (x,n);
puiss ← 1;
Pour i allant de 1 à n
puiss← puiss*x ;
FinPour
Ecrire (x, " à la puissance ",n," est égal à ",puiss);
Fin
Solution avec boucle Tant Que
AlgorithmeTestTantQ
variables x,puiss :réel
n, i :entier
Debut
Ecrire (" Entrezrespectivement les valeurs de x et n ");
Lire (x,n);
puiss ← 1;
i ← 1;
TantQue (i<=n) Faire
puiss← puiss*x ;
i ← i+1;
FinTantQue
Ecrire (x," àla puissance ",n," est égal à ",puiss);
Fin
Algorithme de la fonction factorielle : Exemple
FinSi
Fin
Détecter l’erreur dans les deux algorithmes
Algorithme 1 Algorithme 2
Algorithme Essai1
Algorithme Essai0
Variables
Variables
k, N : entier
n : entier
Début
Début
n ← 200;
n ← 15; Pour k Allant de 1 à n
TantQue (n<>0) Faire
Ecrire (k);
Ecrire (n);
k ← n – 100;
n ← n – 2;
FinPour
FinTantQue
Fin
Fin
Boucles imbriquées
Les instructions d'une boucle peuvent être des instructions ité[Link] ce cas,on aboutit à des
boucles imbriquées
Exemple: Exécution?
Pour i allant de 1 à 5
Pour j allant de 1 à i
Ecrire("O");
FinPour
Ecrire("X");
FinPour
La boucle Faire…Tant Que
Instruction(s)
Faire de la boucle
Instruction(s)
TantQue (condition)
condition
Vraie
Fausse
Répéter
instructions
instructions
Jusqu'à (condition)
Faux
Condition
Vrai
les instructions entre Répéter et jusqu’à sont exécutées au moins une fois et leur exécution est
répétée jusqu’à ce que condition soit vrai (tant qu'elle est fausse)
Les boucles Répéter … jusqu’à …: exemple
Un algorithme qui détermine le premier nombre entier N tel quela somme de 1 à N dépasse strictement 100
(version avec répéter jusqu'à)
AlgorithmeTest
Variables som,i :entier
Debut
som ← 0;
i ← 0;
Répéter
i ← i+1;
som ← som+i;
Jusqu'à ( som > 100)
Ecrire (" La valeur cherchée est N= ",i);
Fin
Les boucles Répéter … jusqu’à …: exemple 3
Algorithme Apparition
Var ch :caractère
NbA :entier
Début
NbA ←0 ;
Répéter
Lire(ch) ;
Si ch=’A’Alors
NbA ←NbA+1
Finsi
Jusqu’à ch=’*’ ;
Ecrire(‘Nombre d’apparition de A est :’,NbA) ;
Fin.
Les boucles Répéter … jusqu’à …: exemple 4
Ecrire l’algorithme qui affiche la somme des prix d'une suite d'articles en DH
(entiers) saisies par l'utilisateur et se terminant par zéro.
Les boucles Répéter … jusqu’à …: exemple 4
Choix d'un type de boucle
S'il n'est pas possible de connaître le nombre d'itérations avant l'exécution de la boucle,on fera
appel à l'une des bouclesTantQue ou répéter jusqu'à
◦ Si on doit tester la condition de contrôle avant de commencer les instructions de la boucle, on utilisera
TantQue
Exemple de problème :
Saisir une suite de nombres, puis afficher cette suite après avoir divisé
tous les nombres par la valeur maximale de la suite.
Nécessité de conserver les nombres en mémoire
TabVal
Ensemble de données du même type
On veut pouvoir :
- Créer des tableaux
- Ranger des valeurs dans un tableau
- Récupérer, consulter des valeurs rangées dans un tableau
- Rechercher si une valeur est dans un tableau
- Mettre à jour des valeurs dans un tableau
- Modifier la façon dont les valeurs sont rangées dans
un tableau (par exemple : les trier de différentes
manières)
- Effectuer des opérations entre tableaux : comparaison
de tableaux,multiplication,...
Traitements sur les tableaux
◦ En pseudo code :
variable tableau identificateur[dimension] :type
Accès en lecture :
Ecrire(notes[4]); // le contenu du tableau à l’indice 4 est affiché à l’ecran
Accès en écriture :
notes[3] ←18; // la valeur 18 est placée dans le tableau à l’indice 3
Lire(notes[5]); //la valeur entrée par l’utilisateur est enregistrée dans le tableau à l’indice5
Tableaux : exemples (1)
Pour le calcul du nombre d'étudiants ayant une note supérieure à 10 avec les tableaux,
on peut écrire :
Algorithme Mon_Premier_Tab
Variables i ,nbre :entier
tableau notes[30] :réel
Début
nbre ← 0;
Pour i allant de 1 à 30
Lire(notes[i] );
Si (notes[i] >10) alors
nbre ←nbre+1;
FinSi
FinPour
Ecrire ("le nombre de notes supérieures à 10 est : ",nbre);
Fin
Tableaux à deux dimensions
Les langages de programmation permettent de déclarer des tableaux dans lesquels les valeurs
sont repérées par deux indices. Ceci est utile par exemple pour représenter desmatrices
◦ Exemple : unematrice points de 3 lignes et 4 colonnes dont les éléments sont réels
Accès en lecture :
- Ecrire(points[1] [7]); // la valeur contenue en ligne 1 colonne 7 est affichée
à l’écran
Accès en écriture :
- points[2] [4] ← 36;
- Lire(points[2][4]); // la valeur fournie est enregistrée en ligne 2,col 4
Exemples : somme de deux matrices
Algorithme SommeMatrices
variables n, m,i,j : entier
tableau A[n][m], B[n][m],C[n][m] : réels
Début
Algorithme Tab_minimum
variables i, min, indice : entier
tableauA[10]:entier
Début
Pour i allant de 0 à 9
Ecrire(« entrer la valeur de l’élément »,i);
Lire(A[i]);
FinPour
min ← A[0];
Pour i allant de 1 à 9
Si (min>A[i]) alors
min ←A[i];
indice ←i;
Finsi
FinPour
Ecrire(« la valeur minimale est: », min);
Ecrire(« la position de cette valeur est: », indice);
Fin
Tableaux : Exemple d’exercice 2
tableau T[12][8]:entier
Début
imax ← 0; jmax ← 0;
Pour i allant de 0 à 11
Pour j allant de 0 à 7
Si (T[i][j]>T [imax] [jmax]) alors
imax ←i;
jmax ←j;
Finsi
FinPour
FinPour
Ecrire(« Le plus grand élément est », T[iMax][jMax]);
Ecrire(« Il se trouve aux indices », iMax, « ; » , jMax);
Fin