Προβλήματα στη Δομή Επιλογής

Άσκηση 4
Κάποιος προμηθευτής πουλάει στους εμπόρους ένα προϊόν σύμφωνα με την τιμολογιακή πολιτική που φαίνεται στον επόμενο πίνακα. Ο έμπορος προσθέτει 30% κέρδος και στην συνέχεια 23% ΦΠΑ. Να γίνει αλγόριθμος που θα διαβάζει τον αριθμό των τεμαχίων που κάποιος έμπορος προτίθεται να αγοράσει και θα εμφανίζει την τελική τιμή του προϊόντος στον καταναλωτή για ένα τεμάχιο.

Τεμάχια Τιμή ανά τεμάχιο
1 - 50 3,50€
51 - 100 3,20€
101 - 200 2,80€
> 200 2,40€
Αλγόριθμος προμηθευτής
   Διάβασε τεμάχια
   Αν τεμάχια <= 50 τότε
      τιμή_τεμαχίου <- 3,50
   Αλλιώς_αν τεμάχια <= 100 τότε
      τιμή_τεμαχίου <- 3,20
   Αλλιώς_αν τεμάχια <= 200 τότε
      τιμή_τεμαχίου <- 2,80
   Αλλιώς
      τιμή_τεμαχίου <- 2,40
   Τέλος_αν
 
   τιμή_τεμαχίου <- τιμή_τεμαχίου + τιμή_τεμαχίου * 30/100
   τελική_τιμή <- τιμή_τεμαχίου + τιμή_τεμαχίου * 23/100
   Εμφάνισε "Τιμή τεμαχίου στον καταναλωτή: ", τελική_τιμή
Τέλος προμηθευτής

Άσκηση 5
Ένα κατάστημα πώλησης ηλεκτρονικών παιχνιδιών, έχει θέσει ως στόχο για τις ημέρες των Χριστουγέννων την προώθηση μιας συγκεκριμένης κονσόλας παιχνιδιών. Για το λόγο αυτό, σκοπεύει να δώσει προμήθεια στους πωλητές της, ανάλογα με τα τεμάχια που θα καταφέρει ο καθένας να πουλήσει. Ο παρακάτω πίνακας δείχνει το ποσοστό επί των πωλήσεων που θα λάβει σαν προμήθεια ο πωλητής και υπολογίζεται κλιμακωτά.

Τεμάχια Ποσοστό επί της πώλησης
1 - 20 0,20%
21 - 50 0,25%
51 - 100 0,30%
> 100 0,40%

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

Αλγόριθμος παιχνιδομηχανή
   ! Η εκφώνηση μας ζητάει να διαβάσουμε τα τεμάχια που πούλησε ο πωλητής
   Διάβασε τεμάχια
 
   ! Σε αυτά τα τεμάχια, αντιστοιχούν κάποια έσοδα. Υπολόγισέ τα.
   πωλήσεις <- τεμάχια * 150
 
   ! Υπολογισμός προμήθειας κλιμακωτά
   Αν τεμάχια <= 20 τότε
      προμήθεια <- πωλήσεις * 0,2/100
   Αλλιώς_αν τεμάχια <= 50 τότε
      προμήθεια <- 20 * 0,2/100 + (πωλήσεις - 20) * 0,25/100
   Αλλιώς_αν τεμάχια <= 100 τότε
      προμήθεια <- 20 * 0,2/100 + (50 - 20) * 0,25/100 + (πωλήσεις - 50) * 0,3/100
   Αλλιώς
      προμήθεια <- 20 * 0,2/100 + (50 - 20) * 0,25/100 + (100 - 50) * 0,3/100 + (πωλήσεις - 100) * 0,4/100
   Τέλος_αν
 
   Εμφάνισε "Η συνολική προμήθεια για την πώληση ", τεμάχια," τεμαχίων είναι ", προμήθεια, " ευρώ"
Τέλος παιχνιδομηχανή

Άσκηση 6
Να μετατρέψετε τα παρακάτω τμήματα προγράμματος σε ισοδύναμα τα οποία δεν θα χρησιμοποιούν λογικούς τελεστές

τμήμα 1

ΑΝ x > 0 ΚΑΙ y > 3 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΤΕΛΟΣ_ΑΝ

Ο λογικός τελεστής ΚΑΙ ισοδυναμεί σε εμφωλευμένη ΑΝ

ΑΝ x > 0 ΤΟΤΕ
  ΑΝ y > 3 ΤΟΤΕ
    ΓΡΑΨΕ x, y
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ

τμήμα 2

ΑΝ x > 0 Η y > 42 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΤΕΛΟΣ_ΑΝ

Ο λογικός τελεστής Η ισοδυναμεί σε ΑΝ…ΑΛΛΙΩΣ_ΑΝ

ΑΝ x > 0 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΑΛΛΙΩΣ_ΑΝ y > 42 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΤΕΛΟΣ_ΑΝ

τμήμα 3

ΑΝ x > 0 ΚΑΙ y > 3 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΑΛΛΙΩΣ
  x <- x + 3
ΤΕΛΟΣ_ΑΝ

Αφού μία ΚΑΙ αντιστοιχεί σε εμφωλευμένες ΑΝ, το ΑΛΛΙΩΣ θα πρέπει να πηγαίνει σε όλες τις ΑΝ

ΑΝ x > 0 ΤΟΤΕ
  ΑΝ y > 3 ΤΟΤΕ
    ΓΡΑΨΕ x, y
  ΑΛΛΙΩΣ
    x <- x + 3
  ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
  x <- x + 3
ΤΕΛΟΣ_ΑΝ

τμήμα 4

ΑΝ x > 0 Η y > 42 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΑΛΛΙΩΣ
  x <- x + 3
ΤΕΛΟΣ_ΑΝ
ΑΝ x > 0 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΑΛΛΙΩΣ_ΑΝ y > 42 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΑΛΛΙΩΣ
  x <- x + 3
ΤΕΛΟΣ_ΑΝ

τμήμα 5

ΑΝ OXI(x > 17 Η y > 43) ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΤΕΛΟΣ_ΑΝ

Μετατροπή της συνθήκης σε ισοδύναμη χωρίς ΟΧΙ: x <= 17 KAI y <= 43

ΑΝ x <= 17 ΤΟΤΕ
  ΑΝ y <= 43 ΤΟΤΕ
    ΓΡΑΨΕ x, y
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ

τμήμα 6

ΑΝ OXI(x <> 0 ΚΑΙ y > 4) ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΤΕΛΟΣ_ΑΝ

Μετατροπή της συνθήκης σε ισοδύναμη χωρίς ΟΧΙ: x = 0 H y <= 4

ΑΝ x = 0 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΑΛΛΙΩΣ_ΑΝ y <= 4 ΤΟΤΕ
  ΓΡΑΨΕ x, y
ΤΕΛΟΣ_ΑΝ

τμήμα 7

ΑΝ x > 7 Η (y > 4 ΚΑΙ z < 2) ΤΟΤΕ
  ΓΡΑΨΕ x, y, z
ΤΕΛΟΣ_ΑΝ

Συνδυασμός των παραπάνω

ΑΝ x > 0 ΤΟΤΕ
  ΓΡΑΨΕ x, y, z
ΑΛΛΙΩΣ_ΑΝ y > 4 ΤΟΤΕ
  ΑΝ z < 2 ΤΟΤΕ
    ΓΡΑΨΕ x, y, z
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ