Typdeklaration in Object Pascal so richtig ?


sTorm009

Member
Joined
Mar 1, 2004
Messages
154
Hallo, ich suche dringend jemanden der sich mit Object Pascal auskennt :)
Schreibe demnächst eine Prüfung und bin deshalb einpaar alte Prüfungen durchgegangen.
Da bin ich auf eine Aufgabe gestoßen, wo ich "eine" Typdeklaration erstellen soll. (Hätten sie uns in den Übungen nicht ständig die Typen vorgegeben, wäre das heute sicherlich kein Problem <_< ).
Natürlich habe ich meine Frage auch schon in einem Delphi-Forum gestellt aber ich zweifel langsam dran, dass ich noch eine Antwort erhalte ...
Unter der Aufgabe steht meine Lösung die sehr wahrscheinlich nich richtig ist... ^^ Deshalb wäre ich überaus dankbar, wenn mir jemand sagen könnte was falsch ist bzw. ob alles falsch ist :roll:

Also die Aufgabe lautet:

Deklarieren Sie einen Datentyp TSoftwarebestand, der geeignet ist, die Daten
zum Softwarebestand eines Unternehmens zusammenzufassen. Die folgenden
Daten sind festzuhalten:
• Für die Software-Kategorien Text, Grafik, Analyse, Web und System soll jeweils
eine beliebig lange Liste von Software-Produkten geführt werden
• Zu jedem Software-Produkt soll seine Bezeichnung und seine Version als
beliebige Zeichenfolge, eine beliebig lange Liste von Lizenzangaben, Daten zu
den Systemvoraussetzungen sowie ein Kennzeichen, ob Support verfügbar ist
oder nicht, gespeichert werden
• Zu jeder Lizenz in einer Liste von Lizenzangaben sollen die folgenden Daten
festgehalten werden
• Eine Nummer
• Ein Freischaltcode als beliebige Zeichenfolge
• Das Datum, an dem die Lizenz erworben wurde
• Weitere Angaben, die von der Art der Lizenz (Einzel, Gruppe, Test)
abhängig sind.
•Für Einzellizenzen ist ein Kennzeichen, ob die Lizenz genutzt wird,
und der Name des Nutzers zu speichern
•Für Gruppenlizenzen ist maximale Anzahl von Nutzern sowie eine
beliebig lange Liste von Nutzern (jeweils nur der Name) zu speichern
•Für Test-Lizenzen ist das Datum des Ablaufens der Lizenz sowie ein
Kennzeichen, ob es sich um eine Vollversion handelt, zu speichern
• Als Daten zu den Systemvoraussetzungen ist zu speichern, welche der
Betriebssysteme Windows 98, Windows XP, Linux, MacOS, Citrix unterstützt
werden und wieviel Hauptspeicher und Festplattenspeicher benötigt wird
(jeweils Werte zwischen 128 und 1024 MB)

Gestalten Sie die Deklarationen so, dass für jeden auftretenden Wertebereich
ein separater Typbezeichner deklariert ist. Achten Sie auf problemadäquate
Wertebereiche für die Datentypen und aussagekräftige Bezeichner! Deklarieren
Sie für die Info-Komponente von dynamischen Listen einen eigenen
Datentyp!
-------------------------------------------
Meine Lösung:
Code:
<i>
</i>TKategorie=(Text,Grafik,Analyse,Web,Sys);
TOSystem=(win98,xp,linux,macos,citrix);
TSpeicher=128..1024;
TSystemMin=record
             OSystem:TOSystem;
             Speicher:TSpeicher;
           end;

TLizenztypen=(Einzellizenz,Gruppenlizenz,TestLizenz);

TnameList=^ElementName;
ElementName=record
              Name:string;
              next:TnameList;
            end;

TLizenzInfo=record
              nummer:word;
              serial:string;
              datum:TDateTime;
              case Lizenztyp:Tlizenztypen of
              Einzellizenz:(inuse:boolean;
                            name:string;);
              Gruppenlizenz:(maxNutzer:word;
                             ersterName:TnameList;);
              TestLizenz:(Ablauf:TDateTime;
                          Vollversion:boolean;);
              end;

TLizenzList=^LizenzElement;
LizenzElement=record
                info:TLizenzinfo;
                next:TlizenzList;
              end;

TSoftwareInfo=record
                bezeichnung:string;
                version:string;
                erstelizenz:TlizenzList;
                SystemMin:TSystemMin;
                Support:boolean;
              end;

TSoftwareBestand=^TSoftwareElement;
TSoftwareElement=record
                   case Kategorie:TKategorie of
                   text:(infoText:TsoftwareInfo; nextText:TSoftwareBestand);
                   grafik:(infoGrafik:TsoftwareInfo; nextGrafik:TSoftwareBestand);
                   .
                   .
                   .

                   end;
 
Ich will dich ja nicht verscheuchen aber vielleicht bekommst du in einem Programmierforum mehr Hilfe zu so allgemeinen Problemen.

http://www.softgames.de/forum/
http://www.softgames.de/forum/forum-8.html Pascal/Object Pascal

gl hf
 
tust du nicht :D
wie erwähnt habe ich meine frage auch in zwei delphi/object-pascal foren gestellt, wo ich leider noch keine antwort erhalten habe. dachte nur, da hier einige cracks rumlaufen, dass ich vll glück habe 8)
aber ich werde auch noch dein vorgeschlagenes forum versuchen. danke
 
Back
Top