Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage zu Fehlern im Buch (https://www.delphipraxis.net/15169-frage-zu-fehlern-im-buch.html)

Pseudemys Nelsoni 23. Jan 2004 08:55


Frage zu Fehlern im Buch
 
Moin,

ich hab einige(!) Fragen zu Fehlern(?) meines Buches "Jetzt lerne ich Delphi" (Daniel müsste es kennen :angle2:). Hat aber alles mit dem Thema "Frage zu Fehlern im Buch" zu tun, also brauch ich wohl jetzt nicht mehrere threads oder :)

also

zu 1.

Delphi-Quellcode:
Type TWochenTag = (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag);
     TNachtwaechter = Record
                        Vorname,
                        Nachname,
                        Strasse,
                        PLZ_Ort: string;
                      end;

...

VAR Nachtwaechter: Array[Montag..Sonntag] of TNachtwaechter;

...

If Nachtwaechter[Dienstag].Name = 'Maier' then ...;

Mal abgesehen davon das eine Zuweisung an "Name" nicht möglich ist, da im Typ nur "Vorname" und "Nachname" Existieren, frag ich mich, wieso ich innerhalb von "Nachtwaechter" "Dienstag" verwenden kann, Die Typen gehören doch garnicht zusammen oder? Nachtwaechter = TNachtwaechter und Dienstag = TWochenTag.


zu 2.

im Buch steht folgendes wie man ein konstantes array deklariert:

Delphi-Quellcode:
CONST A: Array[1..5] of Integer = (10,11,12,13,14,15);
Das hier ist doch ein Array mit 5 elementen oder? wieso werden dann 6 konstanten zugewiesen? ist das ein Fehler oder kapier ich hier was nicht?

Phoenix 23. Jan 2004 09:02

Re: Frage zu Fehlern im Buch
 
Zitat:

Zitat von Pseudemys Nelsoni
Delphi-Quellcode:
VAR Nachtwaechter: Array[Montag..Sonntag] of TNachtwaechter;

If Nachtwaechter[Dienstag].Name = 'Maier' then ...;
Mal abgesehen davon das eine Zuweisung an "Name" nicht möglich ist, da im Typ nur "Vorname" und "Nachname" Existieren, frag ich mich, wieso ich innerhalb von "Nachtwaechter" "Dienstag" verwenden kann.

Aber Du deklarierst ein Array vom Typ TNachtwaechter mit den 7 Elementen von TWochentag.

Will heissen: Du hast für jeden Wochentag auch einen Nachtwaechter[Wochentag] deklariert. Da kannst Du dann freilich nicht mit .Name drauf wie Du schon gesagt hast, aber .Vorname und .Nachname tun da drauf.

Pseudemys Nelsoni 23. Jan 2004 09:06

Re: Frage zu Fehlern im Buch
 
Zitat:

Aber Du deklarierst ein Array vom Typ TNachtwaechter mit den 7 Elementen von TWochentag.
und wenn ich das nicht möchte? ich meine, die Typen gehören doch garnicht zusammen oder?

Phoenix 23. Jan 2004 09:14

Re: Frage zu Fehlern im Buch
 
Du kannst auch folgendes machen:

Delphi-Quellcode:
VAR Nachtwaechter: Array[1..7] of TNachtwaechter;

If Nachtwaechter[2].Name = 'Maier' then ...;
Das macht prinzipiell genau das gleiche: Ein array mit 7 elementen wird erzeugt und auf das zweite Element zugegriffen.

Die erste Methode hat halt den Vorteil, das die Elemente sprechende Namen haben. So musst Du immer gucken: 6 war der Nachtwächter von welchem Tag? Ah, ja: Montag = 1, Dienstag = 2, Mittwoch = 3 ... Samstag = 6.

Also schreibst Du anstelle von Nachtwaechter[Samstag] halt Nachtwachter[6].

Ich finde ersteres einfach besser lesbar. ;-)

Pseudemys Nelsoni 23. Jan 2004 09:19

Re: Frage zu Fehlern im Buch
 
hoi Phoenix,

Zitat:

Array[Montag..Sonntag] of TNachtwaechter;
ich dachte hinter dem "Array[Montag..Sonntag] of" muss auch der entsprechende typ der elemnte der [] klammern kommen? also ich dachte da geht NUR TWochenTage

Phoenix 23. Jan 2004 09:23

Re: Frage zu Fehlern im Buch
 
Zitat:

Zitat von Pseudemys Nelsoni
hoi Phoenix,
Zitat:

Array[Montag..Sonntag] of TNachtwaechter;
ich dachte hinter dem "Array[Montag..Sonntag] of" muss auch der entsprechende typ der elemnte der [] klammern kommen? also ich dachte da geht NUR TWochenTage

Dann könntest Du ein Array[1..10] auch nur als 'of Integer' deklarieren ;-)

Die Synatx ist: Array[INDEX-Elemente des Arrays] of 'Typ der einzelnen Elemente des Arrays'.

Pseudemys Nelsoni 23. Jan 2004 09:28

Re: Frage zu Fehlern im Buch
 
dann versteh ichs, danke :).

kannst du mir z letzterem noch sagen, ob es einfach ein fehler im buch war? dann kann ich beruhigt weiter lesen <g>

Phoenix 23. Jan 2004 09:31

Re: Frage zu Fehlern im Buch
 
Ich bin mir nicht sicher ob das Element '0' nicht auch epxlizit angelegt wird, will heissen, ob in A[0] nicht auch ein Wert stehen kann obwohl eigentlich nur A[1] bis A[5] deklariert wurden.

Sorry, das müsstest Du einfach mal ausprobieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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