Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Schleife


Jasmini - Do 02.06.05 15:06
Titel: Schleife
Habe eine Aufgabe, bei der ich total auf dem Schlauch stehe...

Folgende Zahlenfolge soll per Klick auf einen Button (berechnet mit einer Schleife)
in einem Memo-Feld ausgegeben werden!


-1, 2, -3, 4, -5, 6, -7, 8, -9, 10, ... 20



Bitte um Hilfe...


uall@ogc - Do 02.06.05 15:09


Delphi-Quelltext
1:
2:
3:
4:
for i := 1 to 20 do
  if i mod 2 = 0 then
    memo1.lines.text := memo1.lines.text + inttostr(i)+', ' else
    memo1.lines.text := memo1.lines.text +'-'+inttostr(i)+', ';


ungetestet

oder:

Delphi-Quelltext
1:
2:
3:
4:
for i := 1 to 20 do
  if i mod 2 = 0 then
    memo1.lines.add(inttostr(i)) else
    memo1.lines.add('-'+inttostr(i));


jasocul - Do 02.06.05 15:11


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  t : String;
begin
  for i := 1 to 20 do begin
    if odd(i) then
      t := IntToStr(i)
    else
      t := IntToStr(-i);
    memo1.lines.add(t);
  end;
end;

Auf die Schnell und ungetestet.


Jasmini - Do 02.06.05 15:16

danke!

kleiner vorzeichenfehler *g*

:D :D
so gehts:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.GoClick(Sender: TObject);
var
  i: Integer;
  t : String;
begin  
  for i := 1 to 20 do begin
    if odd(i) then  
      t := IntToStr(-i)
    else
      t := IntToStr(i);
    memo1.lines.add(t);
  end;  
end;

end.


Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.


Sprint - Do 02.06.05 22:30

Und noch ein anderer Lösungsweg mit einer repeat Schleife:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
var
  I, J: Integer;
  S: String;
begin

  I := -1;
  J := 2;

  repeat
    S := S + IntToStr(I) + ', ' + IntToStr(J) + ', ';
    Dec(I, 2);
    Inc(J, 2);
  until J > 20;

  Memo1.Lines.Add(S);

end;


delfiphan - Do 02.06.05 23:05


Delphi-Quelltext
1:
2:
for i := 1 to 20 do
 Memo1.Lines.Add(FloatToStr(cos(i*pi)*i)); // oder alternativ Power(-1,i)*i


oder ohne Floats:

Delphi-Quelltext
1:
Memo1.Lines.Add(inttostr(i*(1-i and 1*2)));                    


BenBE - Fr 03.06.05 09:55

AFAIK gibt's doch auch den Befehl IntPower unter Delphi ???


delfiphan - Fr 03.06.05 10:32

Ja, der nimmt einfach ganzzahlige Exponenten an. Die Basis ist aber Float und das Resultat auch.