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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 ΕΙΣΑΓΩΓΗ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

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

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

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

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

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό

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

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

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

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

ΣΤΟΙΧΕΙΑ ΜΑΘΗΜΑΤΙΚΗΣ ΛΟΓΙΚΗΣ

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

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

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

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

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

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

ΟΝΟΜΑΣΟΛΟΓΙΑ ΠΑΡΑΜΕΣΡΩΝ ΓΙΑ ΠΡΟΑΡΜΟΜΕΝΕ ΑΝΑΦΟΡΕ. παραμζτρου> (Εμφανίηεται ςαν Caption ςτθν φόρμα των φίλτρων).

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

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

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

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

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΚΑΙ ΡΥΘΜΙΣΗΣ ΔΩΡΕΑΝ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΧΥΔΡΟΜΕΙΟΥ ΣΤΟ YAHOO

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

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

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

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

Οδηγίεσ για την Τποβολή Καταςτάςεων υμφωνητικών μζςω xml αρχείου

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

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

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

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

Ραραμετροποίθςθ ειςαγωγισ δεδομζνων περιόδων

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

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

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

2 ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ. Η πιο απλι μορφι ςφγκριςθσ εντολισ ελζγχου ζχει τθ μορφι : if (<ζπλζήθε>) εληνιή; if(<ζπλζήθε>){ block εληνιώλ; }

Ενδεικτική Οργάνωςη Ενοτήτων. Α Σάξη. Διδ. 1 ΕΝΟΣΗΣΑ 1. 6 Ομαδοποίθςθ, Μοτίβα,

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

Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων. Εκπαιδεφτρια: Μαρία Πολίτθ

Transcript:

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

Σελίδα Μακιματοσ: Χριςιμο Υλικό http://www.cs.uoi.gr/~charis/c343 Διαφάνειεσ Διαλζξεων Εργαςτθριακζσ Αςκιςεισ Υλοποιθμζνα προγράμματα και παραδείγματα Ανακοινώςεισ Λογιςμικό υλοποίθςθσ προγραμμάτων : Bloodshed DevC++ : http://www.bloodshed.net/

Τμιματα Εργαςτθρίων Εργαςτιριο (μεγάλο): Εργαςτιριο Η/Υ 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

Θ: διάλεξη (θεωρία) Ε: Εργαστήριο Ημερολόγιο Μακιματοσ 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

Ενότθτα 3 ΜΕΣΑΒΛΗΣΕ, ΕΚΦΡΑΕΙ & ΕΝΣΟΛΕ ΕΚΧΩΡΗΗ

Η μνιμθ του υπολογιςτι Η μνιμθ είναι ςαν ζνασ πίνακασ και μποροφμε να προςπελάςουμε ζνα ςτοιχείο τθσ μνιμθσ με ζναν αρικμό. 0 4 byte 8 12 32bit word 16 20 Στο παραπάνω παράδειγμα: 32-bit αρχιτεκτονικι.

Μεταβλθτζσ Αντί να κυμόμαςτε αρικμοφσ και διευκφνςεισ, χρθςιμοποιοφμε μεταβλθτζσ ςε ζνα πρόγραμμα #include <iostream> int main() { int x1, x2, sum; } return 0; Λζμε ςτον υπολογιςτι να δεςμεφςει 3 κζςεισ μνιμθσ για να αποκθκεφςουμε ακζραιουσ αρικμοφσ Αυτζσ οι 3 κζςεισ μνιμθσ ονομάηονται x1, x2, και sum Οι διευκφνςεισ αναφζρονται με τα παραπάνω ονόματα

Μεταβλθτζσ 0 4 byte 8 12 32bit word 16 20 x1 x2 sum Ουςιαςτικά τα ονόματα είναι ςυντομεφςεισ για τισ διευκφνςεισ

Μεταβλθτζσ Μετά τθν δζςμευςθ 3 κζςεων ςτθν μνιμθ μποροφμε να αποκθκεφςουμε τιμζσ ςτισ αντίςτοιχεσ κζςεισ #include <iostream> int main() { int x1, x2, sum; x1 = 1; x2 = 2; sum = x1 + x2; return 0; } Αποκθκεφει τθν τιμι 1 ςτθν κζςθ μνιμθσ x1 Αποκθκεφει τθν τιμι 2 ςτθν κζςθ μνιμθσ x2 Αποκθκεφει τθν τιμι 3 ςτθν κζςθ μνιμθσ sum

Μεταβλθτζσ 0 4 byte 8 12 32bit word 16 20 x1 x2 sum 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000010 00000000 00000000 00000000 00000011 Ουςιαςτικά τα ονόματα είναι ςυντομεφςεισ για τισ διευκφνςεισ

Ονοματολογία μεταβλθτϊν: Μεταβλθτζσ ςτθ C++ Κάκε μεταβλθτι πρζπει να αρχίηει με: γράμμα ι _ (κάτω παφλα) Υπόλοιποι χαρακτιρεσ: γράμματα ι αρικμοί ι _ Ρ.χ.: x x1 x_1 _abc data2 12 3x %count Case sensitive γλϊςςα Ξεχωρίηει τουσ πεηοφσ από τουσ κεφαλαίουσ χαρακτιρεσ 3 διαφορετικζσ μεταβλθτζσ: rate RATE Rate Δεςμευμζνεσ λζξεισ Χριςθ μόνο για τον προκακοριςμζνο τουσ ςκοπό Δεν χρθςιμοποιοφνται για ονοματολογία μεταβλθτϊν (ςυναρτιςεων)

Δεςμευμζνεσ λζξεισ ςτθ C++ Εκτόσ από τισ λζξεισ του πίνακα, δεςμευμζνεσ λζξεισ είναι οτιδιποτε ξεκινάει με Χρθςιμοποιοφνται ςε τυποποιθμζνεσ βιβλιοκικεσ Ρ.χ. : count i x1 Δεν ππέπει να δηλώνοςμε ηέηοιερ μεηαβληηέρ!!

Κάκε μεταβλθτι ζχει: ❶ όνομα ❷ τφπο ❸ τιμι Διλωςθ μεταβλθτϊν Τφποσ: είδοσ πλθροφορίασ που αποκθκεφουμε ςτθν κζςθ μνιμθσ Βαςικοί τφποι μεταβλθτϊν 1. ακζραιοι: int x; 2. χαρακτιρεσ: char x; 3. κινθτισ υποδιαςτολισ (προςεγγιςτικι αναπαράςταςθ πραγματικϊν αρικμϊν): double x; 4. λογικζσ (δυαδικζσ): bool x; (true-αλθκισ ι false-ψευδισ) Άλλοι τφποι μεταβλθτϊν: ςε λίγο (αναπαράςταςθ αρικμϊν)

Διλωςθ μεταβλθτϊν Ραράδειγμα: int x1, x2; double sum; Τελειϊνουν με ; Πταν υπάρχουν περιςςότερεσ από μια μεταβλθτζσ (<λίςτα>) τότε χωρίηονται με, Κάκε μεταβλθτι πρζπει να δθλωκεί πριν τθν πρϊτθ χρθςιμοποίθςι τθσ. Συνικωσ πριν τθν χρθςιμοποίθςι τθσ ι ςτθν αρχι κάποιου τμιματοσ του προγράμματοσ που ξεκινάει με { int x, y, z; x = 1; y = 2; i = 0; int i; ΛΑΘΟΣ

Διλωςθ μεταβλθτϊν - Σφνταξθ φνταξθ όνοματφπου ονομαμεταβλητησ1, ονομαμεταβλητησ2,... ; Παράδειγμα int count, numberofdragons, numberoftrolls; double distance; Κάκε μεταβλθτι δθλϊνεται πριν χρθςιμοποιθκεί Η ςφνταξθ διαφοροποιείται όταν κζλουμε να δϊςουμε αρχικζσ τιμζσ ςτθν διλωςθ μεταβλθτϊν

Απλοί τφποι μεταβλθτϊν Σφποσ Χριςθ μνιμθσ Περιοχι Σιμών short (ι short int) 2 bytes -32768 ζωσ 32767 int 4 bytes -2146473648 ζωσ 2147483647 long (ι long int) 10 bytes ± 9223372036854775807 float 4 bytes 10-38 ζωσ 10 38 double 8 bytes 10-304 ζωσ 10 308 long double 10 bytes 10-4932 ζωσ 10 4932 char 1 byte Πλοι οι χαρακτιρεσ ASCII bool 1 byte false ι true Υπάρχουν και άλλοι τφποι μεταβλθτϊν όπωσ αλφαρικμθτικοί χαρακτιρεσ: string Ρίνακεσ (arrays), κλάςεισ... Για τουσ ακεραίουσ υπάρχει μθ-προςθμαςμζνθ παραλλαγι: unsigned short, unsigned int, unsigned long

Αλλαγι τιμισ ςε μια μεταβλθτι ζκφραςη: Εντολζσ εκχϊρθςθσ ονομαμεταβλητησ = ζκφραςη ; μεταβλθτι ι αρικμόσ ι ςφνκετθ ζκφραςθ αποτελοφμενθ από μεταβλθτζσ αρικμοφσ, τελεςτζσ, ςυν/ςεισ Αποτίμθςθ τθσ ζκφραςθσ ςτο δεξί μζλοσ και ςτθ ςυνζχεια κζτουμε τθν τιμι τθσ ζκφραςθσ ςτθ τιμι τθσ μεταβλθτισ totalweight = oneweight * number ; temparature = 37.5 ; count = count + 2 ;

Εντολζσ εκχϊρθςθσ Οι εντολζσ εκχϊρθςθσ είναι εκφράςεισ Επιςτρζφουν τθν τιμι που ανακζτουμε ςτθ μεταβλθτι (αριςτερό μζροσ) n = (m = 2); ι n = m = 2; Η υποζκφραςθ m = 2 αλλάηει τθν τιμι τθσ μεταβλθτισ m ςε 2 και επιςτρζφει τθν τιμι 2 (που τθν ανακζτει τελικά και ςτθν μεταβλθτι n) Συνικωσ δεν τθν χρθςιμοποιοφμε αλλά αντιλαμβανόμαςτε καλφτερα ςε κάποια κομμάτια κϊδικα ενδεχόμενα λάκθ

Αρχικζσ τιμζσ Κάκε μεταβλθτι πρζπει να ζχει μια αρχικι τιμι εκτόσ αν υποδθλϊνεται ζμμεςα int x, y; y = x + 1; Η μεταβλθτι x δεν ζχει αρχικοποιθκεί και δεν γνωρίηουμε τθν τιμι που ζχει (ςυνικωσ κα ζχει κάποιο τυχαίο αρικμό) Θα πρζπει να δϊςουμε αρχικι τιμι ςτθν μεταβλθτι x: int x, y; x = 3; y = x + 1; int x = 3, y; y = x + 1; int x(3), y; y = x + 1; Πλα τα παραπάνω είναι ιςοδφναμα

Αρχικζσ τιμζσ Απόδοςθ αρχικών τιμών ςε δθλώςεισ φνταξθ όνοματφπου ονομαμεταβλητησ1 = εκφραςη1, ονομαμεταβλητησ2 = εκφραςη2,... ; Παραδείγματα int count = 0, limit = 10, x = 0; double distance = 999.99; Απόδοςθ αρχικών τιμών ςε δθλώςεισ Εναλλακτικι φνταξθ όνοματφπου ονομαμεταβλητησ1 (εκφραςη1), ονομαμεταβλητησ2 (εκφραςη2),... ; Παραδείγματα int count(0), limit(10), x(0); double distance(999.99);

Ειδικζσ εντολζσ εκχϊρθςθσ Συντόμευςθ εντολϊν εκχϊρθςθσ a = a + 3; a += 3; Η εντολι εκχϊρθςθσ, ονομαμεταβλητησ = ονομαμεταβλητησ τελεστης ζκφραςη ; μπορεί να γραφεί ιςοδφναμα ςε ονομαμεταβλητησ τελεστης = ζκφραςη ; τελεστης: +,, *, /, % *βαςικζσ αρικμθτικζσ πράξεισ+ Ραραδείγματα: d -= 4 (d = d - 4) e *= 5 (e = e * 5) f /= 3 (f = f / 3) g %= 9 (g = g % 9)

Συμβατότθτα εκχωριςεων Αποκικευςθ τιμισ ενόσ τφπου ςε μια μεταβλθτι άλλου τφπου int myint; myint = 2.99; (myint = 2) Από κινθτισ υποδιαςτολισ ςε ακζραια: κόβονται τα δεκαδικά ψθφία (ςυνικωσ) double mydouble; mydouble = 3; ( mydouble = 3.0) Από ακζραια ςε κινθτισ υποδιαςτολισ : προςτίκεται ".0" (πάντα)

Συμβατότθτα εκχωριςεων Αποκικευςθ τιμισ ενόσ τφπου ςε μια μεταβλθτι άλλου τφπου char mychar; mychar = 64; (mychar = 'Z') Από char ςε int και από int ςε char: αντιςτοίχθςθ από τον πίνακα ASCII int myint; myint = 'Z'; (myint=64) bool mybool; int myint; mybool = 2; (mybool = true) myint = false; (myint=0) Από bool ςε int και από int ςε bool : bool=int: μθ-μθδενικόσ ακζραιοσ ωσ true, αλλιϊσ false int=bool: Η τιμι true αποκθκεφεται ωσ 1 και θ false ωσ 0

Στακερζσ Στακερζσ τφπου int: δεν περιζχουν υποδιαςτολι int x = 3; Στακερζσ τφπου double: γίνεται και με ςυμβολογραφία κινθτισ υποδιαςτολισ: double x = 3670000, y=3.67e3, z= 5.89e-6; (3670 = 3.67*10 3 ) (0.00000589 = 5.89*10-6 ) Στακερζσ τφπου char: τοποκετϊντασ τον χαρακτιρα ςε μονά ειςαγωγικά ' ': char symbol = 'Z'; οι αλφαρικμθτικζσ ςτακερζσ (strings) με διπλά ειςαγωγικά " ": cout << " Hello!! " ; Είναι διαφορετικό το 'Z' από το "Z"!!! Στακερζσ τφπου bool: ζχει δφο μόνο τιμζσ true ι false: bool x = true, y=false;

Ρίνακασ ASCII Αρικμ Χαρακτ Αρικμ Χαρακτ Αρικμ Χαρακτ Αρικμ Χαρακτ

Ονομαςία ςτακερϊν (δεν αλλάηουν) φνταξθ const όνοματφπου ονομαμεταβλητησ = Σταθερα; Παραδείγματα const int MAX_TRIES = 3; const double PI = 3.14159; Οι δθλωμζνεσ ςτακερζσ (const) δεν αλλάηουν κατά τθ διάρκεια του προγράμματοσ Συνικωσ οι ςτακερζσ μεταβλθτζσ γράφονται με ΚΕΦΑΛΑΙΑ

#include <iostream> using namespace std; int main() { const double RATE = 6.9; double deposit; Ραράδειγμα ςτακερϊν Τι γίνεται αν αλλάξει το επιτόκιο ςε 5.5% ; cout << "Δώζηε ηο ποζό καηάθεζηρ " ; cin >> deposit; double newbalance; newbalance = deposit + deposit*(rate/100); cout << "Σε ένα σπόνο ηο ποζό θα γίνει " << newbalance; } return 0; Δώζηε ηο ποζό καηάθεζηρ 100 Σε ένα σπόνο ηο ποζό θα γίνει 106.9

Αρικμθτικοί τελεςτζσ Σχθματιςμόσ εκφράςεων από μεταβλθτζσ, ςτακερζσ, τελεςτζσ Αρικμθτικοί τελεςτζσ μεταξφ int και double τφπουσ z = x τελεςτισ y Τφποσ παραγόμενθσ τιμισ: Τελεςτισ Ρεριγραφι + Ρρόςκεςθ - Αφαίρεςθ * Ρολλαπλαςιαςμόσ / Διαίρεςθ % Υπόλοιπο διαίρεςθσ Αν x και y int z int Αν x ι y double z double Ραράδειγμα: total = baseamount + increase θ τιμι τθσ total εξαρτάται από τουσ τφπουσ των τιμϊν baseamount, increase

Ρροτεραιότθτεσ τελεςτϊν Ο τρόποσ υπολογιςμοφ μιασ ζκφραςθσ εξαρτάται από τθν προτεραιότθτα των τελεςτϊν: ❶ παρενκζςεισ: () Υπολογίηονται πρϊτα, από τα αριςτερά προσ τα δεξιά. Εάν υπάρχουν ζνκετεσ υπολογίηονται πρϊτα οι εςωτερικζσ ❷ πολλαπλαςιαςμόσ, διαίρεςθ και υπόλοιπο: *, /, ι % Υπολογίηονται δεφτερα από αριςτερά προσ τα δεξιά. ❸ πρόςκεςθ, αφαίρεςθ: + ι Εάν υπάρχουν πολλοί, υπολογίηονται από τα αριςτερά προσ τα δεξιά. ❹ εκχώρθςθσ: =, +=, -=, *=, /=, %= Από δεξιά προσ τα αριςτερά. Στθν πράξθ: να χρθςιμοποιείται ςχεδόν πάντα ()

Ραραδείγματα προτεραιότθτασ x=y=z x=(y=z) x+y+z (x+y)+z m = (a+b+c+d)/4 m = a+b+c+d/4 y = a * x * x + b * x + c

Ακζραια διαίρεςθ Ζκφραςθ Αποτζλεςμα total = 10 /3 total = 10 /3.0 total =3.33 total = 10.0 /3 total =3.33 total =3 (απορρίπτεται το δεκαδικό μζροσ) sum = 17 /5 sum =3 (απορρίπτεται το δεκαδικό μζροσ) Αν χρθςιμοποιοφμε ακεραίουσ ςε ζναν τελεςτι και κζλουμε να εκτυπϊςουμε και το υπόλοιπο % cout << "Το 17 δια 5 ιζούηαι με " << 17/5 << "\n"; cout << "και ςπόλοιπο " << 17%5 ; Το 17 δια 5 ιζούηαι με 3 και ςπόλοιπο 2

Επιςιμανςθ ςτθν ακζραια διαίρεςθ Ζςτω ότι ζνασ μθχανικόσ αυτοκινθτόδρομων ςασ ηθτάει ζνα πρόγραμμα που υπολογίηει το ςυνολικό κόςτοσ για ζνα μικοσ λεωφόρου με τιμι χρζωςθσ 5000 / km totalprice = 5000 * (meters / 1000.0); Για meters = 14800 totalprice = 74000 Αν όμωσ, totalprice = 5000 * (meters / 1000); τότε για meters = 14800 totalprice = 70000 (!!!)

Μετατροπι τφπων Τι γίνεται αν κζλουμε να κάνουμε διαίρεςθ μεταξφ τφπων int; Το αποτζλεςμα τθσ διαίρεςθσ κα είναι int διότι και οι δυο μεταβλθτζσ είναι τφπου int Μετατροπι τφπου (type cast) int ςε τφπου double φνταξθ static_cast<double>(εκφραςη) Παραδείγματα double ans = n / static_cast<double>(m); double ans = static_cast<double>(n) / m; ΛΑΘΟ: double ans = static_cast<double>(n/m); int sum, total; double avg; sum=9; total=4; avg = sum /static_cast<double>(total); int sum, total; double avg; sum=9; total=4; avg = sum /total;

Μοναδιαίοι τελεςτζσ αφξθςθσ μείωςθσ Ο τελεςτισ ++ αυξάνει μία μεταβλθτι κατά 1 n++ ι ++n Ο τελεςτισ -- μειϊνει μία μεταβλθτι κατά 1 n-- ι --n Εκτελζςιμεσ εντολζσ int n=1, m=4; n++; cout << "Η ηιμή ηηρ n άλλαξε ζε " << n <<"\n"; m--; cout << "Η ηιμή ηηρ m άλλαξε ζε " << m <<"\n"; Η ηιμή ηηρ n άλλαξε ζε 2 Η ηιμή ηηρ m άλλαξε ζε 3 Μζςα ςε μακθματικζσ εκφράςεισ Επιςτρζφουν τθν τιμι και μετά αλλάηουν τιμι n++ ι m-- Αλλάηουν τιμι και μετά επιςτρζφουν τιμι ++n ι --m int n=2; int x = 2*(n++); cout << x; int n=2; int x = 2*(++n); 4 cout << x; 6

Ρροτεραιότθτεσ τελεςτϊν Ο τρόποσ υπολογιςμοφ μιασ ζκφραςθσ εξαρτάται από τθν προτεραιότθτα των τελεςτϊν: ❶ παρενκζςεισ: () Υπολογίηονται πρϊτα, από τα αριςτερά προσ τα δεξιά. Εάν υπάρχουν ζνκετεσ υπολογίηονται πρϊτα οι εςωτερικζσ ❷ μοναδιαίοι τελεςτζσ αφξθςθσ μείωςθσ: ++, -- Υπολογίηονται από δεξιά προσ τα αριςτερά. ❸ πολλαπλαςιαςμόσ, διαίρεςθ και υπόλοιπο: *, /, ι % Υπολογίηονται από αριςτερά προσ τα δεξιά. ❹ πρόςκεςθ, αφαίρεςθ: + ι Υπολογίηονται από τα αριςτερά προσ τα δεξιά. ❺ εκχώρθςθσ: =, +=, -=, *=, /=, %= Υπολογίηονται από δεξιά προσ τα αριςτερά. Στθν πράξθ: να χρθςιμοποιείται ςχεδόν πάντα ()

Μοναδιαίοι τελεςτζσ αφξθςθσ μείωςθσ Ραραδείγματα int a=8; int x = a--; cout << x <<"\n"; cout << a <<"\n"; int a=8; int x = --a; cout << x <<"\n"; cout << a <<"\n"; int a=5; cout << a <<"\n"; cout << a++ <<"\n"; cout << a <<"\n"; Ρρϊτα εκτυπϊνει και μετά αυξάνει κατά 1 int a=5; cout << a <<"\n"; cout << ++a <<"\n"; cout << a <<"\n"; Ρρϊτα αυξάνει κατά 1 και μετά εκτυπϊνει

Ενότθτεσ 3 & 4 ΠΑΡΑΔΕΙΓΜΑΣΑ

Άκροιςμα 2 ακεραίων Γράψτε ζνα πρόγραμμα που διαβάηει δυο ακεραίουσ, υπολογίηει το άκροιςμά τουσ και εκτυπϊνει το άκροιςμα

Άκροιςμα 2 ακεραίων #include <iostream> using namespace std; int main() { int x,y; cout << "Give x: \n"; cin >> x; cout << "Give y: \n"; cin >> y; int sum = x + y; } cout << "The sum of "<< x << " and " << y << " is "<< sum << endl; return 0;

Ανταλλαγι 2 μεταβλθτϊν Διαβάςτε δφο ακεραίουσ και αποκθκεφςτε τουσ ςε δφο μεταβλθτζσ τφπου int: x και y. Εκτυπϊςτε τισ δφο μεταβλθτζσ με τθν μορφι: \ x = 78 y = 4 \ Αλλάξτε τισ τιμζσ των x και y. Δθλαδι θ τιμι του x να ζχει τθν τιμι του y, και θ τιμι του y να ζχει τθν τιμι του x. Ξαναεκτυπϊςτε τισ δφο μεταβλθτζσ με τθν μορφι: \ x = 4 y = 78 \

Ραράδειγμα ςτισ Μεταβλθτζσ Αλλαγι (swap) των τιμϊν που αποκθκεφονται ςτισ μεταβλθτζσ x και y. Σκεφτείτε λίγο πϊσ κα μποροφςε να γίνει... Ρρζπει να χρθςιμοποιιςουμε μια νζα βοηθητική μεταβλθτι. int temp; temp = x; x = y; y = temp; x temp y x y

#include <iostream> using namespace std; int main() { int x,y; cout << "Give x & y: \n"; cin >> x >> y; Ανταλλαγι 2 μεταβλθτϊν Εκτυπϊςτε τισ δφο μεταβλθτζσ με τθν μορφι: \ x = 78 y = 4 \ cout << "\\ x = "<< x << "\t" << " y = " << y << " \\ \n"; int temp; temp = x; x = y; y = temp; } cout << "\\ x = "<< x << "\t" << " y = " << y << " \\ \n"; return 0;

Μετατροπι ςε ϊρεσ, λεπτά, δευτερόλεπτα Γράψτε ζνα πρόγραμμα που δζχεται ωσ είςοδο ζναν ακζραιο αρικμό που αναπαριςτά χρονικό διάςτθμα ςε δευτερόλεπτα. Το πρόγραμμα κα πρζπει να εμφανίηει ςτθν ζξοδο τον αρικμό των ωρϊν, των λεπτϊν, και των δευτερολζπτων που αντιςτοιχοφν ςτο χρονικό διάςτθμα δευτερολζπτων. Ρ.χ., χρονικό διάςτθμα ςε δευτερόλεπτα: 50391 (Είςοδοσ) (Ζξοδοσ): 13 ϊρεσ 59 λεπτά 51 δευτερόλεπτα

Μετατροπι ςε ϊρεσ, λεπτά, δευτερόλεπτα int main() { int time; int hours, mins, sec; cout << "Give time in sec: \n"; cin >> time; hours = time / 3600; int minleft = time % 3600; mins = minleft / 60 ; sec = minleft % 60 ; } cout << "hours: "<< hours << endl << "min: " << mins << endl << "sec: "<< sec<< endl; return 0;

Ενότθτα 5 ΛΟΓΙΚΕ ΕΚΦΡΑΕΙ 3-46

Λογικζσ Εκφράςεισ Μια ζκφραςθ που μπορεί να είναι true (αλθκισ) ι false (ψευδισ). Ζκφραςθ: δφο εκφράςεισ με αρικμοφσ ι μεταβλθτζσ οι οποίοι ςυγκρίνονται με ζναν τελεςτι ςφγκριςθσ Τελεςτζσ ςφγκριςθσ: φμβολο τελεςτισ Κώδικασ C++ Ερμθνεία Παράδειγμα = == x == y true αν x=y, αλλιϊσ false x+7==2*y!= x!= y true αν x y, αλλιϊσ false ans!='n' <= x <= y true αν x y, αλλιϊσ false count <= m+3 >= x >= y true αν x y, αλλιϊσ false a >=21 > > x > y true αν x>y, αλλιϊσ false time > limit < < x < y true αν x<y, αλλιϊσ false x < y 3-47

Δθμιουργία Λογικϊν Εκφράςεων Τελεςτισ && Συνδυαςμόσ δυο λογικϊν εκφράςεων Ερμθνεία &&: Είναι αλθκισ όταν και οι δυο ςυγκρίςεισ είναι αλθκισ, διαφορετικά είναι ψευδισ. φνταξθ για λογικι ζκφραςθ με τον τελεςτι && (Λογικη_Εκθπαζη_1) && (Λογικη_Εκθπαζη_2) Παράδειγμα if ( (score>0) && (score<10) ) cout << "η βαθμολογία είναι μεηαξύ 0 και 10"; else cout << "η βαθμολογία δεν είναι μεηαξύ 0 και 10"; 3-48

Δθμιουργία Λογικϊν Εκφράςεων Τελεςτισ Συνδυαςμόσ δυο λογικϊν εκφράςεων Ερμθνεία : Είναι αλθκισ όταν τουλάχιςτον μια από τισ δυο ςυγκρίςεισ είναι αλθκισ, διαφορετικά είναι ψευδισ. φνταξθ για λογικι ζκφραςθ με τον τελεςτι (Λογικη_Εκθπαζη_1) (Λογικη_Εκθπαζη_2) Παράδειγμα if ( (x==1) (x==y) ) cout << "Το x είναι 1 ή ίζο με y"; else cout << "Το x δεν είναι ούηε 1 ούηε y"; 3-49

Συνεχόμενεσ ανιςότθτεσ Κλαςικι ανιςότθτα: x < y < z δθμιουργεί ςυντακτικό λάκοσ όταν γράφουμε: x < y < z Θα πρζπει: (x<y) && (y<z) 3-50

Αποτίμθςθ λογικϊν εκφράςεων Αποτίμθςθ είναι μια λογικι τιμι (true ι false) bool result = (x < z) && (z < y) ; Ρρϊτα υπολογίηονται οι υποεκφράςεισ (x < z) και (z < y) ωσ true ι false με κάποια ςυγκεκριμζνη ςειρά και ςτθ ςυνζχεια ανάλογα με τουσ πίνακεσ αλθκείασ προκφπτει θ ςυνολικι τιμι Εκφ1 Εκφ2 Εκφ1 && Εκφ2 Εκφ1 Εκφ2 Εκφ1 Εκφ2 true true true true false false false true false true true true true false true false true true Εκφ true false! (Εκφ) false true false false false false false false 3-51

Ραράδειγμα! ( (y < 3) (y > 7) ) Ζςτω y = 8: (y < 3) false (y > 7) true Ζπομζνωσ:! ( false true ) Από πίνακα αλθκείασ: false true = true! ( true ) Από πίνακα αλθκείασ:! true = false false 3-52

Κανόνεσ Ρροτεραιότθτασ Λογικϊν Εκφράςεων Ο τρόποσ υπολογιςμοφ μιασ λογικισ ζκφραςθσ εξαρτάται από τθν προτεραιότθτα των τελεςτϊν: ❶ αντιςτροφι (not) :! ❷ πράξεισ ςυςχετιςμοφ: <, >, <=, >=, == ❸ και : && ❹ ι : (a < 90) && (b > 0.9) && (p == true) a < 90 && b > 0.9 && p == true 3-53

Απλοποιθμζνθ Αποτίμθςθ (x >= 0) && (y > 1) Αν x=-1 τότε (x >= 0) false Aνεξάρτθτα από τθν τιμι του y, το ςυνολικό false (x >= 0) (y > 1) Αν x=1 τότε (x >= 0) true Aνεξάρτθτα από τθν τιμι του y, το ςυνολικό true Απλοποιθμζνθ αποτίμθςθ: ςτισ δφο εκφράςεισ μεταξφ των && ι θ C++ αποτιμάει πρϊτα τθν αριςτερι ζκφραςθ και ςτθν ςυνζχεια ανάλογα με τθν τιμι προχωράει ςτθν δεξιά. if ( (kids!=0) && (pieces/kids) >=2 ) cout << "Κάθε παιδί μποπεί να πάπει 2 κομμάηια"; Αν kids=0 τότε αποφεφγεται ςφάλμα κατά τθν εκτζλεςθ 3-54

Ρροτεραιότθτεσ τελεςτϊν Ο τρόποσ υπολογιςμοφ μιασ ζκφραςθσ εξαρτάται από τθν προτεραιότθτα των τελεςτϊν: ❶ παρενκζςεισ: () Υπολογίηονται πρϊτα, από τα αριςτερά προσ τα δεξιά. Εάν υπάρχουν ζνκετεσ υπολογίηονται πρϊτα οι εςωτερικζσ ❷ μοναδιαίοι τελεςτζσ αφξθςθσ μείωςθσ: ++, -- Υπολογίηονται από δεξιά προσ τα αριςτερά. ❸ πολλαπλαςιαςμόσ, διαίρεςθ και υπόλοιπο: *, /, ι % Υπολογίηονται από αριςτερά προσ τα δεξιά. ❹ πρόςκεςθ, αφαίρεςθ: + ι Υπολογίηονται από τα αριςτερά προσ τα δεξιά. ❺ εκχώρθςθσ: =, +=, -=, *=, /=, %= Υπολογίηονται από δεξιά προσ τα αριςτερά. Στθν πράξθ: να χρθςιμοποιείται ςχεδόν πάντα () 3-55

Κανόνεσ Ρροτεραιότθτασ Γενικά ❶παρενκζςεισ: () Υπολογίηονται πρϊτα, από τα αριςτερά προσ τα δεξιά. Εάν υπάρχουν ζνκετεσ υπολογίηονται πρϊτα οι εςωτερικζσ ❷ μοναδιαίοι τελεςτζσ αφξθςθσ μείωςθσ: ++, -- Υπολογίηονται από δεξιά προσ τα αριςτερά. ❸ πολλαπλαςιαςμόσ, διαίρεςθ και υπόλοιπο: *, /, ι % Υπολογίηονται από αριςτερά προσ τα δεξιά. ❹ πρόςκεςθ, αφαίρεςθ: + ι Υπολογίηονται από τα αριςτερά προσ τα δεξιά. ❺ ςχεςιακοί: <, >, <=, >= Υπολογίηονται από τα αριςτερά προσ τα δεξιά ❻ ιςότθτασ: ==,!= Υπολογίηονται από τα αριςτερά προσ τα δεξιά ❼ λογικοί: &&, Υπολογίηονται από τα αριςτερά προσ τα δεξιά ❽ εκχώρθςθσ: =, +=, -=, *=, /=, %= Υπολογίηονται από δεξιά προσ τα αριςτερά. 3-56

Ραράδειγμα x + 1 > 2 x + 1 < 3 (x + 1) > 2 (x + 1) < 3 ((x + 1) > 2) ((x + 1) < 3) 3-57

Χριςθ ακεραίων ωσ λογικζσ τιμζσ Ζνασ ακζραιοσ μπορεί να αναπαραςτακεί με μια τιμι true ι false, και αντίςτροφα Κάκε μθ-μθδενικόσ ακζραιοσ true 0 false Ζςτω:! time > limit (όχι θ τιμι time μεγαλφτερθ από limit) Κανόνεσ προτεραιότθτασ: (! time) > limit Αν time=36: (! time) false 0 Δθλαδι 0 > limit για limit=60 false Κανονικά όμωσ κα περιμζναμε true Για να αποφφγουμε τζτοιεσ καταςτάςεισ:!(time > limit) ι (time <= limit) 3-58

Ραραδείγματα Αποτίμθςθσ Ζςτω count = 0 και limit = 10 : 1. count == 0 && limit < 20 true 2.!(count == 12) true 3. (count == 1) && (x < y) false 4. (count < 10) (x < y) true 5.!( ((count < 10) (x < y)) && (count >= 0) ) 6. (limit < 20) ((limit/count) > 7) 7. ((limit/count) > 7) && (limit < 20) 8. (5 && 7) + (!6) true 1 true error false 3-59

Ενότθτα 6 ΡΟΗ ΕΛΕΓΧΟΤ: IF-ELSE, SWITCH 3-60

Η εντολι if-else Ανάλογα με μια ςυνκικθ που εξαρτάται από τισ τιμζσ κάποιων ςτακερϊν και μεταβλθτϊν, εκτελοφμε οριςμζνεσ εντολζσ ι όχι. φνταξθ μιασ απλισ εντολισ if ( Λογική_Έκθπαζη ) Ενηολή_Καηάθαζηρ; else Ενηολή_Άπνηζηρ; Παράδειγμα if ( myscore > yourscore) { cout << "Κέπδιζα \n"; total = total + 100; } else { cout << "Έσαζα \n"; total = 0; φνταξθ ακολουκίασ εντολών if ( Λογική_Έκθπαζη ) { Ενηολή_Καηάθαζηρ_1; Ενηολή_Καηάθαζηρ_2; } else { Ενηολή_Άπνηζηρ_1; Ενηολή_Άπνηζηρ_2; } } 3-61

Σφνκετεσ Εντολζσ Πταν κζλουμε να εκτελζςουμε ζνα "μπλοκ εντολϊν" τότε περικλείουμε τισ εντολζσ αυτζσ μζςα ςε, - if ( myscore > yourscore) cout << "Κέπδιζα \n"; else cout << "Έσαζα \n"; if ( myscore > yourscore) { cout << "Κέπδιζα \n"; } else { cout << "Έσαζα \n"; } if ( myscore > yourscore) { cout << "Κέπδιζα \n"; total = total + 100; } else { cout << "Έσαζα \n"; total = 0; } if ( myscore > yourscore) { cout << "Κέπδιζα \n"; total = total + 100; } else { cout << "Έσαζα \n"; total = 0; } 3-62

Κλαςικό ςφάλμα εκχϊρθςθσ if ( x = 12 ) cout << "12 \n"; else cout << "!=12 \n"; Δεν υπάρχει ςφάλμα κατά τθ διάρκεια μεταγλϊττιςθσ ( x = 12 ) είναι εντολι εκχϊρθςθσ Αποκθκεφει τθν τιμι 12 ςτθν x και επιςτρζφει τθν τιμι 12 Επομζνωσ ( x = 12 ) 12 true Δθλαδι πάντα εκτελείται θ εντολι : cout << "12 \n"; ανεξάρτθτα από τθν τιμι του x Ζνασ τρόποσ αντιμετϊπιςθσ: 12 = x (μινυμα ςφάλματοσ) 3-63

Ραραδείγματα Ο παρακάτω κϊδικασ οδθγεί ςε διαίρεςθ με το 0; j = -1; if ( (j > 0) && ( 1 / (j+1) > 10 ) ) cout << i << endl; Ροια είναι θ ζξοδοσ; if (0) cout << "Το 0 είναι true"; else cout << "Το 0 είναι false"; cout << endl; if (1) cout << "Το 1 είναι true"; else cout << "Το 1 είναι false"; cout << endl; 3-64

Ραράλειψθ τθσ else Το κομμάτι τθσ else είναι προαιρετικό if ( sales >= minimum ) salary = salary + bonus; cout << "μιζθόρ = " << salary; Η εκτφπωςθ του μιςκοφ γίνεται πάντα 3-65

Ζνκετα if-else Οι δομζσ επιλογισ μποροφν φυςικά να είναι και ζνκετεσ πράγμα που μασ επιτρζπει να ζχουμε μεγαλφτερο ζλεγχο πάνω ςτισ εντολζσ που κα εκτελεςτοφν. #include <iostream> using namespace std; int main() { float grade = 6.5 ; if( grade >= 5.0) { cout << "PASSED"; if( grade >= 8.5) cout << "... with distinction!"; cout << "\n"; } else cout << "FAILED\n"; } return 0; 3-66

Ραραδείγματα Ροια είναι θ ζξοδοσ του παρακάτω κϊδικα; int x = 2; cout << "Ξεκίνα\n"; if( x <= 3 ) if( x!= 0) cout << "Γεια από ηη δεςηεπη if\n"; else cout << "Γεια από ηην else\n"; cout << "Τελείωζε\n"; cout << "Ξεκίνα πάλι\n"; if( x > 3 ) if( x!= 0) cout << "Γεια από ηη δεςηεπη if\n"; else cout << "Γεια από ηην else\n"; cout << "Τελείωζε πάλι\n"; int extra = 2; //-3, 0 if( extra < 0 ) cout << "μικπό"; else if (extra == 0) cout << "μεζαίο"; else cout << "μεγάλο"; 3-67

Ραραδείγματα Ροια είναι θ ζξοδοσ του παρακάτω κϊδικα; int x = 2; cout << "Ξεκίνα\n"; if( x <= 3 ) if( x!= 0) cout << "Γεια από ηη δεςηεπη if\n"; else cout << "Γεια από ηην else\n"; cout << "Τελείωζε\n"; cout << "Ξεκίνα πάλι\n"; if( x > 3 ) if( x!= 0) cout << "Γεια από ηη δεςηεπη if\n"; else cout << "Γεια από ηην else\n"; cout << "Τελείωζε πάλι\n"; int extra = 2; //-3, 0 if( extra < 0 ) cout << "μικπό"; else if (extra == 0) cout << "μεζαίο"; else cout << "μεγάλο"; 3-68

Η εντολι switch φνταξθ εντολισ switch switch ( Έκθπαζη_Ελέγσος ) { case Σηαθεπα_1: Ακολοςθία_Ενηολών_1; break; case Σηαθεπα_2: Ακολοςθία_Ενηολών_2; break;... case Σηαθεπα_n: Ακολοςθία_Ενηολών_n; break; default: Πποεπιλεγμένερ_Ενηολέρ; } Παράδειγμα int vehicleclass; double toll; cout << "Δώζε ηύπο οσήμαηορ"; cin >> vehicleclass; switch (vehicleclass) { case 1: cout << "Επιβαηικό"; toll = 0.5; break; case 2: cout << "Λεωθοπείο"; toll = 1.5; break; case 3: cout << "Φοπηηγό"; toll = 2.0; break; default: cout << "Άγνωζηορ Τύπορ"; } 3-69

Ραράδειγμα με switch char c; bool afound=false, bfound=false; cout << "give a character\n"; cin >> c; switch (c) { αν δεν υπάρχει break τότε case 'a': προχωράμε ςτθν αμζςωσ case 'A': επόμενθ εντολι afound = true; break; case 'b': case 'B': bfound = true; break; default: break; } cout << "a's: "<< afound << "b's: "<< bfound; 3-70

Τριαδικόσ τελεςτισ ςυνκικθσ φνταξθ τριαδικοφ τελεςτι? : Λογική_Έκθπαζη? ηιμή_όηαν_true : ηιμή_όηαν_false ; Παράδειγμα max = (n1 > n2)? n1 : n2 ; int main() { float grade; cout << "Enter grade\n"; cin >> grage; } if( grade >= 5.0) cout << "Passed\n"; else cout << "Failed\n"; return 0; int main() { float grade; cout << "Enter grade\n"; cin >> grage; } cout << (grade >= 5.0? "Passed\n": "Failed\n"); return 0; 3-71

Ενότθτεσ 5 & 6 ΟΛΟΚΛΗΡΩΜΕΝΑ ΠΑΡΑΔΕΙΓΜΑΣΑ 3-72

Ταξινόμθςθ μεταβλθτισ Γράψτε πρόγραμμα που ταξινομεί μια μεταβλθτι int n ςε μια από τισ παρακάτω κατθγορίεσ και εμφανίηει ανάλογο μινυμα: n < 0 ι 0 n 100 ι n > 100 3-73

Ταξινόμθςθ μεταβλθτισ Γράψτε πρόγραμμα που ταξινομεί μια μεταβλθτι int n ςε μια από τισ παρακάτω κατθγορίεσ και εμφανίηει ανάλογο μινυμα: n < 0 ι 0 n 100 ι n > 100 #include <iostream> using namespace std; int main() { int n; cout << "Enter integer\n"; cin >> n; if(n < 0) cout << n << " είναι μικπόηεπο ηος 0.\n"; else if ((0 <= n) && (n <= 100)) cout << n << " βπίζκεηαι μεηαξύ 0-100.\n"; else if (n > 100) cout << n << " είναι μεγαλύηεπο ηος 100.\n"; return 0; } 3-74

Ταξινόμθςθ μεταβλθτισ Γράψτε πρόγραμμα που ταξινομεί μια μεταβλθτι int n ςε μια από τισ παρακάτω κατθγορίεσ και εμφανίηει ανάλογο μινυμα: n < 0 ι 0 n 100 ι n > 100 #include <iostream> using namespace std; int main() { int n; cout << "Enter integer\n"; cin >> n; αν τα διαγράψουμε πάλι ζχουμε το ίδιο αποτζλεςμα } if(n < 0) cout << n << " είναι μικπόηεπο ηος 0.\n"; else if ((0 <= n) && (n <= 100)) cout << n << " βπίζκεηαι μεηαξύ 0-100.\n"; else if (n > 100) cout << n << " είναι μεγαλύηεπο ηος 100.\n"; return 0; 3-75

Χαρακτθριςμόσ Βακμολογίασ Γράψτε πρόγραμμα που διαβάηει τθν βακμολογία *0..100+ και εκτυπϊνει ζναν ανάλογο χαρακτθριςμό: 90 100: Α 80 89: Β 70 79: C 60 69: D < 59: F 3-76

Χαρακτθριςμόσ Βακμολογίασ Γράψτε πρόγραμμα που διαβάηει τθν βακμολογία *0..100+ και εκτυπϊνει ζναν ανάλογο χαρακτθριςμό: 90 100: Α 80 89: Β 70 79: C 60 69: D < 59: F #include <iostream> using namespace std; int main() { int grade; cout << "Enter grade\n"; cin >> grade; } if ( grade >= 90 ) cout << "A" ; else if ( grade >= 80 ) cout << "B" ; else if ( grade >= 70 ) cout << "C" ; else if ( grade >= 60 ) cout << "D"; else cout << "F" ; 3-77

Εμβαδόν και περιφζρεια κφκλου Γράψτε πρόγραμμα που διαβάηει τθν ακτίνα (R) ενόσ κφκλου και εκτυπϊνει το εμβαδόν (π R 2 ) και τθν περιφζρεια (2 π R). Θα πρζπει να ελζγξετε ςωςτά δεδομζνα κατά τθν είςοδο: δθλαδι αν θ ακτίνα είναι κετικόσ αρικμόσ. Σε αντίκετθ περίπτωςθ πρζπει να εκτυπϊνει αντίςτοιχο μινυμα λάκουσ και να τερματίηει το πρόγραμμα. 3-78

Εμβαδόν και περιφζρεια κφκλου Γράψτε πρόγραμμα που διαβάηει τθν ακτίνα (R) ενόσ κφκλου και εκτυπϊνει το εμβαδόν (π R 2 ) και τθν περιφζρεια (2 π R). Θα πρζπει να ελζγξετε ςωςτά δεδομζνα κατά τθν είςοδο: δθλαδι αν θ ακτίνα είναι κετικόσ αρικμόσ. Σε αντίκετθ περίπτωςθ πρζπει να εκτυπϊνει αντίςτοιχο μινυμα λάκουσ και να τερματίηει το πρόγραμμα. #include <iostream> using namespace std; int main() { double rad; cout << "Enter radius\n"; cin >> rad; if ( rad >= 0 ) { cout << "Wrong radius!" ; cout << endl; return 0; } double area, circum; const double PI = 3.14; area = PI * rad * rad; circum = 2 * PI * rad; cout << area << " " << circum; return 0; } 3-79

Εμβαδόν και περιφζρεια κφκλου Γράψτε πρόγραμμα που διαβάηει τθν ακτίνα (R) ενόσ κφκλου και εκτυπϊνει το εμβαδόν (π R 2 ) και τθν περιφζρεια (2 π R). Θα πρζπει να ελζγξετε ςωςτά δεδομζνα κατά τθν είςοδο: δθλαδι αν θ ακτίνα είναι κετικόσ αρικμόσ. Σε αντίκετθ περίπτωςθ πρζπει να εκτυπϊνει αντίςτοιχο μινυμα λάκουσ και να τερματίηει το πρόγραμμα. #include <iostream> using namespace std; int main() { double rad; cout << "Enter radius\n"; cin >> rad; if ( rad >= 0 ) { cout << "Wrong radius!" ; cout << endl; return 0; } double area, circum; const double PI = 3.14; area = PI * rad * rad; circum = 2 * PI * rad; cout << area << " " << circum; return 0; } 3-80

Εμβαδόν και περιφζρεια κφκλου Γράψτε πρόγραμμα που διαβάηει τθν ακτίνα (R) ενόσ κφκλου και εκτυπϊνει το εμβαδόν (π R 2 ) και τθν περιφζρεια (2 π R). Θα πρζπει να ελζγξετε ςωςτά δεδομζνα κατά τθν είςοδο: δθλαδι αν θ ακτίνα είναι κετικόσ αρικμόσ. Σε αντίκετθ περίπτωςθ πρζπει να εκτυπϊνει αντίςτοιχο μινυμα λάκουσ και να τερματίηει το πρόγραμμα. #include <iostream> using namespace std; int main() { double rad; cout << "Enter radius\n"; cin >> rad; if ( rad < 0 ) { cout << "Wrong radius!" ; cout << endl; return 0; } double area, circum; const double PI = 3.14; area = PI * rad * rad; circum = 2 * PI * rad; cout << area << " " << circum; return 0; } 3-81

Εμβαδόν και περιφζρεια κφκλου Γράψτε πρόγραμμα που διαβάηει τθν ακτίνα (R) ενόσ κφκλου και εκτυπϊνει το εμβαδόν (π R 2 ) και τθν περιφζρεια (2 π R). Θα πρζπει να ελζγξετε ςωςτά δεδομζνα κατά τθν είςοδο: δθλαδι αν θ ακτίνα είναι κετικόσ αρικμόσ. Σε αντίκετθ περίπτωςθ πρζπει να εκτυπϊνει αντίςτοιχο μινυμα λάκουσ και να τερματίηει το πρόγραμμα. #include <iostream> using namespace std; int main() { double rad; cout << "Enter radius\n"; cin >> rad; if ( rad >= 0 ) { cout << "Wrong radius!" ; cout << endl; return 0; } double area, circum; const double PI = 3.14; area = PI * rad * rad; circum = 2 * PI * rad; cout << area << " " << circum; return 0; } 3-82

ΠΡΟΕΣΟΙΜΑΙΑ ΕΡΓΑΣΗΡΙΟΤ & DEV C++

Βιματα Χρθςιμοποιοφμε τον μεταφραςτι DevC++: http://www.bloodshed.net/dev/devcpp.html ❶ Αποκθκεφουμε το αρχείο με κατάλθξθ.cpp ❷ Γράφουμε τον κϊδικα ❸ Μεταφράηουμε τον κϊδικα (δθλαδι παράγουμε εκτελζςιμο αρχείο.exe) προςοχή ςτα ςυντακτικά λάθη! ❹ Εκτελοφμε το πρόγραμμα ❺ Ραρατθροφμε τθν εκτζλεςθ του προγράμματοσ και αν χρειαςτεί εκτελοφμε ξανά τα βιματα ❷ ❸ ❹ Πλα τα παραπάνω βιματα εκτελοφνται μζχρι το επικυμθτό αποτζλεςμα 84

Άνοιγμα πρϊτου αρχείου Ανοίγουμε το devc++

Άνοιγμα πρϊτου αρχείου Δθμιουργοφμε ζνα νζο αρχείο (source file)

Άνοιγμα πρϊτου αρχείου Πταν δθμιουργοφμε ζνα αρχείο: Αν υπάρχουν ζτοιμεσ εντολζσ δεν τισ πειράηουμε Αν δεν υπάρχουν πρζπει να τισ προςκζςουμε #include <iostream> using namespace std; Στο ςθμείο αυτό γράφουμε τον κϊδικα που κζλουμε int main( ) { } system("pause"); return 0;

Ραράδειγμα Διάβαςμα ενόσ ακεραίου και εκτφπωςθ του αντίκετοφ του x = 45 x = -45 x = -8 x = 8

Ραράδειγμα Διάβαςμα ενόσ ακεραίου και εκτφπωςθ του αντίκετοφ του x = 45 x = -45 x = -8 x = 8 #include <iostream> using namespace std; int main() { int x; cin >> x; x = -1 * x; // x=-x? } cout << x; return 0;

Άνοιγμα πρϊτου αρχείου Δθμιουργοφμε ζνα νζο αρχείο (source file)

Αποκικευςθ του αρχείου Αρχείο με κατάλθξθ.cpp π.χ. lab1.cpp, askisi2.cpp, Εργαςτιρια: Αποκικευςθ πάντα μζςα ςτο φάκελο με Αρικμ. Μθτρ. (π.χ. 10099) που ζχετε δθμιουργιςει ςτο "userspace"

Μετάφραςθ (compile)

Μετάφραςθ (compile) Μινυμα αποτελζςματοσ: Εξετάηουμε τα πικανά λάκθ

Εκτζλεςθ

Εκτζλεςθ Τι περιμζνει;

Εκτζλεςθ Τι περιμζνει;

Ρρόβλθμα ςτθν Εκτζλεςθ Εξαφανίςτθκε το παράκυρο! Ροφ είναι το αποτζλεςμά μασ;

Ρρόβλθμα ςτθν Εκτζλεςθ Εξαφανίςτθκε το παράκυρο! Ροφ είναι το αποτζλεςμά μασ; Ρροςκζςαμε τθν εντολι τϊρα;

Ρρόβλθμα ςτθν Εκτζλεςθ Εξαφανίςτθκε το παράκυρο! Ροφ είναι το αποτζλεςμά μασ; Ρροςκζςαμε τθν εντολι τϊρα; ξανά μετάφραςθ!!

Ξανά εκτζλεςθ Σωςτό αποτζλεςμα Κάτι δεν μασ αρζςει

Ξανά εκτζλεςθ Αλλαγι γραμμισ ςτο τζλοσ!

Ξανά εκτζλεςθ Αλλαγι γραμμισ ςτο τζλοσ! Ξανά: ❸ compile ❹ run

Ξανά εκτζλεςθ Αλλαγι γραμμισ ςτο τζλοσ! Ξανά: ❸ compile ❹ run Ασ βγαίνουν και κάποια μθνφματα

Διόρκωςθ Ρρόςκεςθ μθνυμάτων

Διόρκωςθ Ρρόςκεςθ μθνυμάτων ❸ compile

Διόρκωςθ Λάκθ κατά τθν μετάφραςθ!!! Τα μθνφματα που βγαίνουν ςασ βοθκάνε να καταλάβατε τι είναι λάκοσ

Διόρκωςθ

Εκτζλεςθ Ζλεγχο αρκετϊν εκτελζςεων

Ερϊτθμα Μιπωσ δουλεφει θ εντολι x = -x; αντί για x = -1 * x;

Ερϊτθμα Μιπωσ δουλεφει θ εντολι x = -x; αντί για x = -1 * x; Δοκιμάςτε το!!

Ερϊτθμα Μιπωσ δουλεφει θ εντολι x = -x; αντί για x = -1 * x; Δοκιμάςτε το!!

Εργαςτιρια & Τεςτ Quiz Προετοιμαςία και κατανόθςθ ςε απλά κζματα Στα Εργαςτιρια κα πρζπει: Να κατανοείτε το πρόβλθμα και να προςπακείτε να ςχεδιάςετε τθν λφςθ πριν ζλκετε ςτο εργαςτιριο. PreLab.pdf Να ςυμμετζχετε ενεργά και να είςτε προετοιμαςμζνοι να απαντάτε ςε ερωτιςεισ ςχετικζσ με τθν εκφϊνθςθ Lab.pdf Θζματα εναςχόλθςθσ εργαςτθρίου Θα βακμολογθκείτε με ερωτιςεισ κουίη ςε 2 εργαςτιρια με βακμολογία 30% του τελικοφ βακμοφ. Θζματα ανάπτυξθσ κϊδικα και πολλαπλϊν επιλογϊν διαλεγμζνα από κεωρία και εργαςτιρια. Ερωτιςεισ Κουίη: Αποτελοφν ενδιάμεςα τεςτ που βακμολογοφν τθν επίδοςι ςασ Ρολφ πιο δφςκολα από ό,τι φαντάηεςτε ( αν δεν μελετάτε ςυςτθματικά) Μετά από ~3 εργαςτιρια κα εφαρμόηονται ( αν απουςιάηετε, δεν βακμολογείςτε).

PreLab-1.pdf ΡΙΝ το 1 ο Εργαςτιριο (24/10) κα πρζπει να αςχολθκείτε με τα (απλά) ηθτιματα. PreLab-1a.pdf (14/10) PreLab-1b.pdf (21/10) Στο 1 ο Εργαςτιριο κα πρζπει να αναπτφξετε κϊδικα που κα ςασ δυςκολζψει αν δεν αςχολθκείτε με τα κζματα PreLab-1a.pdf PreLab-1b.pdf 343 Ειςαγωγι ςτον Προγραμματιςμό : ΠΡΟΕΣΟΙΜΑΙΑ ΕΡΓΑΣΗΡΙΟΤ & ΘΕΜΑΣΑ ΚΑΣΑΝΟΗΗ Χριςιμο Τλικό: 1 ο Εργαςτιριο Α μζροσ Διαφάνειεσ 2 θσ εβδομάδασ & Ειςαγωγικά για το εργαςτιριο Βοθκθτικό αρχείο: readprintx.cpp διάβαςμα ακεραίου και εκτφπωςη του διπλάςιου ακεραίου Ζιτθμα 1 ο Δθμιουργιςτε ζνα πρόγραμμα που κα διαβάηει ζναν ακζραιο x, κα υπολογίηει το διπλάςιό του (2x), κα υπολογίηει τον αντίκετό του (-x), και κα εκτυπϊνει τισ τιμζσ που υπολόγιςε. Ζιτθμα 2 ο Δθμιουργιςτε ζνα πρόγραμμα που Ζιτθμα 3 ο κα διαβάηει 3 ακεραίουσ αρικμοφσ (x, y, z), κα υπολογίηει το άκροιςμά τουσ (x+y+z), το γινόμενό τουσ (x * y * z), κα εκτυπϊνει τουσ αρικμοφσ x, y, z, το άκροιςμά τουσ και το γινόμενό τουσ. Τι εκτυπϊνουν τα ακόλουκα κομμάτια κϊδικα; int x=1; x++; ++x; --x; int x=1, y; y = x++; y = ++x; y = --x; int x=1, y=2, z=3, w=4, v=5; cout << 10*y x + (2*z)/w w/v*14/2; Δεν χρειάηεςτε τθ λφςθ τουσ αρκεί να τα κατανοιςετε x--; cout << x; y = x--; y = y + x--; y = y + ++x; cout << y; Σκεφτείτε πρϊτα τθν απάντθςι ςασ και μετά επαλθκεφςτε δθμιουργϊντασ τα αντίςτοιχα προγράμματα. Σε κάκε γραμμι του κϊδικα ειςάγετε με ςχόλια τισ τιμζσ των αντίςτοιχων μεταβλθτϊν.

Βιβλιογραφία Καλι Μελζτθ [1] W. Savitch, Ρλιρθσ C++, Εκδόςεισ Τηιόλα, 2011 [2+ Η. Deitel and P. Deitel, C++ Ρρογραμματιςμόσ 6θ Εκδοςθ, Εκδόςεισ Μ. Γκιοφρδασ, 2013 Υλθ βιβλιογραφίασ [1]: 1.2, 1.3, 1.4, 1.5, Ραράρτθμα 1 [2]: Κεφ. 2, Ραράρτθμα Γ Επιπλζον Εναςχόλθςθ Δοκιμάςτε να τρζξετε τα παραδείγματα των διαφανειϊν ςε ολοκλθρωμζνα προγράμματα (με τθν ςυν/ςθ main())