Vous êtes sur la page 1sur 2

Devoir de synthèse n°1 Coefficient : 1 Durée: 1 heure

Date : Lundi 26 décembre 2016


Matière : Informatique Classe : 4ème Sciences expérimentales 2
Lycée : Abou el Kacem Chebbi Kalâa Kébira-Sousse
Nom : ..........................
Enseignant : N.DHIFALLAH Prénom : .....................
Corrigé N° : ............. Note : ......... / 20
Année scolaire 2016-2017
NB : cette copie doit être rendue à la fin de la séance.
Exercice n°1 : (4 points)
On se propose d'écrire un algorithme qui permet de saisir un nombre N d'œufs,
puis indique (sans recourir à l'opération de division) combien de boite pouvant
contenir douze œufs seront nécessaires et combien d'œuf resteront.
Exemple : n=27 nombre de boites=2 reste
Soit l’algorithme suivant :
2) Ajouter un contrôle de saisie sur N, dans
0) Début algo1 l’instruction 1) pour que 12≤ N <36
1) Lire(N)
1) Répéter
2) RN NB0
3) Tant que (R<=N) faire Lire(N)
ou
NN-12 Jusqu'à N dans [12..35] Jusqu'à (n >=12) et (N<36)
Si (N> =0) alors RN
NB NB+1 3) Traduire l’instruction 3 en Pascal:
finsi While(R<=N) do
Fin Tantque Begin
4) Écrire (NB," boites et reste",R," oeufs.") N :=n-12 ;
5) Fin algo1 If (n>=0) then
1) Faire l'exécution à la main des instructions 2 et Begin
3 de l’algorithme ci-dessus pour N=25 R:=n;
N 25 13 1 -11 Nb:=nb+1;
R 25 13 1
End;
NB 0 1 2 End ;

Exercice n°2 : (4 points)


Compléter le programme Pascal ci-contre permettant de saisir n (entre 2 et 10) puis remplir un tableau T
par n chaînes de caractères enfin détermine et affiche la chaîne la plus longue maxch.

Program ex2 ; for i:=1 to n do


uses wincrt ; Begin
Type write('T[', i , ']='); readln(T[i]) ;
tab=array[1..10] of string ; End ;
Cours d’informatique en ligne :

var Maxch :=T[1] ;


t : tab ; for i:=2 to n do
n ,i : integer ; if Length(T[i]) > Length(Maxch) then
maxch : string ;
Maxch :=T[i] ;
Begin
Repeat writeln(' La chaine la plus longue est = ',
write('Donner n='); readln(n); maxch) ;
Until n in [2..10]; End.

Page 1/2
Devoir de synthèse n°1- 4ème Sciences expérimentale 2 Année Scolaire 2016-2017
Problème : (12 points)
On se propose de faire le programme d’un jeu de devinette, le principe est le suivant :
Le programme génère un nombre au hasard N entre 0 et 100 puis le joueur essaye de deviner le nombre.
Pour chaque valeur proposée par le joueur le programme répond par :
 Plus grand si le nombre proposé est plus petit que N
 Plus petit si le nombre proposé est plus grand que N
 Bravo ! si le nombre proposé est égale à N
Enfin, le programme s’arrête et affiche :
"Vous avez gagné" puis affiche le nombre si le joueur trouve le nombre
"Vous avez perdu " puis affiche le nombre si le joueur a effectué 10 essais sans trouver le nombre.
Exemple 1:
Devinez un nombre entre 0 et 100.
Essai 1= 15 Essai 2= 80 Essai 3= 60 Essai 4= 40 Essai 5= 46 Essai 6= 45
Plus grand Plus petit Plus petit Plus grand Plus petit Bravo !
Vous avez gagné, le nombre est 45
Exemple 2:
Devinez un nombre entre 0 et 100.
Essai 1= 15 Essai 2= 80 Essai 3= 60 Essai 4= 40 Essai 5= 36 Essai 6= 5 Essai 7= 15 Essai 8=30 Essai 9= 25 Essai 10= 20
Plus grand Plus petit Plus petit Plus petit Plus petit Plus grand Plus grand Plus petit Plus petit Plus grand
Vous avez perdu, le nombre est 21
1) Donner un algorithme et le tableau de déclaration de valeurs correspondant
2) En déduire le programme pascal correspondant, l’enregistrer avec le nom deviner.pas sous
C:\BAC2017
1) Algorithme :
0) Début devinette Program devinette ;
1) XHasard(101) Uses wincrt ;
2) Ecrire ("Devinez un nombre entre 0 et 100")
3) nb0
Var
4) répéter X,n,nb :integer ;
Nbnb+1 Begin
Ecrire("Essai ",nb ,"= "),Lire(n) Rndomize ;
Si n=x alors Ecrire("Bravo !")
Sinon
x :=random(101) ;
Si n<x alors Ecrire("Plus grand") Writeln(' Devinez un nombre entre 0 et 100') ;
Sinon Ecrire("plus petit") Nb :=0 ;
FinSi Repeat
FinSi Nb :=nb+1
Jusqu’à ( nb=10) ou (n=x) Write('Essai ', nb , '= ') ;Readln(n) ;
5) si n=X alors
Cours d’informatique en ligne :

if n=x then writeln('Bravo ! ')


Ecrire ("Vous avez gagné, le nombre est",X)
else
Sinon if n<x then writeln('Plus grand')
Ecrire ("Vous avez perdu, le nombre est",X) else Ecrire('plus petit') ;
FinSi until (nb=10) OR (N=X) ;
6) Fin Devinette if n=X then
T.D.O witeln ('Vous avez gagné, le nombre est',X)
Objet Type/Nature Rôle Else
X Entier Entier à deviner
Writeln('Vous avez perdu, le nombre est',X) ;
N Entier Entier proposé
nb entier Nombre d’essais
End.

Page 2/2

Vous aimerez peut-être aussi