jeu de mots: algorithme et traduction pascal

Aller en bas

jeu de mots: algorithme et traduction pascal

Message  Admin le Dim 13 Mar - 16:57

algorithmes
Programme principal :

0) début affichage
1) Ecrire (˝*********jouons avec les mots***********˝)
j←0
(ch1,t,j)=PROC saisie (ch1, t, j)
(ch1,t,j)=PROC saisie (ch2, t, j)
repéter
l←long(ch1);
c←ch1[l];
ok← FN test(c,ch2)
si ok
alors
ch1←ch2
PROC saisie(ch2,t,j) fin si
jusqu’à (ok=false) ou (j=100);
2) PROC affichage (j)
3) FIN jouons

Module saisie :
0) DEF PROC saisie (var mot1:chaîne; var t1:tab; var j1:entier)
1) j1←j1+1
if j1 mod 2 =0
alors écrire (˝ joueur 2˝)
sinon écrire (˝joueur 1˝)
2) répéter
ecrire (˝saisir une chaine˝)
lire(mot1)
lettre←true
i←0
Répéter
i←i+1
if non( mot1[i] dans ['A'..'Z','a'..'z']) alors lettre←false
jusqu’à (lettre=false) or (i=long(mot1))
jusqu’à lettre

3) t1[j1] ←mot1
4) Fin Saisie

module test :
0) DEF FN test (c1:char;ch:chaine): booléen
1) si c1=ch[1]
alors test←true
pour ide 1 à j-1 répéter
si ch=t[i] alors test← false Finsi
sinon test←false
Finsi
2) Fin test
* Module affichage :
0) DEF PROC affichage (j1:entier)
1) si j1=100 alors écrire (˝exaequo˝)
alors
si j1 mod 2 =0
alors écrire (˝'l''eleve N°1 est vainqueur˝')
sinon écrire (˝'l''eleve N°2 est vainqueur˝);
Fin si
2) Fin affichage


TRADUCTION EN TURBO PASCAL
program jouons_avec_les_mots;
uses wincrt;
type
tab= array[1..100] of string;
var
ch1,ch2:string;
e,l,j:integer;
t:tab;
c:char;
ok:boolean;
procedure saisie(var mot1:string;var t1:tab;var j1:integer);
var
lettre:boolean;
i:integer;

begin
j1:=j1+1;
if j1 mod 2 =0 then writeln ('joueur 2') else writeln ('joueur 1');
repeat
writeln('saisir une chaine');
readln(mot1);
lettre:=true;
i:=0;
repeat
i:=i+1;
if not( mot1[i] in ['A'..'Z','a'..'z']) then lettre:=false;
until (lettre=false) or (i=length(mot1));
until lettre;

t1[j1]:=mot1;
end;


function test (c1:char;ch:string):boolean;
var
i:integer;

begin

if c1=ch[1]
then
begin
test:=true;
for i:=1 to j-1 do
if ch=t[i] then test:=false
end

else test:=false;
end;




procedure affichage(j1:integer);
begin
if j1=6 then writeln('exaequo')
else
if j1 mod 2 =0 then writeln('l''eleve N°1 est vainqueur')
else writeln('l''eleve N°2 est vainqueur');
end;

begin
writeln('*********jouons avec les mots***********');
j:=0;
saisie(ch1,t,j);
saisie(ch2,t,j);
repeat
l:=length(ch1);
c:=ch1[l];
ok:=test(c,ch2);

if ok
then
begin
ch1:=ch2;
saisie(ch2,t,j); end;
until (ok=false) or (j=100);
affichage(j);
end.

Admin
Admin

Messages : 137
Date d'inscription : 29/12/2010

Voir le profil de l'utilisateur http://aidescolaire.yoo7.com

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum