ΑΣΚΗΣΗ: ΔΙΑΧΕΙΡΙΣΗ ΚΑΤΑΛΟΓΟΥ ΑΡΧΕΙΩΝ ΕΝΟΣ DIRECTORY. Μέρος Α`

Σχετικά έγγραφα
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΕΞΕΤΑΣΗΣ

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Δίκτυα Η/Υ στην Επιχείρηση

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Λειτουργικά Συστήματα (Λ/Σ)

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Λειτουργικά Συστήματα (Λ/Σ)

Γ7.8 Εγγραφές (Structures) Γ Λυκείου Κατεύθυνσης

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο

ιαφάνειες παρουσίασης #5 (β)

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Δομές δεδομένων (2) Αλγόριθμοι

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Κεφάλαιο 7: Υπορουτίνες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Σύστηµα Αρχείων και Καταλόγων

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ιαφάνειες παρουσίασης #9

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Πίνακες. Οι πίνακες αποτελούν ένα σηµαντικό δοµηµένο τύπο δεδοµένων (structured data type) ή πιο απλά µία δοµή δεδοµένων (data structure).

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

Διαδικασιακός Προγραμματισμός

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Προγραμματισμός PASCAL

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Σημειώνουμε ότι τα αρχεία περιλαμβάνουν κανονικά αρχεία, καταλόγους και συνδέσμους (links). Οι αντίστοιχες εντολές είναι οι εξής:

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Κεφάλαιο 4. Λογισμικό Συστήματος

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

ΕΠΑ.Λ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική Προγραµµατισµός Υπολογιστών Κεφάλαιο 9 Σηµειώσεις 03. Εντολή Εκχώρησης - Αντικατάστασης

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Πληροφορική 2. Δομές δεδομένων και αρχείων

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 10

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

ΜΑΘΗΜΑ / ΤΑΞΗ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ / Γ'ΕΠΑΛ ΗΜΕΡΟΜΗΝΙΑ: ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι.ΜΙΧΑΛΕΑΚΟΣ-Α.ΚΑΤΡΑΚΗ-Χ.ΠΑΠΠΑ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α

Εργαστήριο 9: Αρχεία

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Εισαγωγή στον Προγραμματισμό

Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Εισαγωγή στη γλώσσα προγραμματισμού C++

Δομημένος Προγραμματισμός

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 3

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Εργαστήριο 10 Πίνακες. Πίνακες. Η έννοια της δόμησης δεδομένων στη PASCAL. Σκοπός

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Pascal. 26 Οκτωβρίου 2011

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

Προγραμματισμός PASCAL

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

Προγραμματιστικές τεχνικές

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Αρχιτεκτονική Υπολογιστών

Προγραμματισμό για ΗΜΥ

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Transcript:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΣΚΗΣΗ: ΔΙΑΧΕΙΡΙΣΗ ΚΑΤΑΛΟΓΟΥ ΑΡΧΕΙΩΝ ΕΝΟΣ DIRECTORY Περιγραφή: Μέρος Α` Για τη διαχείριση του συστήματος αρχείων (file system) ένα λειτουργικό σύστημα χρησιμοποιεί τη δενδροειδή οργάνωση των αρχείων directories και subdirectories του συστήματος UNIX, που είναι αντίστοιχο της οργάνωσης των folders και subfolders που χρησιμοποιούν τα Windows. Σύμφωνα με την οργάνωση αυτή σε κάθε directory το σύστημα διατηρεί πάντα ενημερωμένο ένα κατάλογο των αρχείων και των directories (subdirectories) που υπάρχουν στο directory. Ο κατάλογος αυτός περιέχει για κάθε αρχείο ή directory (subdirectory) όλες τις πληροφορίες που είναι χρήσιμες για τη διαχείριση του. Ο κατάλογος αυτός στην περίπτωση που το directory είναι άδειο περιέχει τις περιγραφές για δύο τουλάχιστον στοιχεία, ένα για την περιγραφή του τρέχοντος directory και ένα για την περιγραφή του ιεραρχικά ανώτερου (parent) directory. Για κάθε αρχείο, οποιουδήποτε τύπου, ή directory ο κατάλογος περιέχει μια δομή με τις εξής πληροφορίες: τύπος, δηλαδή αρχείο ή directory δικαιώματα πρόσβασης, (read, write, execute) για τον ιδιοκτήτη δικαιώματα πρόσβασης, (read, write, execute) για τους άλλους χρήστες όνομα αρχείου ή directory μέγεθος, σε πλήθος bytes για τα κοινά αρχεία και πλήθος αρχείων που περιέχει αν πρόκειται για directory ταυτότητα, του χρήστη που το δημιούργησε ημερομηνία δημιουργίας ημερομηνία τελευταίας πρόσβασης πρώτο block του δίσκου στο οποίο υπάρχει το περιεχόμενο του αρχείου ή ο αντίστοιχος κατάλογος αν πρόκειται για directory Το ζητούμενο της άσκησης αυτής είναι η διαχείριση του καταλόγου όταν το λειτουργικό σύστημα τον φορτώνει στη μνήμη για να προβάλλει το περιεχόμενο ενός directory στον χρήστη. Δεδομένα Αρχικά θεωρούμε ότι ο κατάλογος υπάρχει έτοιμος με τη μορφή ενός σειριακού αρχείου. Δεν ενδιαφερόμαστε στην άσκηση αυτή ούτε για τη δημιουργία του ούτε για την ενημέρωσή του σε περίπτωση δημιουργίας ενός νέου αρχείου (ή directory) ή τη διαγραφή ενός υπάρχοντος αρχείου (ή directory). 1

Κάθε directory θεωρητικά περιέχει απεριόριστο αριθμό αρχείων και directories (subdirectories). Στα πλαίσια της άσκησης αυτής θα περιορίσουμε τον αριθμό σε Maxfiles. Κατά συνέπεια και ο κατάλογος θα περιέχει Maxfiles εγγραφές. Οι τύποι δεδομένων που θα χρησιμοποιηθούν είναι: Για τη γλώσσα Pascal: const (* Ορισμός σταθερών για τα δικαιώματα πρόσβασης *) RO = 4; (* read_only *) WO = 2; (* write_only *) EO = 1; (* execute_only *) RW = 6; (* read_write *) RE = 5; (* read_execute *) WE = 3; (* write_execute *) RWE = 7; (* read_write_execute *) Maxfiles = ; type (* τύποι δεδομένων *) day_t = 1..31; (* τύπος διάστημα από 1 έως 31 *) month_t = 1..12; (* τύπος διάστημα από 1 έως 12 *) date_t = record day : day_t; mon : month_t; year : integer; end; block_t = integer; filerec = record ftype : char; (* `a` για κοινό αρχείο, `d` για directory *) usersr : integer; (* περιγραφή σταθερών ανωτέρω *) othersr : integer; (* περιγραφή σταθερών ανωτέρω *) fname : string[64]; fsize : real; (* χρήση real για μεγάλα μεγέθη *) ucid : string[16]; (* π.χ. `nikosp` *) cdate : date_t; (* περιγραφή τύπου date_t ανωτέρω *) adate : date_t; (* περιγραφή τύπου date_t ανωτέρω *) block : block_t; pblock : block_t; end; (* ο τύπος του αρχείου που περιέχει τον κατάλογο ως αρχείο *) catalog_t = file of filerec; 2

Για τη γλώσσα C: // Ορισμός σταθερών για τα δικαιώματα πρόσβασης #define RO 4 // read_only #define WO 2 // write_only #define EO 1 // execute_only #define RW 6 // read_write #define RE 5 // read_execute #define WE 3 // write_execute #define RWE 7 // read_write_execute #define Maxfiles // τύποι δεδομένων typedef int day_t; // τύπος διάστημα από 1 έως 31 typedef int month_t; // τύπος διάστημα από 1 έως 12 typedef struct { day_t day; month_t mon; int year; } date_t; typedef int block_t; typedef struct { char ftype; // `a` για κοινό αρχείο, `d` για directory int usersr; // περιγραφή σταθερών ανωτέρω int othersr; // περιγραφή σταθερών ανωτέρω char fname[64]; double fsize; // χρήση real για μεγάλα μεγέθη char ucid [16]; // π.χ. `nikosp` date_t cdate; // περιγραφή τύπου date_t ανωτέρω date_t adate; // περιγραφή τύπου date_t ανωτέρω block_t block; } filerec; Παρατηρήσεις: 1) Για το πεδίο block η χρήση του τύπου block_t ως integer είναι προσωρινή καθώς στο Μέρος Β` της άσκησης θα αλλάξει. 2) Τα πεδία του record filerec αντιστοιχούν ένα προς ένα στις περιγραφές που δίνονται στη σελίδα 1. 3) Η τιμή 0 στο πεδίο usersr ή στο πεδίο othersr σημαίνει κανένα δικαίωμα πρόσβασης. 4) Στη συνέχεια δίνεται ένα παράδειγμα ανάθεσης τιμών στα πεδία μιας μεταβλητής τύπου filerec. 3

var fr : filerec; begin fr.ftype := a ; fr.usersr := 6; fr.othersr := 4; fr.fname := `lala.dat`; fr.fsize := 15000; fr.ucid := user120 ; fr.cdate.day := 2; fr.cdate.mon := 12; fr.cdate.year := 2008; fr.adate := f.cdate; fr.block := 1200; Ζητούμενα Θα πρέπει να γραφεί ένα πρόγραμμα το οποίο θα εκτελεί τα ακόλουθα: Θα διαβάζει το σειριακό αρχείο που αντιστοιχεί σε ένα κατάλογο και θα το φορτώνει στη μνήμη σε ένα μονοδιάστατο πίνακα. Ο πίνακας θα πρέπει να ταξινομείται σε αύξουσα (ή φθίνουσα τάξη) ως προς τα ακόλουθα κριτήρια: o τύπος αρχείου (ftype) o όνομα αρχείου (fname) o μέγεθος (fsize) o ημερομηνία δημιουργίας (cdate) Μετά την ταξινόμηση η σειρά των στοιχείων του πίνακα που περιέχει τον κατάλογο δε θα αλλάζει αλλά για κάθε κριτήριο θα χρησιμοποιείται ένας βοηθητικός πίνακας. Έτσι αν ο πίνακας που περιέχει τον κατάλογο έχει Ν (N Maxfiles) στοιχεία τότε ο βοηθητικός αυτός πίνακας στη θέση i 1..N θα περιέχει τη θέση στον πίνακα (καταλόγου) του στοιχείου που βρίσκεται στην i θέση αν ο πίνακας καταλόγου ήταν πραγματικά ταξινομημένος με βάση το συγκεκριμένο κριτήριο ταξινόμησης. Το πρόγραμμα μέσω ενός μενού θα δίνει στο χρήστη τη δυνατότητα να επιλέξει ως προς ποιο κριτήριο ταξινόμησης θέλει να προβάλλει τον κατάλογο ή ακόμη η προβολή να γίνει χωρίς ταξινόμηση. Κατά την προβολή των στοιχείων του καταλόγου συνολικά δεν θα πρέπει να εμφανίζονται όλες οι πληροφορίες του αρχείου. Έχετε τη δυνατότητα να επιλέξετε τις πληροφορίες που θα προβάλλει το πρόγραμμα για κάθε αρχείο με βάση την εμπειρία σας. Σε κάθε περίπτωση ο χρήστης θα έχει τη δυνατότητα να προβάλλει όλες τις πληροφορίες για ένα αρχείο που επιλέγει ξεχωριστά από τα άλλα. Το πρόγραμμα μπορεί να γραφεί σε γλώσσα Pascal ή C. 4

Σημαντικές απαιτήσεις Το πρόγραμμα θα κάνει χρήση διαδικασιών και συναρτήσεων με παραμέτρους και θα χρησιμοποιεί το λιγότερο δυνατόν ολικές μεταβλητές. Το πρόγραμμα θα πρέπει να περιέχει σχόλια ώστε να είναι κατανοητή η λειτουργία των διαδικασιών και των συναρτήσεων καθώς και η χρήση των μεταβλητών. Όποια εργασία δεν καλύπτει τις προηγούμενες απαιτήσεις δεν θα γίνεται δεκτή. 5