Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου"— Μεταγράφημα παρουσίασης:

1 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) http://www.corelab.ece.ntua.gr/courses/programming/ 1Νίκος ΠαπασπύρουΕισαγωγή στον Προγραμματισμό Διαφάνειες παρουσίασης #9 Εγγραφές Σύνολα Αρχεία

2 2Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εγγραφές(i) u Εγγραφή (record): δομημένη μεταβλητή που αποτελείται από πλήθος επιμέρους μεταβλητών πιθανώς διαφορετικών τύπων u Οι επιμέρους μεταβλητές λέγονται πεδία και φέρουν ξεχωριστά ονόματα u Σύνταξη

3 3Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εγγραφές(ii)

4 4Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εγγραφές(iii) u Παράδειγμα type StudentRecord = record firstName : array [1..20] of char; lastName : array [1..30] of char; class : 1..6; room : 1..3; grade : array [1..15] of 0..20 end; var student : StudentRecord... student.class := 3; writeln(student.firstName[1])

5 5Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εγγραφές(iv) u Παράδειγμα function avg(s : StudentRecord) : real; var sum, i : integer; begin sum := 0; for i := 1 to 15 do sum := sum + s.grade[i]; avg := sum / 15.0 end

6 6Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εγγραφές μέσα σε εγγραφές(v) type DateRecord = record day : 1..31; month : 1..12; year : 1970..2100 end; type StudentRecord = record... birthDate : DateRecord;... end;... writeln(student.birthDate.day:0, '/', student.birthDate.month:0, '/', student.birthDate.year:0)

7 7Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Μιγαδικοί αριθμοί type complex = record re, im : real end; function cMult(x,y:complex) : complex; begin cMult.re := x.re * y.re - x.im * y.im; cMult.im := x.re * y.im + x.im * y.re end function cNorm(c : complex) : real; begin cNorm := sqrt(c.re * c.re + c.im * c.im) end

8 8Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εντολή with(i) u Οικονομία στην προσπέλαση των πεδίων εγγραφών u Σύνταξη

9 9Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εντολή with(ii) u Παράδειγμα function avg(s : StudentRecord) : real; var sum, i : integer; begin sum := 0; for i := 1 to 15 do with s do sum := sum + grade[i]; avg := sum / 15.0 end

10 10Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Εγγραφές με παραλλαγές u Το πεδίο επισήμανσης καθορίζει ποια πεδία θα υπάρχουν σε μια εγγραφή u Παράδειγμα type MaritalStatus = (single, married, divorced); type EmployeeRecord = record name : array [1..50] of char; case status : MaritalStatus of single : (); married, divorced : (children : integer) end

11 11Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Σύνολα(i) u Τα στοιχεία τους πρέπει να ανήκουν σε ένα σχετικά μικρό τακτικό τύπο u Παράδειγμα type characters = set of char; languages = set of (english, french, german, russian, greek, turkish); numbers = set of 1..100; var x, y, z : languages;... x := []; y := [english]; z := [french, english, german];

12 12Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Σύνολα(ii) u Πράξεις με σύνολα έλεγχος μέλους συνόλου in ένωση + τομή * διαφορά - ισότητα και ανισότητα = <> σχέσεις υποσυνόλων =

13 13Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αρχεία(i) u Αρχείο (file): δομημένη μεταβλητή που αποτελείται από l μεταβλητό πλήθος στοιχείων l του ίδιου τύπου l αποθηκευμένα το ένα μετά το άλλο l συνήθως στην περιφερειακή μνήμη (π.χ. στο δίσκο) u Παράδειγμα program students(input, output, f); var f : file of StudentRecord

14 14Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αρχεία(ii) u Αποθηκευτική μεταβλητή (buffer) f^ το τρέχον στοιχείο του αρχείου l σε περίπτωση αρχείου εισόδου το στοιχείο που μόλις διαβάστηκε l σε περίπτωση αρχείου εξόδου το στοιχείο που πρόκειται να γραφεί u Άνοιγμα και κλείσιμο αρχείων reset(f) rewrite(f) close(f)

15 15Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αρχεία(iii) u Λειτουργίες εισόδου και εξόδου get(f) put(f) u Διάβασμα και γράψιμο read(f,x)  begin x := f^; get(f) end write(f,x)  begin f^ := x; put(f) end u Έλεγχος τέλους αρχείου eof(f)

16 16Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αρχεία(iv) u Παράδειγμα program fileSqrt(input, output, f, g); var f, g : file of real; x : real; begin reset(f); rewrite(g); while not eof(f) do begin read(f, x); write(g, sqrt(x)) end; close(f); close(g) end.

17 17Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αρχεία(v) u Παράδειγμα program phoneDir(input, output, f); type StudentRecord = record firstName : array [1..20] of char; lastName : array [1..30] of char; birthDate : record day : 1..31; month : 1..12; year : 1970..2100 end var f : file of StudentRecord;

18 18Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αρχεία(vi) u Παράδειγμα (συνέχεια) begin reset(f); while not eof(f) do begin with f^.birthDate do write(day : 0, '/', month : 0, '/', year : 0); get(f) end; close(f) end.

19 19Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αρχεία κειμένου(i)  Τύπος text ισοδυναμεί με file of char u Στο τέλος κάθε γραμμής υπάρχει ένας ειδικός χαρακτήρας τέλους γραμμής αν διαβαστεί, αντικαθίσταται από κενό ' ' u Έλεγχοι τέλους γραμμής και τέλους αρχείου eoln(f) eof(f) u Για είσοδο και έξοδο, μπορούν να χρησιμοποιηθούν οι παρακάτω διαδικασίες write(f) read(f) writeln(f) readln(f)

20 20Νίκος Παπασπύρου Εισαγωγή στον Προγραμματισμό Αρχεία κειμένου(ii) u Παράδειγμα: μέτρηση αριθμού γραμμών και χαρακτήρων program lineCount(input, output, f); var f : text; lines, characters : integer; ch : char; begin lines := 0; characters := 0; reset(f); while not eof(f) do if eoln(f) then begin readln(f); lines := lines + 1 end


Κατέβασμα ppt "ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google