Προβλήματα στη Δομή Επανάληψης

Άσκηση 1
Να γίνει αλγόριθμος που να εμφανίζει όλους τους αριθμούς από το 1 έως το 100 που έχουν ακριβώς 5 διαιρέτες.

Αλγόριθμος Διαιρέτες
   ! Ψάξε όλους τους υποψήφιους αριθμούς από το 1 μέχρι το 100...
   Για x από 1 μέχρι 100
      ! Για κάθε αριθμό x βρες το πλήθος των διαιρετών
      πλήθος_διαιρετών <- 0
      Για y από 1 μέχρι x
         Αν x mod y = 0 τότε
               πλήθος_διαιρετών <- πλήθος_διαιρετών + 1
         Τέλος_αν
      Τέλος_επανάληψης
      ! Αν το πλήθος διαιρετών του αριθμού x είναι 5, εμφάνισε τον αριθμό x
      Αν πλήθος_διαιρετών = 5 τότε
         Εμφάνισε x
      Τέλος_αν
   Τέλος_επανάληψης
Τέλος Διαιρέτες

Άσκηση 2
Σε μια πιτσαρία η χρέωση της πίτσας που θα παραγγείλετε εξαρτάται από τα υλικά που θα βάλετε, σύμφωνα με τον παρακάτω πίνακα:

Πίτσα (κασέρι)5 €
Τυρί (φέτα)1 €
Ντομάτα0,50 €
Μανιτάρια0,50 €
Πιπεριές0,50 €
Καλαμπόκι0,20 €
Ελιές0,20 €

Να γίνει πρόγραμμα που θα ζητάει από το χρήστη

  • Πόσες πίτσες θέλει να παραγγείλει
  • Για κάθε μία ποια υλικά επιθυμεί. (δλδ θα ρωτάει τον χρήστη ποιο υλικό επιθυμεί και μετά αν έχει τελειώσει την παραγγελία)
  • Να υπολογίζει την συνολική χρέωση

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

Παράδειγμα:
Πόσες πίτσες θα παραγγείλετε; 
2
Πίτσα #1
Θέλετε κάποιο υλικό ? 
ΝΑΙ
Εισάγετε το υλικό:
Μανιτάρια
Θέλετε κάποιο άλλο υλικό ?
ΟΧΙ
Πίτσα #2 
Θέλετε κάποιο υλικό ?
ΝΑΙ
Εισάγετε το υλικό:
Ντομάτα
Θέλετε κάποιο άλλο υλικό ?
ΝΑΙ
Εισάγετε το υλικό:
ελιές
Θέλετε κάποιο άλλο υλικό ?
ΟΧΙ
Η συνολική σας χρέωση είναι 11,20 ευρώ
ΠΡΟΓΡΑΜΜΑ πίτσα
ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ: i, τμχ
   ΠΡΑΓΜΑΤΙΚΕΣ: ποσό
   ΧΑΡΑΚΤΗΡΕΣ: απάντηση, υλικό
ΑΡΧΗ
   ! Αρχικά μηδενίζουμε το πληρωτέο ποσό
   ποσό <- 0
 
   ΓΡΑΨΕ 'Πόσες πίτσες θα παραγγείλετε;'
   ΔΙΑΒΑΣΕ τμχ
 
   ! Ξεκινάμε μια επανάληψη τόσες φορές όσες είναι και οι πίτσες. 
   ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ τμχ
 
      ! Κάθε πίτσα κοστίζει 5 ευρώ. Επομένως αύξησε το πληρωτέο ποσό κατά 5
      ποσό <- ποσό + 5
      ΓΡΑΨΕ 'Πίτσα #', i
 
      ΓΡΑΨΕ 'Θέλετε κάποιο υλικό;'
      ΔΙΑΒΑΣΕ απάντηση
      ! Ξεκίνα μια δεύτερη επανάληψη για τα υλικά της κάθε πίτσας
      ! Ο αριθμός των υλικών είναι άγνωστος, για το λόγο ΔΕΝ χρησιμοποιώ εντολή ΓΙΑ
      ΟΣΟ απάντηση <> 'ΟΧΙ' ΕΠΑΝΑΛΑΒΕ
         ΓΡΑΨΕ 'Εισαγετε το υλικό:'
         ΔΙΑΒΑΣΕ υλικό
         ! Ανάλογα με το υλικό που διαβάσαμε, αυξάνουμε το πληρωτέο ποσό
         ΕΠΙΛΕΞΕ υλικό
         ΠΕΡΙΠΤΩΣΗ 'τυρί'
            ποσό <- ποσό + 1
         ΠΕΡΙΠΤΩΣΗ 'ντομάτα', 'πιπεριές', 'μανιτάρια' 
            ποσό <- ποσό + 0,50
         ΠΕΡΙΠΤΩΣΗ 'καλαμπόκι', 'ελιές'
            ποσό <- ποσό + 0,20
         ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
 
         ΓΡΑΨΕ 'Θέλετε κάποιο άλλο υλικό;'
         ΔΙΑΒΑΣΕ απάντηση
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 
   ΓΡΑΨΕ 'Η συνολική σας χρέωση είναι ', ποσό, ' ευρώ'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Άσκηση 3
Να γίνει αλγόριθμος, πυ θα διαβάζει μία πρόταση, χαρακτήρα προς χαρακτήρα, και θα εμφανίζει:

  • Πόσοι πεζοί χαρακτήρες εισήχθησαν
  • Πόσοι κεφαλαίοι χαρακτήρες εισήχθησαν
  • Πόσοι αριθμοί εισήχθησαν

Μια πρόταση τελειώνει όταν ο χρήστης καταχωρήσει τον χαρακτήρα ‘.’

Αλγόριθμος πρόταση
   πεζά <- 0
   κεφαλαία <- 0
   αριθμοί <- 0
   Αρχή_επανάληψης
      Διάβασε χαρακτήρας
      Αν χαρακτήρας >= "Α" ΚΑΙ χαρακτήρας <= "Ω" τότε
         κεφαλαία <- κεφαλαία + 1
      Αλλιώς_αν χαρακτήρας >= "α" ΚΑΙ χαρακτήρας <= "ω" τότε
         πεζά <- πεζά + 1
      Αλλιώς_αν χαρακτήρας >= "0" ΚΑΙ χαρακτήρας <= "9" τότε
         αριθμοί <- αριθμοί + 1
      Τέλος_αν
   Μέχρις_ότου χαρακτήρας = "."
   Εμφάνισε κεφαλαία, πεζά, αριθμοί
Τέλος πρόταση

6 σχόλια για το άρθρο “Προβλήματα στη Δομή Επανάληψης

  • 12/04/2011 at 23:37
    Permalink

    καλησπερα, εβαλα την ασκηση 2 (προγραμμα πιτσα) στη γλωσσομαθεια…το εκανα αντιγραφη-επικολληση αλλα μου βγαζει στη γραμμη 8 «αγνωστη εντολη»…μηπως υπαρχει καπου ενα λαθος και δεν το βλεπω?

  • 13/04/2011 at 00:15
    Permalink

    Νομίζω ότι η εντολή εκχώρησης στην Γλωσσομάθεια δεν είναι το κλασικό <- αλλά το <– (πρόσεξε τις δύο παύλες) κατά τα άλλα, μόλις το δοκίμασα και τρέχει κανονικά

  • 10/12/2015 at 22:48
    Permalink

    Καλησπέρα… για το σημείο των υλικών στην άσκηση με τις πίτσες πιστεύω ,αν κι ο καθενας μπορει να βολευεται αλλιως, οτι ειναι πιο συντομο το παρακάτω:

    ΑΝ ΥΛΙΚΟ = «Τυρί» ΤΟΤΕ
    ΠΟΣΟ <- ΠΟΣΟ +
    ΑΛΛΙΩΣ_ΑΝ ΥΛΙΚΟ = «Ντομάτα» ή ΥΛΙΚΟ = «Μανιτάρια» ΤΟΤΕ
    ΠΟΣΟ <- ΠΟΣΟ + 0.50
    ΑΛΛΙΩΣ_ΑΝ ΥΛΙΚΟ = ¨Καλαμπόκι» ή ΥΛΙΚΟ = «Ελιές» ΤΟΤΕ
    ΠΟΣΟ <- ΠΟΣΟ + 0.20
    ΤΕΛΟΣ_ΑΝ

  • 10/12/2015 at 23:36
    Permalink

    ΓΙΑ ΤΗΝ ΑΣΚΗΣΗ 6 ΕΚΑΝΑ ΜΙΑ ΜΙΚΡΗ ΔΙΑΦΟΡΑ
    ΑΛΓΟΡΙΘΜΟΣ ΠΛΗΘΥΣΜΟΣ
    ΠΛΗΘΥΣΜΟΣ_Α <- 30000
    ΠΛΗΘΥΣΜΟΣ_Β <- 45000
    ΧΡΟΝΟΣ <- 2015
    ΟΣΟ ΠΛΗΘΥΣΜΟΣ_Α < ΠΛΗΘΥΣΜΟΣ_Β ΕΠΑΝΕΛΑΒΕ
    ΠΛΗΘΥΣΜΟΣ_Α <- ΠΛΗΘΥΣΜΟΣ_Α * 0.03
    ΠΛΗΘΥΣΜΟΣ_Β <- ΠΛΗΘΥΣΜΟΣ_Β * 0.01
    Χ <- ΧΡΟΝΟΣ + 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΧΡΟΝΙΑ <- Χ – ΧΡΟΝΟΣ
    ΓΡΑΨΕ "Η Α ΞΕΠΕΡΝΑΕΙ ΤΗΝ Β ΣΕ", ΧΡΟΝΙΑ ,"ΧΡΟΝΙΑ."
    ΓΡΑΨΕ "ΔΗΛΑΔΗ ΤΟΝ ΧΡΟΝΟ", Χ
    ΤΕΛΟΣ ΠΛΗΘΥΣΜΟΣ

  • 17/07/2016 at 22:55
    Permalink

    Η άσκηση 4 χρησιμοποιεί brute force ενώ υπάρχει πολύ πιο απλή λύση σε μόλις 90300 επαναλήψεις. Εσείς τρεχετε 94 εκατομύρια περίπου… (ακόμη δεν έχει βρει τη λύση αλλά λογικά κάπου εκεί υπολογίζω ότι θα το βρει) .

  • 17/07/2016 at 23:41
    Permalink

    @Γεώργιος Γ
    Ναι, χρησιμοποιεί περιττές επαναλήψεις. Σκοπός της άσκησης δεν είναι να διδάξει τον βέλτιστο τρόπο, αλλά δομή επανάληψης.

Αφήστε μια απάντηση

Η ηλ. διεύθυνσή σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *