Αποστολέας Θέμα: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD  (Αναγνώστηκε 4424 φορές)

sarantop

  • Οπαδός
  • **
  • Μηνύματα: 13
ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
« στις: 06 Δεκ 2009, 05:45:02 μμ »
ΜΙΑ ΑΣΚΗΣΗ ΠΟΥ ΛΥΝΩ ΓΙΑ  ΤΟΥΣ ΤΕΛΕΣΤΕΣ DIV ΚΑΙ ΜΟD:

Ομάδα μαθητών στα πλαίσια κάποιας περιβαλλοντικής εκδρομής θα διαμείνει σε ξενοδοχείο. Η ομάδα μπορεί να αποτελείται από 2 καθηγητές και από 4 μέχρι και 15 μαθητές. Το ξενοδοχείο έχει δίκλινα και τρίκλινα δωμάτια. Στο δίκλινο η διανυκτέρευση κοστίζει 70€ ενώ στο  τρίκλινο 90€. Για την κατανομή των μαθητών στα δωμάτια ισχύουν τα εξής:
Οι συνοδοί καθηγητές καταλαμβάνουν 1 δίκλινο. Οι μαθητές καταλαμβάνουν όσο το δυνατόν περισσότερα τρίκλινα. Επίσης  ποτέ δεν μένει κάποιος  μαθητής μόνος του σε ένα δίκλινο. (πχ.  7 μαθητές κατανέμονται σε 1 τρικλ. και 2 δικλ. ενώ οι 8 σε 2 τρικλ και 1 δικλ ).
Να γραφεί αλγόριθμος που θα διαβάζει πόσα βράδια θέλει να μείνει η ομάδα και το πλήθος των μαθητών που την  αποτελούν. Αν το πλήθος των μαθητών δεν είναι σωστό να εκτυπώνεται  μήνυμα λάθους και ο αλγόριθμος να σταματά. Ο αλγόριθμος να υπολογίζει και να εκτυπώνει το ποσό που θα πληρώσει η ομάδα .

Η ΛΥΣΗ ΠΟΥ ΔΙΝΩ ΓΙΑ ΤΙΣ 3 ΠΕΡΙΠΤΩΣΕΙΣ ΥΠΟΛΟΙΠΟΥ ΣΤΗΝ ΑΚΕΡΑΙΑ ΔΙΑΙΡΕΣΗ ΜΕ ΤΟ 3 ΕΙΝΑΙ

ΠΡΟΓΡΑΜΜΑ ΞΕΝΟΔΟΧΕΙΟ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΠΛ, Τ, Δ, ΗΜΕΡ
  ΠΡΑΓΜΑΤΙΚΕΣ: ΠΟΣΟ
ΑΡΧΗ

  ΔΙΑΒΑΣΕ ΠΛ, ΗΜΕΡ
 
  ΑΝ ΠΛ MOD 3 = 0 ΤΟΤΕ
    Τ <- ΠΛ DIV 3
    Δ <- 0
  ΑΛΛΙΩΣ_ΑΝ ΠΛ MOD 3 = 1 ΤΟΤΕ
    Τ <- ΠΛ DIV 3 - 1
    Δ <- 2
  ΑΛΛΙΩΣ
    Τ <- ΠΛ DIV 3
    Δ <- 1
  ΤΕΛΟΣ_ΑΝ
  Δ <- Δ + 1
  ΠΟΣΟ <- (Τ*90 + Δ*70)*ΗΜΕΡ
  ΓΡΑΨΕ ΠΟΣΟ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΞΕΝΟΔΟΧΕΙΟ

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 891
Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
« Απάντηση #1 στις: 07 Δεκ 2009, 02:00:32 πμ »
Ωραία άσκηση,
αν και μάλλον δύσκολη (?)

να προτείνω και έναν άλλο τρόπο υπολογισμού των δωματίων?

   Τ← ΠΛ div 3
   ΥΠΟΛ← ΠΛ mod 3
   Αν ΥΠΟΛ=1 τότε
      Τ← Τ-1
      ΥΠΟΛ← ΥΠΟΛ+3
   Τέλος_αν
   Δ← ΥΠΟΛ  div 2 + 1
Φιλικά,
Γιώργος Θαλασσινός

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3147
  • to Iterate is human to Recurse divine
Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
« Απάντηση #2 στις: 07 Δεκ 2009, 08:29:21 πμ »
Μια και χρησιμοποιούμε div/mod ας τα χρησιμοποιήσουμε στο έπακρον  >:D

ΑΡΧΗ
  ΔΙΑΒΑΣΕ ΠΛ, ΗΜΕΡ
  Τ <- ΠΛ div 3 + (ΠΛ mod 3) mod 2
  Δ <- 1 + (3 - ΠΛ mod 3) mod 3
  ΠΟΣΟ <- (Τ*90 + Δ*70)*ΗΜΕΡ
  ΓΡΑΨΕ ΠΟΣΟ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΞΕΝΟΔΟΧΕΙΟ

  Επειδή βιάζομαι (είναι και πρωί) μπορεί κάτι να μου ξέφυγε, αλλά γενικά νομίζω δουλεύει
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 891
Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
« Απάντηση #3 στις: 07 Δεκ 2009, 10:22:41 πμ »
χα χα !  ωραίος!
δουλεύει, αν    Τ <- ΠΛ div 3 - (ΠΛ mod 3) mod 2
(το Δ ομολογώ δεν καταλαβαίνω πώς και γιατί   :)  )

Φιλικά,
Γιώργος Θαλασσινός

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3147
  • to Iterate is human to Recurse divine
Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
« Απάντηση #4 στις: 07 Δεκ 2009, 04:32:08 μμ »

  Βασικά παρατηρώ ότι όταν ΠΛ mod 3 = 1 θέλω να είναι 2 και όταν  ΠΛ mod 3 = 2 θέλω να είναι 1, οπότε από εκεί η παράσταση που ψάχνω είναι η (3 - ΠΛ mod 3). Το πρόβλημα εδώ είναι πως αν το ΠΛ mod 3 = 0 κάνει 3 που δεν το θέλω, εκεί θέλω να κάνει 0. Οπότε τι καλύτερο από το να βάλω mod 3.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

sarantop

  • Οπαδός
  • **
  • Μηνύματα: 13
Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
« Απάντηση #5 στις: 08 Δεκ 2009, 11:14:54 πμ »
Ευχαριστώ και τους 2 σας. Τη λύση του Γιώργου την προτιμώ κυρίως για το πρόβλημα με το ΑΤΜ (κάθε ποσό<>30 να δίνεται με 50€ και 20€ μόνο ).
 Κάνω μεγάλη υπόκλιση στον Ευριπίδη και δεν κρύβω ότι θα ήθελα από κάποιον αυτή την απάντηση όταν ανέβασα την άσκηση!!!!

terzantonis

  • Θαμώνας
  • ***
  • Μηνύματα: 21
Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
« Απάντηση #6 στις: 04 Σεπ 2011, 02:31:01 πμ »
Καλησπέρα κι από μένα,
Πραγματικά πολύ ωραία άσκηση και ακόμα πιο ωραία η λύση του Ευριπίδη!
Μια επισήμανση μονάχα. Επικεντρωνόμαστε στο έξυπνο κομμάτι της άσκησης και παραμερίζουμε το απλό...
η εκφώνηση αναφέρει :
"..Αν το πλήθος των μαθητών δεν είναι σωστό να εκτυπώνεται  μήνυμα λάθους και ο αλγόριθμος να σταματά..."
Κι επειδή τα δεδομένα μας λένε ότι :
"Η ομάδα μπορεί να αποτελείται από 2 καθηγητές και από 4 μέχρι και 15 μαθητές."
Αρκεί να βάλουμε σε ένα έλεγχο τις λύσεις που παρουσιάσατε σε 2 εκδοχές.
Η λαϊκή λύση η δική μου είναι η εξής (τεσταρισμένη όχι εξονυχιστικά στο pseudoglossa.gr):
Κώδικας: [Επιλογή]
Αλγόριθμος Diamoni
Εμφάνισε 'Dose ari8mo ma8iton:'
Διάβασε ma8ites
Εμφάνισε 'Dose ari8mo dianyxtereyseon:'
Διάβασε dianyxt
Αν ma8ites>=4 και ma8ites<=15 τότε
trikl← ma8ites div 3
dikl← 1
Αν (ma8ites mod 3)=1 τότε
trikl← trikl-1
dikl← 3
αλλιώς_αν (ma8ites mod 3)=2 τότε
dikl← 2
Τέλος_αν
Εμφάνισε 'Apaitountai ', dikl, 'diklina kai ', trikl, 'triklina'
kostos← dianyxt* (dikl*70 + trikl*90)
Εμφάνισε 'To kostos ths diamonhs ths omadas einai ', kostos, 'euro'
αλλιώς
Εμφάνισε 'to pli8os ton ma8iton einai la8os!'
Τέλος_αν
Τέλος Diamoni

elenitaaaaa

  • Βετεράνος
  • ****
  • Μηνύματα: 90
Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
« Απάντηση #7 στις: 22 Σεπ 2011, 12:25:26 πμ »
μια απορια... το  "Τ← ΠΛ div ΤΡΙΚ"    αν ειχε δοθει στο ΤΡΙΚ η τιμη 3, ισχυει??