U prvi prolazak kroz petlju ulaziš s početnom vrednošću za [inlmath]\mathtt{im}[/inlmath] koja iznosi [inlmath]24[/inlmath]. Zatim
na kraju svakog prolaza kroz petlju, neposredno pre [inlmath]\mathtt{until}[/inlmath], dodeliš promenljivoj [inlmath]\mathtt{im}[/inlmath] onu vrednost koju treba da ima u narednom prolazu kroz petlju. To treba da učiniš odmah posle [inlmath]\mathtt{i:=i+1;}[/inlmath] – znači, između linija [inlmath]\mathtt{i:=i+1;}[/inlmath] i [inlmath]\mathtt{until}[/inlmath]. Na ovaj način, [inlmath]\mathtt{i}[/inlmath] već ima onu vrednost koju će imati u narednom prolasku kroz petlju, pa i [inlmath]\mathtt{im}[/inlmath] možeš za naredni prolazak kroz petlju računati po formuli koju si napisao. Treba samo tu formulu da ispraviš: ne treba
- Kôd: Obeleži sve
im:=im*((2*(i+2)/i-1));
već treba
- Kôd: Obeleži sve
im:=im*(2*(i+2)/(i-1));
Osim toga, pošto se u sklopu [inlmath]\mathtt{until}[/inlmath] nalazi uslov u kome figuriše promenljiva [inlmath]\mathtt{im}[/inlmath], a koja je ovime izmenjena, treba i taj deo korigovati: uvesti varijablu [inlmath]\mathtt{razlomak}[/inlmath] (real type) i u svakoj petlji je, neposredno posle [inlmath]\mathtt{br:=br+4;}[/inlmath] računati kao [inlmath]\mathtt{razlomak:=br/im;}[/inlmath]
Linije [inlmath]\mathtt{s:=s+br/im;}[/inlmath] i [inlmath]\mathtt{until(br/im<eps);}[/inlmath] prepraviti u linije [inlmath]\mathtt{s:=s+razlomak;}[/inlmath] i [inlmath]\mathtt{until(razlomak<eps);}[/inlmath] – ovo ima i opravdanje sa aspekta efikasnosti, jer se količnik [inlmath]\mathtt{br/im}[/inlmath] pojavljuje dvaput u toku jedne petlje (jednom u samoj petlji pri dodavanju sumi i jednom na kraju, unutar uslova za [inlmath]\mathtt{until}[/inlmath]), pa je bolje tu vrednost jednom izračunati i smestiti u jednu varijablu kako se taj količnik ne bi računao dvaput u toku jedne petlje. A time se rešava i ovaj dodatni problem koji bi nastao ažuriranjem vrednosti [inlmath]\mathtt{im}[/inlmath] za naredni prolazak kroz petlju.