Δευτέρα 28 Νοεμβρίου 2011

ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ-Σύνθετες συνθήκες

A.Ένας πωλητής έχει καταγράψει όλους τους πελάτες του σε έναν υπολογιστή και θέλει να βρει αυτούς που είναι:

i) μεταξύ 20 και 50 χρονών,

ii) κάτω από 20 ή πάνω από 50 χρονών,

iii) 20, 25 ή 35 χρονών,

iv) μεταξύ 25 και 30 ή 45 και 50 χρονών και

v) αυτούς που δεν είναι ούτε 30 ούτε 40 χρονών.

Να γραφούν οι λογικές συνθήκες που θα χρησιμοποιούσαμε σε έναν αλγόριθμο για κάθε μία από τις παραπάνω περιπτώσεις.

ΑΠΑΝΤΗΣΗ

i. ηλικία>=20 ΚΑΙ ηλικία<=50

ii. ηλικία< Ή ηλικία>50

iii. ηλικία=20 Ή ηλικία=25 Ή ηλικία=35

iv. (ηλικία>=25 ΚΑΙ ηλικία<=30) Ή (ηλικία>=45 ΚΑΙ ηλικία<=50)

v. 1.ηλικία<>30 ΚΑΙ ηλικία<>40 ή

2.ΟΧΙ ηλικία=30 ΚΑΙ ΟΧΙ ηλικία=40

Β.Γράψτε τις συνθήκες που εκφράζουν τα παρακάτω ζητούμενα (θεωρήστε γνωστές τις μεταβλητές στις παρενθέσεις και χρησιμοποιήστε τις κατάλληλα).

1. Οι παίκτες που έχουν ύψος από 1,85 μέχρι και 2 μέτρα. (ύψος)

2. Οι παίκτες με ύψος μεταξύ του 1,70 και των 2 μέτρων και οι παίκτες με ύψος 2,10. (ύψος)

3. Οι φτωχοί και οι πλούσιοι υπάλληλοι, δηλαδή αυτοί που έχουν μισθό μικρότερο του 500 ευρώ και οι υπάλληλοι που έχουν μισθό μεγαλύτερο του 2000 ευρώ. (μισθός)

4. Οι μαθητές που απορρίφθηκαν δηλαδή έχουν απουσίες περισσότερες του 164 ή έχουν απουσίες από 114 μέχρι 163 και μέσο όρο βαθμολογίας μικρότερο του 15. (απ, μο)

5. Οι αριθμοί α και β είναι ομόσημοι.

6. Ο ακέραιος α είναι πολλαπλάσιο του 19.

7. Ο ακέραιος α είναι περιττός.

8. Η απάντηση μπορεί να είναι Ναι/Όχι/Ισως. (απ)

ΑΠΑΝΤΗΣΗ

1.Αν ύψος>=1.85 ΚΑΙ ύψος<=2 τότε

2.Αν ύψος<=1.70 ΚΑΙ ύψος<=2 Ή ύψος=2.10 τότε

3.Αν μισθός<500 Ή μισθός>2000 τότε

4Αν απ>164 Ή (απ >= 114 ΚΑΙ απ <= 163 ΚΑΙ μο<15) τότε

5.Αν α*β>0 τότε

6.Αν α mod 19 = 0 τότε

7.Αν α mod 2 = 1 τότε

8.Αν απ = "Ναι" Ή απ = "Οχι" Ή απ = "Ισως" τότε

Παρασκευή 18 Νοεμβρίου 2011

Λυμένες ασκήσεις με χρήση των πράξεων DIV και MOD

ΧΡΗΣΗ ΠΡΑΞΕΩΝ DIV ΚΑΙ MOD
1.        Τι θα εμφανιστεί στην οθόνη του υπολογιστή μετά την εκτέλεση του παρακάτω τμήματος ενός αλγορίθμου;
                  x ← 11 mod (25 div 8)
                  y ← (x div 2) div 1
                  z ← x^3 mod (3*y)
                  Εκτύπωσε x, y, z
Απάντηση:  X= 2, y=1, z=2

2.        Να γίνει αλγόριθμος ο οποίος θα δέχεται έναν τριψήφιο αριθμό και θα επιστρέφει το άθροισμα των ψηφίων του.
Λύση:
Αλγόριθμος Τριψήφιος_Αριθμός
  Εκτύπωσε "Δώσε τον αριθμό"
  Διάβασε αριθμός
  εκατοντάδες <- αριθμός DIV 100
  υπόλοιπο <- αριθμός MOD 100
  δεκάδες <- υπόλοιπο DIV 10
  μονάδες <- υπόλοιπο MOD 10
  άθροισμα <- εκατοντάδες + δεκάδες + μονάδες
  Εκτύπωσε "Το άθροισμα ψηφίων του αριθμού είναι:", άθροισμα
Τέλος Τριψήφιος_Αριθμός 

3.        Στο διαστημικό κέντρο της ΝΑΣΑ υπάρχει ένα ηλεκτρονικό ρολόι που εμφανίζει το χρόνο σε δευτερόλεπτα που απομένουν για την εκτόξευση του διαστημικού λεωφορείου. Να δώσετε έναν αλγόριθμο ο οποίος  να διαβάζει τα δευτερόλεπτα που αναγράφονται στο ηλεκτρονικό ρολόι εμφανίζοντας το μήνυμα «Δώστε τα δευτερόλεπτα που γράφει το ρολόι» και να  εμφανίζει πόσες ώρες, λεπτά και δευτερόλεπτα απομένουν για την εκτόξευση, χρησιμοποιώντας τη μορφή «ώρες:λεπτά:δευτερόλεπτα». (π.χ. τα 13600 δευτερόλεπτα αντιστοιχούν σε 3 ώρες, 46 λεπτά  και 40 δευτερόλεπτα ή 3:46:40)
Λύση
Αλγόριθμος ΝΑΣΑ
  Εκτύπωσε "Δώσε τα δευτερόλεπτα που γράφει το ρολόι"
  Διάβασε  δευτ
  ώρες ← δευτ DIV 3600
  υπόλοιπο ← δευτ MOD 3600
  λεπτά ← υπόλοιπο DIV 60
  δευτερόλεπτα ← υπόλοιπο MOD 60
  Εκτύπωσε ώρες,":",λεπτά,":",δευτερόλεπτα
Τέλος ΝΑΣΑ

3. Ρομπότ με σταθερό μήκος βήματος καταφθάνει στον πλανήτη Άρη, για να περισυλλέξει πετρώματα. Κάθε 1 βήμα του είναι 80 cm. Το ρομπότ διαθέτει μετρητή βημάτων. Διένυσε στον Άρη μία ευθεία από σημείο Α σε σημείο  Β και ο μετρητής βημάτων καταμέτρησε Ν βήματα.
Να γραφεί αλγόριθμος που,
Α) να διαβάζει τον αριθμό Ν των βημάτων του Ρομπότ.
Β) να υπολογίζει και να τυπώνει την απόσταση ΑΒ που διανύθηκε σε cm.
Γ) να μετατρέπει και να τυπώνει αυτήν την απόσταση σε km, m και cm. Για παράδειγμα αν η απόσταση σε cm είναι 100060 cm τότε να τυπώνει 1 km, 0 m, 60 cm.
Λύση
Αλγόριθμος Ρομπότ
  Εκτύπωσε "Δώσε τον αριθμό βημάτων"
  Διάβασε Ν
  ΑΒ <- Ν * 80
  km <- ΑΒ DIV 100000
  υπόλοιπο <- ΑΒ MOD 100000
  m <- υπόλοιπο DIV 100
  cm <- υπόλοιπο MOD 100
  Εκτύπωσε km, "Km ", m, "m ", cm, "cm "
Τέλος Ρομπότ