Delphi, Hilfe für Informatikgrundkurs

  • Hi, ich hab Informatik als Grundkurs in der Schule, doch da unser Lehrer keine AHnung hat und uns nur Blätter austeilt kommt unser Kurs zurzeit net wirklich mit.

    Das aktuelle Thema ist records und auf den Blättern stehen immer ganz konfuse Aktionen, wie kann man das halbwegs nachvollziehn wenn der Lehrer absolut nix erklären kann weil er selbst nxi weiß ?

    Bei den ganzen Delphi Tutorials war das mit dem Record zu oberflächlich.

    Ich brauch echt Hilfe, in 2 Wochen is die Kursarbeit

    Du lachsch, ich kennt heile!

  • Ein Record dient im Prinzip nur dazu, Variablen verschiedener Typen zu einer gemeinsamen Datenstruktur zusammenzufassen. Wenn du beispielsweise die Daten einer Person wie Name und Wohnort speichern willst, bietet es sich an diese einzelnen Daten in einem Record zu speichern. Hier mal zur Veranschaulichung das Beispiel mit den Personendaten.

    Zunächst musst du das Record deklarieren, das geht so:

    Code
    type
    
    
    person : record
    	name : string;
    	vorname : string;
    	ort : string;
    	plz : integer;
    end;


    Danach kannst du das Record wie einen normalen Datentyp (wie integer, real, usw) verwenden:

    Code
    var
    	bla : integer;
    	bla2 : person;


    Mit bla2 kannst du jetzt arbeiten, dem Record also Daten zuweisen. Der Zugriff der Daten erfolgt über den Punkt Operator (ka ob der wirklich so heisst^^)

    Code
    bla2.plz := 12345;

    Das wars auch schon zu Records, nicht wirklich schwer hoffe ich :P

    Naja, wenn du dich für Programmierung interessierst solltest du auf alle Fälle was vernünftiges wie C lernen, Delphi ist imo ziemlich mies^^

    Edited 2 times, last by Blackhope (November 14, 2007 at 9:21 PM).

  • Kann man fragen, für was records sind?
    < schreibt ein Prog in Delphi als "Abi"-Arbeit

    > Höre nie auf anzufangen. Fange nie an aufzuhören.
    > Zeit hat, wer sich Zeit nimmt.

  • Im Prinzip sind Records Verbundvariablen. Sie sind eine Art Zwischending zwischen Klassen und Variablen. Du kannst eben so viele Variablen wie du willst mit unterschiedlichem Typ bündeln. Der Unterschied zur Klasse ist eben das es keine Methoden/Funktionen gibt. Am hilfreichsten eben wenn du so Sachen wie Adresse hast, die keine Methoden/Funktionen brauchen.

    No one needs a smile as much as a person who fails to give one -- unknown

    Sind wir nicht alle ein bisschen Sega!

  • Nee das Array ist von der Konzeption her ja an einen Typ gebunden. Von daher nicht das Gegenstück dazu. Ich denke Verbundvariable trifft es am besten.

    edit: ne Klasse ist erstmal ein Konzept aus Variablen und Methoden. Und Records sind nur Variablen. Was man daraus dann macht ist Sache des programmierers ;) Als Beispiel:

    (nur ne Modellbeschreibung keine realle Syntax ;))
    Klasse Haus

    Länge = 10
    Breite = 5
    Höhe = 3

    Methoden:
    oeffneTuer()
    schliesseTuer()
    .
    .
    .

    Heißt eine Klasse fügt zu den Variablen noch Funktionalität. Vom allgemeinen Konzept her jedenfalls ;)

    No one needs a smile as much as a person who fails to give one -- unknown

    Sind wir nicht alle ein bisschen Sega!

  • ehm matrix, also ein array hat mit einem record garnix zu tun, man kann das wenn man will quasi als ne klasse ohne funktionen und den ganzen anderen schnickschnack wie vererbung sehen, wie rata das schon gesagt hat^^
    hab das doch aber ganz gut beschrieben finde ich oO

    Edited once, last by Blackhope (November 14, 2007 at 10:35 PM).

  • Also das was ihr sagt meinte ich mit oberflächlich :D, mir ist schonbekannt das ein record quasi versch variablen zusammenfasst, aber wenn dann so sachen wie inc[xyz] udn mrtbwarning1337 schlagmichtot kommen isses aus.

    Du lachsch, ich kennt heile!

  • inc[xyz] bedeutet das du einen integer um 1 vergrößerst. ;) Dann musst du uns dein Problem genauer beschreiben.


    edit: stimmt jetzt wo du das sagst Matrix ... eckiger Klammern = Array ... hm xD

    No one needs a smile as much as a person who fails to give one -- unknown

    Sind wir nicht alle ein bisschen Sega!

  • machma nen ordentlichen scan und komme ins EP Teamspeak
    hab zwar auch keine ahnung von Delphi und der bei dem Schreibstil des Codes stehen mir die Haare zu berge, aber irgendwie kriegt man das schon gelesen...

    Tech support: your reset switch is our ally!

  • Was ist denn da jetzt deine Frage? Was pmax und index ist oder was? Weil das kann ich dir auch nicht beantworten, da ich das ganze Prog nicht kenne ;). Wenn du alles nochmal richig scannst kann ich dir da aber definitiv helfen. Hatte selber Delphi in der Schule.

    edit: pmax scheint die maximale Anzahl an Personen zu sein und index ist eben die im Moment angezeigte Person.

    No one needs a smile as much as a person who fails to give one -- unknown

    Sind wir nicht alle ein bisschen Sega!

  • Und für was sind nun diese records gut? 8|
    Kann doch genausogut Variabeln verwenden, oder nich?

    > Höre nie auf anzufangen. Fange nie an aufzuhören.
    > Zeit hat, wer sich Zeit nimmt.

  • Quote

    Original von ShihiZu
    Und für was sind nun diese records gut? 8|
    Kann doch genausogut Variabeln verwenden, oder nich?

    Stelle dir den Record wie eine komplexere Variable vor, die mehrere Werte speichern kann. du kannst halt mit einem Befehl "a=b" gleich mehrere Werte auf einmal verschieben. In dem Beispiel von Jinx eben alle Daten (Geburtsdatum, Name, Geschlecht) zu einer Person.

    Bei moderneren Programmiersprachen kann man sowas mit Objekten machen. records stammen aus historischer Sicht noch aus der Pascal-Zeit, bevor sich die Objektorientierte Programmierweise durchgesetzt hat. Delphi ist ja nen ziemlich direkter Nachfolger vom guten alten Borland Pascal.

    Tech support: your reset switch is our ally!

  • im prinzip ja, allerdings vereinfachen records dir die arbeit und schaffen imo mehr übersicht, da sie halt variablen zusammenfassen. die arbeitserleichterung wird besonders deutlich, wenn du mit arrays von records oder mit zeigern und records arbeitest, so kannst du zum beispiel leicht verkette listen erstellen ;)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!