Académique Documents
Professionnel Documents
Culture Documents
1
Plan du cours
Introduction à l’algorithmique
Les variables
Lecture et Ecriture
Les tests
Encore de la logique
Les boucles
Les tableaux
Tableaux multidimensionnels
Fichiers
Procédures et fonctions
2
Introduction à l’algorithmique
Algorithmique et programmation
3
Introduction à l’algorithmique
Un algorithme est une procédure de calcul bien définie qui prend en entrée une
valeur, ou un ensemble de valeurs, et qui donne en sortie une valeur, ou un
ensemble de valeurs.
Un algorithme est donc une séquence d’étapes de calcul qui transforment l’entrée
en sortie.
5
Introduction à l’algorithmique
il faut avoir une certaine inspiration, car aucune recette ne permet de savoir a priori
quelles instructions permettront d’obtenir le résultat voulu. C’est là, si l’on y tient,
qu’intervient la forme « d’intelligence » requise pour l’algorithmique.
il faut être méthodique et rigoureux. En effet, chaque fois qu’on écrit une série
d’instructions qu’on croit justes, il faut systématiquement se mettre mentalement à la
place de la machine qui va les exécuter, armé d'un papier et d'un crayon, afin de vérifier
si le résultat obtenu est bien celui que l’on voulait.
évitez de sauter les étapes : la vérification méthodique, pas à pas, de chacun de vos
algorithmes représente plus de la moitié du travail à accomplir. 6
Introduction à l’algorithmique
7
Introduction à l’algorithmique
Avec quelles conventions écrit-on un algorithme ?
8
Introduction à l’algorithmique
Informations Informations
en entrée
Algorithme informatique en sortie
programmation
traduction
Quels sont les aspects et propriétés des algorithmes qu’il est nécessaire d’étudier ?
11
Introduction à l’algorithmique
L’instruction d’affectation
Expressions et opérateurs
13
Les Variables
Il peut aussi s’agir de résultats obtenus par le programme, intermédiaires ou définitifs. Ces
données peuvent être de plusieurs types:elles peuvent être des nombres, du texte, etc.
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)
14
Les Variables
Déclaration des variables
La partie déclarative est placée (généralement) en tête de l'algorithme et regroupe une ou plusieurs indications de la
forme:nom_variable type
Le choix des noms de variables est soumis à quelques règles qui varient selon le langage, mais en général:
doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les
espaces)
doit être différent des mots réservés du langage (par exemple en Java: int, float, else, sw itch, case, default, for, main,
return,
La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé
15
Les Variables
Si l’on réserve un octet pour coder un nombre cela peut signifier par exemple les nombres
entiers de 1 à 256, ou de 0 à 255, ou de –127 à +128… Si l’on réserve deux octets, on a droit à
65 536 valeurs ; avec trois octets, 16 777 216, etc. Et là se pose un autre problème : ce
codage doit-il représenter des nombres décimaux ? des nombres négatifs ?
Bref, le type de codage (autrement dit, le type de variable) choisi pour un nombre va
déterminer :
les valeurs maximales et minimales des nombres pouvant être stockés dans la variable.
la précision de ces nombres (dans le cas de nombres décimaux).
16
Les Variables
Types des variables
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
17
Les Variables
Exemples:
Variables i, j, k :entier
x, y :réel
O K:booléen
18
Les Variables
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
Ex valides: i← 1 j← i k ← i+j
x ← 10.3 OK ← FAUX ch1 ← "SMI"
ch2 ← ch1 x← 4 x← j
non valides: i ← 10.3 OK ← "SMI" j← x 19
Les Variables
Exercice 1:
Quelles seront les valeurs des variables A et B après exécution des instructions
suivantes ?
Variables A, B en Entier
Début
A← 1
B← A+3
A← 3
Fin
20
Les Variables
Exercice 2:
D onnez les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C:Entier
Début
A← 3
B← 7
A← B
B ← A+5
C← A+B
C← B–A
Fin
21
Les Variables
es Variables
Exercice 3:
D onnez les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B:Entier
Début
A← 5
B← A+4
A← A+1
B← A–4
Fin
22
Les Variables
Exercice 4:
D onnez les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B :Entier
Début
A← 1
B← 2
A← B
B← A
Fin
23
Les Variables
Exercice 5:
24
Les Variables
Exercice 6:
25
Les Variables
Expressions et opérateurs
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
Une expression est évaluée de gauche à droite mais en tenant compte de priorités
26
Les Variables
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: 5+3*7 vaut 26
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à effectuer en
priorité exemple: (5 + 3) * 7 vaut 56
27
Les Variables
Exercice 7:
28
Les Variables
Exercice 8:
29
Les instructions d'entrées-sorties: lecture et écriture
Imaginons que nous ayons fait un programme pour calculer le carré d’un nombre,
mettons 12. Si on a fait au plus simple, on a écrit un truc du genre :
Ce programme nous donne le carré de 12. C’est très gentil à lui. M ais si l’on veut le
carré d’un autre nombre que 12, il faut réécrire le programme.
30
Les instructions d'entrées-sorties: lecture et écriture
31
Les instructions d'entrées-sorties: lecture et écriture
32
Les instructions d'entrées-sorties: lecture et écriture
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
33
Les instructions d'entrées-sorties: lecture et écriture
Exemple
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 : entier
Début
écrire("entrer le nombre ")
lire(A)
B ← 2*A
écrire("le double de ", A, "est :", B)
Fin
34
Les instructions d'entrées-sorties: lecture et écriture
Exercice: 9
Ecrire un algorithme qui vous demande de saisir votre nom puis votre prénom et qui
affiche ensuite votre nom complet
Algorithme AffichageNomComplet
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez votre nom")
lire(Nom)
écrire("entrez votre prénom")
lire(Prenom)
Nom_Complet ← Nom & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin
35
Tests: instructions conditionnelles
-D e quoi s’agit-il ?
-Conditions composées
-Tests imbriqués
36
Tests: instructions conditionnelles
La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la condition
est fausse, aucun traitement n'est réalisé
Si condition alors
instruction ou suite d'instructions1
Finsi
38
Tests: instructions conditionnelles
39
Tests: instructions conditionnelles
Exemple
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
40
Tests: instructions conditionnelles
Exemple
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
41
Tests: instructions conditionnelles
Exercice 10
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui
teste et affiche s'il est divisible par 3
Algorithme Divsible_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 42
Tests: instructions conditionnelles
Conditions composées
Une condition composée est une condition formée de plusieurs conditions simples
reliées par des opérateurs logiques:
ET, O U, O U exclusif (XO R)et N O N
Exemples :
x compris entre 2 et 6 :(x > 2)ET (x < 6)
43
Tests: instructions conditionnelles
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
44
Tests: instructions conditionnelles
Tests imbriqués
Les tests peuvent avoir un degré quelconque d'imbrications
Si condition1 alors
Si condition2 alors
instructionsA
Sinon
instructionsB
Finsi
Sinon
Si condition3 alors
instructionsC
Finsi
Finsi
45
Tests: instructions conditionnelles
Tests imbriqués:exemple
Variable 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
46
Tests: instructions conditionnelles
Tests imbriqués:exercice 11
47
Tests: instructions conditionnelles
Cette deuxième version n’est donc pas seulement plus simple à écrire et plus lisible,
elle est également plus performante à l’exécution.
49
Tests: instructions conditionnelles
Exercice 12:
50
Tests: instructions conditionnelles
Exercice 13:
51
Tests: instructions conditionnelles
La structure Selon…Faire (de choix)
La structure Selon permet de choisir le traitement à effectuer en fonction de la valeur
ou de l'intervalle de valeur d'une variable ou d'une expression. Cette structure permet
de remplacer avantageusement une succession de structures Si… Alors.
52
Tests: instructions conditionnelles
Exemple:
Voilà l'algorithme qui affiche le mois en toute lettre selon son numéro. Le numéro du
mois en mémorisé dans la variable mois.
53
Tests: instructions conditionnelles
Exemple:
Les différents cas possibles sont décrits par des intervalles de valeur (taux de remise
différent selon le montant d'achat)
54
Tests: instructions conditionnelles
Exercice 14:
55
Tests: instructions conditionnelles
D ans le cadre de un projet, vous aurez à récupérer les touches tapées par l’utilisateur
pour savoir dans quelle direction déplacer votre personnage. Ecrivez un petit
programme qui demande à l’utilisateur de saisir un nombre puis qui en fonction
du nombre saisi :
6 :affiche « le personnage va à droite ».
4 :affiche « le personnage va à gauche ».
8 :affiche « le personnage va en haut ».
2 :affiche « le personnage va en bas ».
D ans le cas d’un autre caractère, affiche :« erreur de saisie, le personnage ne
bouge pas ».
56
Exemples
57
Exemples:
58
Exemples:
Quelles seront les valeurs des variables a et b après exécution des instructions
suivantes :
a← 5;
b ← (a-3)+ 1 ;
a ← 3-b ;
59
Exemples:
Quelles seront les valeurs des variables a et b après exécution des instructions
suivantes :
a← 5;
b ← 3+ 1 ;
b ← 3-b ;
b ← 3-a ;
a ← 3-b ;
60
Exemples:
Quelles seront les valeurs des variables a et b après exécution des instructions
suivantes :
a← 5;
b ← 3+ 1 ;
b ← a-b ;
b ← b-a ;
a ← -b ;
61
Exemples:
• Écrire un algorithme qui à partir de trois notes d’un étudiant calcule la moyenne.
• Écrire un algorithme qui à partir de trois notes d’un étudiant et de trois coefficients
calcule la moyenne.
62
Exemples:
Écrire un algorithme qui prend en entrée trois entiers et qui les tris par ordre croissant.
63
Exemples:
Écrivez un programme qui vérifie si un nombre donné par l'utilisateur est pair ou
impair.
64
Exemples:
65
Exemples:
Une automobile est utilisée pour un voyage. Concevoir un algorithme qui prend en
entrée la distance du voyage (en km), la consommation moyenne en
carburant du véhicule (en L/100 km) et le prix du litre de carburant, et fournit en
résultat le coût du carburant pour le voyage.
66
Exemples:
67
Exemples:
68
Les structures répétitives
ou itératives
69
Les structures répétitives ou itératives
Exemple 1:Chercher dans une liste de noms et d'adresses, l'adresse d'une personne à
partir de son nom. Le nombre de fois qu'il faudra comparer le nom donné aux noms
de la liste est dans ce cas inconnu
70
Les structures répétitives: La boucle " pour faire"
71
Les structures répétitives: La boucle " pour faire"
72
Les structures répétitives: La boucle " pour faire"
Exemple:
Écrire l’algorithme qui affiche la table de multiplication de 6.
afficher la table de multiplication à l’ancienne :
6 fois 1 font 6
6 fois 2 font 12
…
6 fois 10 font 60
Il serait plus judicieux de faire répéter la ligne d’affichage en faisant varier
le multiplicande
Pour chaque valeur de n variant de 1 à 10 exécuter :
Ecrire « 6 fois », n, « font », 6*n
73
Les structures répétitives: La boucle " pour faire"
Exemple:
Écrire l’algorithme qui affiche la table de multiplication de 6.
entier n
lire n
Pour i 1 à 10 faire
écrire n, « fois », i, « font », n*i
fpour
74
Les structures répétitives: La boucle " pour faire"
Exercice 16:
Exercice 17:
Exercice 18:
Ecrire un Algorithme qui calcule puis affiche la factorielle N ! = 1*2*3...(N -1)*N d'un
entier naturel N en respectant que 0!=1
75
Les structures répétitives: La boucle " pour faire"
Exercice 19:
Ecrire un Algorithme qui demande un nombre de départ, et qui ensuite affiche les dix
nombres suivant.(par exemple, si l’utilisateur entre le nombre 20 , le programme
affichera les nombres de 21 à 30.
Exercice 20:
76
Les structures répétitives: La boucle " Tant que"
77
Les structures répétitives: La boucle " Tant que"
78
Les structures répétitives: La boucle " Tant que"
Remarques :
• Si au premier passage la condition est évaluée à FAUX, le corps de la
boucle (la séquence d’instructions)n’est jamais exécuté
• Si la séquence d’instructions ne change pas la valeur de la
condition, la séquence d’instructions sera exécutée sans que l’on
passe jamais à la suite :on exécute une boucle infinie
• Les variables qui interviennent dans la condition doivent être
initialiser avant d’aborder la boucle
79
Les structures répétitives: La boucle " Tant que"
80
Les structures répétitives: La boucle " Tant que"
Exercice 21:
Exercice 22:
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la
réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message :
« Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à 10.
81
Les structures répétitives: La boucle " Tant que"
Exercice 23:
Écrire un algorithme qui lit un entier et affiche son carré et ne s'arrête que si on entre
la valeur 0.
82
Les structures répétitives: La boucle " Répéter … jusqu’à …"
Répéter
instructions
Jusqu'à condition
83
Les structures répétitives: La boucle " Répéter … jusqu’à …"
Exemple:
Un algorithme qui détermine le premier nombre entier N tel que la somme de 1
à N dépasse strictement 100
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
84
Choix d'un type de boucle
85
Les structures répétitives: La boucle
Exercice 24:
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers
jusqu’à ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
N B :on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
Exercice 25:
Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise
ensuite quel était le plus grand parmi ces 20 nombres :
Entrez le nombre numéro 1 :12
Entrez le nombre numéro 2 :14
etc.
Entrez le nombre numéro 20 :6
Le plus grand de ces nombres est :14
86
Les structures répétitives: La boucle
Exercice 26:
Réécrire l’algorithme précédent, mais cette fois-ci on ne connaît pas d’avance combien
l’utilisateur souhaite saisir de nombres.
La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.
Exercice 27:
Ecrire un algorithme qui permet de calculer le résultat de la division d’un entier a par
un entier b par soustractions successives.
87
Les structures répétitives: La boucle
Exercice 28:
Ecrire un algorithme qui permet d’essayer de deviner la valeur d’un nombre entier
caché.
Si la valeur saisie est supérieure ou inférieure, la machine affiche respectivement "c’est
moins" ou "c’est plus" jusqu’à soit que le nombre soit trouvé ou que l’utilisateur
abandonne la recherche.
O n suppose que celui qui saisi le nombre caché (qui ne sera pas affiché)n’est pas celui
qui le cherche.
88
Les tableaux
Supposons qu'on veut conserver les notes d'une classe de 30 étudiants pour extraire quelques
informations. Par exemple :calcul du nombre d'étudiants ayant une note supérieure à 10
Le seul moyen dont nous disposons actuellement consiste à déclarer 30 variables, par exemple
N1, …, N30. Après 30 instructions lire, on doit écrire 30 instructions Si pour faire le calcul
nbre ← 0
Si (N1 >10) alors nbre ← nbre+1 FinSi
….
Si (N30>10) alors nbre ← nbre+1 FinSi
c'est lourd à écrire
89
Les tableaux
90
Les tableaux
Une variable entière nommée indice permet d'indiquer la position d'un élément donné
au sein du tableau et de déterminer sa valeur
O n peut définir des tableaux de tous types :tableaux d'entiers, de réels, de caractères,
de booléens, de chaînes de caractères, …
91
Les tableaux
Selon les langages, le premier indice du tableau est soit 0, soit 1. Le plus souvent c'est
0 (c'est ce qu'on va adopter en pseudo-code). D ans ce cas, notes[i] désigne l'élément
i+1 du tableau notes
Un grand avantage des tableaux est qu'on peut traiter les données qui y sont stockées
de façon simple en utilisant des boucles
92
Les tableaux
Exemple:
Si la variable k entière a pour valeur 2,
température Nom du tableau alors
Température[k] = 23
Température[k+1] = 36
0 25
Température[k-1] = 30
1 30 Cette case du tableau
M ais attention l’écriture de
2 23 représente la variable Température[-2] ou Température[12] n’ont
Température[2] dont la pas de sens car elles font référence à
3 36
valeur est 23 des éléments inexistants
4 33
5 22
6 27
94
Les tableaux
Exemple:
le calcul de la température moyenne de la semaine se fera de façon très simple :
Entiers somme, k
Réel moyenne
somme 0
Pour k 0 à 6 faire
somme somme + Température[k]
fpour
moyenne somme / 7
95
Les tableaux
Exercice 29:
Exercice 30:
Ecrire un algorithme qui déclare et remplisse un tableau contenant les six voyelles de
l’alphabet latin.
96
Les tableaux
Exercice 31:
Ecrire un algorithme qui déclare un tableau de 9 notes, dont on fait ensuite saisir les
valeurs par l’utilisateur.
Exercice 32:
97
Les tableaux
Exercice 33:
Exercice 34:
Ecrivez un algorithme calculant la somme des valeurs d’un tableau (on suppose que le
tableau a été préalablement saisi).
98
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 des
matrices
Exemple : une matrice A de 3 lignes et 4 colonnes dont les éléments sont réels
variable tableau A[3][4] : réel
Début
Pour i allant de 0 à n-1
écrire ("saisie de la ligne ", i + 1)
Pour jallant de 0 à m-1
écrire ("Entrez l'élément de la ligne ", i + 1, " et de la colonne ", j+1)
lire (A[i][j])
FinPour
FinPour
Fin
100
Tableaux à deux dimensions
101
Tableaux à deux dimensions
Début
Pour i allant de 0 à n-1
Pour jallant de 0 à m-1
C[i][j]← A[i][j]+B[i][j]
FinPour
FinPour
Fin
102
Tableaux à deux dimensions
Exercice 35:
Exercice 36:
103
Tableaux à deux dimensions
Exercice 37:
Exercice 38:
Écrivez un algorithme permet de saisir une matrice carré (n*n)et d'afficher les
éléments de sa diagonale principale.
104
Tableaux à deux dimensions
Exercice 39:
Écrivez un algorithme permet de transférer une matrice T(M *N )dans un tableau à une
dimension
105
Fonctions et procédures
Fonctions
Le rôle d'une fonction en programmation est similaire à celui d'une fonction en mathématique :elle retourne
un résultat à partir des valeurs des paramètres
Pour le choix d'un nom de fonction il faut respecter les mêmes règles que celles pour les noms de variables
type_fonction est le type du résultat retourné
L'instruction retourne sert à retourner la valeur du résultat
107
Fonctions et procédures
Fonctions: exemples
La fonction SommeCarre suivante calcule la somme des carrées de deux réels x et y :
Fonction SommeCarre (x :réel, y:réel ):réel
variable z :réel
z ← x^2+y^2
retourne (z)
FinFonction
Lors de l'appel Pair(3)le paramètre formel n est remplacé par le paramètre effectif 3
109
Fonctions et procédures
Procèdures
D ans certains cas, on peut avoir besoin de répéter une tache dans plusieurs endroits du programme, mais que dans
cette tache on ne calcule pas de résultats ou qu'on calcule plusieurs résultats à la fois
D ans ces cas on ne peut pas utiliser une fonction, on utilise une procédure
Une procédure est un sous-programme semblable à une fonction mais qui ne retourne rien
FinProcédure
Remarque :une procédure peut ne pas avoir de paramètres
110
Fonctions et procédures
Procédure exemple_proc (… )
…
FinProcédure
Algorithme exepmleAppelProcédure
Début
exemple_proc (… )
…
Fin
Remarque :contrairement à l'appel d'une fonction, on ne peut pas affecter la procédure appelée ou l'utiliser dans une
expression. L'appel d'une procédure est une instruction autonome
111