343 Ειςαγωγι ςτον Προγραμματιςμό

Σχετικά έγγραφα
343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

343 Ειςαγωγι ςτον Προγραμματιςμό

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό

16. Πίνακεσ και Συναρτήςεισ

17. Πολυδιάςτατοι πίνακεσ

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

343 Ειςαγωγι ςτον Προγραμματιςμό

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

343 Ειςαγωγι ςτον Προγραμματιςμό

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

343 Ειςαγωγι ςτον Προγραμματιςμό

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

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

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

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

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματισμός Υπολογιστών με C++

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

ςυςτιματα γραμμικϊν εξιςϊςεων

Δομές Επανάληψης. Εισαγωγή στη C++

343 Ειςαγωγι ςτον Προγραμματιςμό

Συναρτήσεις (Functions) Εισαγωγή στη C++

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

343 Ειςαγωγι ςτον Προγραμματιςμό

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Βαγγζλθσ Οικονόμου Διάλεξθ 7. Συναρτιςεισ Μζροσ 2ο

Συναρτήσεις και Πίνακες

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

343 Ειςαγωγι ςτον Ρρογραμματιςμό

Μετατροπι Αναλογικοφ Σιματοσ ςε Ψθφιακό. Διάλεξθ 10

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Γενικά Μαθηματικά ΙΙ

Θεςιακά ςυςτιματα αρίκμθςθσ

Δϋ Δθμοτικοφ 12 θ Κυπριακι Μακθματικι Ολυμπιάδα Απρίλιοσ 2011

343 Ειςαγωγι ςτον Προγραμματιςμό

Στοιχειώδης προγραμματισμός σε C++

ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL)

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

343 Ειςαγωγι ςτον Ρρογραμματιςμό

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Ιδιότθτεσ πεδίων Γενικζσ.

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

Γ' ΛΥΚΕΙΟΥ Η ΤΑΞΗ ΤΗΣ ΤΕΛΙΚΗΣ ΕΠΙΛΟΓΗΣ. Στθ ΓϋΛυκείου οι Ομάδεσ Προςανατολιςμοφ είναι τρεισ:

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ειδικά Θζματα Βάςεων Δεδομζνων

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

Προγραμματισμός Υπολογιστών με C++

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ Αςκήςεισ με ψευδογλώςςα/ διάγραμμα ροήσ. Αντώνης Μαϊργιώτης

Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΥΡΟΝΣΙ ΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣ Η» ΔΙΑΓΩΝΙ ΜΑ ΑΕΠΠ

ΗΥ-150. Προγραμματισμός

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Γομέρ Γεδομένων (Data Structures) Χαπμανδάπηρ Δςάγγελορ, Τμήμα Δθαπμοζμένων Μαθημαηικών, Δαπινό Δξάμηνο 2010/11. Διζαγωγή: Σύνηομη Δπιζκόπηζη ηηρ C++

1. Κατέβαςμα του VirtueMart

Ποσοτικές Μέθοδοι Δρ. Χάϊδω Δριτσάκη

Ε. ε περίπτωςθ που θ διαφορά των δφο ηαριϊν είναι 3 τότε ο παίκτθσ ξαναρίχνει μόνο ζνα ηάρι.

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α)

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

343 Ειςαγωγι ςτον Ρρογραμματιςμό

ΗΥ-150. Προγραμματισμός

Transcript:

343 Ειςαγωγι ςτον Προγραμματιςμό Τμιμα Μακθματικϊν Πανεπιςτιμιο Ιωαννίνων Ακαδθμαϊκό Ζτοσ 2016-2017 Χάρθσ Παπαδόπουλοσ 207δ, B όροφοσ e-mail: charis@cs.uoi.gr Ωρεσ Γραφείου: Πζμπτθ 11-13

Τμιματα Εργαςτθρίων Εργαςτήριο (μεγάλο): Εργαςτιριο Θ/Υ 1 ο όροφο δίπλα από το Αναγνωςτιριο Τα εργαςτιρια κα ξεκινιςουν Δευτζρα 24 Οκτωβρίου και Σρίτη 25 Οκτωβρίου Εργαςτήρια Δευτζρα (14:00-20:15) Α1 Δευτζρα 14:00-15:15-10992 Α2 Δευτζρα 15:15-16:30 10993-11036 Α3 Δευτζρα 16:30-17:45 11037-11088 Α4 Δευτζρα 17:45-19:00 11089-11146 Α5 Δευτζρα 19:00-20:15 11147-11196 Εργαςτήριο Σρίτη (14:00-15:15) Β1 Σρίτη 14:00-15:15 11197 - Αλλαγζσ ΔΕΝ επιτρζπονται! Διάρκεια Εργαςτηρίου: 1h:15m

Τελικι Βακμολογία Επιτυχήσ παρακολοφθηςη των υποχρεωτικϊν εργαςτθρίων μια (1) το πολφ απουςία ςτα 5 ή 6 εργαςτθριακά μακιματα Ζνα (1) τεςτ (Τ1) με βάροσ 15% του ςυνολικοφ βακμοφ. Ανάπτυξθ Κϊδικα ςτο Εργαςτιριο Ζνα (1) quiz (Q2) με βάροσ 15% του ςυνολικοφ βακμοφ. Ερωτιςεισ Πολλαπλϊν Επιλογϊν Όςοι απουςιάςουν ςε ζνα τεςτ ι quiz: μθδενίηεται το 15% Παλαιότεροι φοιτητζσ: μποροφν να λάβουν μζροσ ςτα τεςτ ι ςτα quiz Σελική βαθμολογία (με επιτυχι παρακολοφκθςθ εργαςτθρίων): TB = max 15% Τ1 + 15% Q2 + 70% ΓρΕξ ΓρΕξ

1 ο Τεςτ Το 1 ο quiz κα διεξαχκεί τθν Δευτζρα 21 Νοεμβρίου Για όλα τα τμιματα!! 14:00-21:00 ςτα ακόλουκα τμιματα: Ώρεσ Α. Μ. 14:00-14:45 ΤΜΘΜΑ Α1 15:00-15:45 ΤΜΘΜΑ Α2 16:00-16:45 ΤΜΘΜΑ Α3 17:00-17:45 ΤΜΘΜΑ Α4 18:00-18:45 ΤΜΘΜΑ Α5 19:00-19:45 ΤΜΘΜΑ Β1 Αν λείψετε: Δεν μετράει ωσ απουςία Μθδενίηεται το 15% 20:00-20:45 ΤΜΘΜΑ δεν ανικουν Α1-Α5,Β1 6-4

Θ: διάλεξη (θεωρία) Ε: Εργαστήριο Θμερολόγιο Μακιματοσ Q: Σεστ quiz Οκτώβριος 2015 Δ Σ Σ Π Π 3 4 5 6 7 Θ 10 11 12 13 14 Θ 17 18 19 20 21 Θ 24 Ε 25 Ε 26 27 28 Εβδομάδα Θζματα Υλη βιβλιογραφίασ Πα, 7 Οκτωβρίου Πα, 14 Οκτωβρίου Πα, 21 Οκτωβρίου Δε, Σρ, 24-25 Οκτ Εισαγωγικά μαθήματος & Δυαδική αναπαράσταση Είσοδος/Έξοδος δεδομένων, τύποι δεδομένων & μεταβλητών Προεπεξεργαστής, αριθμητικοί και λογικοί τελεστές 1 ο Εργαστήριο *1+: 1.1, Παράρτθμα 3 *2+: Κεφ. 1, Β, Δ *1+: 1.2, 1.3, 1.4, 1.5, Παράρτθμα 1 *2+: Κεφ. 2, Γ *1+: 2.1, Παράρτθμα 2 *2+: 4.11, 4.12, Α, ΣΤ Νοέμβριος 2015 Δ Σ Σ Π Π 1 2 3 4 Θ 7 Ε 8 Ε 9 10 11 Θ 14 Ε 15 16 17 18 Θ 21 Σ 22 23 24 25 Θ Πα, 4 Νοεμβρίου Δε, Σρ, 7-8 Νοε Πα, 11 Νοεμβρίου Δε, Σρ, 14-15 Νοε Πα, 18 Νοεμβρίου Ροή ελέγχου: if/else, switch, for, while, do-while και ροή ελέγχου if/else 2 ο Εργαστήριο υναρτήσεις, εμβέλεια μεταβλητών και αναδρομή 3 ο Εργαστήριο Επανάληψη με Παραδείγματα [1]: 2.2, 2.3 *2+: Κεφ. 4, Κεφ. 5 [1]: 3.1, 3.2, 3.3, 4.1, 4.2, 13.1, 13.2 *2+: Κεφ. 6 [1]: 5.1, 5.2, 5.4 *2+: Κεφ. 7 28 Ε 29 Ε 30 Δεκέμβριος 2015 Δ Σ Σ Π Π 1 2 Θ 5 E 6 Ε 7 8 9 Θ 12 Q 13 14 15 16 Θ Ιανουάριος 2016 Δ Σ Σ Π Π 2 3 4 5 6 9 10 11 12 13 Θ Δε, 21 Νοε Πα, 25 Νοεμβρίου Δε, Σρ, 28-29 Νοε Πα, 2 Δεκεμβρίου Δε, Σρ, 5-6 Δεκ Πα, 9 Δεκεμβρίου Δε, 12 Δεκ Πα, 16 Δεκεμβρίου Πα, 13 Ιανουαρίου 1 ο Test (Ανάπτυξη κώδικα) Πίνακες (μονοδιάστατοι και πολυδιάστατοι) 4 ο Εργαστήριο Εφαρμογές σε ταξινομήσεις και αναζήτηση στοιχείων 5 ο Εργαστήριο Αλφαριθμητικά και υμβολοσειρές 2 ο Quiz (Ερωτήσεις πολλαπλών επιλογών) Εγγραφές, δομές και χρήση αρχείων Επανάληψη [1]: 5.1, 5.2, 5.4 *2+: Κεφ. 7 *1+: Παράρτθμα 4, 9.1, 9.2, 9.3 *2+: 6.7, 6.8, Κεφ. 18 [1]: 6.1, 12.1, 12.2, 12.4 [2]: Κεφ. 21, 17.1-17.10 [1]: 5.3, 13.3 *2+: 7.7, 7.8, 8.6, Κεφ. 19

Θ: διάλεξη (θεωρία) Ε: Εργαστήριο Θμερολόγιο Μακιματοσ Q: Σεστ quiz Οκτώβριος 2015 Δ Σ Σ Π Π 3 4 5 6 7 Θ 10 11 12 13 14 Θ 17 18 19 20 21 Θ 24 Ε 25 Ε 26 27 28 Εβδομάδα Θζματα Υλη βιβλιογραφίασ Πα, 7 Οκτωβρίου Πα, 14 Οκτωβρίου Πα, 21 Οκτωβρίου Δε, Σρ, 24-25 Οκτ Εισαγωγικά μαθήματος & Δυαδική αναπαράσταση Είσοδος/Έξοδος δεδομένων, τύποι δεδομένων & μεταβλητών Προεπεξεργαστής, αριθμητικοί και λογικοί τελεστές 1 ο Εργαστήριο *1+: 1.1, Παράρτθμα 3 *2+: Κεφ. 1, Β, Δ *1+: 1.2, 1.3, 1.4, 1.5, Παράρτθμα 1 *2+: Κεφ. 2, Γ *1+: 2.1, Παράρτθμα 2 *2+: 4.11, 4.12, Α, ΣΤ Νοέμβριος 2015 Δ Σ Σ Π Π 1 2 3 4 Θ 7 Ε 8 Ε 9 10 11 Θ 14 Ε 15 16 17 18 Θ 21 Σ 22 23 24 25 Θ Πα, 4 Νοεμβρίου Δε, Σρ, 7-8 Νοε Πα, 11 Νοεμβρίου Δε, Σρ, 14-15 Νοε Πα, 18 Νοεμβρίου Ροή ελέγχου: if/else, switch, for, while, do-while και ροή ελέγχου if/else 2 ο Εργαστήριο υναρτήσεις, εμβέλεια μεταβλητών και αναδρομή 3 ο Εργαστήριο Επανάληψη με Παραδείγματα [1]: 2.2, 2.3 *2+: Κεφ. 4, Κεφ. 5 [1]: 3.1, 3.2, 3.3, 4.1, 4.2, 13.1, 13.2 *2+: Κεφ. 6 [1]: 5.1, 5.2, 5.4 *2+: Κεφ. 7 28 Ε 29 Ε 30 Δεκέμβριος 2015 Δ Σ Σ Π Π 1 2 Θ 5 E 6 Ε 7 8 9 Θ 12 Q 13 14 15 16 Θ Ιανουάριος 2016 Δ Σ Σ Π Π 2 3 4 5 6 9 10 11 12 13 Θ Δε, 21 Νοε Πα, 25 Νοεμβρίου Δε, Σρ, 28-29 Νοε Πα, 2 Δεκεμβρίου Δε, Σρ, 5-6 Δεκ Πα, 9 Δεκεμβρίου Δε, 12 Δεκ Πα, 16 Δεκεμβρίου Πα, 13 Ιανουαρίου 1 ο Test (Ανάπτυξη κώδικα) Πίνακες (μονοδιάστατοι και πολυδιάστατοι) 4 ο Εργαστήριο Εφαρμογές σε ταξινομήσεις και αναζήτηση στοιχείων 5 ο Εργαστήριο Αλφαριθμητικά και υμβολοσειρές 2 ο Quiz (Ερωτήσεις πολλαπλών επιλογών) Εγγραφές, δομές και χρήση αρχείων Επανάληψη [1]: 5.1, 5.2, 5.4 *2+: Κεφ. 7 *1+: Παράρτθμα 4, 9.1, 9.2, 9.3 *2+: 6.7, 6.8, Κεφ. 18 [1]: 6.1, 12.1, 12.2, 12.4 [2]: Κεφ. 21, 17.1-17.10 [1]: 5.3, 13.3 *2+: 7.7, 7.8, 8.6, Κεφ. 19

Ενότθτα 12 ΤΝΑΡΣΗΕΙ: ΠΑΡΑΜΕΣΡΟΙ 5-7

Παράμετροι κλιςθσ με τιμι Στθν κλιςθ τθσ ςυνάρτθςθσ τοποκετοφνται αντίγραφα των τιμϊν Ουςιαςτικά είναι ςαν τοπικζσ μεταβλθτζσ Αν αλλάξουν τιμι, τότε "τοπικζσ" μεταβολζσ Θ ςυνάρτθςθ δεν ζχει πρόςβαςθ ςτθ "πραγματικι παράμετρο" Αυτι είναι θ εξ'οριςμοφ κλιςθ ςε όλα τα παραδείγματα ωσ τϊρα 5-8

#include <iostream> const double RATE = 150.00; //Εσρώ ανα 15 λεπτά. double fee(int hoursworked, int minutesworked); //Χρεώσεις για hoursworked και minutesworked int main( ) Δεν αλλάηει θ τιμι int hours, minutes; τθσ μεταβλθτισ double bill; minutes από τθν cout << "Enter the hours and minutes:\n"; κλιςθ τθσ fee( ) cin >> hours >> minutes; bill = fee(hours, minutes); cout << "For " << hours << " and " << minutes << ", your bill is " << bill << endl; return 0; double fee(int hoursworked, int minutesworked) int quarterhours; minutesworked = hoursworked*60 + minutesworked; quarterhours = minutesworked/15; return (quarterhours*rate); 5-9

Τυπικό ςφάλμα Κλαςικό λάκοσ: Διλωςθ παραμζτρου "ξανά" μζςα ςε ςυν/ςθ: double fee(int hoursworked, int minutesworked) int quarterhours; // local variable int minutesworked // NO! Σφάλμα ςτον μεταφραςτι: "Redefinition error " Παράμετροι με τιμι είναι ςαν "τοπικζσ μεταβλθτζσ" Αλλά θ ςυν/ςθ τισ ζχει δθλωμζνεσ "αυτόματα" 5-10

Παράμετροι κλιςθσ με αναφορά Χρθςιμοποιοφνται για να ζχουν πρόςβαςθ ςτισ πραγματικζσ παραμζτρουσ Τα δεδομζνα που καλεί κάποιοσ μπορεί να αλλάξουν κατά το κάλεςμα μιασ ςυν/ςθσ! Συνικωσ χρθςιμοποιοφνται για είςοδο/διάβαςμα Αυτόσ που καλεί κζλει τισ τιμζσ που κα διαβάςει θ ςυν/ςθ Δθλϊνονται με & μετά τον τφπο ςτθ λίςτα παραμζτρων void getinput( double& receiver ) cout << " Δώσε τιμή: \n"; cin >> receiver; int main() double number;... getinput( number );... 5-11

int main( ) int firstnum, secondnum; getnumbers(firstnum, secondnum); swapvalues(firstnum, secondnum); showresults(firstnum, secondnum); void getnumbers(int& input1, int& input2) cout << "Enter two integers: "; cin >> input1 >> input2; void swapvalues(int& variable1, int& variable2) int temp; temp = variable1; variable1 = variable2; variable2 = temp; void showresults(int output1, int output2) cout << "Αντίστρουα:"<< output1 << " " << output2 << endl; 5-12

Μθχανιςμόσ κλιςθσ με αναφορά Τι πραγματικά περνάμε ςαν αναφορά; Μια αναφορά ςτθν πραγματικι παράμετρο όταν κάλεςε τθν ςυνάρτθςθ Αναφζρεται ςτθν κζςθ μνιμθσ τθσ πραγματικισ παραμζτρου Καλείται ςυχνά ωσ "διεφκυνςθ", που είναι ζνα μοναδικό νοφμερο που δείχνει ςε διακριτι κζςθ μνιμθσ void getnumbers( int& input1, int& input2 ); getnumbers( first, second) first second 1010 input1 1012 input2 5-13

Στακερζσ Παράμετροι αναφοράσ Οι παράμετροι με αναφορά εγκυμονοφν κινδφνουσ Τα δεδομζνα μποροφν να αλλάξουν Μερικζσ φορζσ είναι επικυμθτό, άλλεσ όχι Για να "προςτατεφςουμε" τα δεδομζνα, περνϊντασ παράλλθλα παραμζτρουσ με αναφορά: Χριςθ τθσ δεςμευμζνθσ λζξθσ const void sendconstref( const int &par1, const int &par2 ); Οι παράμετροι γίνονται "μόνο για διάβαςμα" (read-only) από τθν ςυνάρτθςθ Δεν επιτρζπονται αλλαγζσ ςτο ςϊμα τθσ ςυν/ςθσ 5-14

Μικτζσ λίςτεσ παραμζτρων Συνδυαςμόσ παραμζτρων ςτο κάλεςμα τθσ ςυν/ςθσ Θ λίςτα παραμζτρων μπορεί να περιζχει παραμζτρουσ με τιμι και παραμζτρουσ με αναφορά Θ ςειρά των οριςμάτων ςτθ λίςτα είναι ΣΘΜΑΝΤΙΚΘ: void mixedcall(int & par1, int par2, double & par3); Όταν καλοφμε τθ ςυν/ςθ: mixedcall(arg1, arg2, arg3); arg1 integer, παράμετροσ με αναφορά arg2 integer, παράμετροσ με τιμι arg3 double, παράμετροσ με αναφορά 5-15

#include <iostream> void dostuff(int par1value, int& par2ref); int main( ) int n1, n2; n1 = 1; n2 = 2; dostuff(n1, n2); cout << "n1 μετά = " << n1 << endl; cout << "n2 μετά = " << n2 << endl; return 0; void dostuff(int par1value, int& par2ref) par1value = 111; cout << "par1value στη σσν/ση= "<< par1value << endl; par2ref = 222; cout << "par2ref στη σσν/ση= " << par2ref << endl; 5-16

#include <iostream> Τι εκτυπϊνει; void figuremeout(int& x, int y, int &z); int main( ) int a = 10, b = 20, c = 30; figuremeout(a, b, c); cout << a << " " << b << " " << c << endl; return 0; void figuremeout(int& x, int y, int &z) cout << x << " " << y << " " << z << endl; x = 1; y = 2; z = 3; cout << x << " " << y << " " << z << endl; 5-17

Ενότθτα 13 ΤΝΑΡΣΗΕΙ: ΤΠΕΡΦΟΡΣΩΗ 5-18

Υπερφόρτωςθ Συναρτιςεισ με το ίδιο όνομα Διαφορετικι λίςτα παραμζτρων Δυο διαφορετικζσ δθλϊςεισ ςυναρτιςεων Τπογραφή ςυνάρτηςησ Όνομα ςυνάρτθςθσ & λίςτα παραμζτρων Μοναδικά για κάκε οριςμό ςυνάρτθςθσ Επιτρζπει ίδια ενζργεια ςε διαφορετικά δεδομζνα 5-19

Παράδειγμα Υπερφόρτωςθσ: Μζςοσ Όροσ Υπολογίηει το μζςο όρο 2 αρικμϊν: double average(double n1, double n2) return ((n1 + n2) / 2.0); Υπολογίηει το μζςο όρο 3 αρικμϊν: double average(double n1, double n2, double n3) return ((n1 + n2 + n3) / 3.0); Κδιο όνομα, δυο ςυναρτιςεισ 5-20

Παράδειγμα Υπερφόρτωςθσ: Μζςοσ Όροσ Ποια ςυνάρτθςθ καλείται; Εξαρτάται από το ίδιο το κάλεςμα: avg = average(5.2, 6.7); Καλεί "δφο-παραμζτρων average()" avg = average(6.5, 8.5, 4.2); Καλεί" τριϊν-παραμζτρων average()" Ο μεταφραςτισ επιλφει τζτοια κζματα βαςιηόμενοσ ςτθν υπογραφι ςτο κάλεςμα "Ταιριάηει" το κάλεςμα με τθν αντίςτοιχθ ςυν/ςθ 5-21

Επίλυςθ Υπερφόρτωςθσ 1 ον : Απόλυτο ταίριαςμα Κοιτάηει για ίδια υπογραφι όπου δεν απαιτείται κάποια μετατροπι τφπου 2 ον : Συμβατό ταίριαςμα Κοιτάηει για "ςυμβατι" υπογραφι όπου μια αυτόματθ μετατροπι τφπου είναι δυνατι: 1 οσ προϊκθςθ (π.χ., int double) δεν χάνονται δεδομζνα 2 οσ αποκοπι (π.χ., double int) πικανι απϊλεια δεδομζνων Ομοιότθτεσ ςτα ίδια επίπεδα ςφάλμα ςτο μεταφραςτι void f(int n, double m); void f(double n, int m); f(33, 44); 5-22

Αυτόματθ μετατροπι τφπου και Υπερφόρτωςθ Οι τυπικοί αρικμθτικοί τφποι φτιάχνουν ςυνικωσ τφπουσ "double" Επιτρζπει "οποιοδιποτε" αρικμθτικό τφπο int double float double char double *αργότερα κα το δοφμε! Αποφεφγει υπερφόρτωςθ για διαφορετικοφσ αρικμθτικοφσ τφπουσ 5-23

Αυτόματθ μετατροπι τφπου και Υπερφόρτωςθ double kmlgas(double klm, double liters) return (klm/liters); Παραδείγματα : a = kmlgas(5, 20); Μετατρζπει 5 & 20 ςε doubles, και μετά περνάει τιμζσ a = kmlgas (5.8, 20.2); Δεν χρειάηεται μετατροπι a = kmlgas (5, 2.4); Μετατρζπει το 5 ςε 5.0, και μετά περνάει τιμζσ ςτθ ςυν/ςθ 5-24

Προεπιλεγμζνα Ορίςματα Κατά τθν κλιςθ επιτρζπει τθν αποφυγι μερικϊν οριςμάτων Στθ διλωςθ/οριςμό ςυνάρτθςθσ: void showvolume( int length, int width = 1, int height = 1 ); Τα τελευταία 2 ορίςματα είναι προεπιλεγμζνα (defaulted) Πικανά καλζςματα: showvolume(2, 4, 6); //τιμζσ ςε όλα τα ορίςματα showvolume(3, 5); //height προεπιλεγμζνο ςε 1 showvolume(7); //width & height προεπιλεγμζνα ςε 1 5-25

#include <iostream> using namespace std; Προκακοριςμζνα ορίςματα void showvolume(int length, int width = 1, int height = 1); //Returns the volume of a box. int main( ) showvolume(4, 6, 2); showvolume(4, 6); showvolume(4); Ζνα προκακοριςμζνο όριςμα δεν πρζπει να δίνεται ςτο κυρίωσ ςϊμα τθσ ςυν/ςθσ return 0; void showvolume(int length, int width, int height) cout << "Volume of a box with \n" << "Length = " << length << ", Width = " << width << endl << "and Height = " << height << " is " << length*width*height << endl; 5-26

Ενότθτεσ 1-13 ΕΠΑΝΑΛΗΨΗ 6-27

Μ.Ο. τριϊν ακεραίων Να γραφεί ζνα πρόγραμμα που διαβάηει τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων 6-28

Μ.Ο. τριϊν ακεραίων Να γραφεί ζνα πρόγραμμα που διαβάηει τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων #include <iostream> int main( ) int x, y, z, sum; double avg; cout << "Enter x,y,z:"; cin >> x >> y >> z; sum = x + y + z; avg = static_cast<double>(sum)/3; // ή avg = sum / 3.0 ; cout << "Avg: " << avg; return 0; 6-29

Μ.Ο. τριϊν ακεραίων Να γραφεί ζνα πρόγραμμα που διαβάηει τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων. Κατά τθν είςοδο να γίνεται επαναλθπτικόσ ζλεγχοσ τιμϊν. 6-30

Μ.Ο. τριϊν ακεραίων Να γραφεί ζνα πρόγραμμα που διαβάηει τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων. Κατά τθν είςοδο να γίνεται επαναλθπτικόσ ζλεγχοσ τιμϊν. #include <iostream> int main( ) int x, y, z, sum; double avg; do cout << "Enter x,y,z:"; cin >> x >> y >> z; while( (x < 0) (y < 0) (z <0) ); sum = x + y + z; avg = static_cast<double>(sum)/3; // ή avg = sum / 3.0 ; cout << "Avg: " << avg; 6-31

Μ.Ο. τριϊν ακεραίων Να γραφεί μια ςυνάρτθςθ που δζχεται τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων. main(): Καλζςτε από τθν main() τθν ςυνάρτθςθ που φτιάξατε αφοφ πρϊτα διαβάςετε τουσ αρικμοφσ. Θα πρζπει κατά τθν είςοδο να ελζγχετε (επαναλθπτικά) για επιτρεπτζσ τιμζσ. 6-32

#include <iostream> double avg(int x, int y, int z); int main( ) int x, y, z; double avg; do cout << "Enter x,y,z:"; cin >> x >> y >> z; while( (x < 0) (y < 0) (z <0) ); cout << "Avg: " << avg(x, y, z); double avg(int x, int y, int z) int sum; sum = x + y + z; return ( static_cast<double>(sum) / 3 ); 6-33

Μ.Ο. τριϊν ακεραίων Να γραφεί ζνα πρόγραμμα που διαβάηει τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων. Θα πρζπει να χρθςιμοποιιςετε τουλάχιςτον τρεισ ςυν/ςεισ: μια για διάβαςμα μια για υπολογιςμό μια για εκτφπωςθ Θα πρζπει κατά τθν είςοδο να ελζγχετε (επαναλθπτικά) για επιτρεπτζσ τιμζσ. 6-34

#include <iostream> void read(int &x, int &y, int &z); double avg(int x, int y, int z); void print(double a); int main( ) int x, y, z; double mo; read(x,y,z); mo = avg(x,y,z); print(mo); void read(int &x, int &y, int &z) do cout << "Enter x,y,z:"; cin >> x >> y >> z; while( (x < 0) (y < 0) (z <0) ); void print(double a) cout << "Avg: " << a << endl; double avg(int x, int y, int z) int sum; sum = x + y + z; return ( static_cast<double>(sum) / 3 ); 6-35

Μ.Ο. τριϊν ακεραίων Να γραφεί ζνα πρόγραμμα που διαβάηει τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων. Θα πρζπει να χρθςιμοποιιςετε τουλάχιςτον τρεισ ςυν/ςεισ: μια για διάβαςμα μια για υπολογιςμό μια για εκτφπωςθ Θα πρζπει κατά τθν είςοδο να ελζγχετε (επαναλθπτικά) για επιτρεπτζσ τιμζσ. Να ςυμπεριλάβετε ζνα βρόχο ο οποίοσ κα επιτρζπει ςτο χριςτθ να επαναλαμβάνει τον υπολογιςμό για νζεσ τιμζσ ειςόδου μζχρι ο χριςτθσ να δθλϊςει ότι δεν κζλει να ςυνεχίςει. 6-36

#include <iostream> void read(int &x, int &y, int &z); double avg(int x, int y, int z); void print(double a); int main( ) int x, y, z; char ans; double mo; do read(x,y,z); mo = avg(x,y,z); print(mo); cout << "again(y/n)?"; cin >> ans; while(ans == 'y'); double avg(int x, int y, int z) int sum; sum = x + y + z; return ( static_cast<double>(sum) / 3 ); void read(int &x, int &y, int &z) do cout << "Enter x,y,z:"; cin >> x >> y >> z; while( (x < 0) (y < 0) (z <0) ); void print(double a) cout << "Avg: " << a << endl; 6-37

Γενικά Όλεσ οι προθγοφμενεσ παραλλαγζσ ςτισ εκφωνιςεισ απαιτοφν και διαφορετικό τρόπο επίλυςθσ Πρόγραμμα Πρόγραμμα με ςυναρτιςεισ Πρόγραμμα με ςυναρτιςεισ και ζλεγχο δεδομζνων Πρόγραμμα με επιμζρουσ ςυναρτιςεισ (προςοχι ςτισ &παραμζτρουσ) Πρόγραμμα με επιμζρουσ ςυναρτιςεισ και επαναλθπτικό υπολογιςμό Θα πρζπει να τουσ καταλαβαίνουμε από τθν εκφϊνθςθ ποιο ολοκλθρωμζνο πρόγραμμα ηθτάμε Στθ ςυνζχεια μόνο κάποια κατθγορία ηθτάμε και επιλφουμε Θα πρζπει ωςτόςο να μποροφμε να διαχειριςτοφμε και τισ υπόλοιπεσ κατθγορίεσ 6-38

Ενότθτεσ 1-13 ΕΠΑΝΑΛΗΨΗ ΕΡΓΑΣΗΡΙΩΝ 6-39

Ηιτθμα 3 ο PreLab-2 Γράψτε ζνα πρόγραμμα που εκτυπϊνει ζνα ορκογϊνιο τρίγωνο από * («αςτεράκια») με βάςθ και φψοσ a. Τθν ποςότθτα a τθ δίνει ο χριςτθσ. Παράδειγμα: Για a = 5: * ** *** **** ***** 6-40

Ηιτθμα 3 ο PreLab-2 Γράψτε ζνα πρόγραμμα που εκτυπϊνει ζνα ορκογϊνιο τρίγωνο από * («αςτεράκια») με βάςθ και φψοσ a. Τθν ποςότθτα a τθ δίνει ο χριςτθσ. Παράδειγμα: Για a = 5: * ** *** **** ***** int main() int i,j,a; cout << "Give number: " ; cin >> a; for ( i = 1; i < a + 1; i++ ) for ( j = 1; j < i + 1; j++) cout << "*"; cout << endl; return 0; 6-41

Ηιτθμα 3 ο Lab-2 Γράψτε ζνα πρόγραμμα που εκτυπϊνει ζνα δζντρο από * («αςτεράκια») με φψοσ a. Τθν ποςότθτα a τθ δίνει ο χριςτθσ. Παράδειγμα: Για a = 5: * *** ***** ******* ********* 6-42

Ηιτθμα 3 ο Lab-2 Γράψτε ζνα πρόγραμμα που εκτυπϊνει ζνα δζντρο από * («αςτεράκια») με φψοσ a. Τθν ποςότθτα a τθ δίνει ο χριςτθσ. Παράδειγμα: Για a = 5: * *** ***** ******* ********* int main() int i,j,a; cout << "Give number: " ; cin >> a; for ( i = 1; i < a + 1; i++ ) for ( j = 1; j < a - i + 1; j++) cout << " "; for ( j = 1; j <= 2*i - 1; j++) cout << "*"; cout << endl; return 0; 6-43

Ηιτθμα 1 ο PreLab-3 Συνάρτθςθ που δζχεται δφο ακζραιουσ αρικμοφσ α, β και επιςτρζφει το εφροσ ακεραίων τιμϊν μεταξφ του α και β. Μζςα ςτθ ςυνάρτθςθ κα πρζπει να χρθςιμοποιιςετε ςυν/ςεισ max() και min() από δυο αρικμοφσ. main(): διαβάςτε δφο ακεραίουσ α, β και εκτυπϊςτε το αποτζλεςμα τθσ ςυνάρτθςθσ.

Ηιτθμα 1 ο PreLab-3 Συνάρτθςθ που δζχεται δφο ακζραιουσ αρικμοφσ α, β και επιςτρζφει το εφροσ ακεραίων τιμϊν μεταξφ του α και β. Μζςα ςτθ ςυνάρτθςθ κα πρζπει να χρθςιμοποιιςετε ςυν/ςεισ max() και min() από δυο αρικμοφσ. main(): διαβάςτε δφο ακεραίουσ α, β και εκτυπϊςτε το αποτζλεςμα τθσ ςυνάρτθςθσ. int numbers(int a, int b); int max(int a, int b); int min(int a, int b); int main() int a, b; cout << "Give a & b:"; cin >> a >> b; cout << numbers(a,b); int numbers(int a, int b) return max(a,b) min(a,b); int max(int a, int b) if ( a > b ) return( a ); else return(b); int min(int a, int b) return ( (a < b)? a: b );

Ηιτθμα 2 ο PreLab-3 Δθμιουργιςτε μια νζα ςυνάρτθςθ που δζχεται δφο ακζραιεσ τιμζσ x και n, και επιςτρζφει τθν τιμι τθσ ακόλουκθσ ςυνάρτθςθσ main(): Καλζςτε από τθν main() τθν ςυνάρτθςθ που φτιάξατε αφοφ πρϊτα διαβάςετε τα x και n και εκτυπϊςτε το ανάλογο αποτζλεςμα τθσ ςυνάρτθςθσ. Θα πρζπει κατά τθν είςοδο να ελζγχετε επαναλθπτικά αν το n είναι περιττό. n n x n x n x x x 1 3 4 2 1 2 5 3 n i i x i x 3 1 1

int main() int x, n; cout << "Give x"; cin >> x; do cout << "Give odd n "; cin >> n; while( n % 2 == 0 ); cout << fun(x, n); double fun(int x, int n) double sum; sum = 1.0 / x; for(int i = 3; i <= n; i = i + 2) sum = sum + (i-1) / pow( static_cast<double>(x), n) ; return sum;

Ηιτθμα 1 ο Lab-3 Γράψτε μια ςυνάρτθςθ που υπολογίηει τθ μζςθ τυπικι απόκλιςθ τεςςάρων βακμολογιϊν. Θ τυπικι απόκλιςθ ορίηεται ωσ θ τετραγωνικι ρίηα του μζςου όρου των τεςςάρων τιμϊν (s i - a) 2 όπου α είναι ο μζςοσ όροσ των βακμολογιϊν s 1, s 2, s 3, s 4. (s 1 a) 2 +(s 2 a) 2 +(s 3 a) 2 +(s 4 a) 2 4 Θ ςυνάρτθςθ κα καλεί δυο άλλεσ ςυναρτιςεισ. main(): Ενςωματϊςτε τθ ςυν/ςθ ςτθ main() που κα ςασ επιτρζπει να δοκιμάηετε τθ ςυνάρτθςθ ξανά και ξανά μζχρι να πείτε ςτο πρόγραμμα ότι ζχετε τελειϊςει.

double apoklisi( int s1, int s2, int s3, int s4, double a) a = avg(s1,s2,s3,s4); double sum; sum = pow((s1-a), 2.0) + pow((s2-a), 2.0) + pow((s3-a), 2.0) + pow((s4-a), 2.0); result = sqrt(sum); return result; double avg(int s1, int s2, int s3, int s4) int sum; double result; sum = s1 + s2 + s3 + s4; result = sum / static_cast<double>(4.0); return result;

double apoklisi( int s1, int s2, int s3, int s4, double a) a = avg(s1,s2,s3,s4); double sum; sum = pow((s1-a), 2.0) + pow((s2-a), 2.0) + pow((s3-a), 2.0) + pow((s4-a), 2.0); result = sqrt(sum); return result; double avg(int s1, int s2, int s3, int s4) int sum; double result; sum = s1 + s2 + s3 + s4; result = sum / static_cast<double>(4.0); return result; char ans; do cout << "Vathmos s1: "; cin >> s1; cout << "Vathmos s2: "; cin >> s2; cout << "Vathmos s3: "; cin >> s3; cout << "Vathmos s4: "; cin >> s4; cout << apoklisi(s1,s2,s3,s4,a); cout << "again?(y/n): "; cin >> ans; while (ans == 'y' ans == 'Y');

Ηιτθμα 2 ο Lab-3 Παλίνδρομοσ: αν μπορεί να διαβαςτεί το ίδιο από τθν αρχι και το τζλοσ του (π.χ. 2772, 4444, 9119). Δθμιουργιςτε μια ςυνάρτθςθ που δζχεται ζναν ακζραιο τετραψιφιο αρικμό και επιςτρζφει true ι false ανάλογα αν ο αρικμόσ είναι παλίνδρομοσ ι όχι. Επίςθσ δθμιουργιςτε μια άλλθ ςυνάρτθςθ που κα εκτυπϊνει τα ψθφία του αρικμοφ με απόςταςθ 4 κενϊν το ζνα από το άλλο. Τθν δεφτερθ ςυνάρτθςθ κα τθν καλεί θ πρϊτθ. main(): Καλζςτε από τθν main() τθν ςυνάρτθςθ που φτιάξατε αφοφ πρϊτα διαβάςετε τον τετραψιφιο αρικμό (1000-9999). Θα πρζπει κατά τθν είςοδο να ελζγχετε επαναλθπτικά αν ο αρικμόσ είναι τετραψιφιοσ.

int main() int num; do cout << "Give num (1000...9999)"; cin >> num; while( num < 1000 num > 9999 ); if( check(num) ) cout << "Palindromos!"; else cout << "OXI Palindromos!"; bool check(int num) int x = num; int s1 = x%10; x = x/10; int s2 = x%10; x = x/10; int s3 = x%10; x = x/10; int s4 = x%10; print(s4,s3,s2,s1); if(s1==s4 && s2==s3) return true; else return false; void print ( int a, int b, int c, int d ) cout << a << " " << b << " " << c << " " << d << endl;

Συναρτιςεισ (ςφνοψθ) Όταν πρόκειται να γράψουμε μια ςυν/ςθ: 1. Κακορίηουμε τον επιςτρεφόμενο τφπο Πχ. int 2. Δίνουμε όνομα ςτθν ςυν/ςθ Πχ. square 3. Δθλϊνουμε τα ορίςματα (τι κα πρζπει να δζχεται θ ςυν/ςθ ωσ είςοδο) Πχ. (int y) 4. Γράφουμε τθν διλωςθ τθσ ςυν/ςθσ Πχ. int square(int y); 5. Υλοποιοφμε τθν μζκοδο ζχοντασ υπόψιν τθν εντολι return Πχ. int square(int y) int result; result = y*y; return result; 5-53

Βιβλιογραφία Καλι Μελζτθ [1] W. Savitch, Πλιρθσ C++, Εκδόςεισ Τηιόλα, 2011 [2+ Θ. Deitel and P. Deitel, C++ Προγραμματιςμόσ 6θ Εκδοςθ, Εκδόςεισ Μ. Γκιοφρδασ, 2013 Υλη βιβλιογραφίασ [1]: Κεφ. 1 4, 13.1-13.2, Παραρτιματα 1, 2, 3, 4 [2]: Κεφ. 1, 2, 4, 6 Παραρτιματα Α, Β, Γ, Δ, ΣΤ 1o QUIZ (όλα τα τμιματα): Δευτζρα 16 Νοεμβρίου 6-54