ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Δίνεται το παρακάτω τμήμα αλγορίθμου. Να εξετάσετε αν ικανοποιεί τα αλγοριθμικά κριτήρια. Γράψε 'Δώσε δύο τιμές' Διάβασε χ, n Αν χ>0 τότε Ψ 1 Γράψε ψ κ n + ψ Γράψε κ Σε περίπτωση που το χ δεν είναι θετικός, τότε δεν υπολογίζει το ψ. Συνεπώς αργότερα δε θα μπορέσει να εκτελέσει την πράξη κ n + ψ. Άρα δεν ικανοποιεί το κριτήριο της καθοριστικότητας II. Ποιες οι διαφορές μεταξύ των στατικών και των δυναμικών δομών; Οι στατικές δομές έχουν σταθερό μέγεθος και καταλαμβάνουν συνεχόμενες θέσεις μνήμης. Αντίθετα, οι δυναμικές δομές μπορούν να μεταβάλουν το μέγεθός τους και δεν καταλαμβάνουν συνεχόμενες θέσεις μνήμης. (Μονάδες 5) III. Να αναφέρετε δύο βασικές λειτουργίες επί των δομών δεδομένων που δεν μπορούν να χρησιμοποιηθούν στους πίνακες. Να αιτιολογήσετε την απάντησή σας. 1 Προσθήκη κόμβου 2 Διαγραφή κόμβου Οι πίνακες είναι στατικές δομές,συνεπώς δεν μπορεί να μεταβληθεί το μέγεθός τους (Μονάδες 5) IV. Να γράψετε δίπλα σε κάθε πρόταση αν είναι σωστή ή λάθος (Σ/Λ) 1. Το! δηλώνει ότι ο υπολογιστής θα αγνοήσει τη συγκεκριμένη γραμμή γιατί αυτή είναι σχόλια ( Σ ) 2. Η συγχώνευση, η αναζήτηση και η προσπέλαση είναι λειτουργίες των δομών δεδομένων ( Σ ) 3. Η πολλαπλή επιλογή Αν... αλλιώς_αν είναι υποχρεωτικό πριν από το να περιλαμβάνει την περίπτωση αλλιώς ( Λ ) 4. Οι λογικοί τελεστές εκτελούνται πριν από τους συγκριτικούς τελεστές. ( Λ ) 5. Στη ΓΛΩΣΣΑ, ο μέσος όρος ενός συνόλου ακεραίων μεταβλητών πρέπει να αποθηκευτεί σε μεταβλητή ακεραίου τύπου. ( Λ )
V. Να γραφούν σε ΓΛΩΣΣΑ οι εντολές που ανταλλάσσουν τα στοιχεία της πέμπτης γραμμής με εκείνα της τρίτης γραμμής ενός πίνακα ακεραίων 8x12. Για j από 1 μέχρι 12 τ Π[3, j] Π[3, j] Π[5, j] Π[5, j] τ Θέμα 2ο Α) Δίνεται το παρακάτω τμήμα αλγορίθμου. i 2 άθροισμα 0 Όσο i <= 100 επανάλαβε άθροισμα άθροισμα + i i i +2 Γράψε άθροισμα 1) Να γίνει το διάγραμμα ροής 2) Να γραφεί ισοδύναμος κώδικας με χρήση της Για... από... μέχρι άθροισμα 0Για i από 2 μέχρι 100 με_βήμα 2 Για i από 2 μέχρι 100 με_βήμα 2 άθροισμα άθροισμα + i
Γράψε άθροισμα Β) Να γραφεί τμήμα αλγορίθμου, το οποίο θα διαβάζει έναν θετικό ακέραιο αριθμό, θα υπολογίζει τον αριθμό των ψηφίων του καθώς και το άθροισμά τους. Διάβασε x πλ 0 αθ 0 Όσο x div 10 <>0 επανάλαβε πλ πλ + 1 αθ αθ + x mod 10 x x div 10 αθ αθ + x πλ πλ + 1 Θέμα 3ο Να αναπτυχθεί πρόγραμμα που θα διαβάζει (και θα ελέγχει ότι είναι διψήφιοι θετικοί) διψήφιους ακέραιους θετικούς αριθμούς. Στη συνέχεια θα εκτυπώνει ποιος αριθμός ήταν πιο κοντά στο 50 καθώς επίσης και το πλήθος των αριθμών που εισήχθησαν. Η επανάληψη πρέπει να τερματίζεται όταν εισαχθεί ο αριθμός 0. Σημείωση: στην περίπτωση που υπάρχουν δυο αριθμοί πλησιέστεροι στο 50 (ο ένας μεγαλύτερος και ο άλλος μικρότερος), πρέπει να εκτυπώνεται ο μικρότερος Πρόγραμμα Θ3 Μεταβλητές ακέραιες: ΕΛΑΧΙΣΤΟΣ, ΑΠΟΣΤΑΣΗ, ΑΡ, διαφορά Αρχή! Επειδή ο χρήστης μπορεί να δώσει την πρώτη φορά το 0, συνεπώς να μην εκτελεστεί η! επανάληψη καμία φορά, θα χρησιμοποιήσω την Όσο... επανάλαβε. Αρχικά αρχικοποιώ! την ελάχιστη απόσταση. Επειδή θέλω ελάχιστο, θα αρχικοποιήσω με μια μεγάλη τιμή! (έστω 100, αφού είναι μεγαλύτερος από όλους τους διψήφιους). Άρα αρχικά η απόσταση! είναι 50 ΕΛΑΧΙΣΤΟΣ 100 ΑΠΟΣΤΑΣΗ 50! Αρχικά διαβάζω και ελέγχω για πρώτη φορά τον αριθμό Αρχή_επανάληψης Γράψε 'Δώσε ένα διψήφιο αριθμό. Τερματίζεις με το 0.' Διάβασε ΑΡ μέχρις_ότου (ΑΡ>9 και ΑΡ<100) ή ΑΡ=0
! Ελέγχω την απόσταση από το μηδέν και θέτω τη μικρότερη απόσταση Όσο ΑΡ>0 επανάλαβε διαφορά ΑΡ-50! Αν η διαφορά είναι αρνητική παίρνω την απόλυτη τιμή της Αν διαφορά < 0 τότε διαφορά (-1)*διαφορά! Ελέγχω αν η διαφορά αυτή είναι η μικρότερη απόσταση Αν διαφορά < ΑΠΟΣΤΑΣΗ τότε ΑΠΟΣΤΑΣΗ διαφορά ΕΛΑΧΙΣΤΟΣ ΑΡ αλλιώς_αν διαφορά = ΑΠΟΣΤΑΣΗ τότε! για ίση απόσταση βλέπω ποιος είναι ο μικρότερος Αν ΑΡ < ΕΛΑΧΙΣΤΟΣ τότε ΕΛΑΧΙΣΤΟΣ ΑΡ! Διαβάζω και ελέγχω τον επόμενο αριθμό Αρχή_επανάληψης Γράψε 'Δώσε ένα διψήφιο αριθμό. Τερματίζεις με το 0.' Διάβασε ΑΡ μέχρις_ότου ΑΡ>9 και ΑΡ<100! Εμφανίζω το αποτέλεσμα. Αν ο ΕΛΑΧΙΣΤΟΣ είναι το 100 σημαίνει ότι την πρώτη φορά! έδωσε το 0 Αν ΕΛΑΧΙΣΤΟΣ=100 τότε Γράψε 'Δεν δόθηκε κανένας διψήφιος αριθμός' αλλιώς Γράψε 'Ο αριθμός',ελαχιστοσ,'είχε την μικρότερη απόσταση από το 50 και &είναι',αποσταση Τέλος_προγράμματος (Μονάδες 20) Θέμα 4ο Μια ομάδα χρησιμοποίησε δοκιμαστικά 6 επιθετικούς παίκτες σε 12 φιλικούς αγώνες ποδοσφαίρου. Κάθε παίκτης πέτυχε συγκεκριμένο αριθμό τερμάτων σε κάθε αγώνα. Η ομάδα αποφάσισε να αγοράσει με μεταγραφή 2 από τους παίκτες. Αυτόν που πέτυχε τα περισσότερα τέρματα καθώς και τον νεότερο σε ηλικία. Αν αυτός που πέτυχε τα
περισσότερα τέρματα έχει και τη μικρότερη ηλικία, τότε θα αγοράσει μόνο αυτόν. Να γραφεί πρόγραμμα το οποίο θα διαβάζει τα ονόματα των παικτών, την ηλικία τους καθώς και τα τέρματα που πέτυχαν στους αγώνες. Στη συνέχεια θα εμφανίζει τα ονόματα ή το όνομα του παίκτη που θα αγοράσει η ομάδα. Πρόγραμμα Θ4 Μεταβλητές ακέραιες: ΕΠ[6,12], ΤΕΡ[6], max, θmax, min, θmin, H[6], i, j χαρακτήρες: ΟΝ[6] Αρχή Εμφάνισε 'Δώσε όνομα και ηλικία αθλητή' Διάβασε ΟΝ[i], Η[i ] Για j από 1 μέχρι 12 Εμφάνισε 'Δώσε τέρματα αθλητή' Διάβασε ΕΠ[i, j] ΤΕΡ[i] 0 Για j από 1 μέχρι 12 ΤΕΡ[i] ΤΕΡ[i] + ΕΠ[i, j] max ΤΕΡ[1] θmax 1 min Η[1] θmin 1 Για i από 2 μέχρι 6 Αν Η[i] < min τότε min H[i] θmin i Αν ΤΕΡ[i] > max τότε max ΤΕΡ[i] θmax i Αν θmax = θmin τότε Εμφάνισε 'Θα αγοράσει έναν παίκτη, τον', ΟΝ[θmax] αλλιώς Εμφάνισε 'Θα αγοράσει δύο παίκτες, τους', ΟΝ[θmax], ΟΝ[θmin] τέλος_προγράμματος
(Μονάδες 20) SCIENCE PRESS