Mysle, ze wszyscy znamy algorytm dzielenia pisemnego. Przypuszczam, ze nauczono go nas juz w podstaowce. Tym bardziej zaskakuje mnie fakt, ze nie latwo jest przetworzyc go do postaci dzialajacego programu w Pascalu.
Oto moje wypociny:
program pisemne;
uses crt;
var
dzielna:string;
dzielnik:string;
dziel:string;
wynik:integer;
reszta:string;
krok:integer;
blad:integer;
cos:string;
c,i:integer;
dn,dk,dldk,dldn,w,dz,odj:integer;
begin
writeln('podaj dzielna i dzielnik');
readln(dzielna);
readln(dzielnik);
val(dzielnik,dk,blad);
val(dzielna,dn,blad);
writeln('dn: ',dn);
writeln('dk: ',dk);
dldn:=length(dzielna);
writeln('dldn: ',dldn);
dldk:=length(dzielnik);
writeln('dldk: ',dldk);
for i:=1 to dldk do
begin
dziel[i]:=dzielna[i];
end;
writeln('dziel: ',dziel);
val(dziel,dz,blad);
writeln('dz: ',dz);
for krok:=1 to (dldn-dldk) do
begin
if dz>=dk then
begin
w:=dz div dk;
wynik:=wynik10+w;
odj:=wdk;
dz:=dz-odj;
writeln('krok: ',krok);
writeln('w: ',w);
writeln('wynik: ',wynik);
writeln('odj: ',odj);
writeln('dz: ',dz);
end ;
reszta:=dziel;
cos:=dzielna[length(dziel)+krok];
val(cos,c,blad);
dz:=dz*10+c;
writeln('reszta: ',reszta);
writeln('cos: ',cos);
writeln('c: ',c);
writeln('dz: ',dz);
end;
writeln('dzielna: ',dn);
writeln('dzielnik: ',dk);
writeln('wynik z dzielenia :',wynik,'reszty :',reszta);
readln;
end.
absurdalna ilosc zmiennych nie pomogla rozwiazac problemu. program dziala, choc robi to ZLE.
bede dozgonnie wdzieczna, jesli ktos z Was powie mi jak naprawic to cholerstwo.