AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Warteschlange realisieren

Ein Thema von hotkey · begonnen am 13. Mai 2012 · letzter Beitrag vom 14. Mai 2012
Antwort Antwort
Seite 3 von 8     123 45     Letzte » 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:12
Und wenn man bei dem statischen Array of Record bleiben muss, stellt man folgende Überlegungen an:
- Next initial auf 1
- Einfügen eines Datensatzes an Position Next, anschließend Next um 1 erhöhen
- Entfernen des ersten Elements -> alle folgenden um eine Position nach vorn kopieren

Dabei muss man dann noch beachten, wo man auf Next und wo man auf die lokale Schleifenvariable zugreift.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#22

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:13
Leider darf ich nur Arrays und Records benutzen , denn mit Listen wäre es zu einfach s
Felix
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#23

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:24
Also bis jetzt Also next wird ja auf 1 initialisiert und dann wird auch next in der for-Schleife um 1 erhöht, sodass dann zum Beispiel Otto auf Feld 10 vorrückt , siehe For-Schleife :


Delphi-Quellcode:
function tschlange.einfuegen(x:person):boolean;
  var i:integer;
    begin
      schlange[next].Name := form1.edit1.text;

    for i:=1 to 9 do
     schlange[next] := schlange[next+1];
     end;
Die Frage ist jetzt , ob das semantisch so korrekt ist ?

Ich gebe jetzt zum Beispiel in form1.edit1.text Otto ein.

Dann rückt doch Otto in schlange[10] auf , oder ?

Das ist ja der Sinn der for-Schleife ?
Felix
  Mit Zitat antworten Zitat
Benutzerbild von alphaflight83
alphaflight83

Registriert seit: 5. Jun 2008
Ort: Würzburg
147 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:28
Das Problem hier ist, dass du Next zwar mit 1 initialisierst, aber später nie änderst.
Du schreibst also bei jedem Schleifendurchlauf vom Array Index 2 (Next+1) in den Array Index 1 (Next)
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay

Geändert von alphaflight83 (14. Mai 2012 um 10:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:32
Nun muss ich einmal nachfragen: die erste Person in der Schlange steht auch im Array an Position 1? Oder an Position 10?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#26

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:33
Stimmt , aber leider hört jetzt irgendwie mein Latein auf.

Ich weiß nicht , wie ich den semantischen bzw. logischen Fehler jetzt hier beseitigen soll.

Felix
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:34
Wo steht der erste denn nun? Wenn an Position 1, wozu dann die Schleife?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#28

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:37
// kann gelöscht werden.
Felix

Geändert von hotkey (14. Mai 2012 um 10:42 Uhr)
  Mit Zitat antworten Zitat
hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#29

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:42
Delphi-Quellcode:
constructor tschlange.create;
 begin
  next :=1;
  max := 10;
 end;

function tschlange.einfuegen(x:person):boolean;
  var i:integer;
    begin
      schlange[next].Name := form1.edit1.text;

    for i:=1 to 9 do
     schlange[next] := schlange[next+1];
     end;
Hallo,

also wenn ich jetzt diesen Befehl hier betrachte schlange[next].Name := form1.edit1.text; Dann heißt es ja für mich , dass im ersten Feld des Arrays , jetzt das steht , was ich ins Edit-Feld eingebenen habe , zum Beispiel Otto.

Dann ist das erste Feld im Array also [1] besetzt mit dem String von Otto , so , und jetzt will ich aber , dass Otto VORRÜCKT nämlich auf Feld Nummer 10 , also auf das letzte Feld im Array , also auf [10] , also bei schlange[10] soll Otto stehen bzw. sein , das wollte ich eigentlich mit der for-Schleife hinkriegen , aber anscheiennd ist da ein logischer Fehler , für den ich leider keien Ansätze mehr habe.
Felix
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#30

AW: Warteschlange realisieren

  Alt 14. Mai 2012, 10:45
Erklär mir das mal: einfügen an Stelle 1 und dann verschieben nach Stelle 10? Wieso nicht gleich an Stelle 10 einfügen? Ich kann Deiner Logik nicht folgen, sry.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 03:32 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