Problem z liczeniem

0

Mam taki kod :
procedure TForm1.btn1Click(Sender: TObject);
var
dni : Integer;
ilosc : Integer;
proc : extended;
i : Integer;
z : integer;
begin
proc := StrToFloat(edt3.Text);
dni := StrToInt(edt1.Text);
ilosc := StrToInt(edt2.Text);
for i := 1 to dni do
Memo1.Visible := True;
z := strtofloat(ilosc * proc + ilosc);
Memo1.text := IntToStr(Z);
end;
i wywala mi bledy z ta linia : z := .....
nie wiem co zrobic :/
Widzicie bledy ? :]

0

Widzicie bledy ? :]

Jak najbardziej.

  1. proc jest typu extended, więc ilosc * proc + ilosc też będzie extended
    funkcja strtofloat przyjmuje argument typu string, a nie extended
  2. zmienna z jest typu integer, wiec nie przyjmie wyniku strtofloat, ktory jest typu Extended
0

Thx ale teraz mam taki kod:
procedure TForm1.btn1Click(Sender: TObject);
var
dni : Integer;
ilosc : Integer;
proc : extended;
i : Integer;
z : extended;
begin
proc := StrToFloat(edt3.Text);
dni := StrToInt(edt1.Text);
ilosc := StrToInt(edt2.Text);
for i := 1 to dni do
Memo1.Visible := True;
z := ilosc * proc + ilosc;
Memo1.text := FloatToStr(z);
end;
Program sie kompiluje ale jak wpisuje np w edt1 : 2 w edt2 : 3 edt3 : 0.01 i klikam button to wyskakuje jakis error i zamyka mi program :/
CZemu ?

0
procedure TForm1.btn1Click(Sender: TObject);
var
  dni : Integer;
  ilosc : Integer;
  proc : extended;
  i : Integer;
  z : integer; //-> z : extended;
begin
  proc := StrToFloat(edt3.Text);
  dni := StrToInt(edt1.Text);
  ilosc := StrToInt(edt2.Text);
    for i := 1 to dni do
      Memo1.Visible := True;
      z := strtofloat(ilosc * proc + ilosc); //--> z :=(ilosc * proc + ilosc);
      Memo1.text := IntToStr(Z); //--> Memo1.text := FloatToStr(Z);
end;

[dopisane]
pq - jak wykle ktos w tle mnie ubiegl :-)

[dopisane]
Szkoda atramentu [krzyk]
Po pierwsze moze wpisalbys "," zamiast "." a po drugie z takimi rzeczami naprawde nie warto wyjezdzac na forum. Poczytaj, poprobuj a nie zadawaj takich pytan.

0

Ehh program sie kompiluje ale jak daje oblicz to sa bledy i zamyka program ....

0

Ehh program sie kompiluje ale jak daje oblicz to sa bledy i zamyka program ....

Jakie bledy, w ktorej linijce, na jakich danych. A w ogole zainteresuj sie debuggerem, sledzeniem krokowym, breakpointami i watch list. Sam rozwiazesz problem i przynajmniej czegos sie nauczysz.

0

Jak wpisuje w edt3 (proc) jakas np liczbe 0.01 to blad jest ale jak liczbe całkowita np 2 to nie ma bledu :]

0

A sprawdziles to, co RaBBiT napisal?

0

Tak, jak wpisuje w (proc) jakas liczbe np 0.01 to blad jest a jak normalna to nie ma bledu.. :(

0

Wpisz:

0,001

0

Dzieki ! Juz zrobiłem prawie tylko jest jeszcze mały problem z pętlą :

for i := 1 to dni do

I chcĘ zeby pętla była o 1 raz mniejsza niz jest w zmiennej "dni"
Bo jak wpisuje:

for i := 1 to dni-1 do

To w ogóle nie liczy :/

Ee juz jest dobrze zrobilem to inaczej ! Ale wielkie thx z tymi konwersacjami typow :}

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