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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική και Εκπαίδευση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

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

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

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

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

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

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

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

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

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

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

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

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

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

Transcript:

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

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

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

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

Ενότθτεσ 1-24 ΕΠΑΝΑΛΗΨΗ 11-4

Γραπτζσ Εξετάςεισ Προςοχι ςτθν εκφϊνθςθ Δεν είναι απαραίτθτεσ οι εντολζσ using namespace std; system("pause"); ςε ολοκλθρωμζνα προγράμματα κεφτείτε ξεχωριςτά τον οριςμό των ςυναρτιςεων από τθν ςυνάρτθςθ main() ε επόμενο βιμα γράφτε τθν main() με ςτόχο να καλζςετε τθν ςυν/ςθ που φτιάξατε #include <iostream> void fun1( ); int fun2( ); int main( ) return 0; void fun1( ) int fun2() 11-5

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

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

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

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

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

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

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

#include <iostream> #include <cmath> double fun(int x, int n); int main() int x, n; do cout << "Give x, odd n "; cin >> x >> n; 3 5 x 2x 4x ( n while( n % 2 == 0 ); cout << fun(x, n); return 0; 1) x n x n i 3,( 2) ( i 1) x i double fun(int x, int n) double sum; sum = x; for(int i = 3; i <= n; i = i + 2) sum = sum + (i-1) * pow(x, n) ; return sum; 11-18

#include <iostream> #include <cmath> double fun(int x, int n); int main() int x, n; do cout << "Give x, odd n "; cin >> x >> n; while( n % 2 == 0 ); cout << fun(x, n); return 0; double fun(int x, int n) double sum; sum = x; for(int i = 3; i <= n; i = i + 2) sum = sum + (i-1) * pow(x, n) ; return sum; 11-19

#include <iostream> #include <cmath> double fun(int x, int n); int main() int x, n; do cout << "Give x, odd n "; cin >> x >> n; while( n % 2 == 0 ); cout << fun(x, n); return 0; double fun(int x, int n) double sum; sum = x; for(int i = 3; i <= n; i = i + 2) sum = sum + (i-1) * pow(x, n) ; return sum; 11-20

#include <iostream> #include <cmath> double fun(int x, int n); int main() int x, n; do cout << "Give x, odd n "; cin >> x >> n; while( n % 2 == 0 ); cout << fun(x, n); return 0; double fun(int x, int n) double sum; sum = x; for(int i = 3; i <= n; i = i + 2) sum = sum + (i-1) * pow(x, n) ; return sum; 11-21

#include <iostream> #include <cmath> double fun(int x, int n); int main() int x, n; do cout << "Give x, odd n "; cin >> x >> n; while( n % 2 == 0 ); cout << fun(x, n); return 0; double fun(int x, int n) double sum; sum = x; for(int i = 3; i <= n; i = i + 2) sum = sum + (i-1) * pow(x, n) ; return sum; 11-22

Πλικοσ ςυγκεκριμζνων ςτοιχείων ενόσ πίνακα Να γραφεί μια ςυνάρτθςθ που κα δζχεται ζναν μονοδιάςτατο πίνακα τφπου int και κα επιςτρζφει το πλικοσ των ςτοιχείων που ζχουν τιμι μεταξφ τθσ τιμισ του πρϊτου ςτοιχείου και του τελευταίου. Ενςωματϊςτε τθν ςυνάρτθςθ ςε ζνα κατάλλθλο πρόγραμμα: Θα διαβάηετε τα ςτοιχεία ενόσ πίνακα με μζγεκοσ 100 Θα εκτυπϊνετε το αποτζλεςμα τθσ ςυνάρτθςθσ 11-23

#include <iostream> int count(int x[], int n); int main() const int SIZE = 100; int x[size]; for(int i = 0; i < SIZE; i++) cin >> x[i]; cout << count(x, SIZE); return 0; int count(int x[], int n) int p; p = 0; for(int i = 0; i < n; i++) if( ( x[0] < x[i] && x[i] < x[n-1]) ( x[0] > x[i] && x[i] > x[n-1]) ) p++; return p; 11-24

#include <iostream> int count(int x[], int n); int main() const int SIZE = 100; int x[size]; for(int i = 0; i < SIZE; i++) cin >> x[i]; cout << count(x, SIZE); return 0; int count(int x[], int n) int p; p = 0; for(int i = 0; i < n; i++) if( ( x[0] < x[i] && x[i] < x[n-1]) ( x[0] > x[i] && x[i] > x[n-1]) ) p++; return p; 11-25

Πλικοσ ςυγκεκριμζνων ςτοιχείων ενόσ πίνακα Να γραφεί μια ςυνάρτθςθ που κα δζχεται ζναν μερικϊσ ςυμπλθρωμζνο μονοδιάςτατο πίνακα τφπου int και κα επιςτρζφει το πλικοσ των ςτοιχείων που ζχουν τιμι μεταξφ τθσ τιμισ του πρϊτου ςτοιχείου και του τελευταίου. Ενςωματϊςτε τθν ςυνάρτθςθ ςε ζνα κατάλλθλο πρόγραμμα: Θα διαβάηετε τα ςτοιχεία ενόσ πίνακα με μζγεκοσ μζχρι 100 Θα εκτυπϊνετε το αποτζλεςμα τθσ ςυνάρτθςθσ 11-26

#include <iostream> int count(int x[], int my_n, int n); int main() const int SIZE = 100; int x[size], new_n; do cin >> new_n; while (new_n <= 0 new_n > 100); for(int i = 0; i < new_n; i++) cin >> x[i]; 1 οσ τρόποσ: Διαβάηει πρϊτα το Ν (μζγεκοσ του πίνακα) και ςτθ ςυνζχεια διαβάηει τα Ν ςτοιχεία cout << count(x, new_n, SIZE); return 0; int count(int x[], int my_n, int n) int p; p = 0; for(int i = 0; i < my_n; i++) if((x[0]<x[i] && x[i]<x[my_n-1]) (x[0]>x[i] && x[i]>x[my_n-1])) p++; return p; 11-27

#include <iostream> int count(int x[], int my_n, int n); int main() const int SIZE = 100; int x[size], new_n = 0, next; cin >> next; while( next!= -1 new_n < 100) x[new_n] = next; new_n++; cin >> next; cout << count(x, new_n, SIZE); return 0; int count(int x[], int my_n, int n) int p; p = 0; for(int i = 0; i < my_n; i++) if((x[0]<x[i] && x[i]<x[my_n-1]) (x[0]>x[i] && x[i]>x[my_n-1])) p++; return p; 2 οσ τρόποσ: Διαβάηει το επόμενο ςτοιχείο μζχρι το "-1" παρακολουκεί το πλικοσ των ςτοιχείων 11-28

Πλικοσ ςυγκεκριμζνων ςτοιχείων ενόσ πίνακα Να γραφεί μια ςυνάρτθςθ που κα δζχεται ζναν μερικϊσ ςυμπλθρωμζνο μονοδιάςτατο πίνακα τφπου int και κα επιςτρζφει το πλικοσ των ςτοιχείων που ζχουν τιμι μεταξφ τθσ τιμισ του πρϊτου ςτοιχείου και του τελευταίου. Ενςωματϊςτε τθν ςυνάρτθςθ ςε ζνα κατάλλθλο πρόγραμμα: Θα ορίςετε και κα χρθςιμοποιείτε μια επιπλζον ςυνάρτθςθ για το διάβαςμα των ςτοιχείων του πίνακα Θα εκτυπϊνετε το αποτζλεςμα τθσ ςυνάρτθςθσ 11-29

#include <iostream> void read(int x[], int& my_n, int n); int count(int x[], int my_n, int n); int main() const int SIZE = 100; int x[size], new_n = 0, next; read(x, new_n, SIZE); cout << count(x, new_n, SIZE); return 0; int count(int x[], int my_n, int n) int p; p = 0; for(int i = 0; i < my_n; i++) if((x[0]<x[i] && x[i]<x[my_n-1]) (x[0]>x[i] && x[i]>x[my_n-1])) p++; return p; void read(int x[], int& my_n, int n) cin >> next; while( next!= -1 new_n < 100) x[new_n] = next; new_n++; cin >> next; 11-30

Πλθςιζςτερο ςτο μζςο όρο Να γραφεί ζνα πρόγραμμα που κα διαβάηει ζναν μερικϊσ ςυμπλθρωμζνο πίνακα τφπου double και κα επιςτρζφει τθν τιμι του ςτοιχείου που είναι το πληςιέςτερο ςτον μζςο όρο όλων των ςτοιχείων. Θα πρζπει να χρθςιμοποιιςετε τουλάχιςτον τρείσ ςυν/ςεισ: μια για διάβαςμα του πίνακα μζχρι 100 ςτοιχείων δφο για υπολογιςμό 11-31

double avg(double a[], int my_n, int n) double sum; sum = 0.0; for(int i = 0; i < my_n; i++) sum = sum + a[i]; if(my_n <= 0) cout << "No avg!"; return -1.0; return (sum / my_n); double closer(double a[], int my_n, int n) double p, mo; mo = avg(a,my_n,n); p = a[0]; for(int i = 0; i < my_n; i++) if( fabs(a[i]-mo) < fabs(p-mo) ) p = a[i]; return p; #include <cmath> 11-32

void read(double a[], int& my_n, int n) cin >> next; while( next!= -1 new_n < 100) a[new_n] = next; new_n++; cin >> next; 11-33

#include <iostream> #include <cmath> void read(double a[], int& my_n, int n); double avg(double a[], int my_n, int n); double closer(double a[], int my_n, int n); int main() const int SIZE = 100; double a[size], int new_n = 0; read(a, new_n, SIZE); cout << closer(a, new_n, SIZE); return 0; void read(double a[], int& my_n, int n)... double closer(double a[], int my_n, int n)... double avg(double a[], int my_n, int n)... 11-34

Ελάχιςτθ απόλυτθ τιμι Να γραφεί μια ςυνάρτθςθ θ οποία κα δζχεται ζναν μονοδιάςτατο πίνακα τφπου double και κα επιςτρζφει τθν ελάχιςτθ από τισ απόλυτεσ τιμζσ των ςτοιχείων του 11-35

Ελάχιςτθ απόλυτθ τιμι Να γραφεί μια ςυνάρτθςθ θ οποία κα δζχεται ζναν μονοδιάςτατο πίνακα τφπου double και κα επιςτρζφει τθν ελάχιςτθ από τισ απόλυτεσ τιμζσ των ςτοιχείων του double closerabs(double a[], int n) double u; u = fabs(a[0]); for(int i = 0; i < n; i++) if( fabs(a[i]) < u ) u = fabs(a[i]); return u; 11-36

Τπολογιςμόσ πολυωνφμου Για να υπολογίςουμε τθν τιμι ενόσ πολυωνφμου ς' ζνα ςθμείο x, πρζπει να υπολογίςουμε το άκροιςμα: v 0 + v 1 x + v 2 x 2 + v 3 x 3 +... Να γραφεί μια ςυνάρτθςθ θ οποία α) Θα δζχεται ζναν μονοδιάςτατο πίνακα v τφπου double και μια τιμι x, επίςθσ double. β) Θα υπολογίηει και κα επιςτρζφει τθν τιμι του πολυωνφμου. 11-37

Τπολογιςμόσ πολυωνφμου Για να υπολογίςουμε τθν τιμι ενόσ πολυωνφμου ς' ζνα ςθμείο x, πρζπει να υπολογίςουμε το άκροιςμα: v 0 + v 1 x + v 2 x 2 + v 3 x 3 +... Να γραφεί μια ςυνάρτθςθ θ οποία α) Θα δζχεται ζναν μονοδιάςτατο πίνακα v τφπου double και μια τιμι x, επίςθσ double. β) Θα υπολογίηει και κα επιςτρζφει τθν τιμι του πολυωνφμου. double compute(double v[], int n, double x) double s; s = 0; for(int i = 0; i < n; i++) s = s + v[i]*pow(x,i); return s; 11-38

Εφρεςθ max από 2 πίνακεσ Να γραφεί ςυνάρτθςθ που δζχεται δφο πίνακεσ a,b και επιςτρζφει ποιοσ πίνακασ από τουσ δφο ζχει το μεγαλφτερο άκροιςμα. Θεωροφμε ότι αν θ ςυνάρτθςθ επιςτρζφει 1 τότε αναφερόμαςτε ςτον πίνακα a (sum(a) > sum(b)), 2 τότε αναφερόμαςτε ςτον πίνακα b (sum(a) < sum(b)), και 3 τότε αναφερόμαςτε και ςτουσ 2 πίνακεσ (sum(a)=sum(b)) 11-39

int maxab(int a[], int na, int b[], int nb) int i, suma=0, sumb=0; for(i = 0; i < na; i++) suma = suma + a[i]; for(i = 0; i < nb; i++) sumb = sumb + b[i]; if(suma > sumb) return 1; if(suma < sumb) return 2; if(suma = sumb) return 3; 11-40

Σο τρίγωνο του Pascal Να γραφεί μια ςυνάρτθςθ που κα δζχεται ζναν διςδιάςτατο ακζραιο πίνακα με το πολφ 100 ςτιλεσ και κα τον γεμίηει με τισ τιμζσ των ςτοιχείων του τριγϊνου του Pascal. Σο τρίγωνο του Pascal περιζχει ςε κάκε γραμμι τουσ ςυντελεςτζσ τθσ ανάπτυξθσ του (Α+Β) Κ, όπου Κ είναι ο αρικμόσ τθσ γραμμισ: Κ = 1 1 1 Κ = 2 1 2 1 Κ = 3 1 3 3 1 Κ = 4 1 4 6 4 1 Κ = 5 1 5 10 10 5 1 Η γραμμι Κ του τριγϊνου ζχει Κ+1 ςτοιχεία. Σο πρϊτο και το τελευταίο είναι μονάδα. Κάκε ενδιάμεςο ςτοιχείο ςχθματίηεται ςαν άκροιςμα των δυο ςτοιχείων τθσ προθγοφμενθσ γραμμισ που βρίςκονται ακριβϊσ πάνω από αυτό και ςτθν αμζςωσ προσ αριςτερά κζςθ. Φυςικά, αυτόσ ο κανόνασ δεν ιςχφει για τθν πρϊτθ γραμμι που δεν ζχει ενδιάμεςα ςτοιχεία, οφτε υπάρχει προθγοφμενθ γραμμι. Σα υπόλοιπα ςτοιχεία του πίνακα ζχουν τιμι 0. 11-41

Σο τρίγωνο του Pascal void pascal(int p[][100], int n1) int i,j; for(i = 0; i < n1; i++) for(j = 0; j < 100; j++) p[i][j]=0; p[1][0]=1; p[1][1]=1; for(i=2; i<n1; i++) p[i][0]=1; for(j = 1; j < 100; j++) p[i][j] = p[i-1][j-1] + p[i-1][j]; 11-42

Ανάςτροφοσ Να γραφεί μια μζκοδοσ θ οποία κα δζχεται ζναν μερικϊσ ςυμπλθρωμζνο διςδιάςτατο τετράγωνο πίνακα τφπου double με το πολφ 100 ςτιλεσ και κα αναςτρζφει τον πίνακα εςωτερικά, μζςα ςτον ίδιο πίνακα. 11-43

Ανάςτροφοσ Να γραφεί μια μζκοδοσ θ οποία κα δζχεται ζναν μερικϊσ ςυμπλθρωμζνο διςδιάςτατο τετράγωνο πίνακα τφπου double με το πολφ 100 ςτιλεσ και κα αναςτρζφει τον πίνακα εςωτερικά, μζςα ςτον ίδιο πίνακα. void reversed(int a[][100], int n1) for(int i = 0; i < n1; i++) for(int j = 0; j < i; j++) double z=a[i][j]; a[i][j]=a[j][i]; a[j][i]=z; 11-44

Ανάςτροφοσ Να γραφεί μια μζκοδοσ θ οποία κα δζχεται ζναν μερικϊσ ςυμπλθρωμζνο διςδιάςτατο τετράγωνο πίνακα τφπου double με το πολφ 100 ςτιλεσ και κα αναςτρζφει τον πίνακα εςωτερικά, μζςα ςτον ίδιο πίνακα. void reversed(int a[][100], int n1) for(int i = 0; i < n1; i++) for(int j = 0; j < i; j++) double z=a[i][j]; a[i][j]=a[j][i]; a[j][i]=z; ΠΡΟΟΧΗ: Αν είχαμε a[i][j]=a[j][i]; τότε κα καταςτρζφαμε τον πίνακα a. 11-45

Ανάςτροφοσ Να γραφεί μια μζκοδοσ θ οποία κα δζχεται ζναν μερικϊσ ςυμπλθρωμζνο διςδιάςτατο τετράγωνο πίνακα τφπου double με το πολφ 100 ςτιλεσ και κα αναςτρζφει τον πίνακα εςωτερικά, μζςα ςτον ίδιο πίνακα. void reversed(int a[][100], int n1) for(int i = 0; i < n1; i++) for(int j = 0; j < i; j++) double z=a[i][j]; a[i][j]=a[j][i]; a[j][i]=z; ΠΡΟΟΧΗ: Αν αντί για j < i γράψουμε j<100, τότε θ ςυν/ςθ δεν κα δουλζψει. Προςπακιςτε να εντοπίςετε τθν αιτία τθσ αποτυχίασ. ΠΡΟΟΧΗ: Αν είχαμε a[i][j]=a[j][i]; τότε κα καταςτρζφαμε τον πίνακα a. 11-46

Εφρεςθ γραμμισ μεγίςτου ςτοιχείου Να γραφεί μια ςυνάρτθςθ θ οποία κα δζχεται ζναν πίνακα τφπου double με 50 ςτιλεσ και κα επιςτρζφει τον αρικμό τθσ γραμμισ ςτθν οποία ανικει το μεγαλφτερο ςτοιχείο. 11-47

Εφρεςθ γραμμισ μεγίςτου ςτοιχείου Να γραφεί μια ςυνάρτθςθ θ οποία κα δζχεται ζναν πίνακα τφπου double με 50 ςτιλεσ και κα επιςτρζφει τον αρικμό τθσ γραμμισ ςτθν οποία ανικει το μεγαλφτερο ςτοιχείο. int maxline(int a[][50], int n1) int i,j,im,jm; im = 0; jm = 0; for(i = 0; i < n1; i++) for(j = 0; j < 50; j++) if( b[i][j] > b[im][jm] ) im=i; jm=j; return im; 11-48

Βιβλιογραφία Καλι Μελζτθ [1] W. Savitch, Πλιρθσ C++, Εκδόςεισ Σηιόλα, 2011 [2+ Η. Deitel and P. Deitel, C++ Προγραμματιςμόσ 6θ Εκδοςθ, Εκδόςεισ Μ. Γκιοφρδασ, 2013 Ύλθ βιβλιογραφίασ [1]: Κεφάλαια: 1, 2, 3, 4, 5, 9, 13 Ενότθτεσ: 6.1 Παραρτιματα: 1, 2, 3 [2]: Κεφάλαια: 1, 2, 4, 5, 6, 7, 18, 19, 21 Ενότθτεσ: 8.6, 17.1-17.10 Παραρτιματα: Α, Β, Γ, Δ, Σ 11-49

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σημειώματα Σημείωμα Αναφοράς 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/.