ΓΕΛ Περάματος Μυλοποτάμου Διαγώνισμα Α Τετραμήνου στο μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Σχολικό Έτος 2016-17 Ονοματεπώνυμο: Τμήμα: ΘΕΜΑ Α: A1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν η πρόταση είναι λανθασμένη. 1. Το αποτέλεσμα της παράστασης χ/3 όταν χ =6 είναι ακέραιος 2. Όταν το πλήθος των επαναλήψεων είναι γνωστό, δεν μπορεί να χρησιμοποιηθεί η εντολή επανάληψης Όσο...Επανάλαβε 3. Η τιμή της παράστασης Α ΚΑΙ ΟΧΙ(Α) είναι πάντοτε ΨΕΥΔΗΣ ενώ η τιμή της Α Ή ΟΧΙ(Α) είναι πάντοτε ΑΛΗΘΗΣ για οποιεσδήποτε τιμές της ΛΟΓΙΚΗΣ μεταβλητής Α. 4. Η ιεραρχία (προτεραιότητα) των τελεστών σε μια έκφραση είναι: αριθμητικοί, συγκριτικοί, λογικοί 5. Τα παρακάτω τμήματα κώδικα για χ ακέραια μεταβλητή, είναι ισοδύναμα: Αν χ > = 0 ΚΑΙ Χ <=9 τότε Εμφάνισε Θετικός μονοψήφιος Αλλιώς_Αν χ <= 99 τότε Εμφάνισε Θετικός Διψήφιος Αλλιώς Εμφάνισε Θετικός ΑΠΑΝΤΗΣΗ Α1: 1. Σ 2. Λ 3. Σ 4. Σ 5.Λ Αν χ >= 0 ΚΑΙ χ <= 9 τότε Εμφάνισε Θετικός Μονοψήφιος Αν Χ <= 99 τότε Εμφάνισε Θετικός Διψήφιος Αν Χ >=10 τότε Εμφάνισε Θετικός Α2. α. Να γράψετε στο τετράδιό σας το παρακάτω τμήμα προγράμματος ώστε να εμφανίζονται τα ίδια αποτελέσματα, ΧΩΡΙΣ τη χρήση του λογικού τελεστή Ή, χωρίς εμφωλευμένες δομές επιλογής και με μόνο ΜΙΑ δομή Σύνθετης Επιλογής. ΑΝ χ > 10 Η χ < 0 ΤΟΤΕ ΓΡΑΨΕ 'OUT' ΓΡΑΨΕ 'IN' (ΜΟΝΑΔΕΣ 4) ΑΠΑΝΤΗΣΗ Α2α: Αλγόριθμος Α2α Διάβασε χ Αν χ 0 και χ 10 τότε Γράψε 'IN' αλλιώς Γράψε 'OUT' Τέλος Α2α β. Σε έναν μαθητή δόθηκε το εξής πρόβλημα: «Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο να διαβάζει από το πληκτρολόγιο έναν ακέραιο αριθμό και να ελέγχει εάν είναι διψήφιος και θετικός. Στη περίπτωση που ισχύει να τυπώνεται το μήνυμα Θετικός, Διψήφιος αριθμός, ενώ διαφορετικά να τυπώνονται για κάθε περίπτωση Μόνο θετικός ή Μόνο διψήφιος ή Ούτε θετικός, ούτε διψήφιος.». Ο κώδικας που δόθηκε σαν απάντηση από τον μαθητή περιέχει εμφωλευμένες δομές επιλογής. Να τον ξαναγράψετε αντικαθιστώντας όλες τις δομές επιλογής που χρησιμοποιούνται με μόνο μια δομή πολλαπλής επιλογής και χωρίς περιττές συνθήκες ώστε να επιτυγχάνεται το ίδιο αποτέλεσμα με τον αρχικό κώδικα. 1
Ο κώδικας του μαθητή: ΠΡΟΓΡΑΜΜΑ Α2β ΑΚΕΡΑΙΕΣ: χ ΔΙΑΒΑΣΕ χ ΑΝ χ > 0 ΤΟΤΕ ΑΝ χ >= 10 ΚΑΙ χ <= 99 ΤΟΤΕ ΓΡΑΨΕ 'ΘΕΤΙΚΟΣ - ΔΙΨΗΦΙΟΣ' ΓΡΑΨΕ 'ΜΟΝΟ ΘΕΤΙΚΟΣ' ΑΝ χ <= -10 ΚΑΙ χ >= -99 ΤΟΤΕ ΓΡΑΨΕ 'ΜΟΝΟ ΔΙΨΗΦΙΟΣ' ΓΡΑΨΕ 'ΟΥΤΕ ΘΕΤΙΚΟΣ - ΟΥΤΕ ΔΙΨΗΦΙΟΣ' ΑΠΑΝΤΗΣΗ Α2β: (ΜΟΝΑΔΕΣ 8) ΠΡΟΓΡΑΜΜΑ Α2β ΑΚΕΡΑΙΕΣ: χ ΔΙΑΒΑΣΕ χ ΑΝ χ < -99 ΤΟΤΕ ΓΡΑΨΕ 'ΟΥΤΕ ΘΕΤΙΚΟΣ ΟΥΤΕ ΔΙΨΗΦΙΟΣ' _ΑΝ χ <= -10 ΤΟΤΕ ΓΡΑΨΕ 'ΜΟΝΟ ΔΙΨΗΦΙΟΣ' _ΑΝ χ <= 0 ΤΟΤΕ ΓΡΑΨΕ 'ΟΥΤΕ ΘΕΤΙΚΟΣ ΟΥΤΕ ΔΙΨΗΦΙΟΣ' _ΑΝ χ < 10 ΤΟΤΕ ΓΡΑΨΕ 'ΜΟΝΟ ΘΕΤΙΚΟΣ' _ΑΝ χ <= 99 ΤΟΤΕ ΓΡΑΨΕ 'ΘΕΤΙΚΟΣ ΔΙΨΗΦΙΟΣ' ΓΡΑΨΕ 'ΜΟΝΟ ΘΕΤΙΚΟΣ' ΑΠΑΝΤΗΣΗ Α3: 1. β. 2. α. 3.γ 2
ΑΠΑΝΤΗΣΗ Α4: ΓΙΑ Χ ΑΠΟ 4 ΜΕΧΡΙ 19 ΜΕ_ΒΗΜΑ 2 ΓΡΑΨΕ Χ Υ (Χ + 3)^2 ΓΡΑΨΕ Υ ΓΡΑΨΕ Χ+2 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Α5. Οι μεταβλητές χ, ψ και ζ έχουν τις αντίστοιχες τιμές: Χ = 10, ψ = 15 και ζ = 20 Να γράψετε στο τετράδιό σας την τιμή της μεταβλητής αποτ όπως αυτή προκύπτει από την εκτέλεση του παρακάτω προγράμματος σε Γλώσσα. ΠΡΟΓΡΑΜΜΑ Α5 ΑΚΕΡΑΙΕΣ: χ, ψ, ζ, αποτ ΔΙΑΒΑΣΕ χ, ψ, ζ ΑΝ χ >= 10 Η ΟΧΙ(ψ < (ζ - 6)) ΚΑΙ (ζ < 3*5) ΤΟΤΕ αποτ <- 5* 5 div 3 αποτ <- 5* 5 mod 3 ΓΡΑΨΕ αποτ (ΜΟΝΑΔΕΣ 5) ΑΠΑΝΤΗΣΗ Α5: 8 3
ΘΕΜΑ Β: Β1. Να γράψετε στο τετράδιό σας το πρόγραμμα που προκύπτει από το παρακάτω διάγραμμα ροής (Όλες οι μεταβλητές που χρησιμοποιούνται είναι ακέραιες). Το πρόγραμμα θα πρέπει να περιλαμβάνει τμήμα Δηλώσεων μεταβλητών καθώς και κύριο μέρος. ΑΠΑΝΤΗΣΗ Β1: ΠΡΟΓΡΑΜΜΑ Β1 ΑΚΕΡΑΙΕΣ: Σ, κ, χ _ΕΠΑΝΑΛΗΨΗΣ Σ <- 0 κ <- 1 ΟΣΟ κ <= 100 ΕΠΑΝΑΛΑΒΕ ΔΙΑΒΑΣΕ χ Σ <- Σ + χ κ <- κ + 1 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΕΧΡΙΣ_ΟΤΟΥ Σ > 1000 4
Αντιγράψτε τον παρακάτω πίνακα τιμών στην κόλλα σας και συμπληρώστε τον. Α Β Β>50 ΕΞΟΔΟΣ 10 20............ ΑΠΑΝΤΗΣΗ Β2: Α Β Β>50 ΕΞΟΔΟΣ 10 20 30 10 30 ΨΕΥΔΗΣ 40 10 40 ΨΕΥΔΗΣ 50 10 50 ΨΕΥΔΗΣ 60 10 60 ΑΛΗΘΗΣ 5
ΘΕΜΑ Γ: Μία εταιρεία πληροφορικής προσφέρει υπολογιστές σε τιμές οι οποίες μειώνονται ανάλογα με την ποσότητα της παραγγελίας, όπως φαίνεται στον παρακάτω πίνακα: Να κατασκευάσετε πρόγραμμα σε Γλώσσα το οποίο: 1. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων. 2. Για μια παραγγελία, να διαβάζει την απαιτούμενη ποσότητα υπολογιστών που θέλει ο πελάτης να προμηθευτεί. (ΜΟΝΑΔΕΣ 2) 3. Να εμφανίζει α. το κόστος της παραγγελίας εφαρμόζοντας κλιμακωτή χρέωση β. το ποσό που θα κόστιζε η παραγγελία, εάν ο υπολογισμός γινόταν ενιαία και ΟΧΙ κλιμακωτά με τις τιμές που φαίνονται στον πίνακα. (ΜΟΝΑΔΕΣ 5) Στο τέλος κάθε παραγγελίας υπάρχει ΦΠΑ 24%. Επίσης, αν η παραγγελία περιλαμβάνει περισσότερους από 150 υπολογιστές οι 2 τελευταίοι δίνονται δωρεάν. (Για παράδειγμα αν κάποιος πελάτης παραγγείλει 180 υπολογιστές, εφαρμόζοντας κλιμακωτή χρέωση θα πληρώσει 50*580 + 50*520 + 78*470 ευρώ ενώ αν εφαρμόζουμε ενιαία χρέωση θα πληρώσει 178*470 ευρώ. Το ίδιο ισχύει και για παραγγελίες πάνω από 200 υπολογιστές) 6
ΑΠΑΝΤΗΣΗ Γ: ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Γ!ποσότητα: το πλήθος των υπολογιστών που αγοράζονται, κόστος1: με κλιμακωτή χρέωση, κόστος2: με ενιαία χρέωση, τελική_τιμή1: με κλιμακωτή χρέωση, τελική_τιμή2: με ενιαία χρέωση ΑΚΕΡΑΙΕΣ: ποσότητα ΠΡΑΓΜΑΤΙΚΕΣ: κόστος1,κόστος2, τελική_τιμή1, τελική_τιμή2 ΓΡΑΨΕ 'Δώσε την ποσότητα των υπολογιστών' ΔΙΑΒΑΣΕ ποσότητα! υπολογισμός κόστους με κλιμακωτή χρέωση ΑΝ ποσότητα <= 50 ΤΟΤΕ κόστος1 <- ποσότητα*580 _ΑΝ ποσότητα <= 100 ΤΟΤΕ κόστος1 <- 580*50 + (ποσότητα-50)*520 _ΑΝ ποσότητα <= 150 ΤΟΤΕ κόστος1 <- 580*50 + 50*520 + (ποσότητα-100)*470 _ΑΝ ποσότητα <= 200 ΤΟΤΕ κόστος1 <- 580*50 + 50*520 + (ποσότητα-2-100)*470 κόστος1 <- 580*50 + 50*520 + 100*470 +(ποσότητα-2-200)*440!υπολογισμός τιμής με τον ΦΠΑ 24% τελική_τιμή1 <- κόστος1*1.24! υπολογισμός κόστους με ενιαία χρέωση ΑΝ ποσότητα <= 50 ΤΟΤΕ κόστος2 <- ποσότητα*580 _ΑΝ ποσότητα <= 100 ΤΟΤΕ κόστος2 <- ποσότητα*520 _ΑΝ ποσότητα <= 150 ΤΟΤΕ κόστος2 <- ποσότητα*470 _ΑΝ ποσότητα <= 200 ΤΟΤΕ κόστος2 <- (ποσότητα-2)*470 κόστος2 <- (ποσότητα-2)*440!υπολογισμός τιμής με τον ΦΠΑ 24% τελική_τιμή2 <- κόστος2*1.24!εμφάνιση τελικού κόστους ΓΡΑΨΕ "Με κλιμακωτή χρέωση το τελικό κόστος είναι: ", κόστος1 ΓΡΑΨΕ "Με ενιαία χρέωση το τελικό κόστος είναι: ", κόστος2 7
ΘΕΜΑ Δ: Να γράψετε πρόγραμμα στη ΓΛΩΣΣΑ με το όνομα ΘΕΜΑ_Δ, το οποίο: 1) Να ζητά από τον χρήστη το πλήθος των μαθητών του σχολείου σας. Για κάθε μαθητή του σχολείου σας να ζητά από τον χρήστη: όνομα, κωδικό φύλου (Α για αγόρι και Κ για κορίτσι), αριθμό δικαιολογημένων απουσιών, αριθμό αδικαιολόγητων απουσιών. Η επανάληψη να τερματίζει είτε όταν δοθούν τα στοιχεία για όλους του μαθητές του σχολείου, είτε όταν δοθεί όνομα μαθητή ΤΕΛΟΣ. Να θεωρήσετε ότι όλα τα στοιχεία δίνονται σωστά και δεν χρειάζεται κανένας έλεγχος εγκυρότητας τιμής. 2) Να τυπώνει το όνομα του κάθε μαθητή και το σύνολο των απουσιών του (δικαιολογημένες και αδικαιολόγητες ). 3) Να βρίσκει και να τυπώνει το όνομα του μαθητή που έχει τις περισσότερες αδικαιολόγητες απουσίες. (ΜΟΝΑΔΕΣ 4) 4) Να υπολογίζει και να τυπώνει ξεχωριστά τον αριθμό των αγοριών και τον αριθμό των κοριτσιών που έχουν από 40 μέχρι 50 (συμπεριλαμβανομένων) αδικαιολόγητες απουσίες και κινδυνεύουν να μείνουν στάσιμοι. (ΜΟΝΑΔΕΣ 4) 5) Να υπολογίζει και να τυπώνει τον αριθμό των μαθητών που έμειναν στάσιμοι. Στάσιμος μένει ο μαθητής με περισσότερες από 50 αδικαιολόγητες απουσίες ή περισσότερες από 160 απουσίες στο σύνολο (δικαιολογημένες και αδικαιολόγητες). 6) Να υπολογίζει και να τυπώνει το μέσο όρο των αδικαιολόγητων απουσιών των μαθητών που καταχωρήθηκαν. 8
ΑΠΑΝΤΗΣΗ Δ: ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Δ!όνομα μαθητή, κώδικός φύλου Α/Κ, όνομα μαθητή με τις περισσότερες αδικαιολόγητες,πλήθος μαθητών σχολείου, μετρητής μαθητών,δικαιολογημένες, αδικαιολόγητες, σύνολο απουσιών, μέγιστος αριθμός αδικαιολόγητων απουσιών, αριθμός αγοριών και αριθμός κοριτσιών με 40-50 αδικαιολόγητες, αριθμός μαθητών που μένουν στάσιμοι, σύνολο αδικαιολόγητων απουσιών όλων των μαθητών, καταμετρημένοι μαθητές, μέσος όρος αδικαιολόγητων απουσιών ΧΑΡΑΚΤΗΡΕΣ: όνομα, φύλο, όνομα_max ΑΚΕΡΑΙΕΣ: πλήθος, i, δικ, αδικ, σύνολο, αδικ_max, αγόρια, κορίτσια, στάσιμοι, σύνολο_αδι κ, καταμετρημένοι ΠΡΑΓΜΑΤΙΚΕΣ: ΜΟ_αδικ! αρχικοποίηση μεταβλητών αδικ_max <- 0 αγόρια <- 0 κορίτσια <- 0 στάσιμοι <- 0 σύνολο_αδικ <- 0 καταμετρημένοι <- 0 ΜΟ_αδικ <- 0! ερώτημα 1 ΔΙΑΒΑΣΕ πλήθος ΔΙΑΒΑΣΕ όνομα! Το i μετράει τις επαναλήψεις μέχρι να διαβαστουν τα στοιχεία όλων των μαθητών i <- πλήθος όνομα_max <- όνομα ΟΣΟ (i <> 0) ΚΑΙ (όνομα <> 'ΤΕΛΟΣ') ΕΠΑΝΑΛΑΒΕ ΔΙΑΒΑΣΕ φύλο, δικ, αδικ!ερώτημα 2 σύνολο <- δικ + αδικ ΓΡΑΨΕ "ο μαθητής ", όνομα, " έχει ", σύνολο, " απουσίες."!ερώτημα 3 ΑΝ αδικ > αδικ_max ΤΟΤΕ αδικ_max <- αδικ όνομα_max <- όνομα!ερώτημα 4 ΑΝ αδικ >= 40 ΚΑΙ αδικ <= 50 ΤΟΤΕ ΑΝ φύλο = 'Α' Η φύλο = 'α' ΤΟΤΕ αγόρια <- αγόρια + 1 κορίτσια <- κορίτσια + 1! ερώτημα 5 ΑΝ αδικ > 50 Η σύνολο > 160 ΤΟΤΕ στάσιμοι <- στάσιμοι + 1! ερώτημα 6 σύνολο_αδικ <- σύνολο_αδικ + αδικ καταμετρημένοι <- καταμετρημένοι + 1 i <- i - 1 ΔΙΑΒΑΣΕ όνομα ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ!ερώτημα 3 ΓΡΑΨΕ "Ο μαθητής με τις περισσότερες αδικαιολόγητες απουσίες: ", όνομα_max!ερώτημα 4 ΓΡΑΨΕ αγόρια, " αγόρια και ", κορίτσια, " κορίτσια κινδυνεύουν να μείνουν στάσιμα"! ερώτημα 5 ΓΡΑΨΕ στάσιμοι, " μαθητές μένουν στάσιμοι" ΜΟ_αδικ <- σύνολο_αδικ/καταμετρημένοι! ερώτημα 6 ΓΡΑΨΕ "Ο μέσος όρος αδικαιολόγητων απουσιών είναι: ", ΜΟ_αδικ 9