AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Warteschlange realisieren

Ein Thema von hotkey · begonnen am 13. Mai 2012 · letzter Beitrag vom 14. Mai 2012
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#1

AW: Warteschlange realisieren

  Alt 13. Mai 2012, 20:14
Stattdessen im Unterricht besser zuhören?

Zitat:
schlange.name[1] := Geht das hier ?
Gegenfrage: Was ist wohl das Array, Schlange oder Name?


Und vergiß nicht das Next zu setzen.
Frage dazu: Was passiert wohl, wenn du mehrmals nacheinander "einfuegen" aufrufst?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
hotkey

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

AW: Warteschlange realisieren

  Alt 13. Mai 2012, 20:17
Hab ja zugehört , aber das Programmieren hatte mich grad in den Bann gezogen und ich saß vor dem Rechner like this : *-* xd

Also wenn ich mehrmals einfügen drücke , geht er sozusagen aus dem Array raus , ich muss es begrenzen , deswegen max , und max ist ja 10.

Wenn ich ne for-schleife hätte müsste ich...to max do schreiben.

Also das Array heißt ja Schlange.

Aber wenn ich einfach schlange[1]:=form1.edit1.text; schreibe , geht das nicht.

Ich muss ihm ja sagen , dass er , wenn auf das Record zugreift , den "Namen" im Record , der auf String ist , aufgreifen.

Also ins Array einfügen , aber im Record dann mit "Name" ansprechen lassen.

Vielleicht
schlange[1].name:=form1.edit1.text;

Bin mir aber nicht sicher
Felix
  Mit Zitat antworten Zitat
hotkey

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

AW: Warteschlange realisieren

  Alt 13. Mai 2012, 20:21
Hey , ich hab es hinbekommen jackpot

So sieht es aus :

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  person = record
    Name:string;
    id:integer;
  end;


  Tschlange = class
  private
    next,max:integer;
    schlange : array [1..10] of person;
  public
    function einfuegen(x:person):boolean;
    constructor create;
  end;




var
  Form1: TForm1;

implementation


constructor tschlange.create;
 begin
  next :=1;
  max := 10;
 end;

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

{$R *.dfm}

end.
Jetzt ist das , was ich ins Edit-Feld eingebe , im ersten Feld des Arrays gespeichert oder ?
Felix
  Mit Zitat antworten Zitat
hotkey

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

AW: Warteschlange realisieren

  Alt 13. Mai 2012, 20:29
So , aber ich bekomme hier einen Fehler :

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; // FEHLER



  end;
WOllte dieses Aufrücken programmieren , aber er sagt mir " Inkompatile Typen "
Wie soll ich da vorgehen?
Felix
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Warteschlange realisieren

  Alt 13. Mai 2012, 20:50
Moin Hotkey!

Schau dir nochmal genau deinen Code an:

Delphi-Quellcode:
for i := 1 to 9 do
  schlange[next]:=schlange[next]+1;
Da springen mir gleich zwei Fehler ins Auge:

1. benutzt du i überhaupt nicht, machst also 9 Mal dasselbe. Und zwar weist du neunmal schlange[next] schlange[next]+1 zu.

Und da liegt 2. der nächste Fehler: wenn du der Position x aus Schlange die Position x+1 zuweisen willst, musst du Delphi das auch so mitteilen: schlange[next]:=schlange[next + 1]
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
hotkey

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

AW: Warteschlange realisieren

  Alt 13. Mai 2012, 21:03
Hallo , danke für den Tipp , jetzt compiliert er wenigstens.

Das mit der for-Schleife habe ich gemacht , damit ich den Namen , den ich ins Edit-Feld eingebe , aufrücken kann.

Also , wenn ich den Namen eingebe , ist er ja zuerst im ersten Feld des Arrays , und durch die For-Schleife wollte ich das ganze in das 10.Feld einrücken lassen.

Ist das semantisch überhaupt korrekt , also die For-Schleife , das mit +1 und so ?
Felix
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Warteschlange realisieren

  Alt 13. Mai 2012, 21:47
Moin!

Ich muss jetzt nochmal fragen, was du genau vor hast:

Ich stell mir das grad wie eine Supermarktkasse vor: Peter (mein Bsp. ) hat alles in seinem Einkaufswagen und geht jetzt Richtung Kasse. Dabei kommt er bei Platz 1 (schlange[1]) an und will vorrücken auf Platz 10 (schlange[10]), also der Kasse. Ist das richtig?

In dem Fall musst du eine for-Schleife programmieren, die dir Peter durch das Array schiebt:

Delphi-Quellcode:
for i := 1 to 9 do
  schlange[i + 1] := schlange[i];
Das wäre dann auch ziemlich das, was du schon programmiert hast.

Allerdings mal logisch überlegt... hast du auch bedacht, dass Peter dann theoretisch auf allen Plätzen vor der kasse steht? Wenn du Peter einen Platz weiterschiebst, musst du seinen alten Platz ja auch wieder frei machen!
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz