ΑΣΚΗΣΗ ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ

Ξεκίνησε από dionmiha, 06 Οκτ 2013, 01:06:14 ΜΜ

« προηγούμενο - επόμενο »

Συνδεδεμένες εκδηλώσεις

dionmiha

Καλησπερα,

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

Ευχαριστώ.

Στο υπεραστικό λεοφωρείο του ΚΤΕΛ υπάρχουν πέντε κατηγορίες εισιτηρίων: Πολύτεκνο (Π), Αναπηρικό(Α), Στρατιωτικό(Σ), Φοιτητικό(Φ), και Κανονικό (Κ). οι δύο πρώτες κατηγορίες πληρώνουν το 50% της αξίας του κανονικού εισιτηρίου. Η Τρίτη και τέταρτη κατηγορία έχουν έκπτωση 25%, ενώ η τελευταία κατηγία πληρώνει ολόκληρη την αξία του εισιτηρίου.
Να γραφεί αλγόριθμος που για ένα λεωφορείο 50 θέσεων θα διαβάζει το αντίτιμο του ολόκληρου εισιτηρίου της διαδρομής που ακολουθεί καθένας από τους επιβάτες του λεοφωρείου καθώς και την κατηγορία κάθε επιβάτη και:
Α. θα εμφανίζει για κα΄θε επιβάτη τα χρήματα που πρέπει να πληρώσει
Β. θα εμφανίζει τα συνολικά χρήματα που έχουν εισπραχθεί (Εγω έβαλα και το πλήθος των θέσεων που καλύπτονται)
Ο αλγόριθμος θα τερματίζει όταν δοθεί ως κατηγορία το γράμμα Λ ή όταν το λεοφωρείο γεμίζει



Αλγόριθμος ΚΤΕΛ

Ι ← 0
ΣΥΝΟΛΟ_ΧΡΗΜΑΤΩΝ ← 0
Αρχή_επανάληψης
  Ι ← Ι + 1
  Εμφάνισε "ΔΩΣΕ ΜΟΥ ΚΑΤΗΓΟΡΙΑ ΕΠΙΒΑΤΗ"
  Διάβασε ΚΑΤΗΓΟΡΙΑ
  Αν ΚΑΤΗΓΟΡΙΑ = "Π" ή ΚΑΤΗΓΟΡΙΑ = "Α" τότε
    Εμφάνισε "ΔΩΣΕ ΜΟΥ ΤΗ ΤΙΜΗ ΤΟΥ ΑΝΤΙΣΤΟΙΧΟΥ ΕΙΣΙΤΗΡΙΟΥ"
    Διάβασε ΑΡΧΙΚΗ_ΤΙΜΗ
    ΕΚΠΤΩΣΗ ← ΑΡΧΙΚΗ_ΤΙΜΗ*(50/100)
    ΕΙΣΙΤΗΡΙΟ ← ΑΡΧΙΚΗ_ΤΙΜΗ - ΕΚΠΤΩΣΗ
  αλλιώς_αν ΚΑΤΗΓΟΡΙΑ = "Σ" ή ΚΑΤΗΓΟΡΙΑ = "Φ" τότε
    Εμφάνισε "ΔΩΣΕ ΜΟΥ ΤΗ ΤΙΜΗ ΤΟΥ ΑΝΤΙΣΤΟΙΧΟΥ ΕΙΣΙΤΗΡΙΟΥ"
    Διάβασε ΑΡΧΙΚΗ_ΤΙΜΗ
    ΕΚΠΤΩΣΗ ← ΑΡΧΙΚΗ_ΤΙΜΗ*(25/100)
    ΕΙΣΙΤΗΡΙΟ ← ΑΡΧΙΚΗ_ΤΙΜΗ - ΕΚΠΤΩΣΗ
  αλλιώς_αν ΚΑΤΗΓΟΡΙΑ = "Κ" τότε
    Εμφάνισε "ΔΩΣΕ ΜΟΥ ΤΗ ΤΙΜΗ ΤΟΥ ΑΝΤΙΣΤΟΙΧΟΥ ΕΙΣΙΤΗΡΙΟΥ"
    Διάβασε ΑΡΧΙΚΗ_ΤΙΜΗ
    ΕΙΣΙΤΗΡΙΟ ← ΑΡΧΙΚΗ_ΤΙΜΗ
  αλλιώς_αν ΚΑΤΗΓΟΡΙΑ = "Λ" τότε
    Εμφάνισε " ΤΟ ΠΡΟΓΡΑΜΜΑ ΤΕΡΜΑΤΙΖΕΙ"
    Ι ← Ι - 1
    ΕΙΣΙΤΗΡΙΟ ← 0
  αλλιώς
    Εμφάνισε "ΔΩΣΕ ΕΓΚΥΡΟ ΓΡΑΜΜΑ"
    ΕΙΣΙΤΗΡΙΟ ← 0
    Ι ← Ι - 1
  Τέλος_αν
  ΣΥΝΟΛΟ_ΧΡΗΜΑΤΩΝ ← ΣΥΝΟΛΟ_ΧΡΗΜΑΤΩΝ + ΕΙΣΙΤΗΡΙΟ
Μέχρις_ότου (ΚΑΤΗΓΟΡΙΑ = "Λ" ή Ι = 50)

Εμφάνισε "ΟΙ ΣΥΝΟΛΙΚΕΣ ΕΙΣΠΡΑΞΕΙΣ ΤΟΥ ΛΕΟΦΩΡΕΙΟΥ ΕΙΝΑΙ: ", ΣΥΝΟΛΟ_ΧΡΗΜΑΤΩΝ
Εμφάνισε "ΟΙ ΣΥΝΟΛΙΚΕΣ ΘΕΣΕΙΣ ΕΙΝΑΙ: ", Ι
Τέλος ΚΤΕΛ


Περιμένω απαντήσεις σας.
Ευχαριστώ !!

petrosp13

Η λύση σου είναι σωστή
Απλά έχεις κάνει διάφορα πράγματα που δεν προβλέπονται από την εκφώνηση
Μην ασχολείσαι με πράγματα που δεν ορίζονται από την εκφώνηση
Για Πανελλαδικές πάντα, γενικότερα κάνε ό,τι θέλεις
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

dionmiha

Ευχαριστώ πολυ για την αμεση ανταπόκριση,

Και έχω μια ερώτηση ακόμα. Αν εξαιρέσουμε το ότι έβαλα να εμφανίζει και το πλήθος των επιβατών (οπότε κάποιες εντολές παραλείπονται) και πάρουμε την αρχική άσκηση ως έχει, για τις πανελαδικες μιλάμε πάντα.  Θεωρείται πλήρες ο αλγόριθμος αν  πάρει τις περιπτώσεις των κατηγοριών και στη τελευταία επιλογή "Αλλιώς" να πάρει  τη Κατηγορία του ολόκληρου εισιτηρίου?? Δηλαδή είναι περιττό (με την έννοια ότι δεν χρειάζεται στα πλαίσια της εξεταστέας ύλης) να μην πάρουμε την περίπτωση,  που κάποιος πληκτρολογήσει λάθος σύμβολο τι θα κάνει ο αλγόριθμος??? Η άσκηση δεν το λέει και δεν το διευκρινίζει , εμείς όμως? Οφείλουμε να εξηγήσουμε και αυτή τη περίπτωση στα παιδιά?

petrosp13

Δεν χρειάζεται να κάνεις οτιδήποτε που δεν το λαμβάνει υπόψιν η εκφώνηση
Εφόσον η εκφώνηση δεν λέει να ελέγξεις την είσοδο του χρήστη, δεν θα το κάνεις
Και είναι προτιμότερος ο έλεγχος εγκυρότητας με δομή επανάληψης...
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

dionmiha

Απλά ξέρεις τι γίνεται? Υπάρχουν κάποιες εκφωνήσεις που βλέπω να αφήνουν, ας το πούμε  "προγραμματιστικά κενά".....Και πολλές φορες μπαίνω σε ανάλογες σκέψεις,  εκτός του πως θα λυθεί, αλλά και κατά πόσο πρέπει να αναλύσω μια άσκηση για τις ανάγκες της ύλης του Λυκείου για να μην αφήσω κενά. Πρώτη φορά διδάσκω το μάθημα οπότε καταλαβαίνεις....Άγχος!!  :D

Ευχαριστώ και πάλι!

tdrivas

Στις εξετάσεις η άσκηση θα ορίζει ότι τα δεδομένα εισόδου είτε πληκτρολογούνται σωστά, είτε πρέπει να ελεγχθούν...
Thanassis Drivas
BSc in Computer Science
MSc in Space Science Applications and Technologies
https://github.com/tdrivas