ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΙΝΑΚΕΣ 1Δ-2Δ Άσκηση 1 Μί ετιρεί πσχολεί 30 υπλλήλους. Οι μηνιίες ποδοχές κάθε υπλλήλου κυμίνοντι πό 0 έως κι 3.000. Α. Ν γράψετε λγόριθμο που γι κάθε υπάλληλο: 1. ν διβάζει το ονομτεπώνυμο κι τις μηνιίες ποδοχές κι ν ελέγχει την ορθότητ κτχώρησης των μηνιίων ποδοχών του, 2. ν υπολογίζει το ποσό του φόρου κλιμκωτά, σύμφων με τον πρκάτω πίνκ: Μηνιίες Αποδοχές Ποσοστό κράτησης φόρου Έως κι 700 0 % Άνω των 700 έως κι 1.000 15 % Άνω των 1.000 έως κι 1.700 30 % Άνω των 1.700 40 % 3. ν εμφνίζει το ονομτεπώνυμο, τις μηνιίες ποδοχές, το φόρο κι τις κθρές μηνιίες ποδοχές, που προκύπτουν μετά την φίρεση του φόρου. Β. Τέλος, ο πρπάνω λγόριθμος ν υπολογίζει κι ν εμφνίζει: 1. το συνολικό ποσό που ντιστοιχεί στο φόρο όλων των υπλλήλων, 2. το συνολικό ποσό που ντιστοιχεί στις κθρές μηνιίες ποδοχές όλων των υπλλήλων. Άσκηση 2 Δίνετι πίνκς Α[Ν] θετικών ριθμών. Ν κτσκευσθεί λγόριθμος ο οποίος θ ελέγχει ν ο πίνκς Α είνι πίνκς κερίων. Σε περίπτωση που είνι πίνκς κερίων, θ ελέγχει ν είνι επιπλέον κι πίνκς ρτίων. Σημείωση: Μί μετβλητή Χ έχει κέρι τιμή ότν ισχύει η σχέση Χ=Α_Μ(Χ).Ο κέριος Χ είνι άρτιος ότν ισχύει η σχέση Χ MOD 2 = 0. Άσκηση 3 Ν νπτύξετε ένν λγόριθμο, ο οποίος Α. ν διβάζει το πλήθος των σθενών ενός νοσοκομείου, το οποίο δεν μπορεί ν δεχτεί περισσότερους πό 500 σθενείς, Β. γι κάθε σθενή ν διβάζει τις ημέρες νοσηλείς του, τον κωδικό του σφλιστικού του τμείου κι τη θέση νοσηλείς. Ν ελέγχει την ορθότητ εισγωγής των δεδομένων σύμφων με τ πρκάτω: - οι ημέρες νοσηλείς είνι κέριος μεγλύτερος ή ίσος του 1, - τ σφλιστικά τμεί είνι 10 με κωδικούς πό 1 μέχρι κι 10, - οι θέσεις νοσηλείς είνι Α ή Β ή Γ, Γ. ν υπολογίζει κι ν εμφνίζει το μέσο όρο ημερών νοσηλείς των σθενών στο νοσοκομείο, Δ. ν υπολογίζει κι ν εμφνίζει γι κάθε σθενή το κόστος πρμονής που πρέπει ν κτβάλει στο νοσοκομείο το σφλιστικό του τμείο σύμφων με τις ημέρες κι τη θέση νοσηλείς. Το κόστος πρμονής στο νοσοκομείο νά ημέρ κι θέση νοσηλείς γι κάθε σθενή φίνετι στον κόλουθο πίνκ: Θέση Νοσηλείς Κόστος πρμονής νά ημέρ νοσηλείς γι κάθε σθενή Α 125 Β 90 Γ 60
Ε. ν υπολογίζει κι ν εμφνίζει με τη χρήση πίνκ το συνολικό κόστος που θ κτβάλει το κάθε σφλιστικό τμείο στο νοσοκομείο, ΣΤ. ν υπολογίζει κι ν εμφνίζει το συνολικό ποσό που οφείλουν όλ τ σφλιστικά τμεί στο νοσοκομείο. Άσκηση 4 Ομάδ πό 10 εφοπλιστές κάνει δωρεά σε 40 φιλνθρωπικές οργνώσεις. Ν γράψετε πρόγρμμ το οποίο: ) Εισάγει σε μονοδιάσττο πίνκ το όνομ κάθε εφοπλιστή, κι σε άλλον μονοδιάσττο πίνκ το όνομ κάθε οργάνωσης. β) Εισάγει σε πίνκ δύο διστάσεων, σε ποιες οργνώσεις κάνει δωρεά ο κάθε εφοπλιστής. (κτχωρείτι η λέξη «ΝΑΙ» στην περίπτωση που ο εφοπλιστής κάνει δωρεά στην συγκεκριμένη περίπτωση κι «ΟΧΙ» σε ντίθετη περίπτωση. γ) Εμφνίζει το όνομ κάθε εφοπλιστή κι στη συνέχει σε πόσες οργνώσεις κάνει δωρεά. δ) Εμφνίζει το όνομ ή τ ονόμτ των οργνώσεων που έχουν λάβει τις λιγότερες δωρεές Άσκηση 5 Ν γρφεί πρόγρμμ το οποίο: ) θ διβάζει ένν κέριο θετικό ριθμό Ν μικρότερο ή ίσο του 10, β) θ υπολογίζει τις τιμές των στοιχείων του τριγώνου Pascal μέχρι τη Νιοστή γρμμή, γ) θ δημιουργεί ένν δισδιάσττο πίνκ Nx(N+1), ο οποίος θ έχει ως στοιχεί τις τιμές του πρπάνω τριγώνου Pascal. Το τρίγωνο Pascal συμπληρώνετι ως εξής: Το πρώτο κι το τελευτίο στοιχείο κάθε γρμμής είνι το 1. Κάθε ενδιάμεσο στοιχείο είνι το άθροισμ του στοιχείου που βρίσκετι στην προηγούμενη γρμμή, κριβώς πάνω πό υτό, κι υτού που βρίσκετι στην μέσως ριστερή θέση. Γι πράδειγμ το τρίγωνο Pascal 5 γρμμών έχει ως εξής: K=1 1 1 K=2 1 2 1 Κ=3 1 3 3 1 Κ=4 1 4 6 4 1 Κ=5 1 5 10 10 5 1 Άσκηση 6 Μι εροπορική ετιρί τξιδεύει σε 15 προορισμούς του εσωτερικού. Στ πλίσι της οικονομικής πολιτικής που πρόκειτι ν εφρμόσει, κτέγρψε το ποσοστό πληρότητς των πτήσεων γι κάθε μήν του προηγούμενου ημερολογικού έτους. Η πολιτική έχει ως εξής: - Δεν θ γίνει κμί περικοπή σε προορισμούς, στους οποίους το μέσο ετήσιο ποσοστό πληρότητς των πτήσεων είνι μεγλύτερο του 65. - Θ γίνουν περικοπές πτήσεων σε προορισμούς, στους οποίους το μέσο ετήσιο ποσοστό πληρότητς των πτήσεων κυμίνετι πό 40 έως κι 65. Οι περικοπές θ γίνουν μόνο σε εκείνους τους μήνες που το ποσοστό πληρότητάς τους είνι μικρότερο του 40. - Θ κτργηθούν οι προορισμοί, στους οποίους το μέσο ετήσιο ποσοστό πληρότητς των πτήσεων είνι μικρότερο του 40. Ν γρφεί λγόριθμος ο οποίος:. Ν διβάζει τ ονόμτ των 15 προορισμών κι ν τ ποθηκεύει σε έν μονοδιάσττο πίνκ. β. Ν διβάζει τ ποσοστά πληρότητς των πτήσεων των 15 προορισμών γι κάθε μήν κι ν τ ποθηκεύει σε δισδιάσττο πίνκ κάνοντς έλεγχο στην κτχώριση των δεδομένων, ώστε ν κτχωρούντι μόνο οι τιμές που είνι πό 0 έως κι 100.
γ. Ν βρίσκει κι ν τυπώνει τ ονόμτ των προορισμών που δεν θ γίνει κμί περικοπή πτήσεων. δ. Ν βρίσκει κι ν τυπώνει τ ονόμτ των προορισμών που θ κτργηθούν. ε. Ν βρίσκει κι ν τυπώνει τ ονόμτ των προορισμών, στους οποίους θ γίνουν περικοπές πτήσεων, κθώς κι τους μήνες (ύξοντ ριθμό μήν) που θ γίνουν οι περικοπές. Άσκηση 7 Ν κτσκευάσετε πρόγρμμ το οποίο θ κάνει τ κόλουθ: i. Θ διβάζει τ ονόμτ 30 μθητών κι θ τ ποθηκεύει σε κτάλληλο μονοδιάσττο πίνκ ΟΝ. ii. Θ διβάζει τις πντήσεις όλων των μθητών σε 20 ερωτήσεις Σωστού-Λάθους κι θ τις κτχωρεί σε κτάλληλο δισδιάσττο πίνκ ΑΠ. iii. Θ διβάζει ένν πίνκ Γ ο οποίος περιέχει τις σωστές πντήσεις των ερωτήσεων. iv. Με την βοήθει του πίνκ Γ θ κτσκευάζει ένν μονοδιάσττο πίνκ Β ο οποίος θ περιέχει τον βθμό κάθε μθητή ν γνωρίζουμε ότι κάθε Σωστή πάντηση πίρνει 5 μόρι κι κάθε Λάθος φιρεί πό τον μθητή 2 μόρι. v. Ν υπολογίζει τον μέσο όρο της τάξης κι ν εμφνίζει το όνομ του μθητή του οποίου ο βθμός είνι πιο κοντά στο μέσο όρο της τάξης vi. Ν εμφνίζει μήνυμ γι το ν υπάρχει ή όχι μθητής ή μθητές που ν έπισε το άριστ (100) κθώς κι το όνομά ή τ ονόμτά τους. Άσκηση 8 Τ ποτελέσμτ των γώνων του Eurobasket (νίκη ή ήττ) κθώς κι η διφορά πόντων γι τον όμιλο που ήτν κι η Εθνική μς περιέχοντι στους πρκάτω πίνκες: Τ ονόμτ των ομάδων σε μονοδιάσττο πίνκ ΟΝ[6] Τον χρκτηρισμό κάθε γών ( Ν ή Η ) σε δισδιάσττο πίνκ Α[6,6] Τη διφορά πόντων κάθε γών σε δισδιάσττο πίνκ Π[6,6] Ν γρφεί πρόγρμμ που διβάζει τ δεδομέν στους πρπάνω πίνκες κι εκτυπώνει τη τελική βθμολογί του ομίλου (ονόμτ κι βθμούς) ξεκινώντς πό τον κλύτερο. Γι κάθε γών η νικήτρι ομάδ πίρνει 2 βθμούς κι η ηττημένη 1 βθμό. Σημείωση: Σε περίπτωση ισοβθμίς προηγείτι η ομάδ που έχει την κλύτερη διφορά πόντων πό τις ισόβθμες. Αν έχουν την ίδι διφορά πόντων, τότε η κτάτξη γίνετι ονομστικά. Γι πράδειγμ οι πίνκες θ έχουν τη μορφή ΠΙΝΑΚΑΣ Α Γερμνί Ελλάδ Σερβί Ιτλί Ρωσί Γλλί Γερμνί Ελλάδ Ν Σερβί Η Η Ιτλί Ν Ν Η Ρωσί Η Η Η Ν Γλλί Ν Ν Ν Ν Η ΠΙΝΑΚΑΣ Π Γερμνί Ελλάδ Σερβί Ιτλί Ρωσί Γλλί Γερμνί Ελλάδ 5 Σερβί 6 7 Ιτλί 3 4 8 Ρωσί 8 6 9 9 Γλλί 1 8 2 2 7
ΠΙΝΑΚΑΣ ΟΝ Γερμνί Ελλάδ Σερβί Ιτλί Ρωσί Γλλί Κάθε κελί ντιστοιχεί σε ένν γών μετξύ της ομάδς που ντιστοιχεί στη γρμμή κι της ομάδς που ντιστοιχεί στη στήλη. Το ποτέλεσμ Ν ή Η σημίνει ότι η ομάδ που ντιστοιχεί στη γρμμή νίκησε ή ντίστοιχ έχσε πό την ομάδ που ντιστοιχεί στη στήλη. Ο ριθμός δείχνει τη διφορά πόντων. Π.χ. η Ελλάδ νίκησε τη Γερμνί με 5 πόντους διφορά ενώ η Σερβί ηττήθηκε πό την Ελλάδ με 7 πόντους διφορά. Τ στοιχεί της κύρις διγωνίου δεν περιέχουν κμί πληροφορί φού κμί ομάδ δεν πίζει με τον ευτό της. Ο πίνκς περιέχει στοιχεί μόνο κάτω πό τη διγώνιό του. Άσκηση 9 Στο πρωτάθλημ μπάσκετ της Α1 κτηγορίς νδρών μι ομάδ συμμετέχει με 10 πίκτες δίνοντς συνολικά 30 γώνες (15 γώνες στ πλίσι του γύρου του πρωτθλήμτος κι ντίστοιχ 15 γώνες στ πλίσι του β γύρου). Γράψτε έν πρόγρμμ που ν: 1. κτχωρεί σ έν πίνκ ΠΟΝΤΟΙ[10,30] του πόντους που πέτυχε ο κάθε πίκτης σε κάθε γών του πρωτθλήμτος με τους πρκάτω κνόνες:. ότν ένς πίκτης δε συμμετείχε σ έν γών τότε κτχωρείτι η τιμή -1 στον πίνκ. β. ν πληκτρολογηθεί τιμή πάνω πό 30 ν ρωτάει γι επιβεβίωση ν η τιμή είνι σωστή οπότε κι την κτχωρεί, λλιώς ν ζητάει ν την επνκτχώρηση της. 2. κτχωρεί σ έν πίνκ ΟΝ[10] τ ονομτεπώνυμ των πικτών της ομάδς. 3. δημιουργεί έν πίνκ ΑΠΟΤ[10,2] ο οποίος θ περιέχει στην πρώτη του στήλη το σύνολο των πόντων που πέτυχε ο κάθε πίκτης στον γύρο του πρωτθλήμτος ενώ στη δεύτερη στήλη ντίστοιχ το σύνολο των πόντων στον β γύρο του πρωτθλήμτος. 4. εμφνίζει μι λίστ με τ ονόμτ των πικτών που πέτυχν περισσότερους πόντους στον β γύρο του πρωτθλήμτος πό ότι στον γύρο. 5. εμφνίζει τ ονόμτ των πικτών που δεν έχσν κνέν γών στο πρωτάθλημ. Άσκηση 10 Μι ετιρί με έδρ την Θεσσλονίκη, η οποί εκδίδει κι πουλάει μι μεγάλη εγκυκλοπίδει, έχει 20 πωλητές που δικινούν την εγκυκλοπίδει πό σπίτι σε σπίτι. Η ετιρεί υτή χρειάζετι έν πρόγρμμ στο οποίο ν μπορεί ν εισάγει το ονομτεπώνυμο του κάθε πωλητή κι στο τέλος κάθε μήν κι γι τους 12 μήνες του χρόνου τις συνολικές πωλήσεις του κάθε πωλητή. Ν κτσκευσθεί το πρόγρμμ υτό σε «ΓΛΩΣΣΑ» το οποίο: ) Θ διβάζει το ονομτεπώνυμο του κάθε πωλητή κι θ το ποθηκεύει σε μονοδιάσττο πίνκ. β) Γι κάθε πωλητή κι γι κάθε μήν θ διβάζει τις πωλήσεις του μέχρι ν εισχθεί ρνητικός ριθμός ή το 0. Το σύνολο των πωλήσεων του πωλητή θ ποθηκεύετι σε δισδιάσττο πίνκ. Το πρόγρμμ θ υπολογίζει κι εμφνίζει: γ) Τις συγκεντρωτικές πωλήσεις της ετιρίς τη χρονιά που πέρσε. δ) Τον μέσο όρο μηνιίων πωλήσεων της ετιρίς. ε) Το μήν που η ετιρί είχε τις μεγλύτερες πωλήσεις. στ) Το ονομτεπώνυμο του κλύτερου πωλητή κι την διφορά πόδοσης που έχει με το μέσο όρο πόδοσης των 5 χειρότερων πωλητών. Άσκηση 11 i. Ένς πίνκς χρκτηρίζετι ως άνω τριγωνικός ότν όλ τ στοιχεί που βρίσκοντι κάτω της κυρίς διγωνίου είνι μηδέν. Τ στοιχεί υτά είνι τ περιεχόμεν των κελιών Α[i, j], όπου i > j ii. Ένς πίνκς χρκτηρίζετι ως κάτω τριγωνικός ότν όλ τ στοιχεί που βρίσκοντι άνω της κυρίς διγωνίου είνι μηδέν. Τ στοιχεί υτά είνι τ περιεχόμεν των κελιών Α[i, j], όπου i < j
Πρτήρηση: έχει γίνει ντιληπτό ότι τ κελιά Α[i, j], όπου i = j νήκουν στην κύρι διγώνιο iii. Ένς πίνκς χρκτηρίζετι ως διγώνιος ν είνι τυτόχρον άνω κι κάτω τριγωνικός. Ν κτσκευστεί λγόριθμος ο οποίος με δεδομένο έν τετργωνικό πίνκ Π nxn θ εξετάζει ν είνι άνω ή κάτω τριγωνικός ή διγώνιος. Άσκηση 12 Στ συστήμτ τηλεπικοινωνιών πολλές φορές γι ν στείλουμε μεγάλ κείμεν πρέπει πρώτ ν τ συμπιέσουμε, ν μειώσουμε δηλδή το μέγεθος τους, χωρίς όμως ν χάσουμε πληροφορί. Ένς τρόπος που μπορεί ν γίνει υτό είνι η μέθοδος RLE (Run Length Encoding), σύμφων με την οποί ντί ν στείλουμε χρκτήρ προς χρκτήρ το μήνυμ, στέλνουμε το πλήθος συνεχόμενων εμφνίσεων κάθε χρκτήρ, κολουθούμενη πό τον ίδιο τον χρκτήρ. Δηλδή ντί γι το μήνυμ «ββββγ» η μέθοδος RLE θ στείλει «44β1γ3». Α. Ν κτσκευάσετε πρόγρμμ το οποίο: 1. θ διβάζει το πλήθος χρκτήρων Ν που περιέχει το μήνυμ (0 Ν 1000) 2. θ διβάζει το μήνυμ κι θ το ποθηκεύει σε έν μονοδιάσττο πίνκ ΤΕΧΤ[Ν] - ένς χρκτήρς νά θέση του πίνκ. 3. θ εφρμόζει την μέθοδο RLE στον πίνκ ΤΕΧΤ. Το ποτέλεσμ (συμπιεσμένο μήνυμ) θ εμφνίζετι στην οθόνη του υπολογιστή. 4. θ εμφνίζει το επί τις εκτό ποσοστό κτά το οποίο η μέθοδος συμπίεσε το ρχικό μήνυμ. Β. Έστω ότι στον πίνκ Π έχουμε το πλήθος συνεχόμενων εμφνίσεων των χρκτήρων ενός μηνύμτος που συμπιέσθηκε με τη μέθοδο RLE κι στον πίνκ Χ έχουμε τους χρκτήρες. Σύμφων με το πράδειγμ που δόθηκε στην περιγρφή της άσκησης, οι πίνκες Π κι Χ θ ήτν οι: Π=[4,4,1,3] κι Χ=['','β','γ','']. Δεδομένων των πινάκων Π κι Χ μεγέθους Μ (στο πράδειγμ Μ=4), ν κτσκευάσετε λγόριθμο ο οποίος: 1. θ ποσυμπιέζει στην οθόνη του υπολογιστή το συμπιεσμένο μήνυμ που βρίσκετι ποθηκευμένο στους πίνκες Π κι Χ. 2. θ υπολογίζει κι εμφνίζει το μήκος (πλήθος χρκτήρων) του ποσυμπιεσμένου μηνύμτος. Άσκηση 13 Ένς τετργωνικός πίνκς n n ποτελεί Λτινικό Τετράγωνο ότν είνι γεμάτος με n διφορετικούς ριθμούς πό το 1 μέχρι το n με τέτοιο τρόπο ώστε κάθε ριθμός ν εμφνίζετι κριβώς μί φορά σε κάθε γρμμή κι κριβώς μί φορά σε κάθε στήλη. Γι πράδειγμ ο πρκάτω πίνκς 3x3 ποτελεί λτινικό τετράγωνο διότι έχει κριβώς 3 διφορετικούς ριθμούς πό το 1 έως κι το 3 κι ο κάθε ριθμός εμφνίζετι μί μόνο φορά σε κάθε γρμμή κι μί φορά σε κάθε στήλη: Ν κτσκευάσετε λγόριθμο ο οποίος δεδομένου ενός τετργωνικού πίνκ n n με n 100 θ ελέγχει ν ο πίνκς είνι λτινικό τετράγωνο ή όχι.