Bonjour chers internautes,
j'ai un exercice à effectuer en pascal ; il s'agit de réaliser en quelque sorte une calculatrice a l'aide de tableaux , qui n'aurait 'pas de limite de calcul ' .
J'aurais besoin de quelques pistes / tuyaux ... et si vous aviez un peu de temps a me consacrer peut être rectifier ma "programmation" .
voici mon énoncé :
Méthode
L’idée consiste à représenter un entier par un nouveau type de variables défini par nous-mêmes: BigInt. Il s’agit d’un tableau dont la première case indique le signe (0=positif, 1=négatif), et les cases suivantes contiennent les chiffres. Pour des raisons algorithmiques, il est judicieux d’enregistrer les chiffres dans l’ordre inverse.
Cahier des charges
Ecrire un programme qui permet à l’utilisateur, via un menu textuel, d’effectuer les quatre opérations de base (addition, soustraction, multiplication et division euclidienne) sur deux entiers de n’importe quelle taille.
Je ne suis vraiment pas sure de la partie ' somme ' et j'ai du mal a rajouter la retenue.
Un tuyaux pour la suite ( ) ?
Merci d'avance .
Mon travail :
program big integer;
function tableau(c : string, i :integer);
u:= length (c) + 0
if c[0] = '-'
then u := n-1
end;
setlength (Tn,n);
if c[0] = '-'
then Tn[0]= 1
c:= copy1(c,1,length((c)-1)
else Tn[0]:=0
c=copy(c, 1 , length (c)-1)
end;
for i = 1 to n
if 48 <= C<=57
THEN
Tn = ord ( c ) -48
then writeln('erreur');
end;
end;
end.
var :big int array of integer ; a , b : integer;
begin
writeln (' 1 addition, 2 soustraction, 3 multiplication , 4 division euclidienne');
for z := 1 to 4
writeln (' tapez 1 ou tapez 2 ou tapez 3 ou tapez 4 ');
readln(z);
if z := 1
writeln ('entrez deux nombres svp:');
readln('a;b');
a:= Tn1[z]
b:=Tn2[z]
a+b:=Tn[z]
PROGRAM somme;
Var Tn,Tn1,Tn2 : array[1..max] of real;
z,max : integer;
Begin
For z:=1 to max do
Begin
writeln (' donner ',z,'element de Tn1'); read (Tn1[z]);
end;
For z:=1 to max do
Begin
writeln (' donner ',z,'element de Tn2'); read (Tn2[z]);
end;
For z:=1 to max do
Begin
For z:=1 to max do
Begin
T[z] := T2n[z] + T1n[z] +1 ;
End;
Writeln( T[z]);
End;
End.
-----