Salut;
Je suis une étudiante en première année informatique et j'ai cet exercice. Je ne trouve pas où est l'erreur.
Svp svp j'ai besoin d'aide, voilà l'anoncé de l'exo :
Et voila le programme :Dans un hôpital, on donne à chaque malade un numéro (indicatif) pour l'identifier et, afin d'éviter toute erreur, on associe une clé de contrôle à chaque indicatif. Dans notre cas, la clé de contrôle est un caractère alphabéthique dont le rang dans l'alphabet est donné par :
(le reste de la division de l'indicatif par 26 ) +1
Exemple : si l'indicatif d'un malade est 1624, la clé de controle est M et on ecrira 1624M.
A) Construire la solution qui consistera à associer une clé de contrôle à chaque indicatif, au moment de sa création puis chaque à chaque fois que l'indicatif est utilisé. Il faudra vérifier s'il est correct ou non; pour cela, on recalcule la clé de controle et on la compare à celle qui a été associée à l'indicatif au départ; si c'est la même, l'indicatif a été écrit correctement; sinon, il y erreur.
Exemple : soient l'indicatif et sa clé 1264M. La clé de contrôle après son recalcul est Q, il y a donc erreur.
B) Construire la solution qui nous permet de retrouver toute erreur dans
la manipulation des indicatifs.
Pouvez-m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 PROGRAM exo62; uses crt; var Id:integer; cl,xx: char; function cle ( A: integer): char; var i :integer; cc:char; begin cc:='A'; for i:=2 to (a mod 26)+1 do cc:= succ(cc); cle:=cc; end; function vercle (A:integer; cc:char):boolean; var i: integer; var cc1: char; var test: boolean; begin i:=0; for cc1:= cc to cle(A) do i:=i+1; if i=0 then test:=true else test:= false; vercle:=test; end; BEGIN clrscr; textcolor(15); writeln ('Si vous voulez calculer un clé tapez A'); writeln ('Si vous voulez vérifiez un clé tapez Z'); readln (xx); if xx='a' then begin writeln ( 'Entrez l''indicatif'); readln (id); writeln( 'La clé est: ', cle (id) ); end; if xx= 'z' then begin writeln ('Entrez l''indicatif et sa clé'); readln (id,cl); if vercle(id,cl)=false then begin textcolor(4 + blink); writeln('Erreur'); textcolor(15); writeln ( cle( id),' c''est la clé'); end else begin textcolor(10); writeln (' votre cle est juste'); end; end; readln; END.
Partager