AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

For Schleife beginnt mit falscher Zahl?

Ein Thema von Gurkenmann · begonnen am 30. Sep 2017 · letzter Beitrag vom 1. Okt 2017
Antwort Antwort
Seite 1 von 2  1 2   
Gurkenmann
(Gast)

n/a Beiträge
 
#1

For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 14:25
Hallo, ich hab seit einiger Zeit ein kleines Problem mit meinem Programm.
Ich sollte für die Schule ein Programm erstellen, welches mit verschiedenen Sortier Algorithmen Zahlen sortieren kann.
Nun war ich sehr engagierte und habe mir meinen eigenen Sortier Algorithmus ausgedacht,
welcher auch einwandfrei auf dem Papier funktioniert.

Nun benötige ich für den Algorithmus eine Schleife in einer Schleife. (Glaube ich zumindest).
Jedenfalls lautet meine Schleife wie folgt:
Delphi-Quellcode:
 for ü := 9 downto 0 do
    for ä := 0 to 9 do
nun habe ich aber das Problem, dass warum auch immer von -10 angefangen wird loszuzählen.
wenn dann für die Zehn nochmal von 0 bis 9 hochgezählt wurde springt es aber nicht auf -9 wie man es vermuten könnte, sondern das Programm stürzt ab.

Ich hoffe die Informationen reichen um mir weiter zu helfen, ansonsten kann ich ja auch nochmal meinen Ansatz meines Algorithmus posten.

-Gurkenmann
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 14:31
Am wenigen Code, den du gepostet hast, kann ich keinen Fehler erkennen.

Allerdings kann ich die -10 nicht nachvollziehen, diese scheinen ja irgendwie berechnet zu werden.

Code:
 ansonsten kann ich ja auch nochmal meinen Ansatz meines Algorithmus posten.
Wäre sinnvoll.
Markus Kinzler
  Mit Zitat antworten Zitat
Gurkenmann
(Gast)

n/a Beiträge
 
#3

AW: For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 14:37
Delphi-Quellcode:
procedure TForm1.Button9Click(Sender: TObject);
var ü,ö,ä,Merke,Merke2 : INteger;
begin
  ü:=0;
  for ü := 9 downto 0 do
    for ä := 0 to 9 do
      begin
        if Zahlz[ü] < Zahlz[ä] then
          begin
            Merke := Zahlz[ü];
            Zahlz[ü] := Zahlz[ä];
            Zahlz[ä]:= Merke;
          end;
        if Zahlz[ä] < Zahlz[ä+1] then
          begin
            Merke2 := Zahlz[ä];
            Zahlz[ä] := Zahlz[ä+1];
            Zahlz[ä+1] := Merke;
          end;
      end;
for ö := 0 to 9 do
  Stringgrid7.Cells[1,ö] := inttostr(Zahlz[ö]);

So das ist mein ganzer Code... Ich hoffe es reicht, da es sehr schwer ist den Algorithmus zu erklären :/
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 14:46
Me.E. müsste es

            Zahlz[ä+1] := Merke2; Ohne den Code im Detail nachvollzogen zu haben
Markus Kinzler
  Mit Zitat antworten Zitat
Gurkenmann
(Gast)

n/a Beiträge
 
#5

AW: For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 14:54
Stimmt, das habe ich übersehen, aber dadran lag es nicht. Es muss an der Schleife liegen oder am ersten if Befehl.
Ich habe ja sogar ü davor 0 gesetzt, aber es geht einfach nicht :/
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 15:02
Das ist nicht notwendig.
Welche Variable hat -10?

ü beginnt bei 9.

Mach mal den Blatttest und vergleiche anschliessend im Debugger.

Edit: Ich vermute es liegt in der 2. Abfrage: a+1 : 9 + 1 = 10 -> Höchster Index 9
Markus Kinzler

Geändert von mkinzler (30. Sep 2017 um 15:05 Uhr)
  Mit Zitat antworten Zitat
Gurkenmann
(Gast)

n/a Beiträge
 
#7

AW: For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 15:22
Oh, wow! Es hat echt geklappt!
Mein Algorithmus funktioniert
Vielen vielen Dank!
Du kannst dir gar nicht vorstellen wie glücklich ich grade bin xD
Es lag an dem zweiten if! An dem +1 und der 9.
Ich habe jetzt die zweite Schelfe von 0-8 laufen lassen

Ich werde dich in meiner Danksagung erwähnen, wenn ich das vor meiner Klasse präsentiere
Vielen Dank!

Ich wünsche dir noch ein schönes Wochenende!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 16:05
Gerne Geschehen.

Zitat:
Ich wünsche dir noch ein schönes Wochenende!
Dir auch!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: For Schleife beginnt mit falscher Zahl?

  Alt 30. Sep 2017, 17:36
Hat es einen tieferen Grund warum du Umlaute als Zählvariablen nimmst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#10

AW: For Schleife beginnt mit falscher Zahl?

  Alt 1. Okt 2017, 08:08
Hat es einen tieferen Grund warum du Umlaute als Zählvariablen nimmst?
Buchstaben mit nur einem Punkt sind doch langweilig.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 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