Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Probleme mit FOR-Schleife (https://www.delphipraxis.net/164569-probleme-mit-schleife.html)

timmy19 18. Nov 2011 15:50

Delphi-Version: 7

Probleme mit FOR-Schleife
 
Hallo,

ich komm gleich zu Sache:

Ich habe ein Problem mit einer FOR-Schleife. Ich möchte mit einer FOR-Schleife die Wurzel/das Quadrat aus 1 bis 25 ausrechnen. Das Ganze möchte ich dann in einer ListBox ausgeben.

Nun, mein Code sieht bisher so aus:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var WaI:extended;Qva,a:integer;i:integer;
Begin
For i:=1 to 25 do ;
begin
WaI:=sqrt(i)  ;
i:=integer(ListBox1.Items) ;

For a:=1 to 25 do
Begin
Qva:= sqr(i);
a :=integer(ListBox2.Items) ;
end;
Wenn ich auf "Start" drücke kommt eine Fehlermeldung, welche lautet:

Zitat:

Unit.pas(62): Anweisung erwartet, aber Dateiende gefunden
Ich weiß nun nicht, was ich falsch gemacht habe.

Und ich hab noch ne zweite Frage:
Wie kann ich das Ganze in ner ListBox ausgeben? Hab es mit dem Obenstehenden Code versucht, dann kommt aber beim Quadrat die Fehlermeldung

Zitat:

Anweisung für FOR-Schleifenvariabe gefunden
Das kommt aber beim ersten nicht.

Ich hoffe ihr könnt mirin beiden Fragen helfen!

Gruß,
timmy

PS: 1. Zeile 62 ist längst hinter den letzten "End".
2. Bin Delphi-Neuling

Luckie 18. Nov 2011 15:52

AW: Probleme mit FOR-Schleife
 
Bitte stell nur eine Frage pro Beitrag, sonst geht hier alles durcheinander.

Zu deiner ersten Frage. Da fehlt wohl irgendwo ein Semikolon oder ein End.

DeddyH 18. Nov 2011 15:53

AW: Probleme mit FOR-Schleife
 
Hallo und Willkommen in der DP :dp:,

wenn Du richtig einrückst, wirst Du feststellen, dass 2 "end"s fehlen und ein Semikolon zuviel ist.

timmy19 18. Nov 2011 16:00

AW: Probleme mit FOR-Schleife
 
Zitat:

Zitat von DeddyH (Beitrag 1136881)
Hallo und Willkommen in der DP :dp:,

wenn Du richtig einrückst, wirst Du feststellen, dass 2 "end"s fehlen und ein Semikolon zuviel ist.

Danke für die Schnellen Antworten.:)

Das Semikolon und das 2.End finde ich aber nicht. Wo müssen die hin?

Bummi 18. Nov 2011 16:10

AW: Probleme mit FOR-Schleife
 
Zeile 62 ist kaum hilfreich als Information, das Semikolon ist zuviel nach dem do

so, sollte es aussehen
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  WaI: extended;
  Qva, a: Integer;
  i: Integer;
Begin
  For i := 1 to 25 do
  begin
    WaI := sqrt(i);
    i := Integer(ListBox1.Items);
  end;

  For a := 1 to 25 do
  Begin
    Qva := sqr(i);
    a := Integer(ListBox2.Items);
  end;
End;
gegf. fehlt bei Dir am Dateiende noch

Delphi-Quellcode:
end.

timmy19 18. Nov 2011 16:15

AW: Probleme mit FOR-Schleife
 
@Bummi: Danke! :)

Nun hab ich aber noch ne Frage:

Er gibt mir immer noch diese Fehlermeldung:

Zitat:

Anweisung für FOR-Schleifenvariable 'i'
bzw. Anweisung für FOR-Schleifenvariable 'a'
Bezieht sich auf diese beiden Codezeilen:

Zitat:

i := Integer(ListBox1.Items);
bzw. a := Integer(ListBox2.Items);
Wie kann man das umgehen?

Bummi 18. Nov 2011 16:20

AW: Probleme mit FOR-Schleife
 
wenn ich mal rate was Du vorhaben könntest
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
var
  WaI: extended;
  Qva, a: Integer;
  i: Integer;
Begin
  For i := 1 to 25 do
  begin
    WaI := sqrt(i);
    ListBox1.Items.Add(FloatToStr(WaI));
    // oder
    //ListBox1.Items.Add(FormatFloat('0.000',WaI));
  end;

  For a := 1 to 25 do
  Begin
    Qva := sqr(a);
    ListBox2.Items.Add(FloatToStr(Qva));
  end;
End;




http://crashkurs.christian-stelzmann.de/

timmy19 18. Nov 2011 16:26

AW: Probleme mit FOR-Schleife
 
Ja, du hast Recht.

Trotzdem gibts wieder ne neue Fehlermeldung. Diesmal sieht sie so aus:

Zitat:

Deklaration erwartet, aber Dateiende gefunden
Was ist da jetzt wieder falsch?

PS: Sorry, wenn ich nerv, aber ich weiß echt nicht weiter...

Bummi 18. Nov 2011 16:29

AW: Probleme mit FOR-Schleife
 
am Ende der Datei muss immer

Delphi-Quellcode:
end.
stehen ....

timmy19 18. Nov 2011 16:41

AW: Probleme mit FOR-Schleife
 
Zitat:

Zitat von Bummi (Beitrag 1136891)
am Ende der Datei muss immer

Delphi-Quellcode:
end.
stehen ....

Mist bin ich blöd! :roll:

Danke, es funzt! :)

Trotzdem hätt ich noch eine Frage:

Habe jetzt bei beiden geschrieben:

Delphi-Quellcode:
ListBox2.Items.Add(IntToStr(i)+ ':' + FloatToStr(Qva));
Mit diesem Befehl soll er die jeweilige Zahl (also 1- 25) davor setzten. Soweit geht das auch. Leider ist steht bei Quadrat IMMER 26, anstatt die jeweilige Zahl. Bei der Wurzel geht es komischer Weise einwandfrei...

DeddyH 18. Nov 2011 16:46

AW: Probleme mit FOR-Schleife
 
Und bei IntToStr statt FloatToStr?

timmy19 18. Nov 2011 16:54

AW: Probleme mit FOR-Schleife
 
Zitat:

Zitat von DeddyH (Beitrag 1136895)
Und bei IntToStr statt FloatToStr?

Immernoch...

Ich versteh halt nicht, warum er es bei der Wurzel richtig macht, aber beim Quadrat nicht.

DeddyH 18. Nov 2011 17:00

AW: Probleme mit FOR-Schleife
 
Zeig doch mal den ganzen Code, da stimmt doch was nicht.

timmy19 18. Nov 2011 17:02

AW: Probleme mit FOR-Schleife
 
Zitat:

Zitat von DeddyH (Beitrag 1136898)
Zeig doch mal den ganzen Code, da stimmt doch was nicht.

Hier:

Delphi-Quellcode:
begin
For a := 1 to 25 do
  Begin
    Qva := sqr(a);
    ListBox2.Items.Add(IntToStr(i)+ ':' + FloatToStr(Qva));
  end;
end
Wie gesagt, bei der Wurzel funzts.

DeddyH 18. Nov 2011 17:03

AW: Probleme mit FOR-Schleife
 
Ach, Du meinst vor dem Doppelpunkt? Dann ist das klar, da die Schleifenvariable a ist, Du aber i abfragst.

timmy19 18. Nov 2011 17:14

AW: Probleme mit FOR-Schleife
 
Zitat:

Zitat von DeddyH (Beitrag 1136900)
Ach, Du meinst vor dem Doppelpunkt? Dann ist das klar, da die Schleifenvariable a ist, Du aber i abfragst.

danke.

So, ich häufe euch heute mit fragen.

Wie kann man das selbe von Oben mit selbst eingegebenen Zahlen machen?

Meine Idee ist das hier:

Delphi-Quellcode:
 procedure TForm1.Button4Click(Sender: TObject);
var Wamn: extended;
  i: Integer;
 Begin

  For i := m to n do
  begin
 m:= Edit1.Text
 n:= Edit2.Text
    Wamn := sqrt(i);
    ListBox1.Items.Add(IntToStr(i) +':' + FloatToStr(Wamn));

  end;
Jetzt sagt er mir aber:

Zitat:

Inkompatible Typen: 'Integer' und 'TCaption'
Wie kann ich das lösen?

DeddyH 18. Nov 2011 17:16

AW: Probleme mit FOR-Schleife
 
Mit StrToInt (oder besser TryStrToInt oder IntToStrDef). Allerdings solltest Du Dir wirklich einmal den Crashkurs reinziehen, sonst wird das auf Dauer nix.

Bummi 18. Nov 2011 19:03

AW: Probleme mit FOR-Schleife
 
Der Link zum Crashkurs ist in #7

timmy19 19. Nov 2011 13:59

AW: Probleme mit FOR-Schleife
 
Hallo,

ich bin's nochmal.Kein Angst ich habe mir den Crashkurs (zumindest bisschen)durchgelesen.
Trotzdem komme ich mit den Fehlermeldung oft nicht klar.

Deswegen nochmal eine Frage zu dem Programm von gestern.

Ich möchte die Wurzel von n bis m ziehen

Der Code sieht bisher so aus:

Delphi-Quellcode:
For i := n to m do
  begin
 m:= StrToInt(Edit1.Text );
 n:= StrToInt(Edit2.Text );
    Wamn := sqrt(i);
    ListBox1.Items.Add(IntToStr(i) +':' + FloatToStr(Wamn));

  end;
  end;
  end.
Es kommt bei der Zeile "For i:= n to m do" die Fehlermedung hier:

Zitat:

Inkompatible Typen: 'Integer' und 'Extended'
Was ist hier mein Fehler? Ich zerbrech mir seit gestern Abend den Kopf darüber...

DeddyH 19. Nov 2011 14:07

AW: Probleme mit FOR-Schleife
 
Wie sind m und n denn deklariert? Außerdem solltest Du diese besser vor Schleifenbeginn zuweisen.

timmy19 19. Nov 2011 14:08

AW: Probleme mit FOR-Schleife
 
Zitat:

Zitat von DeddyH (Beitrag 1137000)
Wie sind m und n denn deklariert? Außerdem solltest Du diese besser vor Schleifenbeginn zuweisen.

Das ist mein gesamter Text:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var m,n, Wamn: extended;
  i: Integer;
 Begin
 m:= StrToInt(Edit1.Text );
 n:= StrToInt(Edit2.Text );
  For i := n to m do
  begin
    Wamn := sqrt(i);
    ListBox1.Items.Add(IntToStr(i) +':' + FloatToStr(Wamn));

  end;
  end;
  end.

Sir Rufo 19. Nov 2011 14:13

AW: Probleme mit FOR-Schleife
 
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  m,n : integer; // <- als Integer deklarieren
  Wamn: extended;
  i: Integer;
Begin

  // ERST die Werte für m und n holen

  m:= StrToInt(Edit1.Text );
  n:= StrToInt(Edit2.Text );

  // und DANN können wir durch die Schleife laufen

  For i := n to m do
  begin
    Wamn := sqrt(i);
    ListBox1.Items.Add(IntToStr(i) +':' + FloatToStr(Wamn));
  end;
end;

end.

timmy19 19. Nov 2011 14:33

AW: Probleme mit FOR-Schleife
 
Zitat:

Zitat von Sir Rufo (Beitrag 1137003)
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  m,n : integer; // <- als Integer deklarieren
  Wamn: extended;
  i: Integer;
Begin

  // ERST die Werte für m und n holen

  m:= StrToInt(Edit1.Text );
  n:= StrToInt(Edit2.Text );

  // und DANN können wir durch die Schleife laufen

  For i := n to m do
  begin
    Wamn := sqrt(i);
    ListBox1.Items.Add(IntToStr(i) +':' + FloatToStr(Wamn));
  end;
end;

end.

Danke- funzt! :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz