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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 ο Διαγώνιςμα για το Α.Ε.Π.Π.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

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

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

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

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

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

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

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

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

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

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

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

(Α3 1 ) Σασ δίνεται το παρακάτω αλγορικμικό τμιμα

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

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

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

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

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

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

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

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

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

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

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

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

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

4 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ - for

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

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

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

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

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

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

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

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

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

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

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

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

Βάςεισ Δεδομζνων Ι. Ενότθτα 10: Συνακροιςτικζσ ςυναρτιςεισ. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικών Πλθροφορικισ ΣΕ

Πληροφορική 2. Αλγόριθμοι

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

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

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

Εργαςτιριο Βάςεων Δεδομζνων

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

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

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

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

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

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

Γενικά Μαθηματικά ΙΙ Αςκήςεισ 11 ησ Ενότητασ

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

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

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

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

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό. Ενότητα: Εισαγωγικά μαθήματος και Δυαδική αναπαράσταση

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

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

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

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

Visual C Express - Οδηγός Χρήσης

Πανεπιςτιμιο Κφπρου ΟΙΚ 223: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων:

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

Transcript:

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

Θ: διάλεξη (θεωρία) Ε: Εργαστήριο Ημερολόγιο Μακιματοσ Q: Σεστ quiz Οκτώβριος 2017 Δ Σ Σ Π Π 9 10 11 12 13 Θ 16 17 18 19 20 Θ 23 E 24 E 25 26 27 Θ 30 Ε 31 Ε Εβδομάδα Θζματα Ύλη βιβλιογραφίασ Πα, 13 Οκτωβρίου Πα, 20 Οκτωβρίου Δε, Σρ, 23-24 Οκτ Πα, 27 Οκτωβρίου Εισαγωγικά μαθήματος & Δυαδική αναπαράσταση, Είσοδος/Έξοδος δεδομένων Σύποι δεδομένων & μεταβλητών, Αριθμητικοί & Λογικοί τελεστές, Ροή ελέγου if/else 1 ο Εργαστήριο Ροή επαναληπτικού ελέγχου: for, while, do-while [1]: 1.1, 2.1, Παραρτιματα 2 & 3 [2+: Κεφ. 1, Β, Δ, 4.11, 4.12, Α, ΣΤ *1+: 1.2, 1.3, 1.4, 1.5, Παράρτθμα 1 *2+: Κεφ. 2, Γ [1]: 2.2, 2.3 *2+: Κεφ. 4, Κεφ. 5 Νοέμβριος 2017 Δ Σ Σ Π Π 1 2 3 Θ 6 Ε 7 Ε 8 9 10 Θ 13 Q 14 15 16 17 20 21 22 23 24 Θ 27 Ε 28 Ε 29 30 Δεκέμβριος 2017 Δ Σ Σ Π Π 1 Θ 4 E 5 Ε 6 7 8 Θ 11 Q 12 13 14 15 Θ 18 E 19 20 21 22 Ιανουάριος 2018 Δ Σ Σ Π Π 1 2 3 4 5 8 9 10 11 12 Θ Δε, Σρ, 30-31 Οκτ Πα, 3 Νοεμβρίου Δε, Σρ, 6-7 Νοε Πα, 10 Νοεμβρίου Δε, 13 Νοε Πα, 24 Νοεμβρίου Δε, Σρ, 27-28 Νοε Πα, 1 Δεκεμβρίου Δε, Σρ, 4-5 Δεκ Πα, 8 Δεκεμβρίου Δε, 11 Δεκ Πα, 15 Δεκεμβρίου Δε, 18 Δεκ Πα, 12 Ιανουαρίου 2 ο Εργαστήριο υναρτήσεις, εμβέλεια μεταβλητών και αναδρομή 3 ο Εργαστήριο Επανάληψη με Παραδείγματα 1 ο Quiz Πίνακες (μονοδιάστατοι και πολυδιάστατοι) 4 ο Εργαστήριο Εφαρμογές σε ταξινομήσεις και αναζήτηση στοιχείων 5 ο Εργαστήριο Αλφαριθμητικά και υμβολοσειρές 2 ο Quiz Εγγραφές, δομές και χρήση αρχείων Προαιρετικό Εργαστήριο (χωρίς παρουσίες) Επανάληψη [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 [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 Οκτώβριος 2017 Δ Σ Σ Π Π 9 10 11 12 13 Θ 16 17 18 19 20 Θ 23 E 24 E 25 26 27 Θ 30 Ε 31 Ε Εβδομάδα Θζματα Ύλη βιβλιογραφίασ Πα, 13 Οκτωβρίου Πα, 20 Οκτωβρίου Δε, Σρ, 23-24 Οκτ Πα, 27 Οκτωβρίου Εισαγωγικά μαθήματος & Δυαδική αναπαράσταση, Είσοδος/Έξοδος δεδομένων Σύποι δεδομένων & μεταβλητών, Αριθμητικοί & Λογικοί τελεστές, Ροή ελέγου if/else 1 ο Εργαστήριο Ροή επαναληπτικού ελέγχου: for, while, do-while [1]: 1.1, 2.1, Παραρτιματα 2 & 3 [2+: Κεφ. 1, Β, Δ, 4.11, 4.12, Α, ΣΤ *1+: 1.2, 1.3, 1.4, 1.5, Παράρτθμα 1 *2+: Κεφ. 2, Γ [1]: 2.2, 2.3 *2+: Κεφ. 4, Κεφ. 5 Νοέμβριος 2017 Δ Σ Σ Π Π 1 2 3 Θ 6 Ε 7 Ε 8 9 10 Θ 13 Q 14 15 16 17 20 21 22 23 24 Θ 27 Ε 28 Ε 29 30 Δεκέμβριος 2017 Δ Σ Σ Π Π 1 Θ 4 E 5 Ε 6 7 8 Θ 11 Q 12 13 14 15 Θ 18 E 19 20 21 22 Ιανουάριος 2018 Δ Σ Σ Π Π 1 2 3 4 5 8 9 10 11 12 Θ Δε, Σρ, 30-31 Οκτ Πα, 3 Νοεμβρίου Δε, Σρ, 6-7 Νοε Πα, 10 Νοεμβρίου Δε, 13 Νοε Πα, 24 Νοεμβρίου Δε, Σρ, 27-28 Νοε Πα, 1 Δεκεμβρίου Δε, Σρ, 4-5 Δεκ Πα, 8 Δεκεμβρίου Δε, 11 Δεκ Πα, 15 Δεκεμβρίου Δε, 18 Δεκ Πα, 12 Ιανουαρίου 2 ο Εργαστήριο υναρτήσεις, εμβέλεια μεταβλητών και αναδρομή 3 ο Εργαστήριο Επανάληψη με Παραδείγματα 1 ο Quiz Πίνακες (μονοδιάστατοι και πολυδιάστατοι) 4 ο Εργαστήριο Εφαρμογές σε ταξινομήσεις και αναζήτηση στοιχείων 5 ο Εργαστήριο Αλφαριθμητικά και υμβολοσειρές 2 ο Quiz Εγγραφές, δομές και χρήση αρχείων Προαιρετικό Εργαστήριο (χωρίς παρουσίες) Επανάληψη [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 [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

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

1 ο Τεςτ Το 1 ο quiz κα διεξαχκεί τθν Δευτζρα 13 Νοεμβρίου Για όλα τα τμιματα!! 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-5

Τμιματα Εργαςτθρίων Εργαςτήριο (μεγάλο): Εργαςτιριο Η/Υ 1 ο όροφο δίπλα από το Αναγνωςτιριο Τα εργαςτιρια κα ξεκινιςουν Δευτζρα 23 Οκτωβρίου και Τρίτη 24 Οκτωβρίου Εργαςτήρια Δευτζρα (14:00-20:15) Α1 Δευτζρα 14:00-15:15-11309 Α2 Δευτζρα 15:15-16:30 11310-11357 Α3 Δευτζρα 16:30-17:45 11358-11412 Α4 Δευτζρα 17:45-19:00 11413-11460 Α5 Δευτζρα 19:00-20:15 11461 11507 Εργαςτήριο Τρίτη (14:00-15:15) Β1 Τρίτη 14:00-15:15 11508 - Αλλαγζσ ΔΕΝ επιτρζπονται! Διάρκεια Εργαςτηρίου: 1h:15m

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

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

Μ.Ο. τριϊν ακεραίων Να γραφεί ζνα πρόγραμμα που διαβάηει τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων #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-9

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

Μ.Ο. τριϊν ακεραίων Να γραφεί ζνα πρόγραμμα που διαβάηει τρεισ κετικοφσ ακεραίουσ και υπολογίηει το μζςο όρο των τριϊν ακεραίων. Κατά τθν είςοδο να γίνεται επαναλθπτικόσ ζλεγχοσ τιμϊν. #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-11

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

#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-13

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

#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-15

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

#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-17

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

Τετράγωνο αρικμοφ Το τετράγωνο ενόσ ακεραίου αρικμοφ n μπορεί να υπολογιςτεί προςκζτοντασ όλουσ τουσ ακζραιουσ από το 1 ζωσ το n και επιςτρζφοντασ πάλι πίςω ςτο 1, π.χ. 4 2 = 1 + 2 + 3 + 4 + 3 + 2 + 1 = 16 Να γράψετε ζνα πρόγραμμα με ςυναρτιςεισ που κα εμφανίηει το τετράγωνο οποιουδιποτε ακζραιου n χρθςιμοποιϊντασ τον παραπάνω τρόπο Ο αλγόρικμοσ κα δζχεται ωσ είςοδο τον αρικμό n. Κατά τθν ειςαγωγι κα ελζγχεται θ ςυνκικθ n > 0. 6-19

#include <iostream> int square(int n); int main( ) int n, sqn; do cout << "Enter n:"; cin >> n; while( n < 0 ); cout << "Square: " << square(n); int square(int n) int res; res = 0; for(int i = 1; i <= n; i++) res = res + i; for(int i = n-1; i >= 1; i--) res = res + i; return res; 6-20

Μζγιςτοσ Κοινόσ Διαιρζτθσ Να γραφεί πρόγραμμα που να υπολογίηει τον μέγιστο κοινό διαιρέτη μεταξφ δφο ακεραίων. Σφμφωνα με τον αλγόρικμο του Ευκλείδθ: 1. Αν οι δφο αρικμοί είναι ίςοι, ο μζγιςτοσ κοινόσ διαιρζτθσ ιςοφται μ' αυτοφσ. 2. Αν δεν είναι ίςοι, αντικακιςτοφμε τον μεγαλφτερο με τθ διαφορά τουσ και επαναλαμβάνουμε τθ ςφγκριςθ 36 84 Δεν είναι ίςοι. Το 84 αντικακίςταται με τθ διαφορά 84-36=48 36 48 Δεν είναι ίςοι. Το 48 αντικακίςταται με τθ διαφορά 48-36=12 36 12 Δεν είναι ίςοι. Το 36 αντικακίςταται με τθ διαφορά 36-12=24 24 12 Δεν είναι ίςοι. Το 24 αντικακίςταται με τθ διαφορά 24-12=12 12 12 Είναι ίςοι. Ο μζγιςτοσ κοινόσ διαιρζτθσ των 36 και 84 είναι το 12. 6-21

#include <iostream> int mkd(int a, int b); int main( ) int a, b, mkd_ab; cout << "Enter a b:"; cin >> a >> b; mkd_ab = mkd(a, b); cout << "MKD: " << mkd_ab; int mkd(int a, int b) while( a!= b) if( a > b ) a = a-b; else b = b-a; return (a); // ή return (b); 6-22

Μζγιςτοσ Κοινόσ Διαιρζτθσ Να γραφεί πρόγραμμα που να υπολογίηει τον μέγιστο κοινό διαιρέτη μεταξφ δφο ακεραίων. Σφμφωνα με τον αλγόρικμο του Ευκλείδθ: 1. Αν οι δφο αρικμοί είναι ίςοι, ο μζγιςτοσ κοινόσ διαιρζτθσ ιςοφται μ' αυτοφσ. 2. Αν δεν είναι ίςοι, αντικακιςτοφμε τον μεγαλφτερο με τθ διαφορά τουσ και επαναλαμβάνουμε τθ ςφγκριςθ 36 84 Δεν είναι ίςοι. Το 84 αντικακίςταται με τθ διαφορά 84-36=48 36 48 Δεν είναι ίςοι. Το 48 αντικακίςταται με τθ διαφορά 48-36=12 36 12 Δεν είναι ίςοι. Το 36 αντικακίςταται με τθ διαφορά 36-12=24 24 12 Δεν είναι ίςοι. Το 24 αντικακίςταται με τθ διαφορά 24-12=12 12 12 Είναι ίςοι. Ο μζγιςτοσ κοινόσ διαιρζτθσ των 36 και 84 είναι το 12. Θζλουμε να εκτυπϊνουμε και το πλήθοσ των επαναλήψεων 6-23

#include <iostream> int mkd(int a, int b); int main( ) int a, b, mkd_ab; cout << "Enter a b:"; cin >> a >> b; mkd_ab = mkd(a, b); cout << "MKD: " << mkd_ab; int mkd(int a, int b) while( a!= b) if( a > b ) a = a-b; else b = b-a; return (a); // ή return (b); 6-24

#include <iostream> int mkd(int a, int b, int &k); int main( ) int a, b, mkd_ab, n = 0; cout << "Enter a b:"; cin >> a >> b; mkd_ab = mkd(a, b, n); cout << "MKD: " << mkd_ab << "n=" << n; int mkd(int a, int b, int &k) while( a!= b) if( a > b ) a = a-b; else b = b-a; k = k + 1; return (a); // ή return (b); 6-25

Μζγιςτοσ Κοινόσ Διαιρζτθσ (αναδρομικά) Να γραφεί πρόγραμμα με αναδρομικι ςυνάρτθςθ που να υπολογίηει τον μέγιστο κοινό διαιρέτη μεταξφ δφο ακεραίων. Σκεφτείτε το υπόλοιπο τθσ διαίρεςθσ x % y : Ζςτω ότι x > y Εάν y = 0 τότε ΜΚΔ(x,y)=x Αλλιϊσ, ΜΚΔ(x,y)=ΜΚΔ(y, x%y) 6-26

#include <iostream> int mkd(int a, int b); int main( ) int a, b, mkd_ab; cout << "Enter a b:"; cin >> a >> b; if( a > b ) mkd_ab = mkd(a, b); else mkd_ab = mkd(b, a); cout << "MKD: " << mkd_ab; int mkd(int a, int b) if( b == 0 ) return a; else return ( mkd( b, (a % b) ) ); 6-27

Υπολογιςμόσ δφναμθσ Να γραφτεί πρόγραμμα που διαβάηει δφο ακεραίουσ x και y και ςτθ ςυνζχεια υπολογίηει τθν ζκφραςθ x y. [χωρίσ τθ χριςθ τθσ ζτοιμθσ ςυνάρτθςθσ pow() ] Παρατιρθςθ: x y = x x x x x 6-28

Υπολογιςμόσ δφναμθσ Να γραφτεί πρόγραμμα που διαβάηει δφο ακεραίουσ x και y και ςτθ ςυνζχεια υπολογίηει τθν ζκφραςθ x y. [χωρίσ τθ χριςθ τθσ ζτοιμθσ ςυνάρτθςθσ pow() ] Παρατιρθςθ: x y = x x x x x #include <iostream> int main( ) int x, y, i, result; cout << "Enter x y:"; cin >> x >> y; result = 1; for( i = 1; i <= y; i++) result = result * x; cout << result; 6-29

Υπολογιςμόσ δφναμθσ Τι υπολογίηεται με τισ ακόλουκεσ εντολζσ: for(i = 0; i < y; i++) for(i = 0; i <= y; i++) for(i = y; i >= 0; i--) for(i = y; i > 0; i--) #include <iostream> int main( ) int x, y, i, result; cout << "Enter x y:"; cin >> x >> y; result = 1; for( i = 1; i <= y; i++) result = result * x; cout << result; 6-30

Υπολογιςμόσ δφναμθσ Βεβαιωκείτε ότι το πρόγραμμα εκτελείται ςωςτά για κετικζσ ι αρνθτικζσ τιμζσ για τθν βάςθ και για κετικζσ ι αρνθτικζσ τιμζσ για τον εκκζτθ. x= 4, y = -2? #include <iostream> int main( ) int x, y, i, result; cout << "Enter x y:"; cin >> x >> y; result = 1; for( i = 1; i <= y; i++) result = result * x; cout << result; 6-31

Υπολογιςμόσ δφναμθσ Βεβαιωκείτε ότι το πρόγραμμα εκτελείται ςωςτά για κετικζσ ι αρνθτικζσ τιμζσ για τθν βάςθ και για κετικζσ ι αρνθτικζσ τιμζσ για τον εκκζτθ. x= 4, y = -2? x -y = 1 / x y 1. Υπολογίηουμε το x y και 2. εξετάηουμε αν το y είναι αρνθτικό για να υπολογίςουμε το 1 / x y. #include <iostream> int main( ) int x, y, i, result; cout << "Enter x y:"; cin >> x >> y; result = 1; for( i = 1; i <= y; i++) result = result * x; cout << result; 6-32

Υπολογιςμόσ δφναμθσ Βεβαιωκείτε ότι το πρόγραμμα εκτελείται ςωςτά για κετικζσ ι αρνθτικζσ τιμζσ για τθν βάςθ και για κετικζσ ι αρνθτικζσ τιμζσ για τον εκκζτθ. x= 4, y = -2? x -y = 1 / x y 1. Υπολογίηουμε το x y και 2. εξετάηουμε αν το y είναι αρνθτικό για να υπολογίςουμε το 1 / x y. #include <iostream> #include <cstdlib> int main( ) int x, y, i; double result; cout << "Enter x y:"; cin >> x >> y; result = 1.0; for( i = 1; i <= abs(y); i++) result = result * x; if( y < 0) result = 1.0/result; cout << result; 6-33

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 2 ακεραίουσ a, b και υπολογίηει (επιςτρζφει) το a b. a b = a * (a b-1 ) 6-34

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 2 ακεραίουσ a, b και υπολογίηει (επιςτρζφει) το a b. a b = a * (a b-1 ) Αν b=10 πόςεσ κλιςεισ (επαναλιψεισ) κα κάνει; int power( int a, int b ) if(b == 0) return 1; else return (a * power(a,b-1) ); 6-35

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 2 ακεραίουσ a, b και υπολογίηει (επιςτρζφει) το a b. a b = a * (a b-1 ) Αν b=10 πόςεσ κλιςεισ (επαναλιψεισ) κα κάνει; Πιο γριγορα: a b = (a b/2 ) * (a b/2 ) int power( int a, int b ) if(b == 0) return 1; else return (a * power(a,b-1) ); 6-36

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 2 ακεραίουσ a, b και υπολογίηει (επιςτρζφει) το a b. a b = a * (a b-1 ) Αν b=10 πόςεσ κλιςεισ (επαναλιψεισ) κα κάνει; Πιο γριγορα: a b = (a b/2 ) * (a b/2 ) a b = (a b/2 ) * (a b/2 ), για b άρτιο a b = (a b/2 ) * (a b/2 ) * a, για b περιττό int power( int a, int b ) if(b == 0) return 1; if( b % 2 == 0 ) return ( power(a,b/2) * power(a,b/2) ); else return ( power(a,b/2) * power(a,b/2) * a ); #κλιςεισ δεν μειϊκθκαν 6-37

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 2 ακεραίουσ a, b και υπολογίηει (επιςτρζφει) το a b. a b = a * (a b-1 ) Αν b=10 πόςεσ κλιςεισ (επαναλιψεισ) κα κάνει; Πιο γριγορα: a b = (a b/2 ) * (a b/2 ) a b = (a b/2 ) * (a b/2 ), για b άρτιο a b = (a b/2 ) * (a b/2 ) * a, για b περιττό int power( int a, int b ) int half; if(b == 0) return 1; half = power(a, b/2) ; if( b % 2 == 0 ) return ( half * half ); else return (half * half * a ); 6-38

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

#include <iostream> double fff(int x, int n); int main( ) int x, n; do cout << "Enter x, n:"; cin >> x >> n; while ( n % 2 == 1); cout << "F(x,n): " << fff(x,n); double fff(int x, int n) double sum = 1.0, xd = 1.0; for( int i = 2; i <= n; i = i + 2) xd = xd * (x * x); sum = sum + (i-1) * xd; return sum; 6-40

Φίλιοι αρικμοί Δφο κετικοί ακζραιοι αρικμοί είναι «φίλιοι» αν ο κακζνασ ιςοφται με το άκροιςμα όςων διαιροφν τον άλλον (λαμβάνονται υπόψθ μόνον οι γνιςιοι διαιρζτεσ). Οι πιο διάςθμοι «φίλιοι» αρικμοί είναι οι αρικμοί 220 και 284 (αποδίδονται ςτον Πυκαγόρα). Διαιρζτεσ του 220 : 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 (άκροιςμα=284) Διαιρζτεσ του 284 : 1, 2, 4, 71, 142 (άκροιςμα=220) Να γραφεί μια ςυνάρτθςθ που δζχεται δφο ακεραίουσ και κα επιςτρζφει true ι false ανάλογα αν είναι φίλιοι αρικμοί. 6-41

bool filioi(int a, int b) int i, sum1=0, sum2=0; for(i = 1; i < a; i++) if( a%i == 0 ) sum1 = sum1 + i; #include <iostream> bool filioi(int a, int b); int main( ) int a, b; for(i = 1; i < b; i++) if( b%i == 0 ) sum2 = sum2 + i; if( sum1 == b && sum2 == a) return true; else return false; cout << "Enter a, b:"; cin >> a >> b; if( filioi(a, b) ) cout << "Filioi!"; else cout << "Not Filioi!"; 6-42

Συναρτιςεισ (ςφνοψθ) Όταν πρόκειται να γράψουμε μια ςυν/ςθ: 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; 6-43

Βιβλιογραφία Καλι Μελζτθ [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 Παραρτιματα Α, Β, Γ, Δ, ΣΤ 6-44