Co jest z ta petla ? :(

0

Siema !
Mam petle repeat..until :

    repeat
      begin
        s := Com*(ilosc*proc); //oblicz co ma dodac
        z := ilosc+s;
        Memo2.Text := FloatToStr(z); //dodanie wyniku
        Inc(i);
      end;
    until i = dni;

wczescniej ze i = 0; i wykonuje mi ta petle tylko taz ...a w zmiennej dni jest np 10 ... czemu ? :(

0

Moze wykorzystaj for czyli :

For i:=0 to liczba_dni do
Begin
cos tam
end;

0

Probowalem - to samo 1 raz wykonuje

0

u mnie wykonuje się 10 razy ale pewnie kierowałeś sie wynikami w memo2 a on za każdym razem czyscił memo. daj Memo2.Lines.Add...powinno pomóc

[Dopisane]
do posta poniżej:

<font color="green"> Zmienna dni pobieram z edita ... :/ </span>

ja mówie o zapisie ! nie odczycie

0

Zmienna dni pobieram z edita ... :/

0
for i:=0 to strtoint(edit1.text) do //jesli nie to wartosc edita wprowadz do zmiennej
begin
s := Com*(ilosc*proc); 
z := ilosc+s;
Memo2.lines.add(inttostr(z)); //przyjolem ze "z" jest liczba
end;

musi zadzialac

0

Pętla jest dobrze napisana. Jeżeli wcześniej w tej procedurze przypisałeś i:=0, a dni:=10 to pętla wykona się dokładnie 10 razy.
Być może zmienną dni masz zadeklarowaną globalnie i gdzieś w innej procedurze zmieniasz jej wartość...

begin
i:=0;
dni:=10; //przypisz zmiennej dni wartość np. 10 przed samą pętlą
repeat
begin
s := Com*(ilosc*proc); //oblicz co ma dodac
z := ilosc+s;
Memo1.Text := FloatToStr(z); //dodanie wyniku
Inc(i);
end;
until i = dni;
end;

Dowiedz się przy okazji do czego służą BreakPoint, Add Watch, Watches itp. Bardzo ułatwią Ci pracę. Sam będziesz rozwiązywał takie problemy w 2 minuty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1