Program S4 ;
Var
ch : string;
//**************************************
Function verif(ch:String) : boolean;
Var
ok : boolean;
i : integer;
Begin
ok := true;
i := 1;
While (ok) And (i<=length(ch)) Do
If (ch[i] In ['0'..'9']) Then
i := i+1
Else
ok := false;
verif := ok;
End;
//**************************************
Function EAN13(ch:String) : boolean;
Var
cc,v,e,s,r,i,p : integer;
Begin
val(ch[length(ch)],cc,e);
s := 0;
For i:=1 To length(ch)-1 Do
Begin
val(ch[i],v,e);
If (i Mod 2=0) Then
s := s+3*v
Else
s := s+v;
End;
r := s Mod 10;
p := 10-r;
EAN13 := (cc=p);
End;
//**************************************
Begin
Repeat
write('Saisir un nombre de 13 chiffres: ');
readln(ch);
Until (length(ch)=13)And(verif(ch));
writeln;
writeln('--------------------------------');
writeln;
If (EAN13(ch)) Then
writeln(ch,' est un code EAN13')
Else
writeln(ch,' n''est pas un code EAN13');
writeln;
writeln('-------------------------------');
End.
Inscription à :
Publier les commentaires (Atom)