Cours d'algorithme

Structures itératives Les tableaux Les enregistrements


La structure répétitive (boucle)

● On utilise la structure répétitive si on veut répéter des mêmes actions (instructions) un certain nombre de fois.

● Ces actions seront exécutées jusqu'à ce qu'une condition soit remplie.

● La plupart des langages de programmation proposent trois types de structure répétitive.

● Le TantQue:
TantQue (condition) Faire
instructions

● Ce qui signifie: tant que la condition est vraie, on exécute les instructions.

Structure TANT QUE...

Structure de TQ

Remarque:

la vérification de la condition s'effectue avant les actions. Celles-ci peuvent donc ne jamais être exécutées.

● Algorithme qui demande à l'utilisateur de saisir un nombre entier positif et après il affiche tous les nombres entiers positifs inferieurs ou égale au nombre saisi par l'utilisateur.


Algorithme Affichage
Variables n, i : entier
Début
Ecrire("Donner un nombre entier positif:")
Lire(n)
i ← 0
TantQue(i <= n) Faire
Ecrire(i)
i ← i + 1
FTQ
Fin
● Le Faire TantQue:
Faire
instructions
TantQue (condition)

● Ce qui signifie: on exécute les instructions, tant que la condition est vraie.

Remarque:

la suite des instructions va s'exécuter au moins une fois.

Structure FAIRE...TANT QUE...

Structure de TQ

Remarque:

la vérification de la condition s'effectue après les actions. Celles-ci sont donc exécutées au moins une fois.



Algorithme rpttv
Variables n, i : entier
Début
Ecrire("Donner un nombre entier positif:")
Lire(n)
i ← 0
Faire
Ecrire(i)
i ← i + 1
TantQue(i <= n)
Fin

Structure REPETER...JUSQU'A...

Structure de TQ

Remarque:

la vérification de la condition s'effectue après les actions. Celles-ci sont donc exécutées au moins une fois.

● Algorithme qui demande à l'utilisateur de saisir un nombre entier positif et après il affiche tous les nombres entiers positifs inferieurs ou égale au nombre saisi par l'utilisateur.


Algorithme rpttv
Variables n, i : entier
Début
Ecrire("Donner un nombre entier positif:")
Lire(n)
i ← 0
Répéter
Ecrire(i)
i ← i + 1
Jusqu'à(i = n)
Fin
● Le Pour:
POUR variable DE valeur initiale A valeur finale
FAIRE
instructions
FinPour

● Structure répétitive avec un compteur.

● Le traitement s'arrête lorsque le compteur a atteint sa valeur finale.

Structure POUR

Pour indice de Val1 a Val2
Faire
Actions
FinPour
Structure de TQ

● Algorithme qui demande à l'utilisateur de saisir un nombre entier positif et après il affiche tous les nombres entiers positifs inferieurs ou égale au nombre saisi par l'utilisateur.


Algorithme nbrs_aff
Variables n, i : entier
Début
Ecrire("Donner un nombre entier positif:")
Lire(n)
Pour i De 0 A n Faire
Ecrire(i)
FinPour
Fin

Note:

Le traitement ne doit pas modifier la variable de boucle.

Choisir Pour - TantQue... - Faire...TantQue...

Structure de TQ

Les tableaux

● Regroupement de plusieurs variables de même type sous un même nom.

● Un tableau peut être un ensemble de valeurs entières, réelles, booléennes, caractères.

● Structure répétitive avec un compteur.

● Déclaration:
Tableau nom_du_tableau[longueur] : Type

● Exemples:
Tableau mot[10] : Caractere
Tableau notes[25] : Entier
Tableau tab[8] : Entier
indices:01234567
tabs:

● le ième élément de ce tableau sera adressé par tab[i].

● Exemple:
tab[3] ← 13 la 4ème case du tableau
tab[6] ← -4 la 7ème case du tableau
indices:01234567
tabs:16-4

● Ecrire(tab[4]): le contenu du tableau à l'indice 4 est affiché à l'écran.

● Lire(tab[2]): la valeur entrée par l'utilisateur est enregistrée dans le tableau à l'indice 2.

Attention:

● tab ← 7 - INTERDIT
● Ecrire(tab) - INTERDIT
● Lire(tab) - INTERDIT

● Ecrire un algorithme qui permet de saisir les éléments d'un tableau des entiers de taille 10.


Algorithme Saisie d'un tableau
Variables i, Tableau tab[10] : entier
Début
Pour i De 0 A 9 Faire
Ecrire("Donner l'élément" , i+1)
Lire(tab[i])
FinPour
Fin

Algorithme Afficher un tableau
Variables i, Tableau tab[10] : entier
Début
Pour i De 0 A 9 Faire
Ecrire("Donner l'élément" , i+1)
Lire(tab[i])
FinPour
Pour i De 0 A 9 Faire
Ecrire("tab[" i "] = " , tab[i])
FinPour
Fin

Tableaux à deux dimensions

● Généralement on utilise des tableaux à une dimension, mais il existe également des tableaux à deux dimensions.

● Exemple:

Tableau mots[3][7] : Caractere
0123456
0
1
2

● Exemple:

● L'élément de la ième ligne et la jème colonne est représenté par mots[i][j]
Tableau mots[3][7] : Caractere
mots[1][4] ← 'r'
0123456
0
1r
2

Enregistrement

● Définition

Autres noms: Variable composé, Structure.
Enregistrement: ensemble d'infos de type différents.
1 info ⇒ un champ (désigné par un nom et un type).

● Déclaration

Type
<Nom de Type> = Enregistrement
<Nom de champ 1> : <Type de données>
<Nom de champ 2> : <Type de données>
...
<Nom de champ x> : <Type de données>
Fin Enregistrement
Exemple
Un abonné au téléphone
  • - code (entier)
  • - nom (20c)
  • - pé (20c)
  • - address (40c)
  • - téléphone (9c)
Enregistrement
Type
Abonne = Enregistrement
Code : entier
Nom : chaine
Prenom : chaine
Tel : chaine
Fin Enregistrement

Algorithme Gestion d'abonnements
Type
Abonne = Enregistrement
Code : entier
Nom : chaine
Prenom : chaine
Tel : chaine
Fin Enregistrement

Variables A : Abonne
Début
Ecrire("Donner le code de l'abonné")
Lire(A.Code)
Ecrire("Donner le nom de l'abonné")
Lire(A.Nom)
Ecrire("Donner le prenom de l'abonné")
Lire(A.Prenom)
Ecrire("Donner le téléphone de l'abonné")
Lire(A.Tel)

Ecrire("Les donnés de L'abonné")
Ecrire("Code: " A.Code)
Ecrire("Nom: " A.Nom)
Ecrire("Prenom: " A.Prenom)
Ecrire("Tel: " A.Tel)
Fin