Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Δομή επιλογής => Μήνυμα ξεκίνησε από: sarantop στις 06 Δεκ 2009, 05:45:02 ΜΜ

Τίτλος: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
Αποστολή από: sarantop στις 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)*ΗΜΕΡ
  ΓΡΑΨΕ ΠΟΣΟ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΞΕΝΟΔΟΧΕΙΟ
Τίτλος: Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
Αποστολή από: gthal στις 07 Δεκ 2009, 02:00:32 ΠΜ
Ωραία άσκηση,
αν και μάλλον δύσκολη (?)

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

   Τ← ΠΛ div 3
   ΥΠΟΛ← ΠΛ mod 3
   Αν ΥΠΟΛ=1 τότε
      Τ← Τ-1
      ΥΠΟΛ← ΥΠΟΛ+3
   Τέλος_αν
   Δ← ΥΠΟΛ  div 2 + 1
Τίτλος: Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
Αποστολή από: evry στις 07 Δεκ 2009, 08:29:21 ΠΜ
Μια και χρησιμοποιούμε div/mod ας τα χρησιμοποιήσουμε στο έπακρον  >:D

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

  Επειδή βιάζομαι (είναι και πρωί) μπορεί κάτι να μου ξέφυγε, αλλά γενικά νομίζω δουλεύει
Τίτλος: Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
Αποστολή από: gthal στις 07 Δεκ 2009, 10:22:41 ΠΜ
χα χα !  ωραίος!
δουλεύει, αν    Τ <- ΠΛ div 3 - (ΠΛ mod 3) mod 2
(το Δ ομολογώ δεν καταλαβαίνω πώς και γιατί   :)  )

Τίτλος: Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
Αποστολή από: evry στις 07 Δεκ 2009, 04:32:08 ΜΜ

  Βασικά παρατηρώ ότι όταν ΠΛ mod 3 = 1 θέλω να είναι 2 και όταν  ΠΛ mod 3 = 2 θέλω να είναι 1, οπότε από εκεί η παράσταση που ψάχνω είναι η (3 - ΠΛ mod 3). Το πρόβλημα εδώ είναι πως αν το ΠΛ mod 3 = 0 κάνει 3 που δεν το θέλω, εκεί θέλω να κάνει 0. Οπότε τι καλύτερο από το να βάλω mod 3.
Τίτλος: Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
Αποστολή από: sarantop στις 08 Δεκ 2009, 11:14:54 ΠΜ
Ευχαριστώ και τους 2 σας. Τη λύση του Γιώργου την προτιμώ κυρίως για το πρόβλημα με το ΑΤΜ (κάθε ποσό<>30 να δίνεται με 50€ και 20€ μόνο ).
Κάνω μεγάλη υπόκλιση στον Ευριπίδη και δεν κρύβω ότι θα ήθελα από κάποιον αυτή την απάντηση όταν ανέβασα την άσκηση!!!!
Τίτλος: Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
Αποστολή από: terzantonis στις 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

Τίτλος: Απ: ΑΣΚΗΣΗ ΓΙΑ DIV KAI MOD
Αποστολή από: elenitaaaaa στις 22 Σεπ 2011, 12:25:26 ΠΜ
μια απορια... το  "Τ← ΠΛ div ΤΡΙΚ"    αν ειχε δοθει στο ΤΡΙΚ η τιμη 3, ισχυει??