TP n°1  DEUG S1 MIAS+MASS  2000-2001
Utilisation de Turbo 6


Saisir et exécuter les programmes PASCAL suivant :
(pour le premier on aura intéret à utiliser les commandes de copie de bloc!)
Une facilité de l'éditeur xemacs : dans le menu, la commande Edit/Goto line permet d'aller à la ligne de texte souhaitée.
 
 
PROGRAM  JEU_DES_7_ERREURS;

VAR a,b,c : integer;
    x,y : real;
    test1,test2 : boolean;
    rep : char;
    juste,faux : integer;
    nom : string[20];

BEGIN
randomize;
write('quel est votre nom ? '); readln(nom);
juste:=0; faux:=0;
a:=random(4)+1; b:=random(4)+1;
c:=2;

writeln('épreuve numéro 1 : ');
write(a,'+',b,'/',c,'='); readln(x);
y:=a+b/c;
if x = y
   then begin writeln('oui'); juste:=juste+1; end
   else begin writeln('non'); faux:=faux+1; end;
writeln('la bonne réponse est : ',y);
writeln;

writeln('épreuve numéro 2 : ');
write(a,'/',b,'+',c,'='); readln(x);
y:=a/b+c;
if x = y
   then begin writeln('oui'); juste:=juste+1; end
   else begin writeln('non'); faux:=faux+1; end;
writeln('la bonne réponse est : ',y);
writeln;

writeln('épreuve numéro 3 : ');
write(a,'*',b,'/',c,'='); readln(x);
y:=a*b/c;
if x = y
   then begin writeln('oui'); juste:=juste+1; end
   else begin writeln('non'); faux:=faux+1; end;
writeln('la bonne réponse est : ',y);
writeln;

writeln('épreuve numéro 4 : ');
write(a,'/',b,'*',c,'='); readln(x);
y:=a/b*c;
if x = y
   then begin writeln('oui'); juste:=juste+1; end
   else begin writeln('non'); faux:=faux+1; end;
writeln('la bonne réponse est : ',y);
writeln;

writeln('épreuve numéro 5 ( répondre par v ou f ) : ');
write('not (',a,'>',b,') and (',c,'<',a*b,') = '); readln(rep);
test1 := not (a>b) and (c<a*b);
test2 := (rep = 'v') or (rep = 'V');
if test1 = test2
   then begin writeln('oui'); juste:=juste+1; end
   else begin writeln('non'); faux:=faux+1; end;
writeln('la bonne réponse est : ',test1);
writeln;

writeln('épreuve numéro 6 ( répondre par v ou f ) : ');
write('not ((',a,'>',b,') and (',c,'<',a*b,')) = '); readln(rep);
test1 := not ((a>b) and (c<a*b));
test2 := (rep = 'v') or (rep = 'V');
if test1 = test2
   then begin writeln('oui'); juste:=juste+1; end
   else begin writeln('non'); faux:=faux+1; end;
writeln('la bonne réponse est : ',test1);
writeln;

writeln('épreuve numéro 7 ( répondre par v ou f ) : ');
write('not ((',a,'>',b,') or (',c,'<',a*b,')) = '); readln(rep);
test1 := not ((a>b) or (c<a*b));
test2 := (rep = 'v') or (rep = 'V');
if test1 = test2
   then begin writeln('oui'); juste:=juste+1; end
   else begin writeln('non'); faux:=faux+1; end;
writeln('la bonne réponse est : ',test1);
writeln;

writeln('cher ',nom);
writeln('vous avez ',juste,' réponses justes');
writeln('et ',faux,' réponses fausses');
write('c''est ');
if juste > faux
   then writeln('bien')
   else writeln('mal');
writeln;
END.


 
PROGRAM PIQUET;

VAR  jeu, compteur : integer ;
     nom1, nom2, nom : string[20] ;

BEGIN (* 0 *)

(* règle du jeu *)
writeln('Jeu du piquet (2 joueurs)') ;
writeln('Vous tapez un nombre entre 1 et 10 qui s''ajoute à un compteur.') ;
writeln('Le premier qui atteint 100 gagne') ;
writeln ;

(* saisie des noms des joueurs *)
write('Nom du premier joueur ? ') ;  readln(nom1) ;
write('Nom du deuxième joueur ? ') ; readln(nom2) ;
writeln ;

(* initialisation du compteur *)
compteur:=0 ;

(* déroulement du jeu *)
writeln('C''est ',nom1, ' qui commence') ;
while compteur<100 do
      begin (* 1 *)
      write('jeu de ',nom1) ;
      (* saisie avec contrôle de validité *)
      repeat (* 2 *)
            write(' (entre 1 et 10) ? ') ;
            readln(jeu) ;
            until (jeu>=1) and (jeu<=10) ; (* 2 *)
      compteur:=compteur+jeu ;
      writeln(' compteur : ',compteur) ;
      (* échange des noms *)
      nom:=nom1 ;  nom1:=nom2 ;  nom2:=nom ;
      end ; (* 1 *)
(* ici compteur>=100 : affichage du gagnant *)
if compteur>=100
      then writeln('C''est ',nom2,' qui a gagné')
      else writeln('C''est ',nom1,' qui a gagné') ;
END. (* 0 *)