Μάθημα : ΠΛΗΡΟΦΟΡΙΚΗ Γ' ΛΥΚΕΙΟΥ

Κωδικός : D10101

D10101  -   ΔΑΒΙΤΗ ΜΑΓΔΑΛΗΝΗ

Υποπρογράμματα - με Πίνακες

Ερώτηση 1 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Να γραφεί υποπρόγραμμα το οποίο να γεμίζει ένα πίνακα ακεραίων 100 θέσεων.

Ερώτηση 2 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Να γραφτεί υποπρόγραμμα το οποίο θα δέχεται ως είσοδο ένα πίνακα ακεραίων 100 θέσεων και θα υπολογίζει το πλήθος των θετικών αριθμών.

Ερώτηση 3 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Να γραφτεί υποπρόγραμμα το οποίο θα δέχεται ως είσοδο ένα πίνακα ακεραίων 80 θέσεων και θα υπολογίζει το μέγιστο στοιχείο του πίνακα.

Ερώτηση 4 (Ελεύθερου Κειμένου — 10 βαθμοί) 

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

Ερώτηση 5 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Να γραφτεί υποπρόγραμμα το οποίο θα δέχεται ως είσοδο δύο πίνακες ακεραίων 40 θέσεων και θα υπολογίζει το ελάχιστο στοιχείο και στους δύο πίνακες.

Ερώτηση 6 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Να γραφτεί υποπρόγραμμα το οποίο θα δέχεται ως είσοδο ένα πίνακα χαρακτήρων 20 θέσεων και μια τιμή προς αναζήτηση μέσα στον πίνακα και θα επιστέφει αν η ζητούμενη τιμή υπάρχει στον πίνακα.

Ερώτηση 7 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Μονοδιάστατος -Ταξινόμηση - Αναζήτηση

α) Να γραφεί υποπρόγραμμα το οποίο δέχεται έναν μονοδιάστατο πίνακα Ν ακεραίων (μέγιστος αριθμός θέσεων το 500), και τον επιστρέφει ταξινομημένο.

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

γ) Να γραφεί πρόγραμμα το οποίο

i) διαβάζει έναν μονοδιάστατο πίνακα Ν ακεραίων (μέγιστος αριθμός θέσεων το 500) ο οποίος περιέχει πραγματικούς αριθμούς αφού πρώτα διαβάσει τον αριθμό θέσεων

ii) καλεί το υποπρόγραμμα ταξινόμησης (BUBBLESORT)

iii) στη  συνέχεια διαβάζει μια πραγματική τιμή, καλεί το υποπρόγραμμα αναζήτησης και εμφανίζει το αποτέλεσμα. (SEQUENTIAL SEARCHING – Σειριακή Αναζήτηση).

Ερώτηση 8 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Μονοδιάστατος - Ταξινόμηση

Να γραφεί πρόγραμμα που

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

Ερώτηση 9 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Δισαδιάστατος 1

Να γραφεί κυρίως πρόγραμμα το οποίο

  1. θα διαβάζει ένα δισδιάστατο πίνακα με θετικούς ακέραιους (έλεγχος) Α[6,8]
  2. θα διαβάζει έναν αριθμό που αντιστοιχεί σε γραμμή του πίνακα και ένα αριθμό που αντιστοιχεί σε στήλη του πίνακα
  3. με την βοήθεια υποπρογράμματος θα εμφανίζει το άθροισμα αυτής της γραμμής και το άθροισμα αυτής της στήλης

 

Ερώτηση 10 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Δισαδιάστατος 2

Να γραφεί υποπρόγραμμα το οποίο θα δέχεται ως είσοδο ένα πίνακα ακεραίων [50,100] και θα επιστρέφει των πίνακα των μέσων όρων κατά γραμμή.

Ερώτηση 11 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Αθλητές

Σε κάποιο διαγωνισμό σφαιροβολίας, συμμετέχουν 15 αθλητές οι οποίοι έχουν δικαίωμα για 5 βολές. Η καλύτερη από τις 5 προσπάθειες του κάθε αθλητή συγκρίνεται με τις  καλύτερες των άλλων αθλητών και νικητής βγαίνει αυτός που είχε την μεγαλύτερη βολή.

Να γίνει πρόγραμμα το οποίο:

1) Να διαβάζει τα ονομάτων των αθλητών και κάθε μία από τις βολές τους.

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

3) Να βρίσκει και να εμφανίζει τα ονόματα των τριών πρώτων αθλητών. Υποθέστε πως κάθε  βολή έχει διαφορετική τιμή από τις υπόλοιπες.

Ερώτηση 12 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Γαλακτοβιομηχανία

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

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

2) Θα υπολογίζει και εμφανίζει τη συνολική μηνιαία παραγωγή γάλατος. Για τον υπολογισμό να δημιουργήσετε υποπρόγραμμα συνάρτηση το οποίο θα δέχεται ως παράμετρο τον πίνακα της ημερήσιας παραγωγής και θα επιστρέφει το συνολικό άθροισμα.

3) Θα εντοπίζει τον αριθμό ημέρας με την μεγαλύτερη παραγωγή. Θεωρήστε ότι κάθε μέρα η ημερήσια παραγωγή είναι διαφορετική. Για τον υπολογισμό της μέγιστης παραγωγής να δημιουργήσετε υποπρόγραμμα συνάρτηση το οποίο θα δέχεται ως παράμετρο τον πίνακα της ημερήσιας παραγωγής και θα επιστρέφει την θέση του πίνακα με την μεγαλύτερη τιμή.

4) Αν η 1η του μήνα ήταν Δευτέρα, να εμφανίζει ποια μέρα της εβδομάδας σημειώθηκε η μέγιστη παραγωγή. Για την εύρεση της ημέρας να δημιουργήσετε υποπρόγραμμα συνάρτηση το οποίο θα δέχεται τον αριθμό της ημέρας και θα επιστρέφει το όνομά της.

Ερώτηση 13 (Ελεύθερου Κειμένου — 20 βαθμοί) 

Οικογένειες

Να γραφεί πρόγραμμα στη "ΓΛΩΣΣΑ" που για 50 οικογένειες θα διαβάζει σε πίνακα τον αριθμό παιδιών της, δεχόμενοι ότι τα παιδιά μπορεί να είναι από 1 μέχρι και 10 ανά οικογένεια. 
α) Για κάθε οικογένεια θα διαβάζεται το επίθετό της και για κάθε παιδί της οικογένειας θα διαβάζεται σε πίνακα δύο διαστάσεων το έτος γέννησης.


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

Σε κάποιες οικογένειες μπορεί να υπάρχουν 2 ή περισσότερα παιδιά με το ίδιο έτος γέννησης (π.χ. στην περίπτωση διδύμων).

Για να είναι γενικό το υποπρόγραμμα,  το έτος θα το δέχεται ως παράμετρο και τη στιγμή της κλήσης στο πρόγραμμα θα καθορίζεται η τιμή 2000.            


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

 

Ερώτηση 14 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Δυο σχολεία

Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ το οποίο:

Α) Αποθηκεύει σε δύο μονοδιάστατους πίνακες Ο1 και Ο2 τα ονόματα των μαθητών 2 σχολείων (μέγιστο πλήθος μαθητών κάθε σχολείου είναι 150).

Β) Αποθηκεύει σε δύο μονοδιάστατους πίνακες πραγματικών τιμών τους τελικούς βαθμούς των μαθητών 2 σχολείων κάνοντας χρήση της Διαδικασίας Εισαγωγή.

Γ) Διαβάζει ένα όνομα μαθητή και το αναζητεί αν υπάρχει σε κάθε πίνακα που περιέχει ονόματα, κάνοντας χρήση της συνάρτησης Αναζήτηση.

Δ) Υπολογίζει και εκτυπώνει το όνομα, το βαθμό και το σχολείο στο οποίο βρέθηκε ο μαθητής. Σε περίπτωση που δεν βρεθεί να εκτυπώνει αντίστοιχο μήνυμα.

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


ΣΤ) Ορίζει συνάρτηση Αναζήτηση η οποία δέχεται έναν πίνακα χαρακτήρων και το όνομα ενός μαθητή, και επιστρέφει την τιμή της θέσης του πίνακα στην οποία βρέθηκε το όνομα ή 0 (μηδέν) αν ο μαθητής δεν υπάρχει.

Ερώτηση 15 (Ελεύθερου Κειμένου — 10 βαθμοί) 

Ερωτηματολόγιο

Ένα ερωτηματολόγιο αποτελείται από 20 ερωτήσεις και σε αυτό σημειώνεται αριθμητικά η απάντηση (1 = διαφωνώ απόλυτα, 2 = διαφωνώ μερικώς, 3 = δε με αφορά, 4 = συμφωνώ μερικώς, 5 = συμφωνώ απόλυτα). Η δημοσκόπηση έγινε σε 10 μεγάλες πόλεις της Ελλάδας σε συνολικό δείγμα 2000 πολιτών.

Α) Να γραφεί συνάρτηση Αναζήτηση η οποία θα δέχεται έναν πίνακα χαρακτήρων 10 στοιχείων και μια μεταβλητή τύπου χαρακτήρα την οποία θα αναζητά μέσα στον πίνακα και θα επιστρέφει τη θέση του πίνακα στην οποία βρέθηκε ή 0 στην περίπτωση που δεν υπάρχει η συγκεκριμένη τιμή.

Β) Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ το οποίο:

1) αποθηκεύει σε μονοδιάστατο πίνακα Πόλεις[10] τα ονόματα των πόλεων που συμπληρώθηκαν τα ερωτηματολόγια.

2) διαβάζει επαναληπτικά για κάθε ερωτηματολόγιο το όνομα της πόλης που συμπληρώθηκε, αναζητά το όνομα της πόλης στον πίνακα Πόλεις (με χρήση της συνάρτησης) και αφού εντοπίσει τη θέση που βρίσκεται, να αποθηκεύει σε δισδιάστατο πίνακα Προσωρινά[10,20] την απάντηση σε κάθε ερώτηση από τις 20 ελέγχοντας την εγκυρότητα των τιμών (1 έως 5).

3) υπολογίζει και αποθηκεύει σε δισδιάστατο πίνακα Συχνότητα[10,5] το πλήθος των 5 απαντήσεων που δόθηκαν σε κάθε πόλη π.χ. στη θέση [4,1] αποθηκεύεται το πλήθος των απαντήσεων με τιμή 1 στην 4η πόλη, στη θέση [4,2] αποθηκεύεται το πλήθος των απαντήσεων με τιμή 2 στην 4η πόλη κ.ο.κ.

4) να διαβάζει το όνομα μιας πόλης και να αναζητά το όνομα στον πίνακα των ονομάτων (με χρήση της συνάρτησης). Σε περίπτωση που υπάρχει η συγκεκριμένη πόλη να υπολογίζει και να εκτυπώνει το πλήθος κάθε απάντησης (1 έως 5) που δόθηκε στη συγκεκριμένη πόλη καθώς και το ποσοστό επί τοις εκατό των απαντήσεων «δε με αφορά» στη συγκεκριμένη πόλη.

Ερώτηση 16 (Ελεύθερου Κειμένου — 20 βαθμοί) 

Στοίβα

Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ που θα χρησιμοποιεί τον πίνακα ΣΤΟΙΒΑ[100] ως στοίβα 100 θέσεων και θα πραγματοποιεί τις παρακάτω ενέργειες:

Α. Διαβάζει έναν ακέραιο αριθμό που καθορίζει το είδος ενέργειας που θα εκτελεστεί («1» για εισαγωγή αριθμού στη στοίβα ,«2» για εξαγωγή αριθμού από τη στοίβα και «3» για τερματισμό της επανάληψης). Για εισαγωγή νέου αριθμού, διαβάζει έναν νέο αριθμό και καλεί τη διαδικασία ΩΘΗΣΗ που περιγράφεται στο ερώτημα γ1, ενώ για την εξαγωγή αριθμού καλεί τη διαδικασία ΑΠΩΘΗΣΗ που περιγράφεται στο ερώτημα γ2.

Β. Μετά το τέλος της επαναληπτικής διαδικασίας, καλεί συνάρτηση η οποία δέχεται τον δείκτη κορυφής της στοίβας και επιστρέφει αλφαριθμητικό με τους χαρακτηρισμούς «ΑΔΕΙΑ»,«ΓΕΜΑΤΗ» ή «ΟΥΤΕ ΑΔΕΙΑ/ΟΥΤΕ ΓΕΜΑΤΗ».

Γ. Υλοποιεί:

1.τη διαδικασία ΩΘΗΣΗ η οποία θα δέχεται τη δομή της στοίβας,τον δείκτη κορυφής και έναν αριθμό Χ. Αν υπάρχει χώρος, με την ενέργεια της ώθησης εισάγει τον αριθμό Χ στη στοίβα,διαφορετικά εμφανίζει το μήνυμα «Δεν μπορείτε να εισάγετε αριθμό γιατί η στοίβα είναι γεμάτη». Επιστρέφει τη στοίβα και τον δείκτη top κατάλληλα τροποποιημένα.

2.τη διαδικασία ΑΠΩΘΗΣΗ η οποία θα δέχεται τη δομή της στοίβας,τον δείκτη κορυφής. Αν υπάρχουν αριθμοί στη στοίβα, εκτελεί τη λειτουργία της απώθησης, διαφορετικά εμφανίζει το μήνυμα «Δεν μπορείτε να εξάγετε αριθμό γιατί η στοίβα είναι άδεια».Επιστρέφει τη στοίβα και τον δείκτη top κατάλληλα τροποποιημένα.