Académique Documents
Professionnel Documents
Culture Documents
Introduction à la Programmation
Notes de cours
Cours à destination
du Bloc 1
de Bachelier en techniques infographiques
Année académique
2022 – 2023
Introduction à la programmation Notes de cours
2
Introduction à la programmation Notes de cours
0. Bases de l’algorithmique
0.1.1 Algorithmes et vie courante
Dans la vie de tous les jours, nous avons déjà tous conçu des algorithmes :
• Indiquer un chemin ;
• Suivre un mode d’emploi ;
• Appliquer une recette ;
• …
Il s’agit de suites d’instructions exécutées par un agent, dans un certain ordre et dans un temps donné,
pour obtenir le résultat souhaité.
0.1.3 Conception
Structure séquentielle d’un algorithme
Un algorithme est une séquence d’instructions qui se suivent.
Ces instructions peuvent être de 4 types :
• Affectation de variables
• Lecture / écriture
• Tests
• Boucles
Un algorithme informatique se ramène donc toujours à la combinaison de
ces quatre petites briques de base.
3
Introduction à la programmation Notes de cours
Exemple : On veut qu’à l’ouverture de la page Internet un message personnalisé avec notre prénom
nous accueille
Algorithme Pseudo-code
begin
// Déclaration des variables
Str prenom
// Corps de l’algorithme
write : ʺ Quel est votre prénom ? ʺ \n
prenom = read
write : ʺ Bonjour ʺ+ prenom \n
end
En JavaScript
4
Introduction à la programmation Notes de cours
1. Affectation de variables
1.1 Variables
Une variable est une zone mémoire contenant une valeur que l'on peut modifier, et que l'on référence
en lui donnant un nom.
Pour déclarer une variable, il faut indiquer le mot clef relatif au type, suivi begin
du nom de la variable. Il est possible de déclarer plusieurs variables d’un Int age, numero
même type sur une seule ligne en les séparant par des virgules. Str nom, prenom
Bool Flag
…
end
5
Introduction à la programmation Notes de cours
1.1.4 Commentaires
Lors de la déclaration des variables, il est fortement conseillé de mettre une description permettant
de savoir quelle information est stockée dans chaque variable.
Cette description se fait dans une zone de commentaires. Les zones de commentaires sont des zones
non exécutées par le programme.
• En fin de ligne : // le commentaire se trouve après
• Dans une zone restreinte ou sur plusieurs lignes : /* le commentaire se trouve entre */
Les programmeurs commentent toujours leurs codes, cela leur permet de communiquer plus
facilement avec une autre personne et également de se rappeler ce que l’on a fait.
6
Introduction à la programmation Notes de cours
7
Introduction à la programmation Notes de cours
Ligne 3 : Le texte « Loulou » est affecté à la variable Riri. Les autres variables n’ont pas encore de
valeur.
Ligne 4 : Le texte « Riri » est affecté à la variable Fifi. La valeur de la variable Riri n’est pas modifiée et
Loulou n’a toujours pas de valeur.
Ligne 5 : Le contenu de la variable Riri est affecté à la variable Loulou. Le texte « Loulou » se trouve
donc dans la variable Riri. Les autres variables ne sont pas modifiées
Ligne 6 : Fin de l’algorithme (end).
Ex 1.3. Quel type de variable choisir pour contenir les informations suivantes ?
Une moyenne Un prénom Une réponse de type oui ou non
Un compteur Le résultat d’un quotient Un âge
Le résultat d’une division Un prix Une information du type « < »
Une phrase Le résultat d’un produit ou « > » ou « = »
Quelles seront les valeurs des variables après exécution des instructions suivantes ?
/* Déclaration des variables */
Int A, B, C, D // Nombres
Str I, J, K // Mots
Ex 1.4. Ex 1.5. Ex 1.6. Ex 1.7.
begin begin begin begin
A=1 A=5 I = ʺ 423 ʺ I = ʺ 423 ʺ
B=A+3 B=3 J = ʺ 12 ʺ D = 12
A=3 C=A+B K=I+J K=I+D
end A=2 end end
C=B-A
end
8
Introduction à la programmation Notes de cours
end
Ex 1.11. Ecrire un algorithme qui permet de transférer le contenu de trois variables A, B et C
de la manière suivante : A dans C, B dans A et C dans B.
Ex 1.12. Ecrire un algorithme qui calcule la valeur du carré de 12.
Ex 1.13. Ecrire un algorithme qui calcule la longueur du mot « Avada Kedavra ».
Ex 1.14. Ecrire un algorithme qui calcule le périmètre et l’aire d’un cercle de rayon 5.
9
Introduction à la programmation Notes de cours
2. Lecture et écriture
2.1 Les instructions de write et read
Dès que le programme rencontre une instruction … = read, l’exécution s’interrompt, attendant la
frappe d’une valeur au clavier. Tout ce qui a été frappé avant la touche Entrée est stocké dans la
variable qui précède l'instruction = read (ici VAR). Et ensuite, immédiatement, la machine exécute
l'instruction suivante.
« = read » est donc une autre manière d'affecter une valeur à une variable.
Dès que le programme rencontre une instruction write : …, le programme affiche du texte à l’écran
(ici, le contenu de la variable VAR). L’instruction \n sera utilisée pour spécifier un retour à la ligne.
Avant de demander une variable, il est très fortement conseillé d’écrire des libellés à l’écran, afin de
prévenir l’utilisateur de ce qu’il doit entrer.
Ecrire plusieurs composants sur une même ligne : regrouper les chaînes de caractères avec « + »
10
Introduction à la programmation Notes de cours
Déclara on
Dans le diagramme de programmation, on utilise le symbole ▱ pour les affectations des variables
des variables par l’utilisateur et pour le renvoi des résultats vers l’utilisateur.
A ecta on des
variables par
l u lisateur
2.4 Exercices Opéra ons sur
les variables
begin
Int Val, Double // Nombre et le double de ce nombre
write : ʺEntrez une valeurʺ \n
Val = read
Double = Val * 2
write : ʺLe double de cette valeur est : ʺ+ Double \n
end
Ex 2.2. Ecrire un algorithme qui demande son prénom à l'utilisateur, et qui lui réponde par un
charmant « Bonjour » suivi du prénom. On aura ainsi le dialogue suivant :
Ecran : Entrées utilisateur :
Quel est votre prénom ?
Marie Cunégonde
Bonjour, Marie Cunégonde !
Ex 2.3. Ecrire un algorithme qui demande un mot à l’utilisateur puis qui affiche les versions
minuscule et majuscule de ce mot.
11
Introduction à la programmation Notes de cours
Ex 2.4. Ecrire un programme qui demande le prix d’un article et le nombre de cet article ;
puis qui fournit le prix total correspondant. On aura ainsi le dialogue suivant :
Ecran : Entrées utilisateur :
Entrez le prix d’un article : 3.99
Entrez le nombre d’articles : 4
Le prix total est : 15.96
Ex 2.5. Ecrire un algorithme qui demande à l’utilisateur d’entrer un texte, puis qui calcule et
affiche le nombre de caractères contenus dans ce texte.
Ex 2.6. Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et
affiche le carré de ce nombre.
Ex 2.7. Ecrire un algorithme qui demande à l’utilisateur la longueur et la largeur des côtés
d’un rectangle. Le programme calcule alors le périmètre et l’aire du rectangle puis affiche
les réponses.
12
Introduction à la programmation Notes de cours
Le test a une valeur VRAIE ou FAUSSE. Il s’agit soit d’une variable de type booléen, soit d’une condition.
• Si le test est vrai, les instructions entre then et end if sont exécutées, puis l’exécution de
l’algorithme reprend normalement après end if.
• Si le test est faux, les instructions entre then et end if ne sont pas exécutées, puis l’exécution
de l’algorithme reprend normalement après end if.
• Si le test est vrai, les instructions entre then et else sont exécutées, celles entre else et end if ne
sont pas exécutées, puis l’exécution de l’algorithme reprend normalement après end if.
• Si le test est faux, les instructions entre then et else ne sont pas exécutées, celles entre else et
end if sont exécutées, puis l’exécution de l’algorithme reprend normalement après end if.
13
Introduction à la programmation Notes de cours
Dans une structure conditionnelle, seuls les mots clés de la forme simple sont obligatoires.
• Il peut y avoir autant de else if que nécessaire (ou aucun) ;
• S’il y a un else, il est unique et représente obligatoirement la dernière possibilité.
3.2 Conditions
Non ( ! ) : Si « Condition1 » est VRAI alors « NON Condition1 » est FAUX et vice versa
𝑥 > 5 𝒆𝒕 𝑥 ≤ 8 𝑥 ≤ 5 𝒐𝒖 𝑥 > 8
La négation d’un ET devient OU et la négation d’un OU devient ET (lois de De Morgan).
Attention : ne pas formuler une condition qui ne pourra jamais être vraie, ou jamais être fausse
𝑥≤5 𝑥>5
ET OU
𝑥>8 𝑥≤8
14
Introduction à la programmation Notes de cours
1. begin
2. Int Note // Note de l’examen de progra
3. write : ʺEntrez la note de votre examen de programmation :ʺ \n
4. Note = read
5. if Note < 0 || Note > 20 then
6. write : ʺNote non valideʺ \n
7. else if Note ≥ 16 then
8. write : ʺVous avez obtenu les félicitations !“\n
9. else if Note ≥ 10 then
10. write : ʺVous avez réussi en programmation !“\n
11. else
12. write : ʺVous avez échouez en programmationʺ
13. end if
14. end
15
Introduction à la programmation Notes de cours
Ligne 10 : Instruction exécutée ssi la condition de la ligne 9 est vérifiée. Dans ce cas, le
programme affiche (write) le grade correspondant (réussite). Les conditions suivantes ne sont
alors pas testées et le programme reprend son exécution après le end if.
Ligne 11 : Si toutes les conditions précédentes sont fausses, alors on arrive dans le else. Il
représente la plage des valeurs qui n’a pas encore été testée, à savoir celles comprises entre
0 et 10.
Ligne 12 : Instruction exécutée ssi toutes les autres conditions sont fausses. Dans ce cas, le
programme affiche (write) la mention liée à cette dernière plage, qu’il s’agit d’un échec.
Ligne 13 : Fin de la structure conditionnelle (end if).
Ligne 14 : Fin de l’algorithme (end). egin
Déclara on
3.4 Organigramme de programmation des variables
Renvoi des
3.5 Exercices résultats à
l u lisateur
end
3.5.1 Exercices faits en classe
Ex 3.1. Écrire un programme qui calcule le quotient de deux nombres a et b donnés par
l’utilisateur : b/a.
Ex 3.2. Ecrire un algorithme qui demande son âge à l’utilisateur. S’il n’a pas encore 12 ans, le
programme répond qu’il paye le tarif enfant, sinon qu’il paye le tarif adulte.
Ex 3.3. Ecrire un algorithme qui demande la capitale du Brésil à l’utilisateur. S’il entre la bonne
réponse « Brasilia », le programme l’informe qu’il a gagné, sinon qu’il a perdu.
Ex 3.4. Ecrire un algorithme qui demande 2 mots à l’utilisateur et qui retourne lequel des deux
est le plus long ainsi que celui qui est le 1er dans l’ordre alphabétique.
Ex 3.5. Ecrire un algorithme qui demande une lettre comprise entre h (exclu) et x (inclus), le
programme valide si la lettre est bien rentrée, sinon il retourne un message d’erreur.
Ex 3.6. Ecrire un algorithme qui demande un nombre plus petit (inclus) que 4, ou plus grand
(exclu) que 12, le programme valide si le nombre est bien rentré, sinon il retourne un
message d’erreur.
Ex 3.7. Ecrire un algorithme qui demande un nombre qui vérifie l’inverse de la condition
suivante : Plus grand que 5 (exclu) et plus petit (inclus) que 8. Le programme valide si le
nombre est bien rentré, sinon il retourne un message d’erreur.
Ex 3.8. Compléter les « write » en fonction du résultat de la condition. Pour ce faire,
Remplir le tableau ci-dessous avec vrai/faux dans chaque case; puis calculer la valeur de
m*n.
16
Introduction à la programmation Notes de cours
begin
Int m, n // Nombres
write : ʺEntrez deux nombres :ʺ \n
m = read
n = read
if (m > 0 && n > 0) || (m < 0 && n < 0) then
write : ʺ ʺ \n
else
write : ʺ ʺ \n
end if
end
Ex 3.9. Ecrire un algorithme qui demande une lettre à l’utilisateur. Si c’est une consonne, le
programme écrit la couleur « rouge », si c’est une voyelle, il écrit la couleur « vert ».
Ex 3.10. Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si
ce nombre est positif, négatif ou nul.
Ex 3.11. Un radar sur une autoroute permet de mesurer la vitesse des véhicules. On
demande d'écrire un programme qui, à partir de la vitesse observée, affiche le montant de
l'amende.
Pas d’amende en dessous de 120 km/h,
L’amende est de 100€ si la vitesse est entre ]120 et 140 km/h],
L’amende est de 300€ si la vitesse est supérieure à 140 km/h.
Ex 3.12. Compléter les conditions de l’algorithme suivant de manière optimisée. Tester le
code pour les températures suivantes: 4; -18; 100; 0; 180
(on considère qu’à 0° c’est de la glace et à 100° de la vapeur)
begin Cdt: répondre Vrai, Faux ou Non testé
Int Temp // Température de l’eau Instructions: répondre si exécutées
write : ʺEntrez la température de l’eau :ʺ \n
Temp = read 4 -18 100 0 180
if …………………………………………. Cdt1
write : ʺC’est de la glaceʺ \n Instructions
…………………………………………….. Cdt2
write : ʺC’est du liquideʺ \n Instructions
…………………………………………….. Cdt3
write : ʺC’est de la vapeurʺ \n Instructions
end if Cdt: répondre Vrai, Faux ou Non testé
end Instructions: répondre si exécutées
Ex 3.13. Ecrire un algorithme qui demande à l’utilisateur la longueur et la largeur des côtés
d’un rectangle. Le programme demande également à l’utilisateur s’il veut calculer le
périmètre et s’il veut calculer l’aire du rectangle. Ces informations sont des valeurs logiques
Vrai / Faux. Le programme calcule ce qui est demandé puis affiche la(les) réponse(s)
17
Introduction à la programmation Notes de cours
Ex 3.14. Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il
l’informe de sa catégorie : Poussin de 6-7 ans ; Pupille de 8-9 ans ; Minime de 10-11 ans ;
Cadet après 12 ans et Senior après 18 ans.
Ex 3.15. Ecrire un algorithme qui demande 3 nombres à l’utilisateur, puis indique s’ils ont
été introduits dans un ordre croissant décroissant, ou quelconque.
18
Introduction à la programmation Notes de cours
3 -8 20 22 0 17 10
Cdt1
Instructions
Cdt2
Instructions
Cdt3
Instructions
19
Introduction à la programmation Notes de cours
Dans une structure pré-test, la condition de boucle se situe en début de boucle. Si, lors du premier
passage, la condition est fausse, on n’entre pas dans la boucle et les instructions qui y sont relatives
ne sont pas exécutées.
La condition de la boucle fait intervenir une ou des variables. Pour pouvoir être testées, ces variables
doivent impérativement contenir une valeur. Au préalable, il est donc parfois nécessaire d’initialiser la
variable intervenant dans la condition de boucle.
20
Introduction à la programmation Notes de cours
Association de structures
Des structures peuvent être imbriquées ou successives mais JAMAIS croisées !
4.2 Drapeaux
Utilisation d’une variable booléenne comme « Flag » ; le
flag est un petit drapeau qui reste baissé aussi longtemps
que l’événement attendu ne se produit pas ; et qui se lève
dès que cet événement a lieu.
4.3 Compteurs
Dans une boucle, il est parfois nécessaire de compter des évènements ou le nombre de passages dans
la boucle.
21
Introduction à la programmation Notes de cours
Boucle « for »
La structure « for … end for » est un cas particulier de while où l’on peut dénombrer à l’avance le
nombre de tours de boucles nécessaires. La triple gestion du compteur se fait en une seule ligne :
Progression du compteur
Dans la boucle for, la progression du compteur est laissée à votre libre disposition.
• Dans la plupart des cas, on a besoin d’une variable qui augmente de 1 à chaque tour de boucle.
• Il est également possible d’avoir une progression plus spéciale, de 2 en 2, ou de 3 en 3, ou en
arrière, de –1 en –1, ou de –10 en –10.
Il suffit de le préciser la valeur du step à l’instruction de la boucle.
22
Introduction à la programmation Notes de cours
23
Introduction à la programmation Notes de cours
Ligne 7 : A chaque tour de boucle, on ajoute la nouvelle note introduite à la somme des notes
précédentes.
Ligne 8 : Fin de la structure répétitive (end for). Le programme remonde au début de la boucle (ligne
4) si la boucle n’a pas encore été faite le nombre de fois souhaitées.
Ligne 9 : Affichage écran (write) du résultat calculé. La moyenne est obtenue en divisant la somme
des notes contenue dans la variable Som, par le nombre de valeur (ce qui correspond au
compteur i).
Ligne 10 : Fin de l’algorithme (end).
Dans le diagramme de programmation, on utilise le symbole ⃟ pour marquer les conditions. Dans le
cas d’une boucle, à la fin des instructions de celle-ci, le programme revient à la condition de départ et
vérifie si elle est tou ours vraie. Si c’est le cas, il refait une fois la boucle, cependant, si elle est fausse,
il sort de la boucle et continue l’exécution du reste du code.
4.6.1 La somme
Pour faire l’addition de nombre a outés à chaque passage dans la boucle, il faut 2 variables : une
variable pour stocker le dernier nombre introduit et une variable pour stocker la somme.
1. Avant la boucle, initialiser la variable somme à 0, car rien n’a encore été comptabilisé à ce
stade ;
2. Dans la boucle, chaque nouvelle valeur à comptabiliser est ajoutée à la somme précédente. De
cette manière, la somme est tenue à our au fur et à mesure de l’encodage :
somme = somme + nouvelle valeur
3. La valeur finale de la somme représente le total des nombres qui ont été ajoutés.
24
Introduction à la programmation Notes de cours
4.6.2 La moyenne
La moyenne d’une série de nombre se calcule en divisant leur somme totale par le nombre de valeurs
𝑁 +𝑁 +⋯+𝑁𝑛 𝑠𝑜𝑚𝑚𝑒
qui interviennent dans cette somme. 𝑚𝑜𝑦𝑒𝑛𝑛𝑒 = 1 2𝑛 = 𝑛
Il faut 3 variables : une variable pour stocker le dernier nombre introduit, une variable pour stocker la
somme et un compteur qui totalise le nombre de nombres.
1. Avant la boucle, initialiser les variables somme et compteur à 0, car rien n’a encore été
comptabilisé à ce stade ;
2. Dans la boucle, chaque nouvelle valeur à comptabiliser est ajoutée à la somme précédente et
le compteur est incrémenté. De cette manière, la somme et le compteur sont tenus à jour au
fur et à mesure de l’encodage :
somme = somme + nouvelle valeur
compteur = compteur + 1
3. La valeur finale de la somme représente le total des nombres qui ont été ajoutés.
4. La moyenne se calcule en une fois après la boucle en divisant la somme par le compteur.
4.6.3 Le produit
Pour faire le produit de nombres introduits à chaque passage dans la boucle, il faut 2 variables : une
variable pour stocker le dernier nombre introduit et une variable pour stocker le produit.
1. Avant la boucle, initialiser la variable produit à 1, car c’est le neutre pour la multiplication (ça
signifie que multiplier par 1 ne change pas le résultat), tandis que multiplier par 0 donnera
toujours 0.
2. Dans la boucle, chaque nouvelle valeur à comptabiliser est multipliée au produit précédent.
De cette manière, le produit est tenu à our au fur et à mesure de l’encodage :
produit = produit * nouvelle valeur
3. La valeur finale du produit représente le résultat de la multiplication des nombres qui ont été
introduits.
25
Introduction à la programmation Notes de cours
• Si la nouvelle valeur est plus petite que le minimum, alors le minimum prend cette nouvelle
valeur.
4.7 Exercices
26
Introduction à la programmation Notes de cours
Ex 4.6. Ecrire un algorithme qui demande successivement des nombres positifs à l’utilisateur,
et qui lui dise ensuite quel est le plus grand parmi ces nombres ; la saisie s’arrête lorsque
l’utilisateur entre un zéro.
▪ Compteur
Ex 4.7. Ecrire un algorithme qui demande à l’utilisateur d’entrer des nombres. La saisie s’arrête
quand l’utilisateur entre « 0 ». Le programme indique alors combien de nombres positifs et
négatifs ont été introduits.
Ex 4.8. Ecrire un programme qui demande des mots à l'utilisateur. On s'arrête lorsque on
introduit « stop », et on affiche le nombre de fois que l'on a introduit « attention ».
Ex 4.9. Ecrire un algorithme qui demande des nombres à l’utilisateur. Le programme
s’arrête lorsque l’utilisateur introduit trois fois successivement 0. Le programme affiche alors
le nombre de nombres non nuls introduits par l’utilisateur et leur produit.
▪ Drapeau
Ex 4.10. Ecrire un algorithme qui demande une lettre usqu’à ce que l’utilisateur introduise la
lettre « z ». Le programme annonce à l’utilisateur si des voyelles ont été introduites.
Ex 4.11. Ecrire un algorithme qui demande des mots. S’arrêter lorsque on a introduit les
mots "stop" et "attention", dans n'importe quel ordre.
Ex 4.12. Ecrire un algorithme qui demande des mots. S’arrêter à la lecture de stop, pour
autant que "attention" ait été lu auparavant.
Boucle for
Ex 4.13. Ecrire un algorithme qui demande un nombre à l’utilisateur, et qui affiche le décompte
depuis ce nombre jusque 0.
Ex 4.14. Ecrire un algorithme qui demande un nombre de départ, et qui affiche ensuite les dix
nombres suivants.
Ex 4.15. Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de
multiplication de ce nombre.
▪ Somme, moyenne, produit, plus petit et plus grand
Ex 4.16. Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des
entiers usqu’à ce nombre.
Ex 4.17. Que fait l’algorithme ? Compléter les affichages finaux. Tester le contenu des variables
pour les 5 premiers mots introduits: IronMan, SpiderMan, Thor, CaptainAmerica,
BlackWidow
begin
Str Mot, mot1, mot2
Int i, c1, c2
write : ʺEntrez un mot ʺ \n
Mot = read
c1 = string.length(Mot)
mot1 = Mot
c2 = string.length(Mot)
mot2 = Mot
for i from 2 to 100 by step of 1
write : ʺEntrez un mot ʺ \n
Mot = read
if string.length(Mot) > c1 then
c1 = string.length(Mot)
27
Introduction à la programmation Notes de cours
mot1 = Mot
else if string.length(Mot) < c2 then
c2 = string.length(Mot)
mot2 = Mot
end if
endfor
write : ʺ …………………………………………………………………………………………………………………..ʺ + mot1 \n
write : ʺ …………………………………………………………………………………………………………………..ʺ + mo2 \n
end
Ex 4.18. Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui
lui dit ensuite quel était le plus grand parmi ces 20 nombres, ainsi que la position où il a été
saisi.
Ex 4.19. A la naissance de Marie, son grand-père lui ouvre un compte bancaire. Dès sa
naissance et à chaque anniversaire, il lui verse 100 €, auxquels il a oute le double de son âge
(Ex : pour ses deux ans : + 104 €). Ecrire un algorithme qui permette de déterminer quelle
somme totale recevra Marie pour ses 18 ans.
28
Introduction à la programmation Notes de cours
Ex 4.26. Ecrire un algorithme qui demande à l’utilisateur d’entrer des nombres. La saisie
s’arrête quand l’utilisateur a entré deux fois « 0 » (n’importe quand). Le programme affiche
alors le carré de la somme des nombres positifs.
▪ Drapeau
Ex 4.27. Ecrire un algorithme qui demande mots à l’utilisateur usqu’à ce qu’il entre le mot « stop ».
Le programme lui indique si au moins un mot de plus de 10 lettres ont été introduits.
Boucle for
▪ Somme, moyenne, produit, plus petit et plus grand
Ex 4.28. Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
Ex 4.29. Ecrire un algorithme qui demande 10 mots à l’utilisateur, puis qui lui dit le nombre total
de caractères qui ont été introduits
Ex 4.30. Ecrire un algorithme qui demande 5 nombres à l’utilisateur, puis qui calcule et affiche
le produit des nombre paires.
▪ Drapeau
Ex 4.31. Si N est un nombre positif donné par l’utilisateur, le programme choisit un nombre
secret entre 1 et N, et l’utilisateur doit le deviner en un maximum de 15 essais. Le programme
doit signaler au joueur si le nombre à trouver est plus petit ou plus grand que celui généré.
Lorsque l’utilisateur a trouvé, l’ordinateur donne le nombre de coups oués ou lui signale qu’il
a perdu.
▪ Boucles imbriquées
Ecran :
Ex 4.32. Ecrire un algorithme qui dessine un carré de 10 lignes de 10 symboles ##########
« # ». …
##########
Ecran :
Ex 4.33. Ecrire un algorithme qui dessine un rectangle de 10 lignes de 100 #####… ### … #####
…
symboles « # ». #####… ### … #####
Ecran :
Ex 4.34. Ecrire un algorithme qui dessine un escalier de 10 lignes #
##
symboles « # ». ###
####
#####
######
#######
########
#########
Ex 4.35. Ecrire un algorithme qui dessine un damier de N lignes et colonnes ##########
alternant les symboles « + » et « - » (N est une valeur utilisateur).
Attention : l’algorithme doit fonctionner que N soit pair ou impair.
Ex pour N=3 Ex pour N=4
+-+ +-+-
-+- -+-+
+-+ +-+-
-+-+
Ex 4.36. Ecrire un algorithme qui recherche tous les nombres premiers inférieurs à N, N étant une
valeur introduite par l’utilisateur.
Pour rappel : un nombre premier est un nombre qui a strictement 2 diviseurs distinct, 1 et lui-même.
Par exemple : 2, 3, 5, 7 sont des nombres premiers. 1 n’est pas un nombre premier car il n’a qu’un
diviseur.
29
Introduction à la programmation Notes de cours
chat
chien
souris 5 1 -3 24 -18
lapin
tortue
30
Introduction à la programmation Notes de cours
Les tableaux peuvent contenir des variables de type numériques, caractères, booléens ;
Mais il ne peut y avoir qu’un type de données au sein d’un même tableau.
Le nombre de valeurs est indiqué entre [ ].
Notation
Chaque fois que l’on doit désigner un élément du tableau, on fait figurer le nom du tableau, suivi, entre
parenthèses, de sa position dans le tableau.
▪ Indice
Attention, les indices des tableaux commencent à 0, et non à 1.
Dans un tableau, la valeur d’un indice doit tou ours être :
• Plus grande ou égale à 0 ;
• Un nombre entier (pas de virgule) ;
• Inférieure au nombre d’éléments du tableau :
le plus grand indice = le nombre d’éléments -1.
L’indice d’un élément est différent du contenu de cet élément. Il n’y a AUCUN RAPPORT entre l’indice
i et la valeur T(i) contenue dans la case i du tableau T.
Tableau de 5 chaînes de caractères. Chaque élément du tableau « Note » représente une note
individuelle.
Tab Str T[5]
Indice : i Valeurs du tableau :T(i)
i=0 chat → T(0) = chat
i=1 chien → T(1) = chien
i=2 souris → T(2) = souris
i=3 lapin → T(3) = lapin
i=4 tortue → T(4) = tortue
Pour travailler de manière automatique dans un tableau, son indice est lié au compteur d’une boucle.
Notation
La taille se donne avec le nombre de lignes [L] puis le nombre de colonnes [C].
Tableau de 5 lignes et 3 colonnes, de valeurs numériques
Int Tab Etu[5][3]
Age Taille Poids Lignes : i
Etudiant1 18 = T(0)(0) 160 = T(0)(1) 58 = T(0)(2) L0 i= 0
Etudiant2 19 = T(1)(0) 185 = T(1)(1) 87 = T(1)(2) L1 i= 1
Etudiant3 18 = T(2)(0) 173 = T(2)(1) 65 = T(2)(2) L2 i= 2
Etudiant4 22 = T(3)(0) 177 = T(3)(1) 92 = T(3)(2) L3 i= 3
Etudiant5 20 = T(4)(0) 168 = T(4)(1) 74 = T(4)(2) L4 i= 4
Colonnes : j C0 j= 0 C1 j= 1 C2 j= 2
31
Introduction à la programmation Notes de cours
1. begin
2. Int N, i // nombre d’enfants et compteur
3. Tab Float kid[N][3] // Tableau de N enfants et 3 colonnes (taille, poids, IMC)
4. write : ʺCombien d’enfants souhaitez-vous introduire ?ʺ \n
5. N= read
6. for i from 0 to N-1 by step of 1
7. write : ʺIntroduisez la taille (en m) de l’enfant n°ʺ+ i+1 \n
8. kid(i)(0)= read
9. write : ʺIntroduisez le poids (en kg) de l’enfant n°ʺ+ i+1\n
10. 0 kid(i)(1)= read
11. Kid(i)(2)= kid(i)(0)/ kid(i)(1)^2
12. write : ʺSon IMC est de ʺ+ kid(i)(2) \n
13. end for
14. end
32
Introduction à la programmation Notes de cours
5.3 Exercices
Ex 5.2. Ecrire un algorithme qui déclare et remplisse un tableau de 7 valeurs numériques en les
mettant toutes à zéro.
Ex 5.3. Ecrire un algorithme qui déclare et remplisse un tableau contenant les six voyelles de
l’alphabet latin.
Ex 5.4. Le programme demande à l'utilisateur d'introduire 50 mots. Puis le programme affiche
le tableau, une fois dans l’ordre d’introduction des mots ; puis dans l’ordre inverse.
Ex 5.5. On a à sa disposition un tableau de 6 mots. Ecrire un algorithme qui inverse l’ordre
des mots dans le tableau ; MAIS sans utiliser de 2ème tableau.
▪ Somme, moyenne, produit, plus petit et plus grand
Ex 5.6. Ecrire un algorithme qui remplit aléatoirement un tableau de 100 valeurs.
L’algorithme calcule ensuite le plus grand écart entre les nombres de ce tableau (max-min).
Ex 5.7. Que fait l’algorithme ? Compléter les affichages finaux. Tester le contenu des variables
pour les 7 valeurs introduites: 6 ; 9 ; 16 ; 13 ; 2 ; 19 ; 18.
begin
Tab Int Nb[7]
Int m1, m2, i
m1 = 0
m2 =0
for i from 0 to 6 by step of 1
if Nb(i) > m1 then
m2 = max
m1 = Nb(i)
else if Nb(i) < m1 && Nb(i) > m2 then
m2 = Nb(i)
end if
end for
write : ʺ…………………………………………………………………………………………………………………………….. ʺ+ m2 \n
end
33
Introduction à la programmation Notes de cours
i Nb(i) m1 m2
Avant la boucle
Tour 1
Tour 2
Tour 3
Tour 4
Tour 5
Tour 6
Tour 7
Ex 5.8. Ecrire un algorithme qui déclare un tableau de 9 notes (*/20), dont on fait ensuite
saisir les valeurs par l’utilisateur en s’assurant que l’utilisateur entre bien des valeurs entre 0
et 20. Puis le programme calcule et affiche la moyenne des notes, la cote minimale et la cote
maximale.
▪ Drapeau
Ex 5.9. Soit un tableau de 20 valeurs. L’algorithme fait saisir un nombre au clavier, et informe
l’utilisateur de la présence ou de l’absence de cette valeur dans le tableau.
Ex 5.10. Soit un tableau de 10 nombres. Détermine-s’il est trié par ordre croissant.
Tableaux 2 dimensions
Ex 5.11. Ecrire un algorithme qui demande les noms et prénoms des 70 étudiants de la classe.
Les données sont stockées dans un tableau à deux colonnes.
Ecran : Entrées utilisateur :
Etudiant 1
Nom: Potter
Prénom: Harry
Etudiant 2
Nom: Granger
Prénom: Hermione
Ex 5.12. Ecrire un algorithme qui demande les notes (/20) des 10 interrogations des 70
étudiants de la classe. Les données sont stockées dans un tableau à 10 colonnes.
Ecran : Entrées utilisateur :
Etudiant 1
C1 : 15
C2 : 12
…
Exemple :
interro1 interro 2 … interro 10
Etu1 15 12 … 8
Etu2 3 6 … 2
… … … … …
Etu70 9 7 … 5
Ex 5.13. Faire la fusion des algorithmes des exercices Ex 5.11 et Ex 5.12 ; en liant le tableau de notes
au tableau des noms et prénoms des étudiants.
34
Introduction à la programmation Notes de cours
Ex 5.16. Ecrire un algorithme qui demande à l’utilisateur combien de valeurs il compte saisir, puis
il effectue cette saisie et les nombres sont stockés dans un tableau. Le programme affiche
enfin le nombre de valeurs négatives.
Ex 5.17. Ecrire un algorithme qui utilise un tableau de 9 notes, dont on fait saisir les valeurs par
l’utilisateur. Le programme affiche combien de notes sont strictement inférieures à 10/20,
puis il les affiche toutes ces notes.
Ex 5.18. Pour sa naissance, la grand-mère de Gabriel place une somme de 1000 € sur son compte
épargne rémunéré au taux de 2% (chaque année le compte est augmenté de 2%). Développer
un algorithme permettant d’afficher un tableau usqu’à ses 20 ans associant à chaque
anniversaire de Gabriel la somme acquise sur son compte.
Ex 5.19. Ecrivez un algorithme constituant un tableau, à partir de deux tableaux de 8 valeurs.
Le nouveau tableau sera la somme des éléments des deux tableaux de départ.
Exemple :
Tab1 : 4 8 7 9 1 5 4 6
Tab2 : 7 6 5 2 1 3 7 4
Tab à constituer : 11 14 12 11 2 8 11 10
Ex 5.20. A partir de deux tableaux existants (de longueur 4 et 3), écrire un algorithme qui
calcule le « schtroumpf » des deux tableaux. Pour calculer le « schtroumpf », il faut multiplier
chaque élément du tableau 1 par chaque élément du tableau 2, et additionner le tout.
Exemple :
35
Introduction à la programmation Notes de cours
Tab1 : 4 8 7 12
Tab2 : 3 6 5
Valeur à calculer : 4*3+4*6+4*5+8*3+8*6+8*5+7*3+7*6+7*5+12*3+12*6+12*5=440
Tableaux 2 dimensions
Ex 5.21. Ecrire un algorithme qui demande les notes (/20) des 10 interrogations des 70
étudiants de la classe. Les données sont stockées dans un tableau à deux dimensions :
11 colonnes : une pour chaque interro + une pour le calcul de la moyenne de chaque étudiant
71 lignes : une pour chaque étudiant + une pour le calcul de la moyenne de chaque interro
Exemple :
interro1 interro 2 … interro 10 moy
Etu1 15 12 … 8 13
Etu2 3 6 … 2 4
… … … … …
Etu70 9 7 … 5 7
moy 13 11 … 9 10
36
Introduction à la programmation Notes de cours
37
Introduction à la programmation Notes de cours
Structures conditionnelles
Pseudo code Javascript C#
Structures conditionnelles
1ère condition if Cdt1 then ... if (Cdt1) { if (Cdt1) {
Ajout de conditions else if Cdt2 then } else if (Cdt2) { } else if (Cdt2) {
Pour tout le reste else } else { } else {
Fin de condition end if } }
Opérateurs de comparaison
Égal == == ==
Différent != != !=
Plus petit < < <
Plus grand > > >
Plus petit ou égal <= <= <=
Plus grand ou égal >= >= >=
Opérateurs logiques
Non ! ! !
Et && && &&
Ou || || ||
Structures conditionnelles
Pseudo code Javascript C#
while Cdt while (Cdt) { while (Cdt) {
Boucle While … … …
end while } }
for compt from vi to vf
for (vi;vf;stp) { for (vi;vf;stp) {
Boucle for by step of stp
… …
…
} }
end for
38