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

Γενικό Λύκειο => Γ΄ Λυκείου => Θεωρία => Μήνυμα ξεκίνησε από: landreou στις 12 Απρ 2013, 11:14:36 ΠΜ

Τίτλος: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: landreou στις 12 Απρ 2013, 11:14:36 ΠΜ
Γεια σας.

Εχω μια άσκηση που δεν ξέρω τι να κανω πραγματικα.
Ετσι οπως ειναι τα ερωτηματα δε με οδηγουν να έχω μια σειρα στον αλγοριθμο

ΕΚΦΩΝΗΣΗ
**** Σε ένα θέατρο υπάρχουν 15 σειρές καθισμάτων (Η 1η σειρά είναι η κοντινότερη στη σκηνή ενώ η 15η
σειρά η πιο μακρινή) και κάθε σειρά περιλαμβάνει 30 καθίσματα.  Να γραφεί αλγόριθμος που να κάνει τα εξής:

α) Να διαβάζει τον πίνακα ΚΡΑΤΗΣΕΙΣ (15Χ30) στον οποίο η τιμή 0 ή 1 σημαίνει ότι η αντίστοιχη θέση του
   θεάτρου είναι διαθέσιμη  ή μη διαθέσιμη, αντίστοιχα.

β) Όσο υπάρχουν διαθέσιμες θέσεις, να διαβάζει τον αριθμό των εισιτηρίων που επιθυμεί να αγοράσει ο θεατής,
   ο οποίος θα πρέπει να ελέγχεται ώστε να είναι από 1 μέχρι 10.

γ) Στη συνέχεια, να εμφανίζει όλους τους αριθμούς σειρών στις οποίες υπάρχει διαθέσιμος αριθμός συνεχόμενων
   καθισμάτων τουλάχιστον ίσος με αυτόν που ζήτησε ο θεατής. Οι σειρές θα πρέπει να εμφανίζονται με αύξουσα
   σειρά ως προς την απόστασή τους από τη σκηνή.

δ) Στη συνέχεια, εφόσον υπάρχουν σειρές με διαθέσιμο τον απαιτούμενο αριθμό συνεχόμενων θέσεων, ο αλγόριθμος
   θα πρέπει να διαβάζει τη σειρά που επιθυμεί ο θεατής, η οποία θα πρέπει να ελέγχεται ώστε να ανήκει σε
   αυτές που εμφανίστηκαν στο ερώτημα γ)  και να ενημερώνει τον πίνακα ΚΡΑΤΗΣΕΙΣ καταχωρώντας 1 στις νέες
   θέσεις που κρατήθηκαν. Θεωρείστε ότι η κράτηση του ζητούμενου αριθμού των θέσεων σε μια σειρά γίνεται
   πάντα από το μικρότερο νουμερο καθίσματος (1)  προς το μεγαλύτερο (30). Αν δεν υπάρχουν σειρές με τον
   απαιτούμενο αριθμό θέσεων, ο αλγόριθμος εμφανίζει το μήνυμα "ΛΥΠΟΥΜΑΣΤΕ - ΔΕ ΜΠΟΡΟΥΜΕ ΝΑ ΣΑΣ ΕΞΥΠΗΡΕΤΗΣΟΥΜΕ"
   και συνεχίζει διαβάζοντας τον αριθμό θέσεων που επιθυμεί ο επόμενος θεατής.

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

Αν και όποιος μπορει
[1] να πει τι καταλαβαινει οτι ζητάει το καθενα ερώτημα
[2] να δωσει υποδείξεις
[3] λύσεις 

Σας ευχαριστώ όλους
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: petrosp13 στις 12 Απρ 2013, 11:36:38 ΠΜ
Ουσιαστικά όλο το θέμα θα βγει σε μια επανάληψη γιατί όλο αφορά την είσοδο δεδομένων
Έχεις έναν πίνακα που χαρτογραφεί το θέατρο με τιμές 0 και 1 για τις θέσεις ανάλογα με το αν είναι ελεύθερες ή όχι. Προφανώς, αρχικά ο πίνακας θα πρέπει να μηδενιστεί. Οι θεατές μπορούν να αγοράσουν από 1 μέχρι 10 συνεχόμενες θέσεις σε κάποια σειρά. Ο αλγόριθμος θα συνεχίζει όσο υπάρχουν ελεύθερες θέσεις για να καλυφθούν, θα διαβάζει τον αριθμό των θέσεων που θέλει ο θεατής, θα σκανάρει τις γραμμές για να βρει τις γραμμές που έχουν κενές συνεχόμενες θέσεις τουλάχιστον ίσες με τον αριθμό που θέλει ο θεατής, θα εμφανίζει τους αριθμούς των γραμμών αυτών, ο θεατής θα επιλέγει τον αριθμό γραμμής που θέλει και οι θέσεις θα γεμίζουν με 1, ξεκινώντας πάντα από την αριστερότερη

Ωραία άσκηση, αλλά δύσκολη για πάρα πολλούς μαθητές
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: landreou στις 12 Απρ 2013, 12:50:19 ΜΜ
Μήπως  μπορεις να μου πείς ποια είναι η βασικη - εξωτερικη επανάληψη και ποιες εσωτερικές της ;
Πχ
Η εξωτερικη είναι ο αριθμος του θεατή μέχρι να γίνει μεγαλύτερος απο 15*30
μεσα σε αυτην θα ειναι ο βροχος που θα διαβάζει τα εισητήρια , μετά τις σειρές κλπ

Σε ευχαριστω για τη άποψη που παρέθεσες

Επίσης εκ προοιμίου σας ευχαριστώ όλους τους φίλους του ΣτΠ.
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: petrosp13 στις 12 Απρ 2013, 01:29:24 ΜΜ
Νομίζω ότι μπορεί να λυθεί με διάφορες προσεγγίσεις, αλλά αυτό που λες είναι σωστό
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: nikolasmer στις 13 Απρ 2013, 01:24:40 ΠΜ
Προσωπικά διαφωνώ με την άποψη του κυρίου Παπαδόπουλου στο παρακάτω σημείο

Παράθεση από: petrosp13 στις 12 Απρ 2013, 11:36:38 ΠΜ
Έχεις έναν πίνακα που χαρτογραφεί το θέατρο με τιμές 0 και 1 για τις θέσεις ανάλογα με το αν είναι ελεύθερες ή όχι. Προφανώς, αρχικά ο πίνακας θα πρέπει να μηδενιστεί.

Θεωρώ πως ο πίνακας ΚΡΑΤΗΣΕΙΣ θα πρέπει να διαβαστεί (με έλεγχο ορθής καταχώρισης για τις τιμές 0 και 1 ή όχι) και θα αποτελεί ενα στιγμιότυπο της παρουσίας διαθέσιμων ή οχι θέσεων του θεάτρου και όχι μια "άδεια" αίθουσα.
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: nikolasmer στις 13 Απρ 2013, 10:33:43 ΠΜ
Ένα ενδεικτικό πρόγραμμα για την παραπάνω άσκηση μπορεί να είναι το παρακάτω.
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: landreou στις 15 Απρ 2013, 12:28:26 ΜΜ
Παιζει και το ενδεχόμενο όμως να πηγαινει ένας για εισητήρια και μην εξυπηρετείται άρα δεν θα μπει στη αίθουσα, άρα δεν θα προσμετρηθεί .

Τώρα , ρουτίνα  για τις συνεχόμενες θέσεις  πώς μπορεί να είναι .
Τη φτιάχνουμε με φωλευμενα άν; με όσο; Καμια ιδέα κανενας
Εγω λέω

σειρά  <- 1
Οσο σειρά <= 15 επανάλαβε
              κάθισμα <- 1
              φορές <- 1
              Οσο κάθισμα <= 30 επανάλαβε
                      Αν ΚΡΑΤΗΣΕΙΣ[σειρά,κάθισμα]= 0 τοτε
                           Αν ΚΡΑΤΗΣΕΙΣ[σειρά,κάθισμα]= ΚΡΑΤΗΣΕΙΣ[σειρά,κάθισμα] τότε
                                               φορές <- φορές +1
                           Τέλος_αν
                      Τέλος_αν
              Αν φορες >= εισιτήρια και φορές <= κάθισμα τότε
                       Εμφάνισε σειρά
              Τέλος_αν
              κάθισμα<-καθισμα+1
              Τέλος_επανάληψης
σειρά <- σειρα + 1
Τελος_επανάληψης

Κάτι τετοιο στο περιπου.

Κάθε αποψη - ευπροσδεκτη
Ευχαριστώ όλους

                       





Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: gthal στις 16 Απρ 2013, 12:55:09 ΜΜ
Λουκά, προτείνω η εξωτερική να είναι ΓΙΑ - θα σαρώσεις όλες τις σειρές έτσι κι αλλιώς
για σειρά από 1 μέχρι 15

τώρα εκεί μέσα, ξεκινώντας από την πρώτη θέση:
1. βρες την επόμενη άδεια θέση της σειράς (με μια ΟΣΟ) - προσέχεις πάντα να μην περάσεις το τέλος της σειράς
2. από αυτή τη θέση και πέρα, μέτρα πόσες άδειες ακολουθούν (με μια ΟΣΟ, αφού θα έχει τελειώσει η προηγούμενη) - προσέχεις πάντα να μην περάσεις το τέλος της σειράς
3. αν φτάνουν, τελείωσες με αυτή τη σειρά, την εμφανίζεις (ίσως πρέπει να αποθηκεύσεις κάποιες πληροφορίες για αργότερα) και πας στην επόμενη
    αν όχι, επαναλαμβάνεις από το βήμα 1, μέχρι να φτάσεις στο τέλος της σειράς (άρα, επανάληψη που περιλαμβάνει τις ΟΣΟ του 1 και του 2)

Για να δούμε ...   :)
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: mokasa στις 18 Απρ 2013, 12:53:32 ΜΜ
Έγραψα μια λύση χωρίς υποπρογράμματα, νομίζω οτι κάνει τη δουλειά που πρέπει.

Λογικά θα πρέπει να τρέχει και με copy-paste στη ΓΛΩΣΣΑ.

Ελπίζω τα σχόλια να βοηθάνε στην κατανόηση, κάθε παρατήρηση ή λάθος που θα βρείτε είναι αποδεκτό
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: gthal στις 18 Απρ 2013, 11:07:12 ΜΜ
@Lorien
Νομίζω ότι για κάθε σειρά ελέγχεις απλώς αν υπάρχουν αρκετές διαθέσιμες θέσεις και όχι αν υπάρχουν αρκετές συνεχόμενες διαθέσιμες θέσεις.
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: mokasa στις 27 Απρ 2013, 07:07:57 ΠΜ
Συγνώμη που άργησα να απαντήσω.
Νομίζω οτι το καλύπτω σωστά αυτό που λες, καθώς η μεταβλητή 'άδειες' αυξάνει μόνο όταν οι θέσεις είναι συνεχόμενες και στο 'αλλιώς' μηδενίζεται και πάλι, πέρα από την αρχικοποίηση έξω από την εντολή ΟΣΟ.
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: gthal στις 27 Απρ 2013, 07:10:58 ΜΜ
Έχεις δίκιο. Απροσεξία μου. Νομίζω ότι είναι σωστή η λύση σου.
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: ΑλεξανδροςΑναστΓ στις 10 Μαΐου 2013, 12:32:00 ΠΜ
Έχω απάντηση αλγόριθμο στην άσκηση που παρέθεσες φίλε!Σίγουρα δεν είναι ο βέλτιστος αλλά είμαι υποψήφιος και δεν έχω ούτε την ικανότητα ούτε και τον χρόνο να βρώ τον βέλτιστο...λοιπόν αυτό έφτιαξα και δουλεύει το έτρεξα αρκετές φορές!
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: ΑλεξανδροςΑναστΓ στις 10 Μαΐου 2013, 12:43:18 ΠΜ
Εχω θεωρήσει ότι οι κρατήσεις ξεκινάνε απο το 0!Σε περίπτωση που ζητείται να μην...τοτε διαβασε τον δυσδιαστατο κανεις μετρηση των 1 και δινεις αρχικη τιμη στο Μ το 15*30 - το πληθος των ασσων
κατα τα αλλα ιδιο
Τίτλος: Απ: ΜΙΑ ΑΣΚΗΣΗ ΜΕ ΕΙΣΗΤΗΡΙΑ ΘΕΑΤΡΟΥ
Αποστολή από: igeorgi στις 10 Μαΐου 2013, 04:27:00 ΜΜ
Με λίγο αλλαγμένη εκφώνηση παραθέτω την (ομολογουμένως λίγο υπερβολική) λύση. Η διαφορά στην δική μου αντιμετώπιση είναι ότι όταν βρίσκω σειρά με τόσα καθίσματα όσα χρειάζομαι, αποθηκεύω σε μονοδιάστατο τον αριθμό του καθίσματος από το οποίο ξεκινούν οι συνεχόμενες που με ενδιαφέρουν.