Vous êtes sur la page 1sur 2

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

Date : Mercredi 28 décembre 2016


Matière : Informatique Classe : 4ème Mathématiques
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) X *Y
La multiplication russe permet de multiplier deux entiers positifs en
utilisant la division entière par 2 , la 13 * 104
multiplication par 2 et l’addition. La méthode consiste à répéter les 13 104
deux opérations suivantes : 13 div 2= 6 208 =104*2
 diviser par 2 le multiplicateur X (et ensuite les quotients obtenus), 6 div 2= 3 416 =208*2
jusqu'à avoir un quotient nul ; 3 div 2= =416*2
1 832
 multiplier parallèlement le multiplicande Y par 2.
1 div 2= 0
Enfin on additionne les multiples de Y obtenus correspondant au
13*104= 104+416+832=1352
multiplicateur X et ses quotients impairs.
1) Ajouter un contrôle de saisie sur x et y, dans
Soit l’algorithme suivant :
l’instruction 1) pour que x>0 et y >0
0) Début Multiplication 1) Répéter
1) Lire(X, Y)
2) S0
Lire(X, Y)
3) Tant que (X< >0) faire Jusqu’à (x>0) et (y>0)
Si (X mod 2 < > 0) alors SS+Y 2) Traduire l’instruction 3 en Pascal:
finsi While (X<>0) do
X  X div 2 Begin
YY*2 If (X mod 2 <> 0) then M :=M+Y;
Fin Tantque X:=X div 2;
4) Écrire (" Le résultat est =" , S) Y := Y*2 ;
5) Fin Multiplication End;

Exercice n°2 : (4 points)


Compléter le programme var write('T[', i , ']=');
t : tab ; readln(T[i]) ;
Pascal ci-contre permettant de
n ,i : integer ; End ;
saisir n (entre 2 et 10) puis
maxch : string ; Maxch :=T[1] ;
remplir un tableau T par n
chaînes de caractères enfin Begin
for i:=2 to n do
détermine et affiche la chaîne Repeat
if Length(T[i]) >
la plus longue maxch. write('Donner n='); readln(n);
Length(Maxch) then
Program ex2 ; Until n in [2..10];
Cours d’informatique en ligne :

Maxch :=T[i] ;
uses wincrt ;
for i:=1 to n do writeln(' La chaine la plus
Type
tab=array[1..10] of string ; Begin longue est = ', maxch) ;
End.
Problème : (12 points)
On se propose de faire le jeu « Le pondu ». Le pendu est un jeu qui se joue à deux, le
premier joueur choisi un mot et le deuxième joueur essaye de le trouver en devinant
quelles sont les lettres qui le composent. Le jeu se termine lorsque le deuxième joueur
trouve toutes les lettres (Gagné) ou il a commis 5 erreurs (Perdu).

Page 1/2
Devoir de synthèse n°1- 4ème Mathématiques Année Scolaire 2016-2017
Ecrire un programme permettant Exemples d’exécution
de saisir un mot, puis de mettre Joueur 1 : Choisir un mot : Joueur 1 : Choisir un mot :
BONJOUR PASCAL
ce mot sous forme de tirets dans Joueur2 :Devinez le mot : _ _ _ _ _ _ _ Joueur2 :Devinez le mot : _ _ _ _ _ _
une autre chaine mot2 et de
Donner une lettre : A Donner une lettre : A
l’afficher, en suite demander une Erreur=1 _A_ _A_
lettre L , si L existe dans mot Donner une lettre : E Donner une lettre : E
Erreur=2 Erreur=1
alors les tirets de mot2 Donner une lettre : B Donner une lettre : B
correspondant seront remplacés B______ Erreur=2
Donner une lettre : R Donner une lettre : F
par L, et le nouveau mot2 sera B_____R Erreur=3
affiché, si L n’existe pas le Donner une lettre : O Donner une lettre : R
BO__O_R Erreur=4
nombre d’erreurs NB sera Donner une lettre : L Donner une lettre : L
incrémenté par 1 puis affiché, Erreur=3 _A_ _AL
Donner une lettre : U Donner une lettre : K
par la suite demander encore une BO__OUR Erreur=5
lettre L, jusqu’à trouver toutes Donner une lettre : J
BO_JOUR Perdu ! Le mot est : PASCAL
les lettres ou faire 5 erreurs. Donner une lettre : N
Enfin afficher « Bravo ! », ou Le mot est : BONJOUR
« Perdu ! » suivant le cas, en Bravo ! Le mot est : BONJOUR
affichant le mot à deviner.
Remarque :En Pascal on pourra utiliser la fonction clrscr ; permettant d’effacer l’écran après le choix du mot à deviner.

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 jeu.pas sous C:\BAC2017
1) Algorithme :
1) Début DEVINETTE program DEVINETTE;
2) Ecrire("Joueur1: choisir un mot:"), lire(mot) uses wincrt ;
var mot, mot2: string; L:char;
3) Mot2mot nb,i,j:integer;
4) Pour i de 1 à long(mot2) faire begin
Mot2[i]"-" writeln('Joueur1: choisir un mot:');
FinPour Readln(mot);
5) Ecrire("Joueur 2 : Deviner le mot :",mot2)
clrscr ;
6) Nb0
mot2:=mot;
7) Répéter for i:=1 to length(mot2)do
Ecrire("Donner une lettre : "), lire(L) mot2[i]:='-';
Si pos(L,mot)=0 alors nb nb+1
Ecrire("Erreur=",nb) writeln('Joueur 2 : Deviner le mot :',mot2);
Sinon nb:=0;
repeat
Pour j de 1 à long(mot) faire write('Donner une lettre : '); readln(L);
Si mot[j]=L alors mot2[j]L Finsi if pos(L,mot)=0 then
FinPour begin
Ecrire(mot2) nb:=nb+1;
Cours d’informatique en ligne :

FinSi writeln('Erreur=',nb);
end
Jusqu'à (nb=5) ou (mot=mot2) else
8) Si mot=mot2 alors begin
Ecrire("'Bravo ! Le mot est ',mot ") for j:=1 to length(mot) do
Sinon Ecrire("Perdu ! le mot est ', mot ") if mot[j]=L then mot2[j]:=L;
FinSi writeln(mot2);
9) Fin DEVINETTE end;
until (nb=5) or (mot=mot2);

Objet Type/Nature Rôle if mot=mot2 then writeln('Bravo ! Le mot est


',mot)
T.D.O Nb,i,j Entier
else writeln('Perdu ! le mot est ', mot);
Mot,mot2 Chaine end.
L caractère

Page 2/2

Vous aimerez peut-être aussi