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

Σχετικά έγγραφα
Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

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

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Ιστορία της μετάφρασης

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στους Αλγορίθμους

Ηλεκτρονικοί Υπολογιστές

Εκκλησιαστικό Δίκαιο

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

Εισαγωγή στους Αλγορίθμους

Εκκλησιαστικό Δίκαιο

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

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

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Διοικητική Λογιστική

Γενικά Μαθηματικά Ι. Ενότητα 8: Εφαρμογές Σειρών Taylor. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Ιστορία της μετάφρασης

Γενικά Μαθηματικά Ι. Ενότητα 9: Κίνηση Σε Πολικές Συντεταγμένες. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ηλεκτρονικοί Υπολογιστές

Παράκτια Τεχνικά Έργα

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

Εισαγωγή στους Αλγορίθμους

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

Εργαστήριο Χημείας Ενώσεων Συναρμογής

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Ευαγγελικές αφηγήσεις της Ανάστασης

Μηχανολογικό Σχέδιο Ι

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Γενικά Μαθηματικά Ι. Ενότητα 7: Σειρές Taylor, Maclaurin. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Εκκλησιαστικό Δίκαιο

Γενικά Μαθηματικά Ι. Ενότητα 13: Ακτίνα Σύγκλισης, Αριθμητική Ολοκλήρωση, Ολοκλήρωση Κατά Παράγοντες. Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 5: Παράγωγος Πεπλεγμένης Συνάρτησης, Κατασκευή Διαφορικής Εξίσωσης. Λουκάς Βλάχος Τμήμα Φυσικής

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Εισαγωγή στον δομημένο προγραμματισμό

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αξιολόγηση μεταφράσεων ιταλικής ελληνικής γλώσσας

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΑΡΙΣΤΟΤΕΛΕΙΟ ΑΝΟΙΚΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΚΑΔΗΜΑΪΚΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΑΘΗΜΑΤΑ Γενικά Μαθηματικά Ι Ενότητα 11 : Ακολουθίες και Σειρές Λουκάς Βλάχος Τμήμα Φυσικής

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Οικονομία των ΜΜΕ. Ενότητα 7: Μορφές αγοράς και συγκέντρωση των ΜΜΕ

Διπλωματική Ιστορία Ενότητα 2η:

Διδακτική της Πληροφορικής

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Οδοποιία IΙ. Ενότητα 14: Υπόδειγμα σύνταξης τευχών θέματος Οδοποιίας. Γεώργιος Μίντσης ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Διοίκηση Επιχειρήσεων

Οντοκεντρικός Προγραμματισμός

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Φ 619 Προβλήματα Βιοηθικής

Ψηφιακή Επεξεργασία Εικόνων

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Δομές Δεδομένων Ενότητα 1

Τεχνικό Σχέδιο - CAD

Εκκλησιαστικό Δίκαιο

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Συμπεριφορά Καταναλωτή

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Υπολογιστές

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εκκλησιαστικό Δίκαιο Ι (Μεταπτυχιακό)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Βέλτιστος Έλεγχος Συστημάτων

Φ 619 Προβλήματα Βιοηθικής

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Γενικά Μαθηματικά Ι. Ενότητα 19: Υπολογισμός Εμβαδού και Όγκου Από Περιστροφή (2 ο Μέρος) Λουκάς Βλάχος Τμήμα Φυσικής

Διαγλωσσική μεταφορά και διαμεσολάβηση

Οικονομετρία. Πολλαπλή Παλινδρόμηση. Στατιστικός έλεγχος γραμμικού συνδυασμού συντελεστών. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Κβαντική Επεξεργασία Πληροφορίας

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής 3

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 8ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1

ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ (ASCII TEXT FILES) Τα αρχεία κειμένου περιέχουν χαρακτήρες σύμφωνα με την κωδικοποίηση ASCII. Κάθε γραμμή τελειώνει με έναν ειδικό χαρακτήρα (τέλος γραμμής) ο οποίος είναι δεν είναι ορατός στους συνηθισμένους επεξεργαστές κειμένου. Στο λειτουργικό σύστημα Windows το τέλος γραμμής εκφράζεται με το συνδυασμό \r\n (return και line feed), ενώ στο Unix μόνο με \n. 2

ΔΥΑΔΙΚΑ ΑΡΧΕΙΑ (BINARY FILES) Τα δυαδικά αρχεία δεν περιέχουν αναγνώσιμους χαρακτήρες, αλλά η πληροφορία αποθηκεύεται σε ειδική ψηφιακή (δυαδική) μορφή. Γ ι α π α ρ ά δ ε ι γ μ α, τ ο ε κ τ ε λ έ σ ι μ ο α ρ χ ε ί ο ε ν ό ς προγράμματος είναι σε δυαδική μορφή και δεν μπορούμε να δούμε τα περιεχόμενά του με έναν επεξεργαστή κειμένου (υπάρχουν ειδικά προγράμματα για την αποκωδικοποίηση και ανάγνωση τέτοιων αρχείων). Τα δυαδικά αρχεία έχουν αρκετά μικρότερο μέγεθος από ένα αντίστοιχο αρχείο κειμένου, διότι κάθε χαρακτήρας αποθηκεύεται με τον ελάχιστο αριθμό bytes που απαιτούνται. 3

ΠΑΡΑΔΕΙΓΜΑ ΜΕΓΕΘΟΥΣ ΑΡΧΕΙΩΝ Το μέγεθος ενός αρχείου κειμένου που περιέχει τον αριθμό 47654 είναι 5 bytes (ένα byte για κάθε ψηφίο). Ο αριθμός αυτός στο δυαδικό σύστημα είναι ο 1011101000100110 και απαιτεί 16 bit = 2 bytes για να αποθηκευτεί. 4

ΑΝΟΙΓΜΑ ΑΡΧΕΙΩΝ Για το άνοιγμα ενός αρχείου χρησιμοποιούμε την συνάρτηση fopen που είναι δηλωμένη στo stdio.h. FILE *fopen(const char *filename, const char *mode); όπου filename = το όνομα του αρχείου, π.χ. mytext1.txt (όταν βρίσκεται στον ίδιο φάκελο με το εκτελέσιμο αρχείο) mode = χαρακτήρες που καθορίζουν τις ενέργειες που μπορούν να γίνουν στο αρχείο, π.χ. r (βλ. πίνακα στη συνέχεια) 5

ΕΝΕΡΓΕΙΕΣ ΣΕ ΑΡΧΕΙΑ Οι πιθανές τιμές που μπορεί να πάρει η μεταβλητή mode και οι ενέργειες στις οποίες αντιστοιχούν αυτές φαίνονται στον παρακάτω πίνακα: Εάν πρόκειται για δυαδικό αρχείο, προστίθεται ο χαρακτήρας b, π.χ. αντί για r γράφουμε rb. 6

ΕΠΙΤΥΧΙΑ/ΑΠΟΤΥΧΙΑ ΑΝΟΙΓΜΑΤΟΣ ΑΡΧΕΙΩΝ Εάν πράγματι ανοίξει το αρχείο με επιτυχία, τότε η fopen επιστρέφει έναν δείκτη σε μια δομή τύπου FILE. Εάν αποτύχει το άνοιγμα του αρχείου (για παράδειγμα, εάν το αρχείο δεν υπάρχει), τότε επιστρέφεται η τιμή NULL. Προς αποφυγή μη-επιτρεπτών ενεργειών όταν το αρχείο δεν υπάρχει, θα πρέπει να ελέγχουμε την ύπαρξή του ενσωματώνοντας την fopen μέσα σε έναν έλεγχο if, ως εξής: if( (fp = fopen( mytext.txt, r )) == NULL) 7

ΚΛΕΙΣΙΜΟ ΑΡΧΕΙΟΥ Όταν ολοκληρώσουμε την επεξεργασία ενός αρχείου, πρέπει να το κλείσουμε με την εντολή fclose, που ορίζεται στο stdio.h ως εξής: int fclose(file *fp); όπου fp είναι ο δείκτης που αντιστοιχεί στο αρχείο που ανοίξαμε. Η fclose επιστρέφει 0 εάν το αρχείο έκλεισε επιτυχώς, αλλιώς επιστρέφει την ειδική τιμή EOF (που έχει τιμή -1). H EOF χρησιμεύει επίσης για να δηλώσει το τέλος ενός αρχείου (End Of File). 8

Η ΣΥΝΑΡΤΗΣΗ fprintf Για να γράψουμε δεδομένα σε ένα αρχείο κειμένου χρησιμοποιούμε την συνάρτηση fprintf που είναι δηλωμένη ως εξής: int fprintf(file *fp, const char *format, ); δηλαδή είναι παρόμοια με την printf, αλλά υπάρχει ένα επιπλέον όρισμα στην αρχή, που δείχνει στο αρχείο που ανοίγουμε. Η fprintf επιστρέφει τον αριθμό των χαρακτήρων που γράψαμε στο αρχείο, αλλιώς μια αρνητική τιμή. 9

Η ΣΥΝΑΡΤΗΣΗ fscanf Για να διαβάσουμε δεδομένα από ένα αρχείο κειμένου χρησιμοποιούμε την συνάρτηση fscanf που είναι δηλωμένη ως εξής: int fscanf(file *fp, const char *format, ); δηλαδή είναι παρόμοια με την scanf, αλλά υπάρχει ένα επιπλέον όρισμα στην αρχή, που δείχνει στο αρχείο που ανοίγουμε. Η fscanf επιστρέφει τον αριθμό των στοιχείων που διαβάστηκαν και εκχωρήθηκαν σε μεταβλητές του προγράμματος. Αν φτάσουμε στο τέλος του αρχείου χωρίς να διαβάσει κάποια στοιχεία ή αν συμβεί κάποιο σφάλμα, επιστρέφει EOF. 10

Η ΣΥΝΑΡΤΗΣΗ fscanf Για να χρησιμοποιήσουμε την συνάρτηση fscanf πρέπει απαραιτήτως να γνωρίζουμε επακριβώς τη μορφή των δεδομένων που βρίσκονται στο αρχείο που διαβάζουμε, ώστε να επιλέξουμε την κατάλληλη μορφοποίηση. Οι τιμές μεταξύ των δεδομένων διαχωρίζονται με ένα κενό. 11

ΔΟΜΕΣ - ΟΡΙΣΜΟΣ ΠΡΟΤΥΠΟΥ Μια δομή (structure) είναι η ομαδοποίηση ενός αριθμού μεταβλητών οποιουδήποτε τύπου. Αρχικά, πρέπει να οριστεί το πρότυπο μιας δομής, το οποίο καθορίζει το πλήθος και τον τύπο των μεταβλητών που αυτή θα περιέχει. Η γενική μορφή του ορισμού του προτύπου μιας δομής είναι: struct όνοµα_προτύπου { τύπος µεταβλητή_1; τύπος µεταβλητή_2; τύπος µεταβλητή_3; τύπος µεταβλητή_n; }; 12

ΠΑΡΑΔΕΙΓΜΑΤΑ struct date { int day; int month; int year; }; struct person { char name[50]; int age; float height; }; 13

ΔΗΛΩΣΗ ΔΟΜΩΝ Εφόσον έχουμε πρώτα ορίσει το πρότυπο μιας δομής (αυτό μπορεί να γίνει και πριν από την main, ώστε να έχει καθολική ισχύ για το πρόγραμμα) μπορούμε στη συνέχεια να δηλώσουμε δομές που ακολουθούν το συγκεκριμένο πρότυπο. Αυτό γίνεται με μια δήλωση της μορφής: struct όνοµα_προτύπου όνοµα_δοµής_1, όνοµα_δοµής_2, ; π.χ. struct date date1, date2; struct person person1, person2; 14

ΕΝΑΛΛΑΚΤΙΚΟΣ ΤΡΟΠΟΣ ΔΗΛΩΣΗΣ ΔΟΜΩΝ Η δήλωση μιας δομής μπορεί να γίνει (εναλλακτικά) ταυτόχρονα με τον ορισμό του προτύπου. π.χ. struct person { char name[50]; int age; float height; } person1, person2; Μπορούμε να δώσουμε τιμές στα διάφορα πεδία της δομής ως εξής: π.χ. person1.age = 23. 15

ΠΑΡΑΔΕΙΓΜΑ 16

ΕΝΑΛΛΑΚΤΙΚΟΣ ΤΡΟΠΟΣ ΑΡΧΙΚΟΠΟΙΗΣΗΣ ΔΟΜΗΣ Οι τιμές των πεδίων μιας δομής μπορούν (εναλλακτικά) να αρχικοποιηθούν ταυτόχρονα με τη δήλωση αυτής, π.χ. struct book book1 = { Programming in C, 2015, 19.49}; Eάν αρχικοποιήσουμε μόνο το πρώτο πεδίο, τότε τα υπόλοιπα παίρνουν μηδενική τιμή, π.χ. αν struct book book1 = { Programming in C, 2015, 19.49}; τότε, book1.year = 0 και book1.price = 0. Μπορούμε κατά την αρχικοποίηση, να δώσουμε τιμή 0 σε όλα τα πεδία ως εξής: struct book book1 = {0}; Σε αυτή την περίπτωση, επειδή το book1.title είναι κείμενο, γίνεται ο χαρακτήρας \0 και όχι ο ακέραιος 0. 17

ΑΡΧΙΚΟΠΟΙΗΣΗ ΤΑΥΤΟΧΡΟΝΑ ΜΕ ΟΡΙΣΜΟ ΠΡΟΤΥΠΟΥ Εάν η δήλωση μιας δομής γίνει ταυτόχρονα με τον ορισμό του προτύπου, τότε μπορούμε επίσης ταυτόχρονα να αρχικοποιήσουμε και τις τιμές των πεδίων της δομής π.χ. struct book { char title[100]; int year; float price; } book1 = { Programming in C, 2015, 19.49}; 18

ΑΝΤΙΓΡΑΦΗ ΔΟΜΩΝ Με τον τελεστή = μπορούμε να αντιγράψουμε τα πεδία μιας δομής σε μια άλλη του ίδιου προτύπου: 19

ΣΥΓΚΡΙΣΗ ΔΟΜΩΝ Εκτός από την αντιγραφή με =, καμία άλλη ενέργεια δεν επιτρέπεται μεταξύ δομών. Δηλαδή, δεν επιτρέπεται να χρησιμοποιήσουμε τους τελεστές == ή!= για να συγκρίνουμε δυο δομές. Αντ αυτού, αν απαιτείται σύγκριση, θα πρέπει να συγκριθούν ένα προς ένα τα μεμονωμένα πεδία που περιέχονται στη δομή. 20

Σημείωμα Αναφοράς Copyright Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Νικόλαος Στεργιούλας «Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική». Έκδοση: 1.0. Θεσσαλονίκη 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://opencourses.auth.gr/eclass_courses. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά - Παρόμοια Διανομή [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] https://creativecommons.org/licenses/by-nc-nd/4.0/ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Τέλος ενότητας Επεξεργασία: Νικόλαος Τρυφωνίδης Θεσσαλονίκη, 20/09/2015

ΣΗΜΕΙΏΜΑΤΑ

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Γενικά Μαθηματικά Ι Τμήμα Φυσικής