η πληροφορικη

στην εκπαιδευση


Υλικό για μαθητές και εκπαιδευτικούς

Ασκήσεις

9ο Κεφάλαιο (Πίνακες) - άσκηση 3: Λαχειοφόρος

ΕΚΦΩΝΗΣΗ

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

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

Β. θα διαβάζει το πλήθος των λαχνών που επιθυμεί να αγοράσει. Πρέπει να πραγματοποιείται έλεγχος δεδομένων ώστε οι λαχνοί που αγοράζονται να είναι διαθέσιμοι. Η επαναληπτική διαδικασία προφανώς συνεχίζεται μέχρι να εξαντληθούν οι λαχνοί.

Γ. Για κάθε λαχνό που αγοράζεται να διαβάζει τον κωδικό του και να δημιουργούνται παράλληλοι πίνακες Ο και Κ που θα περιέχουν για κάθε λαχνό το όνομα του κατόχου του και τον κωδικό αντίστοιχα.

Δ. Θα διαβάζει τον κωδικό του λαχνού που κληρώθηκε και θα εκτυπώνει το όνομα του νικητή.

 

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ Λαχειοφόρος

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: μ, λαχνοί, αγορά, i, pos
  ΧΑΡΑΚΤΗΡΕΣ: όνομα, Ο[1000], κωδικός, Κ[1000]
  ΛΟΓΙΚΕΣ: done
ΑΡΧΗ
  μ <- 0
  λαχνοί <- 10
  ΟΣΟ λαχνοί > 0 ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ 'Δώσε όνομα αγοραστή: '
    ΔΙΑΒΑΣΕ όνομα
    ΓΡΑΨΕ 'Διαθέσιμοι λαχνοί:', λαχνοί
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Πόσους λαχνούς θέλεις να αγοράσεις?'
      ΔΙΑΒΑΣΕ αγορά
    ΜΕΧΡΙΣ_ΟΤΟΥ αγορά > 0 ΚΑΙ αγορά <= λαχνοί
    ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ αγορά
      ΓΡΑΨΕ 'Δώσε κωδικό:'
      ΔΙΑΒΑΣΕ κωδικός
      μ <- μ + 1
      Κ[μ] <- κωδικός
      Ο[μ] <- όνομα
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    λαχνοί <- λαχνοί - αγορά
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Δώσε Κωδικό που κερδίζει!!!'
  ΔΙΑΒΑΣΕ κωδικός
                      ! ...σειριακή αναζήτηση στον πίνακα Κ με κλειδί το κωδικός
  done <- ΨΕΥΔΗΣ
  i <- 1
  pos <- 0
  ΟΣΟ (done = ΨΕΥΔΗΣ) ΚΑΙ i <= μ ΕΠΑΝΑΛΑΒΕ
    ΑΝ Κ[i] = κωδικός ΤΟΤΕ
      done <- ΑΛΗΘΗΣ
      pos <- i
    ΑΛΛΙΩΣ
      i <- i + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΑΝ done = ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'Κέρδισε ο/η ',Ο[pos]
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Δεν υπάρχει τέτοιος αγοραστής'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Λαχειοφόρος

 

Σημείωση

Η παραπάνω λύση είναι για 10 λαχνούς