Εγγραφές
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Ορισμός εγγραφών
- Οι εγγραφές επιτρέπουν την οργάνωση ομοειδών και μη ομοειδών
στοιχείων με βάση το όνομά τους.
- Ο ορισμός της εγγραφής περιλαμβάνει ένα όνομα για πρόσβαση σε
κάθε τιμή καθώς και τον τύπο της τιμής.
- Έχουμε πρόσβαση σε κάθε στοιχείο της εγγραφής (το πεδίο
της εγγραφής) με βάση το όνομά του.
Παράδειγμα:
program test;
type
date = record
day : 1..31;
month : 1..12;
year : integer
end;
member = record
name : packed array [1..4] of char;
from, ending : date
end;
var
coordinate : record
x, y : integer
end;
members : array [1..100] of member;
Χρήση στοιχείων
- Κάθε πεδίο της εγγραφής είναι προσβάσιμο με βάση το όνομα της
μεταβλητής r που περιέχει την εγγραφή καθώς και το όνομά του n με το συμβολισμό
r.n
.
- Το παραπάνω σχήμα μπορεί να χρησιμοποιηθεί αναλογικά και για πιο
σύνθετους τύπους όπως εγγραφές που περιέχουν πίνακες, εγγραφές
που περιέχουν εγγραφές, πίνακες που περιέχουν εγγραφές κ.λπ.
Παράδειγμα:
program test;
type
date = record
day : 1..31;
month : 1..12;
year : integer
end;
member = record
name : packed array [1..4] of char;
from, ending : date
end;
var
coordinate : record
x, y : integer
end;
members : array [1..100] of member;
begin
coordinate.x := 5;
coordinate.y := 4;
writeln(coordinate.x);
writeln(coordinate.y);
members[1].name := 'R2D2';
members[1].from.day := 22;
members[1].from.month := 5;
members[1].from.year := 4567;
members[1].ending.day := 22;
members[1].ending.month := 5;
members[1].ending.year := 4570;
end.
Χρήση εγγραφών
- Οι εγγραφές μπορούν να περαστούν ως όρισμα σε συνάρτηση με βάση
τύπο που τις καθορίζει.
- Επιτρέπεται ακόμα η εκχώρηση τιμών ανάμεσα σε εγγραφές ίδιου τύπου.
Παράδειγμα:
program test;
type
date = record
day : 1..31;
month : 1..12;
year : integer
end;
member = record
name : packed array [1..4] of char;
from, ending : date
end;
var
coordinate : record
x, y : integer
end;
members : array [1..100] of member;
procedure MyPlot(c : coordinate);
begin
putpixel(c.x, c.y, 1)
end;
begin
coordinate.x := 5;
coordinate.y := 4;
MyPlot(coordinate);
members[1].name := 'R2D2';
members[1].from.day := 22;
members[1].from.month := 5;
members[1].from.year := 4567;
members[1].ending.day := 22;
members[1].ending.month := 5;
members[1].ending.year := 4570;
members[2] := members[1];
members[2].name := 'C3PO'
end.
Βιβλιογραφία
- Θ. Αλεβίζου, Α. Καμπουρέλη
Μαθήματα προγραμματισμού: Εισαγωγή με τη γλώσσα Pascal.
σ. 367-374.
Θυμέλη, 1995.
- Doug Cooper and
Michael Clancy.
Oh! Pascal, pages 383–418.
W. W. Norton & Company, second edition, 1985.
Ασκήσεις
Pascal 09
- Να γραφεί πρόγραμμα σε Pascal το οποίο να υλοποιεί αριθμομηχανή
μιγαδικών αριθμών σύμφωνα με τις παρακάτω προδιαγραφές:
- Το πρόγραμμα διαβάζει από το
χρήστη
ένα ζεύγος αριθμών Α, B,
το σύμβολο μιας από τις τέσσερεις πράξεις Σ,
ένα ακόμα ζεύγος αριθμών Γ, Δ,
και τυπώνει το αποτέλεσμα (Α + Bi) Σ (Γ + Δi).
- Όταν το αποτέλεσμα είναι (0 + 0i) το πρόγραμμα να τερματίζει τη
λειτουργία του.
Οι μιγαδικοί αριθμοί να οριστούν με τη χρήση εγγραφών.
Παράδειγμα:
5 3
+
1 2
6 + 5i
1 1
*
1.5 2
-0.5 + 3.5i
Για την υλοποίηση του προγράμματος μπορείτε να επαναχρησιμοποιήσετε το
πρόγραμμα της άσκησης PASCAL 04.
Περισσότερες λεπτομέρειες για τις ασκήσεις