TP n°2 d'informatique DEUG S1 MIAS+MASS 2000-2001
Expressions, affectation, entrées/sorties

EXERCICE 1    Taper le programme suivant :

program TP2EX1;
var x,y : real;
begin
write('x= '); readln(x);
writeln('y= '); readln(y);
x:=x+y; y:=x-y; ; x:=x-y;
writeln('après traitement :');
writeln('x= ',x,' y= ',y);
readln;
end.

Exécuter. Expliquer les résultats obtenus.

formatage en écriture
    On spécifie par un integer (ou une expression arithmétique de type integer) le nombre de caractères de la zone où se fera l'écriture. Celle-ci se fait dans la partie droite de la zone (justification à droite).
    Dans le cas particulier d'un nombre réel, on obtient un affichage sans facteur de cadrage en spécifiant en plus le nombre de décimales, la dernière est alors arrondie.

    Les spécifications précédentes s'écrivant précédée de  :
derrière l'expression à écrire.

Exemples :

var i: integer;
    x : real;
begin
i:=12;
x:=pi;
writeln('.');       (* pour repérer la première colonne *)
writeln('essai':i);
writeln(i*i:5);
writeln(x:i:i div 3);
writeln(' ':20,'vive le formatage !');
readln;
end.

    A l'exécution i ls'affiche :

.
       essai                                (* 7 espaces devant *)
  144                                       (* 2    "      "    *)
      3.1416                                (* 6    "      "    *)
                    vive le formatage !     (* 20   "      "    *)

EXERCICE 2    Modifier le programme de l'exercice 1 afin d'obtenir l'affichage suivant :

x = 25.698
y = -12.456
                       x       y

avant traitement :   25.70  -12.46
après traitement :  -12.46   25.70

EXERCICE 3    Ecrire un programme qui édite les tables de vérité sous la forme :

Tables de vérité

    P        Q   P et Q   P ou Q   P => Q  P <=> Q
 TRUE     TRUE     TRUE     TRUE     TRUE     TRUE
 TRUE    FALSE    FALSE     TRUE    FALSE    FALSE
FALSE    FALSE    FALSE    FALSE     TRUE     TRUE
FALSE     TRUE    FALSE     TRUE     TRUE    FALSE

On rappelle que  P=>Q  est logiquement équivalent à  Q ou non P
et que  P<=>Q  est logiquement équivalent à  P=>Q et Q=>P.

EXERCICE 4    Taper le programme suivant :

program TP2EX3;
var x: real;
    m,n : integer;
    s : string[10];
begin
write('x= '); readln(x);
n:=round(x);
m:=trunc(x);
if n=m then s:='ca marche' else s:='ca marche pas';
writeln('n=',n,' '+'m=',m,' '+s);
readln;
end.

Exécuter avec 0.1234E+3, puis avec 0.456E+2 et avec 0.456789E+5.
Expliquer les résultats obtenus.

EXERCICE 5    Ecrire un programme lisant un temps T exprimé en seconde, et le transformant en heures, minutes, secondes.

    exemple :    T = 12513 sec  =>  3 h 28 mn 33 s

EXERCICE 6    Ecrire un programme qui :

- saisit au clavier une heure de départ en heures, minutes, secondes et une durée de trajet également en h  mn s
- calcule l'heure d'arrivée (en h mn s) le meme jour ou un jour suivant
- affiche l'heure sous la forme :
    "heure d'arrivée :"
    " meme jour : ..h ..mn ..s "    ou    " jour + .. : ..h ..mn ..s "