Page 1/2 Exercice n°1 : (4 points) La multiplication russe permet de multiplier

Page 1/2 Exercice n°1 : (4 points) La multiplication russe permet de multiplier deux entiers positifs en utilisant la division entière par 2 , la multiplication par 2 et l’addition. La méthode consiste à répéter les deux opérations suivantes :  diviser par 2 le multiplicateur X (et ensuite les quotients obtenus), jusqu'à avoir un quotient nul ;  multiplier parallèlement le multiplicande Y par 2. Enfin on additionne les multiples de Y obtenus correspondant au multiplicateur X et ses quotients impairs. Soit l’algorithme suivant : 0) Début Multiplication 1) Lire(X, Y) 2) S0 3) Tant que (X< >0) faire Si (X mod 2 < > 0) alors SS+Y finsi X  X div 2 Y  Y * 2 Fin Tantque 4) Écrire (" Le résultat est =" , S) 5) Fin Multiplication 1) Ajouter un contrôle de saisie sur x et y, dans l’instruction 1) pour que x>0 et y >0 1) Répéter Lire(X, Y) Jusqu’à (x>0) et (y>0) 2) Traduire l’instruction 3 en Pascal: While (X<>0) do Begin If (X mod 2 <> 0) then M :=M+Y; X:=X div 2; Y := Y*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 ; uses wincrt ; Type tab=array[1..10] of string ; var t : tab ; n ,i : integer ; maxch : string ; Begin Repeat write('Donner n='); readln(n); Until n in [2..10]; for i:=1 to n do Begin write('T[', i , ']='); readln(T[i]) ; End ; Maxch :=T[1] ; for i:=2 to n do if Length(T[i]) > Length(Maxch) then Maxch :=T[i] ; writeln(' La chaine la plus 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). X * Y 13 * 104 13 104 13 div 2= 6 208 =104*2 6 div 2= 3 416 =208*2 3 div 2= 1 832 =416*2 1 div 2= 0 13*104= 104+416+832=1352 NB : cette copie doit être rendue à la fin de la séance. Devoir de synthèse n°1 Matière : Informatique Lycée : Abou el Kacem Chebbi Kalâa Kébira-Sousse Enseignant : N.DHIFALLAH Année scolaire 2016-2017 Coefficient : 1 Durée: 1 heure Date : Mercredi 28 décembre 2016 Classe : 4ème Mathématiques Nom : .......................... Prénom : ..................... N° : ............. Note : ......... / 20 Corrigé Cours d’informatique en ligne : Devoir de synthèse n°1- 4ème Mathématiques Année Scolaire 2016-2017 Page 2/2 Ecrire un programme permettant de saisir un mot, puis de mettre ce mot sous forme de tirets dans une autre chaine mot2 et de l’afficher, en suite demander une lettre L , si L existe dans mot alors les tirets de mot2 correspondant seront remplacés par L, et le nouveau mot2 sera affiché, si L n’existe pas le nombre d’erreurs NB sera incrémenté par 1 puis affiché, par la suite demander encore une lettre L, jusqu’à trouver toutes les lettres ou faire 5 erreurs. Enfin afficher « Bravo ! », ou « Perdu ! » suivant le cas, en 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 : Exemples d’exécution Joueur 1 : Choisir un mot : BONJOUR Joueur 1 : Choisir un mot : PASCAL Joueur2 :Devinez le mot : _ _ _ _ _ _ _ Donner une lettre : A Erreur=1 Donner une lettre : E Erreur=2 Donner une lettre : B B _ _ _ _ _ _ Donner une lettre : R B _ _ _ _ _ R Donner une lettre : O B O _ _ O _ R Donner une lettre : L Erreur=3 Donner une lettre : U B O _ _ O U R Donner une lettre : J B O _ J O U R Donner une lettre : N Le mot est : BONJOUR Bravo ! Le mot est : BONJOUR Joueur2 :Devinez le mot : _ _ _ _ _ _ Donner une lettre : A _ A _ _ A _ Donner une lettre : E Erreur=1 Donner une lettre : B Erreur=2 Donner une lettre : F Erreur=3 Donner une lettre : R Erreur=4 Donner une lettre : L _ A _ _ A L Donner une lettre : K Erreur=5 Perdu ! Le mot est : PASCAL 1) Début DEVINETTE 2) Ecrire("Joueur1: choisir un mot:"), lire(mot) 3) Mot2mot 4) Pour i de 1 à long(mot2) faire Mot2[i]"-" FinPour 5) Ecrire("Joueur 2 : Deviner le mot :",mot2) 6) Nb0 7) Répéter Ecrire("Donner une lettre : "), lire(L) Si pos(L,mot)=0 alors nb nb+1 Ecrire("Erreur=",nb) Sinon Pour j de 1 à long(mot) faire Si mot[j]=L alors mot2[j]L Finsi FinPour Ecrire(mot2) FinSi Jusqu'à (nb=5) ou (mot=mot2) 8) Si mot=mot2 alors Ecrire("'Bravo ! Le mot est ',mot ") Sinon Ecrire("Perdu ! le mot est ', mot ") FinSi Objet Type/Nature Rôle T.D.O Nb,i,j Mot,mot2 L Entier Chaine caractère 9) Fin DEVINETTE program DEVINETTE; uses wincrt ; var mot, mot2: string; L:char; nb,i,j:integer; begin writeln('Joueur1: choisir un mot:'); Readln(mot); clrscr ; mot2:=mot; for i:=1 to length(mot2)do mot2[i]:='-'; writeln('Joueur 2 : Deviner le mot :',mot2); nb:=0; repeat write('Donner une lettre : '); readln(L); if pos(L,mot)=0 then begin nb:=nb+1; writeln('Erreur=',nb); end else begin for j:=1 to length(mot) do if mot[j]=L then mot2[j]:=L; writeln(mot2); end; until (nb=5) or (mot=mot2); if mot=mot2 then writeln('Bravo ! Le mot est ',mot) else writeln('Perdu ! le mot est ', mot); end. Cours d’informatique en ligne : uploads/Sports/ ds1-4maths-2016-2017-corrige.pdf

  • 30
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jui 16, 2022
  • Catégorie Sports
  • Langue French
  • Taille du fichier 0.2552MB