Algorithme et technique de programmation
Def : algorithme est un ensemble des actions réalisées d’une façon successive pour aboutir un résultat bien définit (le résultat est connue avant de commencer a écrire l algorithme)
maintenant on commences les exercices
Notes :
_ Chaque algorithme doit avoir un début et fin
_ Chaque algorithme doit avoir un nom (somme, pourcentage……..)
A _ notion variable :
Un variable est un objet qui se caractérise par trois éléments :
*nom
*contenu
*type contenu
Type possible d une variable
Entier, réel ; texte (chaîne de caractère),……..
Déclaration :
Variable
A : entier
B : réel
C : chaîne
Variable
A, b, c : entier
B _ constante :
Une constante est un objet dont la valeur reste stable durant l exécution d’algorithme
C _affectation :
Soient a et b deux variables de type entier
Variable
A, b : entier
On schématise l’affectation par ←
Exemple :
1_ a ← b : a reçoit b : affecter le contenu de a dans b
Rq : a= 10, b=16
Action
a ← b
Finalement
a=16, b=16 # b n est pas changé, le variable A a été écrasé par le contenu de la case b #
2_ soit a= 5, b=0
A ← a+b
B ← a
A ← a+b
Finalement a=10et b=5
3_ au départ
A, b, c : réel a=1, b=2, c=-1
Actions
a ← b+c a=1, b=2, c=-1
b ← a a=1, b=1, c=-1
c ← a+b a=1, b=1, c=2
d ← c-b+2 a=3, b=1, c=2
Finalement a=3, b=1, c=2
D_ structure d’un algorithme :
Algorithme nom algorithme
Constante
Variable
Début
Ensemble des actions
Fin
Ex1 : donnez l’ algo qui permet de permuter (inverser) le contenu de deux variables de type entier a et b ?
Sol 1 :
Algorithme permuter
Variable a, b, c : entier
Début
C ← a # on a ajouté le variable c pour éviter l écrasement, pour sauvegarder le
Variable a #
A ← b
B ← c
Fin
Ex2 : réaliser un algorithme qui permet de permuter entre variables entier a, b, c ?
a→b→c→a
Sol 2 :
Algorithme permuter_2
Variable a, b, c, d : entier
Début
d ← a
a ← c
c ← b
b ← d
Fin
E _ les opérations d entrées sorties
Les opérations d entrées sorties sont les opérations qui permettent soit a saisir le contenu d’une variable, soit a afficher le contenu d’une variable a l’écran,
Les deux opérations se basent sur le dialogue homme_machine
Par exemple
Écrire ("donnez un nombre : ") # le message qui s affiche sur l écran sera (donnez un nombre) #
Quand l observateur veut entrer un nombre on écrit
Lire (nb) # nb est un exemple #
Ne t inquiétez pas si vous n avez pas compris écrire ( ) et lire ( ) dans la suite je vous promis que tout va bien
Exemple :
Algorithme somme
Variable a.b : entier
s : entier
Début
Écrire (" donnez la valeur de a ")
Lire (a)
Écrire (" donnez la valeur de ")
Lire (b)
s ←a+b
écrire(" la somme de a et b est :",s)
fin
Fais attention au écrire (" la somme de a et b est :", s) on écrit virgule S pour que la valeur de s qu il soit affiché pas s comme alphabet
Ex 3 : donnez l’algo qui permet de calculer la moyenne de trois variables entier a .b et c
Sol :
Algorithme moyenne
Variable : a.b.c : réel
Écrire ("saisir a :")
Lire (a)
Écrire ("saisir b :")
Lire (b)
Écrire ("saisir c:")
Lire(c)
m ←(a+b+c)/3
Écrire ("la moyenne est" , s)
Fin
Ex 4 : donnez l’algorithme qui permet de calculer la surface d’un carré
sol :
Algorithme surface
Variable a, s : réel
Début
Écrire (" saisir la longueur d’arrêt a ")
Lire (a)
s← a*a
Écrire ("la surface du carré :", s)
Fin
Ex 5 : donnez l’algorithme qui permet de calculer le volume d’un cylindre
Sol
Algorithme volume cylindre
Const pi=3,14
Variable h, r, v : réel
Début
Écrire (" donnez la hauteur h :")
Lire (h)
Écrire (" donnez le rayon r :")
Lire (r)
v ← r*r*h*pi
Écrire (" le volume du cylindre est :",v)
Fin
Ex 6 : donnez l’algorithme qui permet de convertir une distance du km en métre et en cm
Sol :
Algorithme convertir_distance
Variable m, d, c : réel
Début
Écrire (" donnez une distance en km:",s)
Lire c d)
m←d*1000
c←m*100
Écrire (" la distance en m :", m)
Écrire (" la distance en cm :", c)
Fin
f _ la structure conditionnelle : si
syntaxe1 : si condition alors
Actions i
Fin si
Exemple a= 10
Si a> 10 alors
Écrire (" bravo")
Fin
Les actions i seront réalisées sauf si la condition est vraie
Si la condition est fausse, les actions i ne seront pas réalisées
Syntaxe 2 : si condition alors
Actions i
Sinon
Actions j
Fin si
si la condition est vraie alors les actions i seront réalisés sinon les actions j les seront
Exemple : écrire (" donnez un nombre :")
Lire (a)
Écrire (" donnez un autre nombre")
Lire (b)
Si a>b alors
Écrire (" le max est :",a)
Sinon
Si a<b alors
Écrire (" le max est :",b)
Sinon
Écrire (" les deux nombre sont égaux")
Fin si
Fin si
Ex 7 : donnez l’algorithme qui permet de calculer le max de 3 variables a,b et c
sol :
Algorithme maximum
Variable a, b, c, max : entier
Début
Écrire (" donnez un nombre ")
Lire (a)
Écrire (" donnez un deuxième nombre")
Lire (b)
Écrire (" donnez le troisième nombre")
Lire( c)
Si a>b alors
max ←a
Sinon
max← b
Fin si
Si max < c alors
max ← c
Fin si
Écrire (" le maximum est :", max)
Fin si
Remarque : on peut utiliser
P=a-b
si p< 0 alors ………………….. Etc.
Ex 8 : donnez l’algo qui permet de résoudre une équation du second degré ax2 +bx +c =0
Sol :
Algorithme resolution_equ
Variable a, b, c, delta : réel
Début
Écrire (" donnez a, b, c")
Lire (a, b, c) # c est faux d’écrire a, b, c mais j ai fait comme ça seulement pour la réduction comme vs savez ce n est pas facile d écrire toute l algo avec le clavier #
si a=0 alors
Écrire (" ce n’est pas une equ de 2 éme degré")
Sinon
Delta = (b*b)-(4*a*c)
si delta = 0 alors
Écrire (" la somme de a et b est :"-b/ (2*a))
Sinon
Si delta<0 alors
Écrire (" pas de solution dans R")
Sinon
Écrire (" solution 1:", (-b-√delta)/ (2*a))
Écrire (" solution 2:", (-b+√delta)/ (2*a))
Fin si
Fin si
Fin si
Fin
Ex 9 : donnez l algorithme qui retourne la date de demain on donne le jour le mois et l’année on suppose que tous les mois ont 30 jours
Sol :
Algorithme date_demain
Variable j, m, a : entier
Début
Écrire (" donnez j, m, a:")
Lire (j, m, a)
j←si j>30alors
j←1
m←m+1
fin si
si m>12alors
m←1
a←a+1
Fin si
Écrire (" demain c’est le:", j,m,a)
Fin
Ex : donnez la date d’hier
f _ Les boucles
1 :La boucle pour :
Syntaxe
Pour i=vi à vf faire
Actions
Fin pour
Exemple
Pour i=1 à 10 faire
Écrire (" bravo")
Fin pour
Bravo va s'afficher 10-1+1=10 fois
Ex : afficher les entiers entre 1 et 100
Sol :
Pour i=1 à 100 faire
Ecrire (i)
Fin pour
Ex 10 : afficher les entiers pairs entre 1et 100
Sol :
Pour i= 1 à 100 faire
Ecrire (i*2)
Fin pour
Ex 11 : fait la somme s=1+2+3+….+10
sol :
S=0 # la valeur initiale de s est 0 on dit qu’on initialisé s#
Pour i=1 à 10 faire
s←s+i # donnez a s zéro et chaque fois on va ajouter à i 1 le pas #
Fin pour
Écrire (" la somme est:", s)
Ex 12 : fait le produit P=1*2*3*….*10
Sol :
S=1
Pour i =1 à 10 faire
p← p*i
fin pour
Écrire (" le produit est:", p)
Ex 12 : la somme du nombre paire entre 1 et 100
Sol :
S=0
Pour i=1à100 faire
s← s + (2*i)fin pour
Écrire (" la somme est:", s)
Ex 13 : donnez l’algorithme qui permet de faire la somme ,la différence et la moyenne de deux nombre réel a et b
Ex 14 : donnez l’algorithme qui permet de résoudre une équation de premier degré ax +b=0, tester le cas a=0
Ex 15 : donnez l, algorithme qui permet de retourner le maximum de 4 variables a, b, c, et d
Ex16 : donnez l’algorithme qui permet de déterminer si un nombre nb est pair ou impair
Sol du dernier exercice
Algorithme test
Variable nb : entier
debut
Écrire (" donnez un nombre :")
Lire (nb)
r←nbmod2 # r reçoit le reste de la division de nb par 2#
si r=0 alors
Écrire (" le nombre", nb, " est paire" )
Sinon
Écrire (" le nombre",nb, " est impaire" ) # ce qui est entre les ( " ) s’affiche tel k il est au contraire du nb le programme va afficher le nombre qu’on a entré#
Fin
Ex 17 : afficher la table de multiplication d’un nombre entier
Sol : algorithme table_de_multiplication
Variable nb : entier
i : entier
Début
Écrire (" donnez un nombre :")
Lire (nb)
Pour i=1 à 10 faire
Écrire (nb," *",i,"= ",nb*i)
Fin pour
Fin
Ex 18 : Si vous souvenez les tables de multiplication existant dans la dernière page du cahier de 12 pages , et bah oui, écrivez un algorithme qui permet d’ afficher du tel tableau c est a dire les tables de multiplication de 1 à 10
Sol :
Algorithme tables _de multiplication
Variable i,j : entier
Pour j=1 à 10 faire
Pour i=1 à 10 faire
Écrire (j," *",i,"= ",j*i)
Fin pour
Fin pour
Fin
Une boucle pour dans une autre boucle pour s’appelle pour impriqué
Remarque : on peut avoir une boucle pour de la forme suivante
Pour k = vi à vf faire
Actions
Fin pour
Exemple
Pour i= 100 à 1 faire
Ecrire (i)
Fin pour
Le i dans une boucle s’incrémonte de 1 par défaut
On peut modifier le pas d’incrémentation par
Pour i =vi (pas r) à vf faire
Actions
Fin pour
2 : La boucle répéter
Exemple
Répéter
Écrire (" donnez un nombre :")
Lire (nb)
s← nb*nb
Écrire (" le carré de ",nb, " est " , s)
Ecrire (" voulez vous continuez oui/ non "
Lire (réponse)
Jusqu'à réponse = "non"
chaque fois l'opérateur fé entrer oui l’opération se répète jusqu il saisi non
Exemple 2 :
Algorithme somme
Variable a, b, c : réel
S : réel
R : chaîne
Début
Répéter
Ecrire ("donnez a,b ,c")
Lire (a, b, c)
s← a+b+c
Écrire ("la somme est " , s)
Écrire (" autre opération o/n")
Lire( r )
Jusqu’à r="n"
Fin
Les menus
Exemple :
Algorithme
1 _ somme de 2 nombres
2 _ max de 3 nombres
3 _ surface cercle
4 _ quitter
Votre choix [ ]
Algorithme menu
Début
Répéter
Écrire (" 1_ somme de 2 nombre " )
Écrire ("2_max de 3 nombres" )
Écrire ("3_surface cercle ")
Écrire (" 4 _ quitter ")
Répéter
Écrire ("votre choix ")
Lire ( ch )
Jusqu'à ch in [1…4]
Cas ch de
A : début
Écrire ("donnez deux nombres a et " )
Lire( a, b )
s← a+b
Écrire ("la somme est " , s)
Fin
2 : début
.
.
.
Fin
3 : début
.
.
.
Fin
Jusqu'à ch = 4
Remarque : on peut utiliser la boucle di à la place de cas ( case en anglais ) par exemple
Si ch = 1 alors
…………..
Fin si
3 : La boucle tant que
Syntaxe :
Tant que < condition > faire
Actions i
Fin tant que
Rq on quitte la boucle tant que la condition est fausse
Tant que la condition est vraie le programme continuera de boucler
Exemple
Ch = " oui "
Tant que Ch = " oui " faire
Écrire ("donnez un nombre ")
Lire (nb)
Écrire ("le carré est ",nb*nb)
Fin tant que
Le programme va boucler à l’infini parce que ch est toujours égale à oui on n’a pas une moyenne pour l’arrêter dans notre algorithme
Pour ranger le problème
Ch = " oui "
Tant que Ch = " oui " faire
Écrire ("donnez un nombre ")
Lire( nb )
Écrire ("le carré est ",nb*nb)
Écrire ("autre opération oui/non")
Lire (ch)
Fin tant que
Ch 2 : les tableaux
A _tableau à une seule dimension
Soit t un tableau à dimension 1 de taille n
On schématise t comme suit
t
1 2 3 4 j n-2 n-1 n
1 2 3 4 j n-2 n-1 n
la case j est présenté par t(j)
Exemple :
9
|
10
|
7
|
-5
|
t
1 2 3 4
1 2 3 4
t : tableau de dimension 1 de taille 4 et de type réel
Écrire (t (1)) # pour afficher le contenu de t(1)#
t(3)← 3 # pour changé le contenu de la troisième case par 3#
Comment déclarer un tableau :
Variable
t : tableau( n) : entier
m : tableau (m) : chaîne (10)
Comment remplir un tableau :
pour i=1 à n faire
Écrire ("donner le contenu de la case ", i)
Lire ( t(i))
Fin pour
Comment faire pour afficher d’un tableau (supposons que le tableau est déjà rempli)
Pour i=1 à n faire
Écrire (t(i))
Fin pour
Ex 19 : soit t un tableau de taille 10 de type entier, écrire l’algorithme qui permet de faire la somme de toute les case du tableau
Sol
Variable i, s : entier
T : tableau (10) : entier
S=0
Pour i=1 à 10 faire
S ← s +t(i)
Fin pour
Écrire ("la somme est ", s)
Fin
Ex 20 : donnez la moyenne d’un tableau de taille 20 de type entier
Variable i, s : entier
T : tableau (20) : entier
M : réel
Début
S=0
Pour i=1 à 20 faire
S ← s+ t(i)
Fin pour
m← s/20
Écrire ("la moyenne est ", m)
Fin
Exercice 21 : donnez l’algorithme qui donne le maximum d’un tableau (20)
Sol
m← t(1)
Pour i=2 à 20 faire
Si t(i)>m alors
m ← t(i)
Fin si
Fin pour