Telechargé par Nizar Chaabani

Initiation à la programmation et algorithmique

publicité
Initiation à la programmation
et algorithmique
Introduction
2
 Qu’est ce qu’un ordinateur :
 une machine totalement dénuée d'intelligence
 capable d’effectuer un grand nombre de tâches
 Exécute très rapidement et sans erreurs les ordres
qu'on lui donne
Introduction à la programmation et algorithmique
Qu’est-ce qu’un programme ?
3
 Assemblage et enchaînement d’instructions
élémentaires
 Écrit dans un langage de programmation
 Exécuté par un ordinateur afin de traiter les
données d’un problème
 et renvoyer un ou plusieurs résultats
Introduction à la programmation et algorithmique
Environnement de programmation
4
 Programme s’écrit dans un fichier texte
 On écrit les commandes les unes à la suite des autres
 Le compilateur
 vérifie la syntaxe du fichier texte
 Avaancer au lieu de avancer
 traduit en langage machine (100101100101001011…)
 Hélas, il ne détecte pas les bugs !!!
 Si on fonce dans le mur, il ne nous dit rien !
Introduction à la programmation et algorithmique
Environnement de programmation
5
 Environnement de programmation dédié
Fichier
source
compilateur
Fichier
traduit
Affichage des Erreurs
Introduction à la programmation et algorithmique
Programmation
6
 Un programme est réalisé dans le but d’effectuer un
ensemble de traitements particuliers sur un
ensemble de données
 Définir sous quelle forme les données initiales seront fournies
à l’application
 Définir sous quelle forme les résultats seront communiqués
 Expliciter les différentes actions à réaliser pour réaliser cette
tâche
Introduction à la programmation et algorithmique
Données et traitements
7
 Donnée : valeur stockée
 variable ou constante
 Type
 Traitement : opérations sur les données
 instructions
Données initiales
Introduction à la programmation et algorithmique
Traitements
résultats
Analyse du problème
8
 Décomposer la tâche
 Exemple simple : moyenne de 10 notes
notes
saisies
saisie
clavier
Lire et stocker
les données
notes
Calculer
Moyenne
Additionner les
données notes
et stocker
donnée somme
Introduction à la programmation et algorithmique
moyenne
affichée
Diviser la donnée
somme par 10
et stocker la
donnée moyenne
Afficher la
Donnée
moyenne
affichage
écran
Sous programme
BTS IRIS
1è999re
année
9
 Sous-programme
 Diviser pour mieux régner
 Intérêts :
 Programmer tâche par tâche
 Meilleure lisibilité du code
 Économie de codage et réutilisation
 Inconvénients :
 Nécessite de réfléchir en blocs de fonctionnalités
Introduction à la programmation et algorithmique
Algorithmique
10
OÙ ON APPREND RÉELLEMENT À
PROGRAMMER
Introduction à la programmation et algorithmique
Algorithmique
11
 Un peu de vocabulaire…
 Algorithme : enchaînement des actions (instructions)
nécessaires pour résoudre un problème
 Différentes appellations
langage algorithmique
 pseudo-langage de programmation
 pseudo-code)

Introduction à la programmation et algorithmique
Organisation d’un programme
12
Exemple d’un programme :
PROGRAMME monProgr
/* Constantes: initialisation obligatoire */
CONST
const1 <- 10 : entier
const2 <- "bonjour!" : chaîne
// les variables au sens strict
VAR
varReel1, varReel2 : réels
varChaine : chaîne
DEBUT
Instruction1
Instruction2
Corps du programme
…
FIN
Introduction à la programmation et algorithmique
déclarations
Les données
13
OÙ ON SE REND COMPTE QU’UN
ORDINATEUR N’EST QU’UNE SUCCESSION DE
BOITES !
Introduction à la programmation et algorithmique
Les données
14
 Données = ensemble des informations manipulées
par un programme
 Les données d'un programme sont mémorisées en
mémoire centrale dans des variables (sortes de
cases)
Introduction à la programmation et algorithmique
Notion de variable
15
 Une variable possède :
 une valeur contenue par la case mémoire
 un identificateur : nom unique par lequel on peut accéder à
son contenu
 un type qui définit la taille de la place occupée
 Ne pas confondre la variable et son contenu
 Une variable est un contenant (case ou boîte)
 Le contenu d'une variable est une valeur numérique,
alphanumérique…
Introduction à la programmation et algorithmique
Variable
16
 Une variable (VAR) est donc une « boite » dans
laquelle on met une valeur (un nombre, un mot…)
qui peux changer (si l’utilisateur modifie la valeur
par exemple)
 Les variables dont la valeur ne change pas au cours
de l'exécution du programme sont appelées
variables constantes (CONST)
Introduction à la programmation et algorithmique
Déclaration de variable
17
 Déclarer une variable :
 réserver une place en mémoire
 attribuer l'identificateur à cette place
 La déclaration indique :
 l’identificateur
 le type
 Exemple : VAR maVar : réel
Introduction à la programmation et algorithmique
Types (1)
18
 Type caractère
 lettres, chiffres, ponctuation, code des opérations, espace,
retour chariot,…
 Exemples : ‘a’ ‘+’ ‘.’
 Type chaîne de caractère
 suites de caractères
 Exemples : « bonjour » « cac40 »
Introduction à la programmation et algorithmique
Types (2)
19
 Type entier
 les nombres entiers
 Exemples : 3
45
 Type réel
 les nombres réels
 Exemples : 3,14
133
37,7
Introduction à la programmation et algorithmique
Types (3)
20
 Type booléen
 que deux valeurs possibles
 soit VRAI, soit FAUX
Introduction à la programmation et algorithmique
Exemples de variables
21
 Identificateur : X
Mémoire centrale
(mémoire vive)
 Type : entier
 Valeur : 25
 Identificateur : Y
X
25
Y
3,7
 Type : réel
 Valeur : 3,7
Introduction à la programmation et algorithmique
Les opérateurs
22
OÙ L’ADDITION DEVIENT COMPLIQUÉE
Introduction à la programmation et algorithmique
Opérateurs
23
 Les opérations possibles sur les variables dépendent
de leur type
 On ne peux pas multiplier des mots…
Introduction à la programmation et algorithmique
Réels
24
opérations possibles
addition
soustraction
multiplication
Division
comparaisons
Introduction à la programmation et algorithmique
symbole ou mot clé
+
*
/
<, ≤, >, ≥, =, ≠
Entiers
25
opérations possibles
symbole ou mot clé
addition
soustraction
Multiplication
Division
Division entière
Modulo
Comparaisons
+
*
/
DIV
MOD
<, ≤, >, ≥, =, ≠
Introduction à la programmation et algorithmique
Caractères
26
opérations possibles
symbole ou mot clé
comparaisons
<, ≤, >, ≥, =, ≠
(exemple ‘a’ < ‘z’)
Introduction à la programmation et algorithmique
Chaînes
27
opérations possibles
symbole ou mot clé
Concaténation
Longueur
Extraction
&
Longueur (chaîne)
Extraction (sous-ch, ch)
Introduction à la programmation et algorithmique
Booléens
28
opérations possibles
symbole ou mot clé
comparaison
négation
conjonction
disjonction
=, ≠
NON
ET
OU
Introduction à la programmation et algorithmique
Rappel
29
PROGRAMME monProgr
/* Constantes: initialisation obligatoire */
CONST
const1 <- 10 : entier
const2 <- "bonjour!" : chaîne
// les variables au sens strict
VAR
varReel1, varReel2 : réels
varChaine : chaîne
DEBUT
Instruction1
Instruction2
…
FIN
Corps du programme
Introduction à la programmation et algorithmique
déclarations
Les instructions
30
Introduction à la programmation et algorithmique
Instructions
31
 Instruction = ordre que peut exécuter l'ordinateur
 exécution d'un programme :
 Échanges d'informations en mémoire
 Calculs
 Affichage des résultats
Introduction à la programmation et algorithmique
Informations
32
 Les informations manipulées par les instructions
peuvent prendre plusieurs formes:
des variables
 des constantes
 des valeurs littérales ("bonjour", 45, VRAI)
 des expressions complexes : combinaisons de variables,
constantes et valeurs littérales avec des opérateurs (2 * r *
3.14)

Introduction à la programmation et algorithmique
Les instructions élémentaires
33
 Affectation : le fait de donner une nouvelle valeur à
une variable (mettre un nombre dans une boite)
 Saisir : Permet à l’ordinateur de récupérer ce que
l’utilisateur tape au clavier
 afficher : Permet à l’ordinateur d’afficher sur
l'écran ce qu’on veux (le résultat d’un calcul, une
variable…)
Introduction à la programmation et algorithmique
L’ affectation
34
 Syntaxe :
 Variable <- Valeur
 Valeur évaluée à partir d’une expression :
 Variable (le contenu d’une autre boite…)
 Constante (une valeur fixe : PI…)
 valeur littérale (3 6 5.12…)
 expressions complexes (un calcul…)
Introduction à la programmation et algorithmique
Exemples
35
 X <- Y
 X <- 25
 X <- 3,3
 C <- ‘a’
 maChaine <- «bonjour»
 B <- VRAI
 X <- 25 + Y + 3
Introduction à la programmation et algorithmique
Différence avec le = mathématiques
36
 Quand on dit qu'une variable prend pour valeur une
autre variable, ça ne veut pas dire qu'elles seront
toujours égales !
 Cela veut seulement dire que la première variable va
prendre la valeur de la seconde


Le contenu de la première boite sera le même celui de la
seconde boite…
Mais si on modifie le contenu de la seconde boite après, ça
n’a pas d’impact sur le contenu de la première boite !
Introduction à la programmation et algorithmique
Exemples
37
 Algo :
 Maths :
 Algo :
 Maths :
 Algo :
 Maths :
x <- y
x = y
différend de
y <- x
équivaut à y = x
x + 12 <- y
x + 12 = y
impossible !
a un sens
x <- x + 7
x = x + 7
a un sens
impossible
Introduction à la programmation et algorithmique
La saisie
38
 Syntaxe :
 Saisir variable1 [,variableN]*
 Permet à un utilisateur de communiquer des
données au programme
 Assigne une valeur entrée au clavier dans une
variable
 Tant que l'utilisateur n'entre rien au clavier, le
déroulement du programme est stoppé
Introduction à la programmation et algorithmique
Exemples
39
 Saisir x
 Saisir x, y
 Saisir a, b, c, d, e, f
Introduction à la programmation et algorithmique
Avantages
40
 Utiliser le même programme pour des données
différentes
 Sans instruction de saisie (ou de lecture sur un
périphérique quelconque), un programme fournirait
toujours le même résultat
Introduction à la programmation et algorithmique
Pièges
41
 Saisir une valeur ne correspondant pas au type de la
variable où elle doit être stockée
 Essayer de mettre un mot dans une variable de type texte
 L’utilisateur peut penser que le programme s’est
arrêté
 Si il n’y a rien d’affiché, l’utilisateur ne voit qu’un curseur
clignotant…
Introduction à la programmation et algorithmique
L’affichage
42
 Syntaxe :
 Afficher variable1 [, variableN]*
 L'instruction d'affichage permet de fournir des
résultats à l'utilisateur à travers l'écran
Introduction à la programmation et algorithmique
Exemples
43
 Afficher x
 Afficher «bonjour»
 Afficher x, y, z
 Afficher x + y
 Afficher «le résultat de x + y est
: », x + y
On peut afficher plusieurs trucs à la suite grâce à la virgule !
Introduction à la programmation et algorithmique
Avantages
44
 Permet de fournir un résultat
 Permet de guider l’utilisateur
 Permet d’afficher des valeurs intermédiaires
 Permet de débuguer
Introduction à la programmation et algorithmique
Exemple complet
45
PROGRAMME bonjour
CONST
bj <- «Bonjour» : chaîne
mr <- «Monsieur » : chaîne
VAR
varNom,
ch : chaîne
DEBUT
Afficher «Quel est votre nom ?»
Saisir varNom
ch <- mr & varNom
Afficher bj, ch
FIN
Introduction à la programmation et algorithmique
Synthèse Cours 1
46
Introduction à la programmation et algorithmique
47
 Réaliser un algorithme : exprimer en pseudo-
code les règles de traitement d’un problème pour le
soumettre à un ordinateur (par un programme)
 Les données d’un programme sont mémorisées
dans des variables qui sont des cases mémoire
 Les instructions permettent de manipuler et de
déplacer une donnée d'un endroit à un autre de la
mémoire
Introduction à la programmation et algorithmique
48
 Une variable est un contenant, qui contient une et une seule
valeur à un moment donné. Elle est caractérisée par
un identificateur (son nom)
 une valeur (qui peut varier au cours du programme, sauf pour les
constantes)
 un type (qui détermine sa taille et les opérations possibles)

 Les instructions de base sont :
 l'affectation (permet de changer la valeur d'une variable)
 la saisie (permet d'assigner à une variable, une valeur entrée au
clavier)
 l'affichage (permet d'écrire le contenu d'une variable ou d'une
expression à l'écran)
Introduction à la programmation et algorithmique
Initiation à la programmation
et
algorithmique
49
cours 2
Introduction à la programmation et algorithmique
50
Plan
 Données
 Opérateurs
 Les instructions
 Tableaux
 Sous-programme
 Types structurés
Introduction à la programmation et algorithmique
51
3 Instructions (suite)
Introduction à la programmation et algorithmique
Introduction
3 Instructions (suite)
52
 En algorithmique comme en programmation :
l'ordre des instructions est primordial
 Le processeur exécute les instructions dans l'ordre dans
lequel elles apparaissent dans le programme
 L’exécution est séquentielle : une fois que le
programme a fini une instruction, il passe à la suivante
 Tant qu'une instruction n'est pas terminée, il attend avant
de continuer (Exemple : Saisir)
Introduction à la programmation et algorithmique
Introduction
3 Instructions (suite)
53
 Il peut-être nécessaire pour résoudre un problème
 de n'exécuter les instructions que sous certaines
conditions
 de recommencer plusieurs fois les mêmes instructions
 Il existe des instructions particulières appelées
structures de contrôle qui le permettent :
 instructions conditionnelles : exécuter certaines
instructions uniquement sous certaines conditions
 instructions répétitives (boucles) : répéter des
instructions un certain nombre de fois (sous certaines
conditions)
Introduction à la programmation et algorithmique
54
Les instructions conditionnelles
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Instructions conditionnelles
55
 Permettent d'exécuter des instructions différentes en
fonction de certaines conditions
 Une condition (expression conditionnelle ou booléenne) est
évaluée, elle est :
 soit vrai
 soit fausse
 Selon le résultat, les instructions à réaliser ne sont pas les
mêmes
 3 types principaux :
 instruction conditionnelle au sens strict : Si … Alors
 instruction alternative : Si … Alors … Sinon
 instruction conditionnelle multiple : Selon … Faire
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Instruction conditionnelle stricte
56
 Permet d'exécuter une ou plusieurs instructions si
une condition est respectée et ne rien faire si la
condition est fausse
► Une instruction :
Si <condition>
Alors <instruction>
Introduction à la programmation et algorithmique
► Bloc instruction :
Si <condition>
Alors
<instruction1>
<instruction2>
<instruction3>
Finsi
3 Instructions : les instructions conditionnelles
Exécution
57
Expression
testée
Si vrai
Si faux
Bloc d’instructions
à exécuter
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Exemple
58
PROGRAMME vote
CONST
majorite <- 18 : entier
VAR
age : entier
DEBUT
Afficher «quel est votre age ?»
Saisir age
Si age ≥ majorite
Alors
Afficher «Vous avez le droit de voter»
Afficher «vous etes majeur depuis : », age–18, « ans »
Finsi
FIN
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Instruction alternative
59
 Permet de choisir entre deux actions, suivant une
condition
 L’instruction alternative va permettre d'effectuer
des choix
Si <condition>
Alors
<instruction1>
<instruction2>
Sinon
<instruction3>
<instruction4>
Finsi
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Exécution
60
Expression
testée
Si vrai
Si faux
Bloc d’instructions
à exécuter
Introduction à la programmation et algorithmique
Bloc d’instructions
à exécuter
3 Instructions : les instructions conditionnelles
Exemple
61
PROGRAMME vote
CONST
majorite <- 18 : entier
VAR
age : entier
DEBUT
Afficher «quel est votre age ?»
Saisir age
Si age ≥ majorite
Alors
Afficher «Vous avez le droit de voter»
Afficher «vous etes majeur depuis : », age – 18 , « ans»
Sinon Afficher «Vous n’avez pas le droit de voter»
Finsi
FIN
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Exemple
62
PROGRAMME vote
CONST
majorite <- 18 : entier
VAR
age : entier
DEBUT
Afficher «quel est votre age ?»
Saisir age
Si age ≥ majorite
Alors
Afficher «Vous avez le droit de voter»
Afficher «vous etes majeur depuis : », age – 18, « ans»
Sinon
Afficher «Vous n’avez pas le droit de voter»
Afficher «vous devez attendre : », 18 - age , « ans»
Finsi
FIN
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Expression conditionnelle
63
 Expression conditionnelle (ou expression
booléenne) est :
 soit VRAI
 soit FAUX
 Mais plusieurs types :
 Condition simple
 Condition complexe
 Variable booléenne
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Condition simple
64
 Une condition simple est une comparaison de deux
expressions de même type
 Symboles de comparaison :
 < , > , = , ≤ , ≥, ≠
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Exemples
65
Si c = ‘a’
Alors Afficher «le caractere est a»
Si r = 3,3 * x
Alors Afficher « l’expression est vrai »
Si (x – 3 + y) * a ≤ z – 2 + b / 3
Alors Afficher « l’expression est vrai »
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Condition complexe
66
 Une condition complexe est une comparaison
formées de plusieurs conditions simples ou variables
booléennes reliées entre elles par les opérateurs
logiques
 opérateurs logiques :
 ET, OU, NON
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Exemples
67
Si (c1 = ‘a’) ET (c2 = ‘a’)
Alors Afficher «les caracteres sont a»
Si (r = 3,3 * x) OU (r = 3,3 * y)
Alors Afficher «une expression est vrai»
Si (((x – 3 ) * a) ET (z + b / 3)) OU c < 2
Alors Afficher «le tout est vrai»
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Variable booléenne
68
 Une variable booléenne, comme une expression
conditionnelle, est :
 soit vraie
 Soit fausse
 On peut donc mettre une variable booléenne à la
place d’une expression conditionnelle
 Les variables booléennes et les expressions
conditionnelles sont équivalentes
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
PROGRAMME id
VAR
nom : chaine
age : entier
sexe, repEx : caractère
homme, exempte : booleen
Exemple
69
DEBUT
Afficher «quel est votre sexe ? (H/F)»
Saisir sexe
homme <- sexe = ‘H’
Afficher «quel est votre age ?»
Saisir age
Afficher «quel est votre nom ?»
Saisir nom
Si homme
Alors
Afficher «etes-vous exempte de service militaire ? (O/N)»
Saisir repEx
exempte <- repEx = ‘O’
Finsi
FIN
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Instructions conditionnelles imbriquées
70
 Exemple :
Si (x < 0)
Alors Afficher «x negatif»
Sinon
Si (x < 10)
Alors Afficher «x unite»
Sinon Si (x < 20)
Alors Afficher «x dizaine»
Sinon Afficher «x ≥ 20»
Finsi
Finsi
Finsi
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Instruction conditionnelle multiple
71
 Permet de choisir les instructions à effectuer en
fonction de la valeur (ou de l'intervalle de valeur)
d'une variable ou d'une expression
 Permet de remplacer une succession d’instructions
Si … Alors
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Syntaxe
72
Selon expression Faire
valeur 1 : bloc d’instructions 1
valeur 2 : bloc d’instructions 2
valeur 3 : bloc d’instructions 3
…
[Sinon instructions par défaut]
Finselon
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Exécution
73
Évaluer expression
Tester
Si vrai
expression = valeur 1
Si faux
Tester
Si vrai
expression = valeur 2
Si faux
Tester
Si vrai
expression = valeur 3
Si faux
Bloc instructions
par défaut
Introduction à la programmation et algorithmique
Bloc instructions
1
Bloc instructions
2
Bloc instructions
3
3 Instructions : les instructions conditionnelles
Exemples
74
Selon mois Faire
1 : Afficher "Janvier"
2 : Afficher "Février"
3 : Afficher "Mars"
4 : Afficher "Avril"
…
11: Afficher "Novembre"
12: Afficher "Décembre"
Sinon Afficher "Un numéro de mois doit être
compris entre 1 et 12"
Finselon
Introduction à la programmation et algorithmique
3 Instructions : les instructions conditionnelles
Exemples
75
Selon montant Faire
<1000 : taux <- 1,0
≥1000 ET < 3000: taux <- 2,0
≥3000 ET < 10000: taux <- 3,0
≥ 10000: taux <- 4,0
FinSelon
montant <- montant * ( 1,0 – taux / 100,0)
Introduction à la programmation et algorithmique
76
Les instructions répétitives
(les boucles)
Introduction à la programmation et algorithmique
3 Instructions : les boucles
Instructions répétitives (boucles)
77
 Permettent de répéter une instruction (ou
un bloc) autant de fois qu'il est nécessaire :
 soit tant qu'une condition est vraie
 soit un nombre déterminé de fois
 3 grands types :
 Tant que … Faire : si condition répète
 Pour : répète n fois
 Répéter … Jusqu'à : répète jusqu’à condition
Introduction à la programmation et algorithmique
Boucle Tant que
3 Instructions : les boucles
78
 la boucle Tant que est fondamentale
 avec cette boucle, on peut réaliser toutes les autres
boucles
 permet d'effectuer un bloc d’instructions tant qu'une
condition est satisfaite
 Syntaxe :
Tant que <condition> Faire
<instruction>
FinTantque
Introduction à la programmation et algorithmique
Exécution
3 Instructions : les boucles
79
Bloc d’instructions
De la boucle
Expression
testée
Si faux
Introduction à la programmation et algorithmique
Si vrai
Exemples
PROGRAMME gestion
VAR
3 Instructions : les boucles
80
budget, depense : entier
DEBUT
Afficher « quel est le budget de depart ? »
Saisir budget
Tant que budget > 0 Faire
Afficher « vous ne pouvez pas depenser plus de », budget
Afficher « montant de la depense ? »
Saisir depense
budget <- budget – depense
FinTantque
Afficher « le budget a ete depasse de: », budget * (-1)
FIN
Introduction à la programmation et algorithmique
Boucle Pour
3 Instructions : les boucles
81
 permet de répéter un bloc d’instructions un certain
nombre de fois
 permet de simplifier la boucle Tantque lorsque le
nombre de « tour » de boucle est connu d’avance
 Syntaxe :
Pour <cpt> de <val init> à <val fin> [pas de <incrément>] Faire
<bloc instructions>
FinPour
Introduction à la programmation et algorithmique
Exécution
3 Instructions : les boucles
82
Instruction
initialisation
Compteur <- valeur initiale
Instruction
incrémentation
Compteur <- compteur + incrément
Bloc d’instructions
de la boucle
Expression
Testée
Compteur ≠ val finale
Si faux
Introduction à la programmation et algorithmique
Si vrai
Exemples
83
Programme table3
Var
x : entier
Début
Pour x de 1 à 10 pas de 1 Faire
Afficher x, " * 3 = ", x * 3
FinPour
Fin
Introduction à la programmation et algorithmique
3 Instructions : les boucles
Boucle Répéter
3 Instructions : les boucles
84
 permet de répéter un bloc d’instructions jusqu'à ce
qu'une condition soit satisfaite
 moins utilisée
 Syntaxe :
Répéter
<instructions>
Jusqu'à <condition>
Introduction à la programmation et algorithmique
3 Instructions : les boucles
Exécution
85
Bloc d’instructions
de la boucle
Expression
testée
Si faux
Introduction à la programmation et algorithmique
Si vrai
Exemples
Programme carre
Var
3 Instructions : les boucles
86
x, res : entier
rep : caractère
Début
Répéter
Afficher « Entrez un entier : »
Saisir x
Afficher x, « au carré = », x * x
Afficher «voulez-vous continuez ? (O/N)»
Saisir rep
Jusqu’à rep = ‘N’
Afficher « au revoir »
Fin
Introduction à la programmation et algorithmique
Exemples
Programme exposant
Var
87
x, n, res : entier
rep : caractère
Début
Aff « Entrez un entier : »
Saisir x
res <- x
n <- 1
Répéter
res <- res * res
n <- n + 1
Afficher x, « puissance », n, « = », res
Afficher «voulez-vous continuez ? (O/N)»
Saisir rep
Jusqu’à rep = ‘N’
Afficher « au revoir »
Fin
Introduction à la programmation et algorithmique
3 Instructions : les boucles
Initiation à la programmation
et
algorithmique
88
cours 3
Introduction à la programmation et algorithmique
89
Plan
 Données
 Opérateurs
 Les instructions
 Tableaux
 Sous-programme
 Types structurés
Introduction à la programmation et algorithmique
90
4 Tableaux
Introduction à la programmation et algorithmique
Introduction
4 Tableaux
91
Saisir la liste des 10 notes sur 30
16 23 8 19 28 20 18 14 10 9
Voici la liste de ces notes sur 20
10.67 15.33 5.33 12.67 18.67 13.33 12 9.33 6.67 6
► Utilisation d'un tableau :
► 10 variables différentes
 Nom commun pour toutes les variables
► même
traitement
effectué 10 fois sur des
repérées
par un numéro
variables
 Déclarerdifférentes
toutes les variables d'un seul coup
 Utiliser une boucle faisant varier le numéro des
variables
Introduction à la programmation et algorithmique
4 Tableaux
92
Définition
 Un tableau est une suite séquentielle de cellules en
mémoire, chacune d’elles contenant des données de
même type
 La taille d’un tableau doit être connue dès sa
déclaration
 Chaque cellule sera identifiée par le rang qu’elle
occupe dans le tableau
 Chaîne = tableau de caractère
Introduction à la programmation et algorithmique
Déclaration de tableau
4 Tableaux
93
nomTab: tableau [indice_minimum .. indice_maximum] de type
 Exemples :
notes: tableau [1..10] de réels
noms: tableau [1..4] de chaînes
Introduction à la programmation et algorithmique
4 Tableaux
Représentation
94
 noms: tableau [1..4] de chaînes
noms
Cellule de rang 1
Cellule de rang 2
Cellule de rang 3
Cellule de rang 4
Introduction à la programmation et algorithmique
Taille
4 Tableaux
95
 En règle générale, l'indice minimum vaut 0
 Mais on peut aussi utiliser un autre indice minimum,
comme 1
 Si indice minimum = 1 :
 taille = indice maximum
 Si Indice minimum = 0 :
 taille = indice maximum + 1
Introduction à la programmation et algorithmique
Variables indicées
4 Tableaux
96
 Un tableau est une variable contenant d’autres
variables liées entre elles
 Les éléments d'un tableau s'utilisent comme
n'importe quelles autres variables classiques
 elles peuvent :
 faire l'objet d'une affectation
 figurer dans une expression arithmétique ou comparaison
 être affichées et saisies
…
Introduction à la programmation et algorithmique
Manipulation
4 Tableaux
97
 Pour désigner un élément, on indique le nom du tableau
suivi de son indice entre crochets:
 noms[1]
 L'indice d'un élément peut être:
 directement une valeur : noms[2]
 une variable : noms[i]
 une expression entière : noms[k+1] avec k de type entier
 Quelque soit sa forme, la valeur de l'indice doit être :
 entière
 comprise entre les valeurs minimales et maximales
déterminées à la déclaration du tableau
Introduction à la programmation et algorithmique
Manipulation
4 Tableaux
98
 Le fait que les variables soient indicées permet
d’utiliser une boucle pour parcourir l’ensemble des
éléments d’un tableau
 On utilise une variable qui sert d'indice et
s'incrémente à chaque tour de boucle
 On utilise généralement la boucle Pour
Introduction à la programmation et algorithmique
Exemple
4 Tableaux
99
PROGRAMME conv_note
VAR note: tableau[1..10] de réels
i: entier
DEBUT
Afficher "Saisir la liste des 10 notes sur 30"
Pour i de 1 à 10 Faire
Saisir note[i]
FinPour
Afficher "Voici la liste de ces notes sur 20"
Pour i de 1 à 10 Faire
Afficher note[i]*2/3
FinPour
FIN
Introduction à la programmation et algorithmique
Pièges
4 Tableaux
100
 Confondre l’indice et la valeur
 Oublier d’initialiser le tableau : variables indéfinies
 Utiliser les mêmes indices sur plusieurs tableaux
Introduction à la programmation et algorithmique
Tableau à plusieurs dimensions
4 Tableaux
101
 Un tableau à plusieurs dimensions est un tableau de
tableaux
 Permet de garder en mémoire des variables liées
entre elles et organisées par suite
 Les variables d’un tableau à plusieurs dimensions
ont toutes le même type
Introduction à la programmation et algorithmique
Déclaration
4 Tableaux
102
nomTab: tableau [min1..max1] … [min2..max2] de type
 Exemples :
matrice: tableau [1..4][1..4] de entier
note: tableau [1..5][1..10] de réel
t3D : tableau [1..5][1..10][1..30] de réel
Introduction à la programmation et algorithmique
Taille
4 Tableaux
103
 La taille d’un tableau à plusieurs dimensions est :
 Taille = max1 * max2
Introduction à la programmation et algorithmique
Manipulation
4 Tableaux
104
 Pour désigner un élément, on indique le nom du
tableau suivi de ses indices entre crochets:
 notes[1][2]
 On utilise généralement des boucles imbriquées pour
parcourir l’ensemble des éléments d’un tableau
Introduction à la programmation et algorithmique
4 Tableaux
Représentation
105
 matrice: tableau [1..4][1..4] de réel
matrice
Introduction à la programmation et algorithmique
matrice[1][1]
matrice[1][2]
matrice[1][3]
matrice[1][4]
matrice[2][1]
matrice[2][2]
matrice[2][3]
matrice[2][4]
matrice[3][1]
matrice[3][2]
matrice[3][3]
matrice[3][4]
matrice[4][1]
matrice[4][2]
matrice[4][3]
matrice[4][4]
4 Tableaux
Représentation
106
 matrice: tableau [1..4][1..4] de réel
1
2
3
4
1
matrice[1][1]
matrice[1][2]
matrice[1][3]
matrice[1][4]
2
matrice[2][1]
matrice[2][2]
matrice[2][3]
matrice[2][4]
3
matrice[3][1]
matrice[3][2]
matrice[3][3]
matrice[3][4]
4
matrice[4][1]
matrice[4][2]
matrice[4][3]
matrice[4][4]
Introduction à la programmation et algorithmique
Exemple
4 Tableaux
107
Programme conv_note
Var
note: tableau[1..5][1..10] de réels
i, k : entier
Début
Pour i de 1 à 5 Faire
Afficher «Saisir la liste des notes /30 de la matière », i
Pour k de 1 à 10 Faire
Saisir note[i][k]
FinPour
FinPour
Pour i de 1 à 5 Faire
Afficher «Voici la liste des notes sur 20 de la matière » ,i
Pour k de 1 à 10 Faire
Afficher note[i][k]*2/3
FinPour
FinPour
Fin
Introduction à la programmation et algorithmique
Initiation à la programmation
et
algorithmique
108
cours 4
Introduction à la programmation et algorithmique
Synthèse tableaux
109
 Un tableau est une structure de donnée permettant de
mémoriser des valeurs de même type
 Chaque élément d'un tableau est repéré par un indice indiquant sa
position
 La taille d'un tableau est le nombre de ses éléments
 La taille d'un tableau est fixe
 Les indices doivent obligatoirement être entiers et varier entre une
valeur minimale ( en général 0) et une valeur maximale
constantes
 Chaque élément du tableau est une variable indicée, identifiée par le
nom du tableau suivi de l'indice entre crochets.
 Les variables indicées s'utilisent comme des variables classiques
 Déclaration
tab1: tableau[1..10] d'entier
 tab2: tableau[1..10] [1..5] de réel

Introduction à la programmation et algorithmique
110
Plan
 Données
 Opérateurs
 Les instructions
 Tableaux
 Sous-programme
 Types structurés
Introduction à la programmation et algorithmique
111
5 Sous-programmes
Introduction à la programmation et algorithmique
Introduction
5 Sous-programme
112
 Sous-programme = traitement particulier appelé à
s’exécuter à l'intérieur d'un autre programme
 Utilisation :
 quand un même traitement doit être réalisé
plusieurs fois dans un programme. On écrit un sousprogramme pour ce traitement et on l'appelle à chaque
endroit où l'on en a besoin
 pour organiser le code , améliorer la conception et la
lisibilité des gros programmes
 Il existe des sous-programmes prédéfinis pouvant
être utilisés directement dans n'importe quel
programme : les librairies
Introduction à la programmation et algorithmique
5 Sous-programme
Sous programme
Programme d’identification
113
*******************
###################
*******************
Veuillez saisir votre nom
durand
Veuillez saisir votre prenom
alain
*******************
###################
*******************
veuillez saisir votre annee de naissance
1943
*******************
###################
*******************
Introduction à la programmation et algorithmique
5 Sous-programme
Sous programme
114
Programme
Afficher
titre
Afficher
ligne étoiles
Sous-programme
Programme
lignes
identification
Afficher
ligne dièses
Afficher
ligne étoiles
Afficher
Demande
nom
Saisir
nom
Afficher
Demande
prénom
Saisir
prénom
Afficher
ligne étoiles
Afficher
ligne dièses
Afficher
ligne étoiles
Afficher
Demande
Année nais.
Saisir
Année nais.
Introduction à la programmation et algorithmique
Afficher
ligne étoiles
Afficher
ligne dièses
Afficher
ligne étoiles
5 Sous-programme
Sous programme
115
Sous-programme
Afficher
Ligne étoiles
Introduction à la programmation et algorithmique
Sous-programme
Programme
lignes
identification
Afficher
Ligne dièses
Afficher
Ligne étoiles
5 Sous-programme
Sous programme
116
Programme
Sous-programme
Programme
lignes
identification
identification
Programme appelant
Afficher
titre
Appel
Lignes
Afficher
Demande
nom
Saisir
nom
Introduction à la programmation et algorithmique
Afficher
Demande
prénom
Saisir
prénom
Appel
Lignes
Afficher
Saisir
Appel
Demande
Année nais. Lignes
Année nais.
5 Sous-programme
Fonctions 117
et procédures
 2 sortes de sous-programmes :
 les fonctions
 les procédures
 L'appel d'une fonction est une expression, tandis que
l'appel d'une procédure est une instruction :
 une fonction renvoie un résultat
 une procédure ne renvoie rien
Introduction à la programmation et algorithmique
5 Sous-programme : les procédures
Procédures
118
 Une procédure est un ensemble d'instructions
regroupées sous un nom, qui réalise un traitement
particulier dans un programme lorsqu'on l'appelle
 Comme un programme, une procédure possède
 un nom
 des variables
 des instructions
 un début
 une fin
Introduction à la programmation et algorithmique
5 Sous-programme : les procédures
Syntaxe définition
119
 DEFINITION d'une procédure :
Procédure maProcedure( )
//déclaration des variables
Var var1 : entier
Début
/*
instructions 1
instructions 2
*/
FinProc
Introduction à la programmation et algorithmique
En-tête
Corps
Exemple
5 Sous-programme : les procédures
120
Procédure lignes( )
Var etoile, diese : chaine
Début
etoile <- «*******************»
diese <- «###################»
Afficher etoile
Afficher diese
Afficher etoile
FinProc
Introduction à la programmation et algorithmique
5 Sous-programme : les procédures
Appel d’une procédure
121
 Pour déclencher l'exécution d'une procédure dans
un programme, il suffit de l'appeler :
 indiquer son nom suivi de parenthèses
PROGRAMME monProgr
VAR
varEntier1 : entier
varChaine : chaîne
DEBUT
/*instuctions*/
maProcedure()
/*instuctions*/
FIN
Introduction à la programmation et algorithmique
Exemple
5 Sous-programme : les procédures
122
Programme id
Var
nom, prenom: chaine
anneeNaissance : entier
Début
Afficher « Programme d’identification »
lignes()
Afficher « veuillez saisir votre nom »
Saisir nom
Afficher « veuillez saisir votre prenom »
Saisir prenom
lignes()
Afficher « veuillez saisir votre annee de naissance »
Saisir anneeNaissance
lignes()
Fin
Introduction à la programmation et algorithmique
5 Sous-programme : les procédures
Exécution
123
 Appel d'une procédure
1.
2.
3.
arrêt momentané de l'exécution du programme appelant
Exécution des instructions de la procédure
Reprise de l’exécution du programme appelant là où il s'était
arrêté (instruction suivant l’appel)
 Une procédure peut être appelée soit par un
programme, soit par un autre sous-programme
(qui lui même a été appelé)
 Les appels de sous-programmes peuvent
s'imbriquer autant de fois que cela est utile
Introduction à la programmation et algorithmique
Exécution 124
Programme d’identification
*******************
###################
*******************
Veuillez saisir votre nom
durand
Veuillez saisir votre prenom
alain
*******************
###################
*******************
veuillez saisir votre annee de naissance
1943
*******************
###################
*******************
Programme id
Var
nom, prenom: chaine
anneeNaissance : entier
Début
Afficher « Programme d’identification »
ligneEtoile ()
Afficher « veuillez saisir votre nom »
etoile <- «**********»
Saisir nom
diese <- «##########»
Afficher « veuillez saisir votre prenom »
Afficher etoile
Saisir prenom
Afficher diese
ligneEtoile ()
etoile <-etoile
«**********»
Afficher
Afficher « veuillez saisir votre annee de naissance »
diese <- «##########»
Saisir anneeNaissance
Afficher etoile
ligneEtoile ()
Afficher
etoile <-diese
«**********»
Fin
Afficher
etoile
diese
<- «##########»
Afficher etoile
Afficher diese
Afficher etoile
Introduction à la programmation et algorithmique
5 Sous-programme : les procédures
Variables locales
125
 Les variables déclarées dans une procédure ne sont
pas utilisables dans le programme appelant
 Les variables déclarées dans le programme
appelant ne sont pas utilisables dans les
procédures
 Chaque programme et sous-programme a son
propre espace de variables, inaccessible par les
autres
 les variables sont dites LOCALES
 Il peut exister des variables globales, mais leur
usage est déconseillé (et donc sanctionné)
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Paramètre
126
 Comment sous-programmes et programmes vont
pouvoir communiquer des données ?
 Grâce aux paramètres
 Grâce aux messages
 Grace au réseau
 …
 Un paramètre est une variable particulière qui sert à
la communication entre programme appelant et
sous-programme.
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Paramètre
127
 Un paramètre est une variable particulière qui sert à
la communication entre programme appelant et
sous-programme.
 Elle a un nom et un type
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Syntaxe définition
128
 DEFINITION d'une procédure avec paramètre :
Procédure maProcedure(donnée monParamètre : entier)
//déclaration des variables locales
Var var1 : entier
Paramètre formel
Début
/*
instructions avec monParamètre
instructions avec var1
*/
FinProc
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Exemple
129
Procédure lignes(donnée nbColonnes : entier)
Var
cpt : entier
Début
Pour cpt de 1 à nbColonnes Faire
Afficher '*'
FinPour
Pour cpt de 1 à nbColonnes Faire
Afficher ‘#'
FinPour
Pour cpt de 1 à nbColonnes Faire
Afficher '*'
FinPour
FinProc
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Appel avec paramètre
130
 Pour appeler une procédure avec un paramètre, il
faut mettre la valeur du paramètre entre
parenthèse
PROGRAMME monProgr
VAR
varEntier1 : entier
varChaine : chaîne
DEBUT
/*instuctions*/
maProcedure(varEntier1)
maProcedure(3)
/*instuctions*/
FIN
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Exemple
131
**************************************
######################################
**************************************
Programme d’identification
*******************
###################
*******************
Veuillez saisir votre nom
durand
Veuillez saisir votre prenom
alain
*******************
###################
*******************
veuillez saisir votre annee de naissance
1943
**************************************
######################################
**************************************
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Programme appelant
132
Programme id
Const
largeur <- 20 : entier
Var
nom, prenom: chaine
anneeNaissance : entier
Début
lignes(largeur * 2, 255,0,0)
Afficher « Programme d’identification »
lignes(largeur, 255,255,255)
Afficher « veuillez saisir votre nom »
Saisir nom
Afficher « veuillez saisir votre prenom »
Saisir prenom
lignes(largeur, 255,255,255)
Afficher « veuillez saisir votre annee de naissance »
Saisir anneeNaissance
lignes(largeur * 2, 255,0,0)
Fin
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Paramètre tableau
133
Procédure affTab(donnée tab : tableau[1..10] de réels)
Var
i : entier
Début
Pour i de 1 jusqu'à 10 Faire
Afficher tab[i]
FinPour
FinProc
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Paramètre tableau
134
Programme tableau
Var
monTab : tableau[1..10] de réels
i : entier
Début
Afficher « Saisir 10 réels »
Pour i de 1 jusqu'à 10 Faire
Saisir monTab[i]
FinPour
Afficher « les valeurs saisies sont »
affTab(monTab)
Fin
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Plusieurs paramètres
135
 Une procédure peut avoir plusieurs paramètres :
Procédure maProcedure(donnée Par1 : entier, par2 : réel)
 Le nombre et l’ordre des paramètres à l'appel doit
être exactement le même
maProcedure(varE, varR)
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Exemple : définition
136
Procédure lignes(donnée nbetoiles, nbDiese : entier)
Var
cpt : entier
Début
Pour cpt de 1 jusqu'à nbetoiles Faire
Afficher '*'
FinPour
Pour cpt de 1 jusqu'à nbDiese Faire
Afficher ‘#'
FinPour
Pour cpt de 1 jusqu'à nbetoiles Faire
Afficher '*'
FinPour
FinProc
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Exemple
137
**************************************
###################
**************************************
Programme d’identification
*******************
###################
*******************
Veuillez saisir votre nom
durand
Veuillez saisir votre prenom
alain
*******************
###################
*******************
veuillez saisir votre annee de naissance
1943
**************************************
###################
**************************************
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Exemple : programme appelant
138
Programme id
Const
largeur <- 10 : entier
Var
nom, prenom: chaine
naissance : entier
Début
lignes(largeur * 2, largeur)
Afficher « Programme d’identification »
lignes(largeur, largeur)
Afficher « veuillez saisir votre nom »
Saisir nom
Afficher « veuillez saisir votre prenom »
Saisir prenom
lignes(largeur , largeur)
Afficher « veuillez saisir votre annee de naissance »
Saisir naissance
lignes(largeur * 2 , largeur)
Fin
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Fonctionnement
139
 Lors de l'appel de la procédure, la valeur du
paramètre effectif passée en argument est copiée
dans le paramètre formel (qui est une variable
locale)
 La procédure effectue alors le traitement avec la
variable
 La procédure n'utilise pas directement la variable
mise en paramètre effectif : elle utilise sa valeur,
qu'elle a recopiée dans sa propre variable locale (le
paramètre formel)
Introduction à la programmation et algorithmique
Pièges
5 Sous-programme : les paramètres
140
 Il est primordial de bien distinguer :
 les paramètres formels qui se trouvent dans l'en-tête d'une
procédure lors de sa définition
 et les paramètres effectifs (ou arguments) qui sont placés entre
parenthèses lors de l'appel
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Paramètres formels
141
 placés dans la définition d'une procédure
 servent à décrire le traitement à réaliser par la
procédure indépendamment des valeurs traitées
 Ce sont des variables locales à la procédure
 ils sont déclarés dans l'entête de la procédure
Introduction à la programmation et algorithmique
5 Sous-programme : les paramètres
Paramètres effectifs
142
 placés dans l'appel d'une procédure
 Lors de l'appel, leur valeur est recopiée dans les
paramètres formels correspondants
 Un paramètre effectif en donnée peut être
 soit une variable du programme appelant (nomVar)
 soit une valeur littérale (3)
 soit le résultat d'une expression (5 * x)
Introduction à la programmation et algorithmique
5 Sous-programme : les fonctions
Les Fonctions
143
 Une fonction est un ensemble d'instructions
regroupées sous un nom, qui réalise un traitement
particulier dans un programme lorsqu'on l'appelle
et retourne un résultat au programme appelant
 Comme un programme et une procédure, une
fonction possède :
 un nom
 des variables
 des instructions
 un début
 une fin
Introduction à la programmation et algorithmique
5 Sous-programme : les fonctions
Les Fonctions
144
 Sous-programmes retournant un et un seul résultat au
programme appelant
 Les fonctions sont appelées pour récupérer une valeur
(alors que les procédures ne renvoient aucune valeur)
 L'appel des fonctions est différent de l'appel des procédures
:
 L'appel d'une fonction doit obligatoirement se trouver à l'intérieur
d'une instruction qui utilise sa valeur
 Le résultat d'une fonction doit obligatoirement être retourné au
programme appelant par l'instruction Retourne
Introduction à la programmation et algorithmique
5 Sous-programme : les fonctions
Syntaxe définition
145
 DEFINITION d'une fonction :
Fonction maFonction(/*paramètres*/) : type
//déclaration des variables
Var maVar : entier
Début
Corps
/*instructions*/
Retourne
maVar
5 * maVar
Retourne valeur
15
FinFonction
Introduction à la programmation et algorithmique
En-tête
Exemple
5 Sous-programme : les fonctions
146
FONCTION calSomN (Donnée e : entier) : entier
VAR res, i : entier
DEBUT
res <- 0
Si e > 0
alors
Pour i de 1 à e Faire
res <- res + i
FinPour
Finsi
Retourne Res
FINFONCTION
Instruction de retour
Introduction à la programmation et algorithmique
5 Sous-programme : les fonctions
Appel de fonction
147
PROGRAMME monProgr
VAR
varE, varR : entier
varChaine : chaîne
DEBUT
/*instuctions*/
varR <- maFonction(varE)
varR <- maFonction(5)
varR <- maFonction(3 * varE)
/*instuctions*/
FIN
Introduction à la programmation et algorithmique
Exemple
5 Sous-programme : les fonctions
148
Programme sommesDesN1erEntiers
Var
x, somme : entier
rep : caractère
Début
Répéter
Afficher « Entrez un entier > 0 »
Saisir x
somme <- calSomN (x)
Afficher «la somme des », x, « 1er entiers est », somme
Afficher «voulez-vous continuez ? (O/N)»
Saisir rep
Jusqu’à rep = ‘N’
Afficher « au revoir »
Fin
Introduction à la programmation et algorithmique
Téléchargement