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

Σχετικά έγγραφα
Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομζσ Δεδομζνων Πίνακεσ

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

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

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

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

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

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

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

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

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

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

Εργαςτθριακζσ Αςκιςεισ Αρικμθτικισ Ανάλυςθσ

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

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

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

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

(3Μονάδεσ) Δεδομζνα //Α// Για i από 1 μζχρι 10 k (100+i)mod 101 B[k] A[i] Τζλοσ_επανάλθψθσ Αποτελζςματα //Β,k//

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

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

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

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

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

ΘΕΜΑ Α / Αν μια μεταβλθτι ζχει τθν τιμι 47.0 τότε ο τφποσ τθσ μεταβλθτισ είναι ακζραιοσ.

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

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

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

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

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

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

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

Το Δίκτυο Multi-Layer Perceptron και ο Κανόνασ Back-Propagation. Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ

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

ΕΝΟΤΗΤΑ 3: Χριςθ εργαλείων ζκφραςθσ, επικοινωνίασ, ανακάλυψθσ και δθμιουργίασ. ΚΕΦΑΛΑΙΟ 8: Επεξεργαςία Δεδομζνων και Υπολογιςτικά Φφλλα

Transcript:

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