Program S6;
Type
tab = array[1..7] Of integer;
Var
divis, mult : tab;
a,b,k,s : integer;
//*******************************
Procedure saisir (Var a,b : integer);
Begin
Repeat
writeln( ' donner le 1er nombre' );
readln(a);
Until a In [2..100];
Repeat
writeln( ' donner le 2eme nombre' );
readln(b);
Until b In [2..100];
End;
//*******************************
Procedure extraire (a,b : integer; Var t1, t2 : tab; Var k: integer);
Var
j : integer;
Begin
t1[1] := a;
k := 1;
Repeat
k := k+1;
t1[k] := t1[k-1] Div 2;
Until (t1[k]=1);
t2[1] := b;
For j:= 2 To k Do
t2[j] := t2[j-1]*2;
End;
//*******************************
Procedure calcul_affiche (t1,t2 :tab; k: integer; Var s:integer);
Var
i : integer;
Begin
s := 0;
For i:= 1 To k Do
If (odd (t1[i])) Then
s := s+t2[i];
writeln('le resultat de multiplication russe de ',a,' par ',b,' est: ',s);
End;
//*******************************
Begin
saisir (a,b);
extraire(a,b,divis,mult,k);
calcul_affiche (divis,mult,k,s);
End.
Inscription à :
Publier les commentaires (Atom)