algorytm, ile razy IF został spelnony (FOR)?

0

Mam cos takiego :

var
liczba:real;
i:integer;

begin
liczba:=StrToFloat(edit1.text);

for iii :=0 to 10 do
begin
if liczba>iii then
begin
<font color="red">//co tu wpisac??</span>
end;
end;

showmessage('warunek if jest spelniony dla iii ='+ <font color="red">{co tu wpisac??}</span> );
end;

Jak wykryc programowo ile razy i dla jakich wartosci i zostal spelniony warunek if ????
[glowa]

0

Nic nie rozumiem, piszesz normalnie tak

<font color="blue">'Dla i równego ' + IntToStr(i);</span>

Jeśli w ogóle o to chodziło... :-/

0
var 
  Liczba: Real;
  I, Cnt, Max: Integer;

begin
  Liczba:=StrToFloat(Edit1.Text);
  Cnt:=0;
  Max:=10
  for I:=0 to Max do
  begin
    if Liczba>I then
    Inc(Cnt);
  end;
end;

Zmienna Cnt będzie zawierać liczbę wystąpień wartości True. Ale to samo osiągniesz w ten sposób:
Cnt:=Trunc(Max-Liczba-1);

[dopisane]
Berl: po co to wszystko? Jeśli już dla czwartego warunku jest False, to wiadomo że np. dla ósmego tak samo.

[dop2]
Aha, nie o to chodzi w twoim algorytmie. Ale, w takim razie, po co zapisywać poprzednie wartości? Wystarczy ostatnią.

0

var
liczba : real;
iii : integer;
spelniony : array of byte;
odpowiedz : string;

begin
odpowiedz := '';
liczba := StrToFloat(edit1.text);

for iii := 0 to 10 do begin
    if liczba > iii then begin
        setlength(spelniony, length(spelniony) + 1);
        spelniony[length(spelniony) - 1] := iii;
    end;
end;

for iii := 0 to length(spelniony) - 1 do begin
    odpowiedz := odpowiedz + inttostr(spelniony[iii]) + ',';
end;

showmessage('warunek if jest spelniony dla iii = '+ odpowiedz+
            ' a był spełniony '+inttostr(length(spelniony))+' razy.');
spelniony := nil;

end;

0

hmm... pozwolilem sobie napisac <font color="red">prostrza </span>wersje :)
[code]
var
liczba : real;
iii : integer;
odpowiedz : string;

begin
odpowiedz := '';
liczba := StrToFloat(edit1.text);

for iii := 0 to 10 do
if liczba > iii then
odpowiedz:= odpowiedz + IntToStr(Liczba) + ' ,';

If Length(odpowiedz) = 0 then
showmessage('warunek if niezostal spelniony ani razu');

SetLength(odpowiedz, length(odpowiedz - 2);
showmessage('warunek if jest spelniony dla iii = ' + odpowiedz);
end;
[/code]

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