Εγγραφή (Record): Δομή Προγραμματισμού της Pascal

Εγγραφή (Record): Δομή Προγραμματισμού της Pascal

Η εγγραφή (Record)

Μια εγγραφή (record) μας δίνει την δυνατότητα να έχουμε συσχετισμένα δεδομένα σε μία κοινή δομή. Δηλώνοντας μια έγγραφη δηλώνουμε ένα δικό μας τύπο ο οποίος περιέχει όσα πεδία θέλουμε το καθένα απο τα οποία μπορεί να είναι διαφορετικού τύπου.

Για να δηλώσουμε μια εγγραφή (record), χρησιμοποιούμε την εξής σύνταξη:

type
    TypeName = record
        identifierlist1 : datatype1;
        ...
        identifierlistn : datatypen;
    end;

Για παράδειγμα, αν θέλουμε να συγκεντρώσουμε πληροφορίες για ένα άτομο, όπως όνομα, ηλικία, πόλη κατοικίας, ΤΚ κ.ά., μπορούμε να δημιουργήσουμε μια εγγραφή ως εξής:

type
    InfoType = record
        Name : string;
        Age : integer;
        City, State : String;
        Zip : integer;
    end;

Χρήση των εγγραφών (record) στο πρόγραμμα

Όπως και με τους πίνακες για να χρησιμοποιήσουμε μια εγγραφή ισχύουν τα ίδια βήματα:

  •  Πρώτα δημιουργούμε τον τύπο record στο τμήμα type
  • Στην συνέχεια δημιουργούμε μεταβλητή τύπου αυτού του record.
  • Και μετά μπορούμε να χρησιμοποιήσουμε τη μεταβλητή αυτή

Παρομοίως μπορούμε να στείλουμε μεταβλητές τύπου record ως παραμέτρους σε μεθόδους και πρέπει να προσέξουμε τη χρήση της λέξης var στη δήλωση του τίτλου της συνάρτησης ή διαδικασίας (μεθόδου) που χρησιμοποιούμε.

Το καθένα από τα αναγνωριστικά (identifiers) Name, Age, City, State και Zip είναι γνωστό και ως πεδίο (field).

Μπορούμε να έχουμε πρόσβαση σ’ ένα πεδίο μέσω μιας μεταβλητής ως εξής :
VariableIdentifier.FieldIdentifier

ΣΗΜΕΙΩΣΗ: Μια ΤΕΛΕΙΑ ξεχωρίζει την μεταβλητή από το όνομα του πεδίου.

Η εντολή With

Υπάρχει μια πολύ χρήσιμη εντολή όταν ασχολούμαστε με records. Αν σκοπεύουμε να χρησιμοποιήσουμε μια μεταβλητή record για να αναφερθούμε σε πολλά πεδία που ανήκουν σ’ αυτό το record και ΔΕΝ θέλουμε να γράφουμε το ίδιο όνομα συνέχεια, μπορούμε να χρησιμοποιήσουμε την εντολή with, ως εξής :

with RecordVariable do
begin
    ...
end;

With myBookRec do
Begin
    Title := 'Some Book';
    Author := 'Victor John Saliba';
    ISBN := '0-12-345678-9';
    Price := 25.5;
End;

Παραδείγματα (Εφαρμογές των Εγγραφών):

Ακολουθεί ένα παράδειγμα :

Type
    Str25 = String[25];
    TBookRec = Record
        Title, Author,
        ISBN : Str25;
        Price : Real;
    End;
Var
    myBookRec : TBookRec;
Begin
    myBookRec.Title := 'Some Book';
    myBookRec.Author := 'Victor John Saliba';
    myBookRec.ISBN := '0-12-345678-9';
    myBookRec.Price := 25.5;
    Writeln('Here are the book details:');
    Writeln;
    Writeln('Title: ', myBookRec.Title);
    Writeln('Author: ', myBookRec.Author);
    Writeln('ISBN: ', myBookRec.ISBN);
    Writeln('Price: ', myBookRec.Price);
    Readln;
End.

Ακολουθεί ακόμη ένα παράδειγμα με διαδικασίες / συναρτήσεις:

{Δηλώσεις Τύπων}
Type
    Str25 = String[25];
    TBookRec = Record
        Title, Author,
        ISBN : Str25;
        Price : Real;
    End;
{Δηλώσεις Μεθόδων}
Procedure EnterNewBook(var newBook : TBookRec);
Begin
    Writeln('Please enter the book details: ');
    Write('Book Name: ');
    Readln(newBook.Title);
    Write('Author: ');
    Readln(newBook.Author);
    Write('ISBN: ');
    Readln(newBook.ISBN);
    Write('Price: ');
    Readln(newBook.Price);
End;
Procedure DisplayBookDetails(myBookRec : TBookRec);
Begin
    Writeln('Here are the book details:');
    Writeln;
    Writeln('Title: ', myBookRec.Title);
    Writeln('Author: ', myBookRec.Author);
    Writeln('ISBN: ', myBookRec.ISBN);
    Writeln('Price: ', myBookRec.Price);
End;
{Δηλώσεις Καθολικών Μεταβλητών}
Var
    bookRec : TBookRec;
{Κύριο Πρόγραμμα}
Begin
    EnterNewBook(bookRec);
    Writeln('Thanks for entering the book details');
    DisplayBookDetails(bookRec);
    Readln;
End.

Απάντηση

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.