Ασκήσεις στους πίνακες

Ξεκίνησε από Vagelis, 27 Δεκ 2002, 12:27:58 ΜΜ

« προηγούμενο - επόμενο »

Vagelis

Προτείνετε ασκήσεις... Άλυτες ή λυμένες

Λευτέρης Δουκέρης

Α) Έχω δύο μονοδιάστατους πίνακες Α , Β 20 θέσεων . Ο Α έχει κωδικούς και ο Β έχει ποσότητα του είδους που αντιστοιχεί σε κάθε κωδικό . Να γίνει λογικό διάγραμμα και πρόγραμμα που να εισάγει ένα κωδικό Χ , θα βρίσκει αν υπάρχει στον πίνακα και θα τυπώνει κωδικό και ποσότητα . Αν δεν υπάρχει ο κωδικός θα βγαίνει το ανάλογο μήνυμα .

β)  ΝΑ γινουν τα παραπανω αν ο πινακασ ήταν δισδιάστατος 2X20 (στοιχεια στον πινακα ίδιου τύπου -αριθμητικα)
ΛΕΥΤΕΡΗΣ  ΚΕΡΑΤΕΑ
http://glavrio.blogspot.com"Ο ιδανικός δάσκαλος είναι εκείνος που γίνεται γέφυρα για να περάσει αντίπερα ο μαθητής του και όταν , πια του διευκολύνει το πέρασμα , αφήνεται χαρούμενα να γκρεμιστεί , ενθαρρύνοντας το μαθητή του να φτιάξει τις δικές του γέφυρ

Λευτέρης Δουκέρης

Δίνεται ένας πίνακας 10 θέσεων που κάποια στοιχεία του είναι μηδέν . Να δημιουργηθεί ο πίνακας Β τέτοιος ώστε να ισχύουν τα παρακάτω

π.χ
Πινακας Α
1  333      0  12  0      34  67      0      0      66

Πίνακας Β
0  0  0      0  1  333       12  34      67      66

ΛΕΥΤΕΡΗΣ  ΚΕΡΑΤΕΑ
http://glavrio.blogspot.com"Ο ιδανικός δάσκαλος είναι εκείνος που γίνεται γέφυρα για να περάσει αντίπερα ο μαθητής του και όταν , πια του διευκολύνει το πέρασμα , αφήνεται χαρούμενα να γκρεμιστεί , ενθαρρύνοντας το μαθητή του να φτιάξει τις δικές του γέφυρ

Λευτέρης Δουκέρης

Σε μια εταιρία εργάζονται 200 υπάλληλοι και είναι γνωστός ο μισθός του καθένα . Να εισάγονται οι μισθοί σε πίνακα και να βρεθούν οι 2 μεγαλύτεροι και οι 2 μικρότεροι μισθοί . Αν η εταιρία θέλει να κάνει αύξηση μισθών 5% να δημιουργείται πίνακας που να περιέχει τους νέους μισθούς μετά την αύξηση και ενας ακόμα πίνακας που θα έχει μόνο την αύξηση
ΛΕΥΤΕΡΗΣ  ΚΕΡΑΤΕΑ
http://glavrio.blogspot.com"Ο ιδανικός δάσκαλος είναι εκείνος που γίνεται γέφυρα για να περάσει αντίπερα ο μαθητής του και όταν , πια του διευκολύνει το πέρασμα , αφήνεται χαρούμενα να γκρεμιστεί , ενθαρρύνοντας το μαθητή του να φτιάξει τις δικές του γέφυρ

Λευτέρης Δουκέρης

Να γίνει πρόγραμμα που να διαγράφει το στοιχείο ν που θα διαβάζεται από το πληκτρολόγιο (το ν δείχνει την θέση του στοιχείου , που θα διαγραφεί) . ο αρχικός  πίνακας είναι μονοδιάστατος 100 θέσεων , ο νέος πίνακας θα είναι 99 θέσεων αφου θα έχει διαγραφεί ένα στοιχείο του. να γίνεται έλεγχος αν το ν είναι μέσα στα όρια του πίνακα 1<=ν<=100
ΛΕΥΤΕΡΗΣ  ΚΕΡΑΤΕΑ
http://glavrio.blogspot.com"Ο ιδανικός δάσκαλος είναι εκείνος που γίνεται γέφυρα για να περάσει αντίπερα ο μαθητής του και όταν , πια του διευκολύνει το πέρασμα , αφήνεται χαρούμενα να γκρεμιστεί , ενθαρρύνοντας το μαθητή του να φτιάξει τις δικές του γέφυρ

Κων/νος Μανολοπουλος

Nα γράψτε προγραμμα σε Γλώσσα το οποίο
θα διαβαζει μια προταση 20 χαρκτήρων και θα
τυπωνει τη συχνότητα εμφάνισης καθε γράμματος

Laertis

Σε ένα μονοδιάστατο πίνακα Β υπάρχουν καταχωρισμένες οι βαθμολογίες ενός μαθητή σε 14 μαθήματα και σε έναν δεύτερο πίνακα Κ αντίστοιχα ο κωδικός κάθε μαθήματος. Να γραφεί αλγόριθμος που να βρίσκει και να εμφανίζει ττον κωδικό των μαθημάτων  με την υψηλότερη και χαμηλότερη βαθμολογία του μαθητή.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Laertis

Στον Πανελλήνιο Διαγωνισμό Πληροφορικής συμμετείχαν 200 υποψήφιοι. Να γραφεί αλγόριθμος που :

α) να αποθηκεύει τα αποτελέσματα σε έναν μονοδιάστατο πίνακα Β και τα ονόματα των υποψηφίων σε έναν δεύτερο μονοδιάστατο πίνακα Ο, κατ&#8217; αντιστοιχία
β) να ταξινομεί τους δύο πίνακες με βάση τη βαθμολογία κάθε διαγωνιζομένου
γ) να εμφανίζει τα ονόματα των 8 υποψηφίων με την καλύτερη βαθμολογία που προκρίνονται στην Ολυμπιάδα Πληροφορικής.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Laertis

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

α) να αποθηκεύει το όνομα κάθε παίκτη σε έναν μονοδιάστατο πίνακα Ο
β) να αποθηκεύει τους πόντους που πέτυχαν οι παίκτες στην συγκεκριμένη  
    αγωνιστική περίοδο, σε έναν δισδιάστατο πίνακα Π
γ) να υπολογίζει και να εμφανίζει το όνομα του παίκτη με το μεγαλύτερο μέσο όρο
    πόντων σε όλους τους αγώνες
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

mxeg

#9
Μια επιχείρηση απασχολεί 150 υπαλλήλους και δυο από τα στοιχεία που διαθέτει είναι τα ονόματα και οι μισθοί τους σε Ευρώ. Να γραφεί αλγόριθμος που θα εμφανίζει τους 5 μικρότερους μισθούς μαζί με τα ονόματα των υπαλλήλων που έχουν αυτούς τους μισθούς.
( Υποθέστε ότι οι μισθοί είναι όλοι διαφορετικοί)
ΕΥΚΟΛΗ ΑΣΚΗΣΗ

pfan

#10
Στο τύπο των ασκήσεων που ζητάει να βρεθούν οι 5 καλύτεροι (ή χειρότεροι) θα πρέπει να διευκρινιστεί αν υπάρχει πιθανότητα ο 5ος να έχει ισοβαθμία με τον 6ο κ.ο.κ.
Πύρζα Φανή
Καθηγήτρια Πληροφορικής

mxeg

Να γίνει αλγόριθμος που να δέχεται τα ονόματα και τους βαθμούς ενός διαγωνισμού 200 μαθητών για το μάθημα ανάπτυξη εφαρμογών σε προγραμματιστικό
περιβάλλον (με άριστα το 100) και στη συνέχεια
Α. Να βρίσκει και να τυπώνει τα ονόματα αυτών που έχουν γράψει πάνω από 90
Β. Να εμφανίζει τον βαθμό που παρατηρήθηκε τις περισσότερες φορές.

Sergio

#12
Ασκήσεις σαν αυτή του συναδέλφου mxeg πιο πριν (Απάντηση #9 εστάλη: Μάρτος 18th, 2003, 7:37pm» προσφέρονται για εξάσκηση των μαθητών και καλύτερη κατανόηση (εμβάθυνση) στον τρόπο λειτουργίας του αλγόριθμου της φυσσαλίδας.

Με αφορμή μια τέτοια άσκηση "...θα εμφανίζει τους 5 μικρότερους μισθούς ..." μπορεί ο μαθητής να παρακινηθεί να παρατηρήσει ότι είναι περιττό (και μάταιο) να ταξινομήσουμε ολόκληρο τον πίνακα όταν το μόνο που ενδιαφέρει είναι ...οι πέντε μικρότεροι.  Σε αυτό το σημείο μπορούμε να εξηγήσουμε (ή να θυμίσουμε από το μάθημα) ότι στον αλγόριθμο της φυσσαλίδας, κάθε επανάληψη του εξωτερικού βρόχου, εξασφαλίζει την 'άνοδο' της επόμενης φυσσαλίδας... στη θέση .... (i-1)

     |  Φυσσαλίδα στη
  i  |  θέση (του πίνακα)
-------------------------
  2  |                        1
  3  |                        2
  4  |                        3
  5  |                        4
.

. κ.ο.κ.

Δηλ. μετά από κάθε μία επανάληψη, στην 'κορυφή' του πίνακα θα προστίθεται ακόμα μία φυσσαλίδα, η επόμενη στη σειρά.  

Έτσι μπορεί να οδηγηθεί στη σκέψη ότι δεν είναι απαραίτητη η εκτέλεση όλων των επαναλήψεων του εξωτερικού βρόχου...αρκεί να γίνουν τόσες επαναλήψεις όσα  (μικρότερα ή μεγαλύτερα) στοιχεία θέλουμε να βρούμε.

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

ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 6
  ΓΙΑ j ΑΠΟ 150 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
    αντιμετάθεσε μισθός[j], μισθός[j-1]
    αντιμετάθεσε όνομα[j], όνομα[j-1]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Αυτό το σκεπτικό μπορεί να εφαρμοστεί σε πολλές παρόμοιες ασκήσεις οπότε να αποφεύγεται η ανώφελη ταξινόμηση του συνόλου των στοιχείων, όπως στη επόμενη άσκηση:

_______________________________________________________________________
Το άγημα που θα εκπροσωπήσει μία στρατιωτική μονάδα στην παρέλαση της 25ης Μαρτίου αποτελείται από τους 40 ψηλότερους οπλίτες της μονάδας.  Κατασκευάστε πρόγραμμα που θα ζητάει το όνομα και το ύψος για κάθε ένα από του 2200 οπλίτες της μονάδας και θα εμφανίζει τα ονόματα αυτών που θα αποτελέσουν το άγημα της παρέλασης.  Φροντίστε ώστε η λύση που θα δώσετε να ΜΗΝ ΤΑΞΙΝΟΜΕΙ ΤΟ ΣΥΝΟΛΟ των στοιχείων προκειμένου να επιλέξει μόνο αυτούς που 'επιλέγονται'
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

mxeg

όσον αφορά την  « Απάντηση #12 εστάλη: Μάρτος 28th, 2003, 10:37pm »
η παρατήρησή σου είναι σωστή, μου αρκεί όμως ο μαθητής να σκεφτεί την ταξινόμηση

bugman

Τα γράφω με τον δικό μου τρόπο (μην βαράτε είμαι ένας απλός τεχνολόγος πετρελαίων!)
Περί της άσκησης με τα 150 ονόματα, μισθοί και τους ζητούμενους 5 μικρότερους μισθούς.
Από ό,τι βλέπω ξεχάσατε το βασικότερο: Θα πρέπει να κοιτάμε και την ταχύτητα. Π.χ. αν τα ονόματα διαβάζονται από τον δίσκο τότε αυτή είναι μια αργή διαδικασία, ενώ αν είναι όλα τα ονόματα στην μνήμη, η ταξινόμηση με quick sort στην μνήμη είναι πάρα μα πάρα πολύ γρήγορη! Με απλά λόγια το ζήτημα είναι να δεις τα 150 ή 150.000 ονόματα μια φορά (με μια Για ) και να δημιουργήσεις μια **ουρά** που θα έχεις τις πέντε μικρότερες τιμές!
άν έχουμε ένα σύνολο με μισθός[κ], όνομα[κ] οπου κ=1 εως 150
φτιάχνουμε ένα δεύτερο σύνολο μισθός2[λ], όνομα2[λ] οπου λ=1 εως 5
μεταβλητές χειρισμού:
Μ = δείκτης ζεύγους μισθού-ονόματος (2..150) διότι το 1 το έχουμε αντιγράψει στο 2ο σύνολο από την αρχή
Ν= μέγεθος δεύτερου σύνολου (1..5)

μισθός2(1)<--μισθός(1)
όνομα2(1)<--όνομα(1)
Ν<--1
Για Μ από 2 ΕΩΣ 150
Αν μισθός(Μ)<μισθός2(1) τότε
Αν Ν<5 τοτε Ν=Ν+1:μισθός2(Ν)<--μισθός(Μ): όνομα2(Ν)<--όνομα(Μ):ΤαξινόμησηΦυσαλίδας(Ν)
Αλλιώς  μισθός2(1)<--μισθός(Μ): όνομα2(1)<--όνομα(Μ):ΤαξινόμησηΦυσαλίδας(5)
τελος_αν
τελος_αν
τέλος_επανάληψης

Η χειρότερη περίπτωση είναι: να είναι ολα τα στοιχεία γραμμένα από το μεγαλύτερο προς το μικρότερο!
--Έχω γράψει μόνο την φιλοσοφία και όχι τα επιμέρους όπως η διαδικασία της φυσαλλίδας ή ότι άλλο ΄για την περίπτωση--

Επιπλέον αυτό δουλεύει και για απροσδιόριστο αριθμό ονομάτων-τιμών (αρκεί να ορίσουμε ένα συνθηματικό π.χ. κενό όνομα για τέλος εισαγωγής)