Compte Rendu de Travaux Pratiques: Algorithme Et Programmation

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 29

Royaume du Maroc ‫المملكة المغربية‬

Université Chouaib Doukkali ‫الدكالي جامعة شعيب‬


École Supérieure d’Éducation et de Formation ‫المدرسةةةة العليا للتربية والتكوين‬
El Jadida ‫الجديدة‬

COMPTE RENDU
DE TRAVAUX
PRATIQUES
Algorithme et programmation TP

N°Groupe : 1
SALLE : C6/ENSA
 -AYOUB EL BAZI
DATE : 10/01/2024
 -SALAH SAID Encadré par : PR .AMIRY
 DOUAA BELMOUADEN
houssame

 SOUFIAN KHTIBARI

1
INTRODUCTION :
Contexte général du travaux pratique :

ALGORITHME ET PROGRAMMATION :

méthode permettant de résoudre un problème de manière systématique

Cette définition montre bien que les algorithmes ne sont pas spécifiques à
l'informatique ; on peut par exemple citer :

la méthode consistant à poser une addition pour calculer la somme de deux


nombres arbitrairement grands ;
les instructions données par un GPS pour atteindre une destination ;
une recette de cuisine pour réaliser une tarte aux pommes
comme des exemples d'algorithmes.

Ce qui distingue un algorithme d'une autre méthode de résolution de


problèmes, c'est le caractère systématique de son exécution. En d'autres
termes, un algorithme ne doit demander aucune initiative à celui ou celle qui
l'exécute. Ceci explique l'importance de l'algorithmique en informatique : un
ordinateur n'étant capable d'aucune initiative, il ne peut exécuter une tâche
que si on lui fournit strictement un algorithme pour le faire. Tout programme
informatique a donc, par définition, la structure d'un algorithme.

Afin de pouvoir être exécuté de manière systématique, un algorithme doit


absolument éviter l'ambiguïté. Or les langues naturelles, comme le français,
sont intrinsèquement ambiguës. Il est donc indispensable d'écrire les
algorithmes dans un langage formel, dont la sémantique est précisément
définie. Dans ce cours, nous utiliserons le langage Python 3. Tout en étant
relativement lisible et facile à écrire, Python est un vrai langage de
programmation ; tous les exemples du cours sont donc exécutables
directement par un ordinateur (sous réserve que Python y soit installé,
évidemment). Cependant, ce cours ne vise pas à être un cours de
programmation en Python ; il n'aborde pas toutes les spécificités de ce
langage, et les notions présentées restent valables dans la majorité des autres
langages de programmation1.

Le caractère systématique ne signifie pas pour autant que l'exécutant de


l'algorithme ne doit rien savoir faire a priori. Au contraire, tout algorithme
2
présuppose un certain nombre de capacités.

OBJECTIFS DES exercice :


 Développer des algorithmes plus complexes en
utilisant les structures alternatives.
 Développer des algorithmes plus complexes en
utilisant les structures répétitives.
 Traduire ces algorithmes en programme C.
 Compiler et exécuter ces programmes C sur la
machine.
 Interpréter les résultats de compilation et d’exécution
et corriger les erreurs.

o QUESTIONS THEORIQUE :
Les structures alternatives et répétitives

Exercice 1 :
1) Écrire un algorithme prenant en entrée trois nombres et renvoyant
le plus petit d'entre eux.
2) Donner l’organigramme de cet algorithme.
3) Traduire cet algorithme en programme C et l’exécuter sur la
machine.
Solution :

Algorithme le plus petit entre les trois nombre


Variable A,B,C, min : entier

3
Ecrire(”veuillez entre la valeur de A , B et C : ” )
Lire ( A , B , C )
min A
Si min > B et min < C alors
Min C
Fin si
Si min > C et min < B alors
Min  B
Fin si
Ecrire ( ”le plus petit valeur entre les trois nombre est : ” , min )
fin

Exercice 2 :
1) Ecrire un algorithme qui demande deux nombres à l’utilisateur
et l’informe ensuite si leur produit est négatif ou positif.

4
Attention toutefois : on ne doit pas calculer le produit des deux
nombres.
a) On laisse de côté le cas où le produit est nul.
b) On inclut cette fois le traitement du cas où le produit peut être
nul
2) Donner les organigrammes de ces algorithmes.
3) Traduire ces algorithmes en programmes C et l’exécuter sur la
machine.
Solution :

Algorithme
Produit
Variables a,b :
entier Début
Écrire(“entrez a
et b”) Lire(a,b)
Si a = 0 ou b = 0 alors
Écrire(“le produit est
nul”) Sinon si a * b > 0
alors
Écrire(“le produit est
positif”) Sinon
Écrire(“le produit est
négatif”) Fin si
Fin si
Fin

5
Exercice 3 :
1) Écrire un algorithme qui demande une température en
degrés Celsius et qui affiche l’état de l’eau à cette
température :
 glace pour une température inférieure ou égale à 0 °C;
 liquide pour une température comprise strictement entre 0 °C
et 100 °C;
 vapeur pour une température supérieure ou égale à 100 °C,
2) Donner l’organigramme de cet algorithme.
3) Traduire cet algorithme en programme C et l’exécuter sur la
machine.
Solution :

Algorithme
Etat_eau
Variables T :
réel Début
Écrire(“entrez la
température”) Lire(T)

6
Si T <= 0 alors
Écrire(“l’eau est à l’état
solide”) Sinon si T>= 100
alors
Écrire(“l’eau est à l’état
gazeux”) Sinon
Écrire(“l’eau est à l’état
liquide”) Fin si
Fin si Fin

Exercice 4 :
Un magasin de reprographie facture 0,20dh pour les dix premières
photocopies puis 0,15dh pour les vingt suivantes puis 0,10dh au-
delà.

1) Combien coutent 8 photocopies ? 26 photocopies ? 50


photocopies ?
2) Écrire un algorithme qui prend en entrée le nombre de
photocopies effectuées et qui renvoie le montant de la facture
correspondante.

7
3) Donner l’organigramme de cet algorithme.
4) Traduire cet algorithme en programme C et l’exécuter sur la
machine.
Solution :
-Pour 8 photocopies :
8 * 0.20 = 1.6
8 photocopies coutent 1.6 dh
-Pour 26 photocopies :
10 * 0.20 + (26-10) * 0.15 = 4.4 dh
-Pour 50 photocopies :
10 * 0.20 + 20 * 0.15 + (50-30) * 0.10 = 7 dh

Algorithme
Facture
Variable N :
entier
Variable F :
réel
Début
Écrire(“entrez le nombre
de copies”)
Lire(N)
Si N <=
10 alors
F←N*
0.20
Sinon si N <=30 alors
F ← 10 * 0.20 + (N-10) * 0.15
Sinon
F ← 10 * 0.20 + 20 * 0.15 + (N-30) * 0.10
Fin
si
Fin
8
si
Écrire(“la
facture est” F)
Fin

Exercice 5 :
Une piscine municipale propose trois tarifs :
— Tarif 1 : une entrée : 30 dhs;
— Tarif 2 : abonnement annuel 90 dhs puis 10 dhs l’entrée;
— Tarif 3 : abonnement annuel 200 dhs puis entrées à volonté.
1) Écrire un algorithme qui demande à l’utilisateur un nombre
d’entrées puis qui calcule les montants à payer et affiche le tarif
le plus intéressant pour l’utilisateur.
2) Donner l’organigramme de cet algorithme.
3) Traduire cet algorithme en programme C et l’exécuter sur la
machine.

9
Solution :
Algorithme Tarif
Variables N
,T1,T2,T3 : entier
Début
Écrire (“entrez le nombre
d’entrées”) Lire(N)
T1 ← 30 * N
T2 ← 90
+ 10 * N
T3 ← 200
Si T1 < T2 et T1 < T3 alors
Écrire (“le tarif le plus
intéressant est le Tarif 1”)
Sinon si T2 < T3 alors
Écrire (“le tarif le plus
intéressant est le Tarif 2”)
Sinon
Écrire (“le tarif le plus
intéressant est le tarif 3”) Fin
si

Fin si Fin

1
0
Exercice 6 :
1) Ecrire un algorithme une fois avec « si-sinon » et une fois avec «
selon » qui lit deux entiers et un caractère (Le caractère sera *, +,
/ ou -) et affiche le résultat de l'opération indiquée appliquée aux
deux entiers.
2) Donner l’organigramme de cet algorithme.
3) Traduire cet algorithme en programme C et l’exécuter sur la
machine.

Solution :
Algorithme Selon

Variables A,B,D : réel


Variable C : caractère
Début
Écrire(“choisit un opérateur”)
Lire(C)
1
1
Écrire(“entrez A et B”)
Lire(A,B)
Selon C vaut

‘+’ : D : ecrire (”le résultat est : ” , A + B)


‘-’ : D : ecrire (”le résultat est : ” , A - B)

‘*’ : D : ecrire (”le résultat est : ” , A * B)

‘/’ : D : ecrire (”le résultat est : ” , A / B)


Si non : ecrire (”le résultat est impossible” )
Fin selon
Fin

Exercice 7 :
1
2
Soit l’algorithme
suivant : Variables
A, B, C : entier
Début
A0
lire(B)
Répéter
Lire(C)
Si B = C alors AA+1

Fin si

Jusqu’à (C< 0)
Ecrire (A)

fin

1) Que fait cet algorithme ?


2) Que représente A dans cet algorithme ?
3) Réécrire cet algorithme avec la boucle Tant Que.
4)Donner l’organigramme de cet algorithme.
Traduire cet algorithme en programme C et l’exécuter sur
la machine

1
3
TP algorithmique et programmation
ESEFJ

Solution :

Cet algorithme demande deux nombres B et C, et lorsqu’on entre C>= 0,


l’algorithme nous affiche autre fois d’entrer une nouvelle valeur de C,
jusqu’à ce que C < 0.

La variable A calcule le nombre de fois où B et C ont


la même valeur.

Algorithme A
Variables A,B,C :
entier Début
A←0
Écrire(“entrez
B”)
Lire(B)
Écrire(“Entrez
C”)
Lire(C)
Tant que C >= 0
faire Écrire(“entrez
C”)
Lire(C)
Si B = C alors
A←A+1
Fin si
Fin Tant que
Ecrire ( “la valeur finiel de A est : “,A)

14
TP algorithmique et programmation
ESEFJ

Exercice 8 :
1) Ecrire un algorithme qui demande successivement 6 nombres à
l’utilisateur, et qui affiche ensuite le plus grand parmi ces 6 nombres
et aussi son rang :
Par exemple :
Entrez le nombre numéro 1 :
12 Entrez le nombre numéro
2 : 14 Entrez le nombre
numéro 3 : 6 Entrez le
nombre numéro 4 : 1 Entrez
le nombre numéro 5 : 4
Entrez le nombre numéro 6 :
2
Le plus grand de ces nombres est
: 14 C’était le nombre numéro 2
2) Donner l’organigramme de cet algorithme.
15
TP algorithmique et programmation
ESEFJ

Traduire cet algorithme en programme C et l’exécuter sur la machine

Solution :
Algorithme
Max_rang Variables
N,P,R,i : entier Début
R←1
Écrire(“entrez le premier
nombre”) Lire(P)
Pour i ← 2 à 6 pas 1 faire
Écrire(“entrez le nombre
suivant”) Lire(N)
Si N < P alors
P←N
R ← i Fin
si Fin cas
Écrire(“le nombre le plus
grand”, P) Écrire(“son rang
est”, R)

16
TP algorithmique et programmation
ESEFJ

Exercice 9 :
1) Ecrire un algorithme qui détermine si un entier N est parfait ou
non. Un entier est dit parfait s'il est égal à la somme de ses diviseurs.
Exemple 6 = 3 + 2 +1
2) Donner l’organigramme de cet algorithme.
3) Traduire cet algorithme en programme C et l’exécuter sur la machine.
Solution :

Algorithme
Parfait Variables
N,Q,i : entier
Début
Q←0
Écrire(“entrez un
nombre”) Lire(N)
Pour i ← 1 à
N/2pas faire
Si N % i = 0 alors
Q ←Q+i
Fin si
Fin cas
Si Q = N alors
Écrire(“ce nombre est
parfait”) Sinon
Écrire(“ce ne nombre n’est
pas parfait”) Fin si
Fin

17
TP algorithmique et programmation
ESEFJ

Exercice 10 :
1) 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 grand ! », et inversement, « Plus petit ! » si le nombre est
inférieur à 10.
2) Donner l’organigramme de cet algorithme.
3) Traduire cet algorithme en programme C et l’exécuter sur la machine.
Solution :
Algorithme
Valeur Variable E
: entier Début
Écrire(“entrez un
nombre”) Lire(E)
Tant que E < 10 ou E > 20
faire Si E < 10 alors
Écrire(“Plus petit!”)
Sinon
18
TP algorithmique et programmation
ESEFJ

Écrire(“Plus grand”)
Fin si
Écrire(“entrez un nombre entre 10
et 20”) Lire(E)
Fin Tant que
Écrire(“Bravo! Vous avez entrez un nombre compris
entre 10 et 20”) Fin

Les organigrammes de tous les exercices :

19
TP algorithmique et programmation
ESEFJ

20
TP algorithmique et programmation
ESEFJ

21
TP algorithmique et programmation
ESEFJ

22
TP algorithmique et programmation
ESEFJ

23
TP algorithmique et programmation
ESEFJ

24
TP algorithmique et programmation
ESEFJ

25
TP algorithmique et programmation
ESEFJ

26
TP algorithmique et programmation
ESEFJ

27
TP algorithmique et programmation
ESEFJ

28
TP algorithmique et programmation
ESEFJ

29

Vous aimerez peut-être aussi