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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Μικροβιολογία & Υγιεινή Τροφίμων

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

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

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

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

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

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολή if. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική ΙΙ Θεματική Ενότητα 5

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

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

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

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Βιολογία Ι. Φροντιστήριο

Δομζσ Δεδομζνων. Αναηιτθςθ και Ταξινόμθςθ Διάλεξθ 3

Transcript:

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

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

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

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

1 ο Quiz Το 1 ο quiz κα διεξαχκεί τθν Δευτζρα 25 Νοεμβρίου Για όλα τα τμιματα!! 15:00-21:00 ςτα ακόλουκα τμιματα: Ώρεσ Α. Μ. 15:00-15:45 9660-9960 15:45-16:30 9963-10000 16:30-17:15 10001-10040 17:15-18:00 10041-10080 18:00-18:45 10083-10126 18:45-19:30 10128-10178 19:30-20:15 10181-10210 20:15-21:00 10211-10253 Μζχρι τότε κα πρζπει μόνοι ςασ να γραφτείτε ςτο ecourse του μακιματοσ: Δοκιμάςτε 5 παραπλιςιεσ ερωτιςεισ Σθμειϊςτε: username password 6-4

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

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

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

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

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

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

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

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

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

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

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

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

Μζγιςτοσ Κοινόσ Διαιρζτθσ Να γραφεί πρόγραμμα που να υπολογίηει τον μέγιστο κοινό διαιρέτη μεταξφ δφο ακεραίων. Σφμφωνα με τον αλγόρικμο του Ευκλείδθ: 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-19

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

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

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

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

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

Υπολογιςμόσ δφναμθσ Να γραφτεί πρόγραμμα που διαβάηει δφο ακεραίουσ 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-27

Υπολογιςμόσ δφναμθσ Τι υπολογίηεται με τισ ακόλουκεσ εντολζσ: 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-28

Υπολογιςμόσ δφναμθσ Βεβαιωκείτε ότι το πρόγραμμα εκτελείται ςωςτά για κετικζσ ι αρνθτικζσ τιμζσ για τθν βάςθ και για κετικζσ ι αρνθτικζσ τιμζσ για τον εκκζτθ. 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-29

Υπολογιςμόσ δφναμθσ Βεβαιωκείτε ότι το πρόγραμμα εκτελείται ςωςτά για κετικζσ ι αρνθτικζσ τιμζσ για τθν βάςθ και για κετικζσ ι αρνθτικζσ τιμζσ για τον εκκζτθ. 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-30

Υπολογιςμόσ δφναμθσ Βεβαιωκείτε ότι το πρόγραμμα εκτελείται ςωςτά για κετικζσ ι αρνθτικζσ τιμζσ για τθν βάςθ και για κετικζσ ι αρνθτικζσ τιμζσ για τον εκκζτθ. 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-31

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

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 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-33

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 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-34

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 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-35

Υπολογιςμόσ δφναμθσ με αναδρομι Να γραφεί αναδρομικι ςυνάρτθςθ που δζχεται 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-36

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

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

Φίλιοι αρικμοί Δφο κετικοί ακζραιοι αρικμοί είναι «φίλιοι» αν ο κακζνασ ιςοφται με το άκροιςμα όςων διαιροφν τον άλλον (λαμβάνονται υπόψθ μόνον οι γνιςιοι διαιρζτεσ). Οι πιο διάςθμοι «φίλιοι» αρικμοί είναι οι αρικμοί 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-39

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-40

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

Βιβλιογραφία Καλι Μελζτθ [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 (όλα τα τμιματα): Δευτζρα 25 Νοεμβρίου 6-42

Ανοικτά Ακαδημαϊκά Μαθήματα Πανεπιστήμιο Ιωαννίνων Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σημειώματα Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Λέκτορας Χάρης Παπαδόπουλος «Εισαγωγή στον Προγραμματισμό». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1105. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.