Zaczynam zabawe z algorytmika i jestem w trakcie czytania ksiazki Wirth Niklaus - Algorytmy + struktury danych = programy. Niestety mam problem ze zrozumieniem jednego z przykladow podanego w ksiazce, a dokladniej 2 linijek, ktore zaznaczylem w kodzie.
Prosilbym o wytlumaczenie w zrozumialy sposob.
Program ma wypisac kolejne ujemne potegi 2.
Przykladowo dla n = 4 wypisze
0.5
0.25
0.125
0.0625
A kod w pascalu taki :
program potega(output);
{reprezentacja dziesiętna ujemnych potęg liczby 2}
const n =4;
type cyfra =0..9;
var i, k, r : INTEGER;
d : array[1..n] of CYFRA;
begin
d[1]:=0;
for k :=1 to n do { wypisz 4 kolejne potegi }
begin
write('0.');
r :=0;
for i :=1 to k-1 do
begin
r :=10 *r +d[i]; { TUTAJ NIE ROZUMIE }
d[i]:=r div 2;
r :=r -2 *d[i]; { TUTAJ NIE ROZUMIE }
write(d[i])
end;
d[k] :=5; writeln('5')
end;
end.