Μετάβαση στο περιεχόμενο
Topos Uranos

Περίληψη

Αυτό το μάθημα ανοίγει την τρίτη ενότητα του κύκλου μαθημάτων, αφιερωμένη στις εκφράσεις και στους τελεστές τους. Εξηγεί σε τι χρησιμεύει η ενότητα: να διδάξει πώς κατασκευάζονται εκφράσεις των οποίων η τιμή μπορεί να προβλεφθεί με βεβαιότητα, γνωρίζοντας ποια πράξη γίνεται πρώτη, τι τύπου είναι το αποτέλεσμα, ποιες παρενέργειες έχει και ποιες εκφράσεις δεν έχουν σημασία· παρουσιάζει τα τέσσερα μαθήματά της και το νήμα που τα ενώνει, από την ακέραια και την πραγματική αριθμητική ως τα bit και τη μαθηματική βιβλιοθήκη, περνώντας από τις συνθήκες και από τον κατάλογο της απροσδιόριστης συμπεριφοράς· θυμίζει όσα η ενότητα θεωρεί γνωστά από τη δεύτερη, δηλαδή τον τύπο κάθε δεδομένου, τα όριά του και τις μετατροπές του· διατυπώνει το πρόβλημα που λύνει η ενότητα, το πρόβλημα ενός προγράμματος που μεταγλωττίζεται χωρίς ούτε μία προειδοποίηση και του οποίου οι απαντήσεις σε έξι σχολικές ερωτήσεις είναι όλες λανθασμένες, όταν δεν λείπουν· και δείχνει πού οδηγεί, στις ενότητες που ακολουθούν και στον κύκλο μαθημάτων Προγραμματισμός σε C++ II.

Μαθησιακοί στόχοι

  1. Να περιγράφουμε τη σειρά των περιεχομένων της ενότητας και να εξηγούμε τι προσφέρει κάθε μάθημα σε εκείνο που ακολουθεί.
  2. Να θυμόμαστε όσα χρειάζονται από την ενότητα 2 (τους ακέραιους και τους πραγματικούς τύπους, τα εύρη τιμών τους, την υπερχείλιση και τις μετατροπές) και να τα επαναλαμβάνουμε αν χρειάζεται.
  3. Να προαναγγέλλουμε, με ένα παράδειγμα, ότι η τιμή μιας έκφρασης εξαρτάται από κανόνες αποτίμησης (την προτεραιότητα, τον τύπο των τελεσταίων, τη σειρά των επιδράσεων) που δεν συμπίπτουν πάντοτε με εκείνους των σχολικών μαθηματικών.
  4. Να αναγνωρίζουμε τι αναμένεται να ξέρουμε να κάνουμε στο τέλος της ενότητας, και να το διακρίνουμε από όσα θα μάθουμε στις ενότητες που ακολουθούν.

Αρχική αξιολόγηση

Πριν διατρέξουμε την ενότητα, αξίζει να μετρήσουμε το σημείο εκκίνησης. Η αξιολόγηση αυτή είναι αυτοαξιολόγηση: δεν βαθμολογείται, και μοναδικός σκοπός της είναι να προσανατολίσει τη μελέτη. Οι τέσσερις πρώτες ερωτήσεις ελέγχουν όσα η ενότητα θεωρεί γνωστά από τη δεύτερη: την ακέραια διαίρεση, τη γραφή στη βάση 2, την αφαίρεση χωρίς πρόσημο και την υπερχείλιση με πρόσημο. Οι έξι που ακολουθούν αγγίζουν, με τη σειρά των μαθημάτων, τις κεντρικές ιδέες της ενότητας, και αρκετές από αυτές ξεκινούν από τα σχολικά μαθηματικά ή από τη στοιχειώδη λογική. Κανείς δεν είναι υποχρεωμένος να τις απαντήσει σωστά ακόμη, και σε δύο από αυτές το «δεν το ξέρω ακόμη» είναι τίμια απάντηση: κάθε απάντηση, σωστή ή λανθασμένη, εξηγεί το ζήτημα και κατονομάζει το μάθημα που το πραγματεύεται. Οι ίδιες δεξιότητες μετρώνται ξανά στο τέλος, στο μάθημα της σύνθεσης.

Αρχική αξιολόγηση

Πριν ξεκινήσεις την ενότητα, μέτρησε το σημείο εκκίνησής σου. Είναι μια σύντομη αυτοαξιολόγηση: δεν βαθμολογείται και το αποτέλεσμα αποθηκεύεται μόνο στον περιηγητή σου.

  1. Ερώτηση 1Από προηγούμενες ενότητεςΈνα πρόγραμμα δηλώνει const double r{7 / 2}; και γράφει το r. Τι εμφανίζεται;

  2. Ερώτηση 2Από προηγούμενες ενότητεςΠώς γράφεται ο αριθμός 13 στη βάση 2, με οκτώ bit;

  3. Ερώτηση 3Από προηγούμενες ενότητεςΤι γράφει η εντολή std::println("{}", 0u - 1); με unsigned int των 32 bit;

  4. Ερώτηση 4Από προηγούμενες ενότητεςΈνα πρόγραμμα εκτελεί int count{std::numeric_limits<int>::max()}; και έπειτα count = count + 1;. Τι εγγυάται το πρότυπο για την τιμή του count;

  5. Ερώτηση 5Πόσο κάνει το 2+3⋅42 + 3 \cdot 4 και πόσο το (2+3)⋅4(2 + 3) \cdot 4;

  6. Ερώτηση 6Σύμφωνα με το θεώρημα της διαίρεσης των μαθηματικών, με το υπόλοιπο rr να υπόκειται στον περιορισμό 0≤r<20 \leq r < 2, ποιο είναι το πηλίκο qq και ποιο το υπόλοιπο rr της διαίρεσης του −7-7 με το 22;

  7. Ερώτηση 7Ποια είναι η άρνηση της πρότασης «βρέχει και κάνει κρύο»;

  8. Ερώτηση 8Τι γράφει η εντολή std::println("{}", 3 < 5);;

  9. Ερώτηση 9Μετά τις δηλώσεις int a{5}; και int b{a++ * 2};, πόσο κάνουν τα a και b;

  10. Ερώτηση 10Τι γράφει η εντολή std::println("{}", 2 ^ 3);;