Προγραμματισμός ΙI (Θ)

Σχετικά έγγραφα
Προγραμματισμός I (E)

Προγραμματισμός ΙI (E)

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (E)

Προγραμματισμός I (Θ)

Προγραμματισμός ΙI (Θ)

Προγραμματισμός I (Θ)

Προγραμματισμός ΙI (Θ)

C: Από τη Θεωρία στην Εφαρμογή

Προγραμματισμός ΙI (E)

Δομημένος Προγραμματισμός (ΤΛ1006)

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

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

Προγραμματισμός I (Θ)

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Προγραμματισμός I (E)

Προγραμματισμός II (Γλώσσα C)

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

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

Πρόλογος Εισαγωγικά Στοιχεία... 13

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

Προγραμματισμός I (Θ)

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Δομημένος Προγραμματισμός (ΤΛ1006)

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 10 Ο. Δομές Ενώσεις Απαριθμητοί τύποι δεδομένων ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006)

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Προγραμματισμός I (Θ)

Η γλώσσα προγραμματισμού C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

scanf() scanf() stdin scanf() printf() int float double %lf float

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Η γλώσσα προγραμματισμού C

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

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

Γλώσσα Προγραμματισμού C

Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών. ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δομές

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Η γλώσσα προγραμματισμού C Δομές (structures) στη C

Βασικές Αρχές Προγραμματισμού

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόμενη Λύση

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Ανάπτυξη και Σχεδίαση Λογισμικού

Κεφάλαιο V: Δομές και ενώσεις. 5.1 Δομές.

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5

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

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

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

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

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

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Προγραμματισμός I (Θ)

Συναρτήσεις. Εισαγωγή

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

ΑΣΚΗΣΗ 1. Structural Programming

Διάλεξη 19η: Δομές δεδομένων

Δομημένος Προγραμματισμός (ΤΛ1006)

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Προγραμματισμός Δομές Δεδομένων

Υπολογισμός - Εντολές Επανάληψης

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

Transcript:

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 1 / 25 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (Θ) 1 Δομές Πρότυπο Δομής Δημιουργία και Χρήση Δομής Δημιουργία Δομής Αναφορά και επεξεργασία των δεδομένων 2 Παραδείγματα Παράδειγμα 1: Απλή Δομή Παράδειγμα 2: Δομή Πίνακας Άσκηση Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 2 / 25

Δομές - Εισαγωγή Το κλειδί για την αποτελεσματική χρήση της γλώσσας προγραμματισμού C είναι να προσδιορίσουμε και να χρησιμοποιήσουμε, με σωστό τρόπο, τα βοηθητικά εργαλεία που μας προσφέρει. Ένα από αυτά τα εργαλεία είναι οι δομές (structures). Η πιο σημαντική λειτουργία των δομών, είναι το ότι μας επιτρέπουν να ορίσουμε και να χρησιμοποιήσουμε δικούς μας τύπους δεδομένων. Αυτή η λειτουργία διευκολύνει τον προγραμματιστή να διαχειριστεί πιο δομημένα και πιο εύκολα μεγάλο όγκο δεδομένων. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 3 / 25 Δομές - Εισαγωγή Μια δομή (struct) είναι μια συλλογή στοιχείων. Τα στοιχεία που επιλέγουμε να αποτελέσουν μία δομή είναι ανεξαρτήτου τύπου δεδομένων και αναφερόμαστε σε αυτά ως μέλη της δομής. Αυτός ο δομημένος τρόπος σύζευξης στοιχείων εκτός του ότι μας παρέχει την δυνατότητα να διαχειριστούμε μεγάλο όγκο δεδομένων, μας παρέχει επίσης την δυνατότητα να εφαρμόσουμε μία από τις αρχές του προγραμματισμού. Κάνοντας σωστή χρήση των δομών δεν επιβαρύνουμε το πρόγραμμα μας με επαναλαμβανόμενο κώδικα. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 4 / 25

Δομές - Εισαγωγή Συνεπώς, μια δομή (struct) είναι ένας σύνθετος τύπος δεδομένων ή μια σύνθετη μεταβλητή στην C. Για να χρησιμοποιήσουμε μια δομή (struct) στην C πρέπει Να δηλώσουμε-ορίσουμε το πρότυπο της δομής που θέλουμε να χρησιμοποιήσουμε στην αρχή του προγράμματος, δηλαδή, πριν την main(). Στην main() ή σε οποιαδήποτε συνάρτηση του προγράμματος, να δηλώσουμε μια μεταβλητή να είναι τύπου της δομής που δημιουργήσαμε. Στην main() ή σε οποιαδήποτε συνάρτηση του προγράμματος, να αναθέσουμε τιμές στην σύνθετη μεταβλητή και να την χρησιμοποιήσουμε σε πράξεις. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 5 / 25 Πρότυπο Δομής Ας δούμε όμως αναλυτικά πως μπορούμε να κατασκευάσουμε μια δομή και συγκεκριμένα ένα πρότυπο δομής. Τα στοιχεία από τα οποία υλοποιείται το πρότυπο μιας δομής είναι: το όνομα της, με το οποίο μπορούμε να αναφερόμαστε σε αυτήν όπως αναφερόμαστε σε μία απλή μεταβλητή το σώμα της, στο οποίο βρίσκονται τα μέλη που την αποτελούν. Για παράδειγμα: struct name_of_struct { type member1; type member2; ; Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 6 / 25

Πρότυπο Δομής I Τι σημαίνουν όμως οι παραπάνω γραμμές κώδικα? Το struct είναι μια από τις δεσμευμένες λέξεις της γλώσσας C και γνωστοποιεί στο πρόγραμμα μας ότι επρόκειτο να ακολουθήσει η δήλωση ενός προτύπου δομής ή η δήλωση μιας μεταβλητής ως δομή. Το name_of_struct είναι το όνομα της δομής το οποίο το επιλέγει ο προγραμματιστής. Προσοχή στην ονομασία του ονόματος της δομής, ακολουθεί την ονοματολογία των μεταβλητών. Τα μέλη της δομής (member1, member2) τα δηλώνουμε όπως τις απλές μεταβλητές. Δηλαδή, δηλώνουμε τον τύπο και το όνομα του κάθε μέλους. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 7 / 25 Πρότυπο Δομής II Προσέχουμε πάντα να μην ξεχάσουμε το σημείο στίξης (;) - ερωτηματικό στο τέλος της δήλωσης της δομής. Εάν το παραλείψουμε ή το ξεχάσουμε το πρόγραμμα μας θα έχει σφάλματα μεταγλώττισης τα οποία ενώ είναι εύκολα να διορθωθούν, σε ορισμένες περιπτώσεις μπορεί να είναι δύσκολο να εντοπιστούν. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 8 / 25

Δημιουργία και Χρήση Δομής Παραπάνω είδαμε πώς μπορούμε να κατασκευάσουμε και ταυτόχρονα να δηλώσουμε ένα πρότυπο δομής Η δήλωση ενός προτύπου μιας δομής δεν δεσμεύει μνήμη στο σύστημα. Αυτό συμβαίνει διότι κάθε φορά που κατασκευάζουμε ένα πρότυπο μιας δομής δημιουργούμε έναν νέο τύπο δεδομένων ο οποίος αρχικά δεν περιέχει τίποτα. Ο καινούργιος πλέον τύπος δεδομένων, ισχύει μόνο για το συγκεκριμένο πρόγραμμα και για να χρησιμοποιήσουμε μια δομή την οποία κατασκευάσαμε θα πρέπει πρώτα να δηλώσουμε μεταβλητές αυτού του τύπου. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 9 / 25 Δημιουργία και Χρήση Δομής Ας κατασκευάσουμε λοιπόν μία καινούργια δομή με πραγματικά δεδομένα, η οποία θα δημιουργηθεί για να αποθηκεύονται στοιχεία από βιβλία: struct Books { char title[50]; char author[50]; int isbn; ; Παρατηρούμε λοιπόν ότι έχοντας κάνει χρήση των κατάλληλων ονομάτων καταλαβαίνουμε απευθείας ποιος ήταν ο σκοπός δημιουργίας αυτού του προτύπου δομής. Καθώς επίσης και τι στοιχεία πρόκειται να αποθηκευτούν στις μεταβλητές-μέλη της. Οι μεταβλητές που βρίσκονται σε αυτό το στάδιο, δεν περιέχουν καμία τιμή. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 10 / 25

Δομές - Ανάθεση τιμών I Κατασκευάσαμε και δηλώσαμε το πρότυπο της δομής μας. Ας παρουσιάσουμε κάποιους τρόπους με τους οποίους μπορούμε να δηλώσουμε μεταβλητές και να τους αποδώσουμε τιμές: 1 Κατά την δήλωση της δομής: struct Books { char title[50]; char author[50]; int isbn; Programmatismos={"C PROGRAMMATISMOS","DEITEL", 9789605125905; Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 11 / 25 Δομές - Ανάθεση τιμών II 2 Μέσα στην main(): Για να κάνουμε απόδοση τιμών μέσα στην main() θα πρέπει πρώτα να δηλώσουμε ότι οι μεταβλητές που θα χρησιμοποιήσουμε είναι τύπου struct και το ανάλογο όνομα της δομής. Με δήλωση και ανάθεση ξεχωριστά struct Books Programmatismos; Programmatismos = {"C PROGRAMMATISMOS", "DEITEL", 9789605125905; ή με δήλωση και ανάθεση ταυτόχρονα struct Books Programmatismos = {"C PROGRAMMATISMOS", "DEITEL", 9789605125905; Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 12 / 25

Δομές - Ανάθεση τιμών III 3 Κάνοντας χρήση του typedef: Η λέξη typedef είναι μία από τις δεσμευμένες λέξεις κλειδιά του προγραμματισμού και την χρησιμοποιούμε για να ορίσουμε συνώνυμα σε έναν τύπο δεδομένων. Αυτός ο τρόπος δήλωσης και απόδοσης τιμών λειτουργεί ακριβώς όπως και ο δεύτερος. Η μόνη διαφορά σημειώνεται στο ότι δηλώνουμε μια λέξη κλειδί για την δομή, κάνοντας χρήση της δεσμευμένης λέξης typedef. Μετά από αυτό δεν χρειάζεται να ξανακάνουμε χρήση ούτε της λέξης struct, καθώς ούτε και του ανάλογου ονόματος για να αναφερθούμε την δομή μας. Για παράδειγμα: typedef struct Books book; book Programmatismos = {"C Programmatismos", "DEITEL", 9789605125905; Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 13 / 25 Δομές - Ανάθεση τιμών Συμπεραίνουμε λοιπόν ότι ο δεύτερος και ο τρίτος τρόπος μας παρέχουν την δυνατότητα για ορθή χρήση της δομής. Με αυτούς τους δύο τρόπους δεν ταυτίζουμε την δομή με συγκεκριμένα δεδομένα με αποτέλεσμα να είναι πιο ευέλικτες. Δηλώνουμε μία φορά την δομή και μετά μπορούμε να την χρησιμοποιήσουμε όποτε θέλουμε και όσες φορές θέλουμε κάνοντας αναφορά μόνο στο όνομα της. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 14 / 25

Δομές - Αναφορά και επεξεργασία I Ακόμη μία σημαντική δυνατότητα που μας παρέχουν οι δομές είναι ότι η αναφορά και η επεξεργασία κάθε στοιχείου γίνεται ξεχωριστά και ανεξάρτητα από τα υπόλοιπα μέλη της. Αυτό μπορούμε να το επιτύχουμε κάνοντας χρήση της τελείας (.), με τον ακόλουθο τρόπο: όνομα_μεταβλητής.όνομα_στοιχείου Δηλαδή εάν στο παραπάνω παράδειγμά μας θα θέλαμε να αλλάξουμε την τιμή κάποιου στοιχείου από το βιβλίο Programmatismos, αυτό θα γινόταν ως εξής: Programmatismos.isbn = 978960; και με αυτόν τον τρόπο πλέον το στοιχείο isbn του συγκεκριμένου βιβλίου έχει την τιμή 978960. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 15 / 25 Δομές - Αναφορά και επεξεργασία II Ακολουθώντας αυτόν τον τρόπο μπορούμε να μεταβάλλουμε και να τυπώσουμε στην οθόνη κάθε στοιχείο του βιβλίου ξεχωριστά. Προσέχουμε όμως, η αναφορά σε κάποιο στοιχείο γίνεται μόνο με την χρήση της τελείας (.). Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 16 / 25

Παράδειγμα 1: Απλή Δομή Να δημιουργηθεί πρόγραμμα το οποίο θα κατασκευάζει μία δομή με όνομα Person η οποία θα αποτελείται από τα παρακάτω στοιχεία: Όνομα, Ύψος, Βάρος, Δείκτης Μάζας Σώματος Θα πρέπει να καταχωρηθούν τιμές για 2 άτομα και έπειτα να εκτυπωθούν τα στοιχεία του ατόμου με τον μεγαλύτερο δείκτη μάζας σώματος. Ο Δείκτης Μάζας Σώματος υπολογίζεται από τον τύπο ΔΜΣ = Β Υ 2 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 17 / 25 Παράδειγμα 1: Απλή Δομή I #include <stdio.h> #include <stdlib.h> struct Person{ char name[15]; float height; int weight; float DMS; ; int main(){ struct Person pers1, pers2; printf("give Person 1 data:\n"); printf("name: "); scanf("%s", pers1.name); printf("height: "); scanf("%f", &pers1.height); Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 18 / 25

Παράδειγμα 1: Απλή Δομή II printf("weight: "); scanf("%d", &pers1.weight); pers1.dms=pers1.weight/(pers1.height*pers1.height); printf("give Person 2 data:\n"); printf("name: "); scanf("%s", pers2.name); printf("height: "); scanf("%f", &pers2.height); printf("weight: "); scanf("%d", &pers2.weight); pers2.dms=pers2.weight/(pers2.height*pers2.height); if(pers1.dms>=pers2.dms){ printf("name: %s\n", pers1.name); printf("heigth: %.2f\n", pers1.height); printf("weigth: %d\n", pers1.weight); else{ Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 19 / 25 Παράδειγμα 1: Απλή Δομή III printf("name: %s\n", pers2.name); printf("heigth: %.2f\n", pers2.height); printf("weigth: %d\n", pers2.weight); return 0; Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 20 / 25

Παράδειγμα 2: Δομή Πίνακας Να δημιουργηθεί πρόγραμμα το οποίο θα κατασκευάζει μία δομή με όνομα Student η οποία θα αποτελείται από τα παρακάτω στοιχεία: Όνομα, Επώνυμο, Α.Ε.Μ, Μέσο όρο μαθημάτων Θα πρέπει να καταχωρηθούν τιμές για 5 φοιτητές και έπειτα να εκτυπωθούν τα στοιχεία του φοιτητή με τον μεγαλύτερο μέσο όρο μαθημάτων (θεωρούμε ότι η τιμή είναι μοναδική). Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 21 / 25 Παράδειγμα 2: Δομή Πίνακας I #include <stdio.h> #include <stdlib.h> struct Student{ char name[15]; char surname[15]; int aem; float average; ; int main(){ struct Student stud[5]; int i, position; float maxavg; for(i=0;i<5;i=i+1){ printf("give students %d data:\n", i+1); printf("first name: "); Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 22 / 25

Παράδειγμα 2: Δομή Πίνακας II scanf("%s", stud[i].name); printf("last name: "); scanf("%s", stud[i].surname); printf("students personal number: "); scanf("%d", &stud[i].aem); printf("average Grade: "); scanf("%f", &stud[i].average); maxavg=stud[0].average; for(i=1;i<5;i=i+1){ if(stud[i].average > maxavg){ maxavg = stud[i].average; position=i; printf("student with the maximum average is:\n"); Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 23 / 25 Παράδειγμα 2: Δομή Πίνακας III printf("%s %s\n", stud[position].name, stud[position ].surname); printf("with personal number: %d\n", stud[position]. aem); printf("and average: %.2f", stud[position].average); return 0; Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 24 / 25

Άσκηση Να δημιουργηθεί πρόγραμμα το οποίο θα δέχεται τα εξής στοιχεία από τους πελάτες μιας εταιρίας αυτοκινήτων: Όνομα, Επίθετο, Τηλέφωνο, Διεύθυνση, Υπόλοιπο οφειλών Θα τα αποθηκεύει σε έναν πίνακα και έπειτα (α) εάν το Υπόλοιπο οφειλών είναι μεγαλύτερο από 500 θα εμφανίζει τα στοιχεία του πελάτη και (β) θα εμφανίζει το συνολικό υπόλοιπο οφειλών. Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017 25 / 25