ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη λέξη Σωστό, αν είναι σωστή ή τη λέξη Λάθος, αν η πρόταση είναι λανθασμένη. α. Οι δηλώσεις μεταβλητών (variables) σε ένα πρόγραμμα Pascal χρησιμοποιούνται για να ορίσουμε τα ονόματα δεδομένων των οποίων η τιμή μπορεί να αλλάξει κατά τη διάρκεια εκτέλεσης του προγράμματος. β. Η εντολή for της Pascal είναι προτιμότερη για περιπτώσεις που το πλήθος των επαναλήψεων δεν είναι γνωστό από την αρχή. γ. Η συνθήκη ( x or not(x) ) έχει πάντα τιμή true ανεξάρτητα από τη τιμή της μεταβλητής(τύπου Boolean) x δ. Οι τελεστές div και mod χρησιμοποιούνται αποκλειστικά στον πραγματικό τύπο. ε. Το τμήμα εντολών προγράμματος σε Pascal: x:=15.334; if x > = 9.5 then writeln(x:4:1); εμφανίζει στη οθόνη την τιμή 15.33 Σελίδα 1 από 7
Α2. Να γράψετε τους αριθμούς 1, 2, 3, 4, 5 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε, στ της Στήλης Β που δίνει τη σωστή αντιστοιχία Στήλη Α Στήλη Β 1. xor α. Εντολή επανάληψης που εκτελεί τουλάχιστον μια επανάληψη 2. Case β, Αριθμητικός τελεστής 3. Read() γ. Εντολή επανάληψης που μπορεί να μην εκτελεστεί ποτέ 4. Επανάλαβε Μέχρι δ. Εντολή επιλογής 5. Εφόσον επανάλαβε ε. Λογικός τελεστής στ. Εντολή εισόδου Α3. Δίνεται το παρακάτω πρόγραμμα σε Pascal: m:=0; s:=0; while m < 10 do begin s:=s + m; m:= m + 3; end; writeln(s, m); Να απαντήσετε στα επόμενα ερωτήματα: (α) πόσες επαναλήψεις κάνει. (β) τι εμφανίζει. (Μονάδες 6) Σελίδα 2 από 7
Α4. Δίνεται το παρακάτω πρόγραμμα γραμμένο σε Pascal στο οποίο δεν έχουν δηλωθεί οι μεταβλητές που χρησιμοποιούνται σε αυτό. Να γράψετε ξανά το πρόγραμμα δηλώνοντας και τις μεταβλητές του. Program A4; Begin readln(x, y); z:= x mod y; aver:= (x + y) / 2; let:= A ; first_name:= john ; control:= aver > = 9.5; writeln(z, aver, let, first_name); end. Α5. Δίνονται δύο τμήματα προγράμματος Α και Β. Να γράψετε ξανά το τμήμα Β συμπληρώνοντας κατάλληλα τα κενά, ώστε να εκτελεί την ίδια λειτουργία με το Α. Τμήμα Α. Τμήμα Β. if x=10 then y:=x * 2; else if x=20 then y:= x div 2; else y:= x mod 2; case of 10 : :y:=x div 2; :y:=x mod 2; end; (Μονάδες 4) Σελίδα 3 από 7
ΘΕΜΑ Β. Β1. Δίνεται ο παρακάτω αλγόριθμος σε λογικό διάγραμμα: Αρχή S := 0 Για 5 φορές επανάλαβε Αρχή Διάβασε Χ όχι Χ > 0 ναι όχι Χ mod 2 = 0 ναι S := S + Χ Τέλος Εμφάνισε S Τέλος Σελίδα 4 από 7
α. Να γράψετε το αντίστοιχο πρόγραμμα σε γλώσσα Pascal β. Τι εμφανίζει το πρόγραμμα του ερωτήματος α, αν δοθούν διαδοχικά για την ακέραια μεταβλητή Χ οι παρακάτω τιμές: 2, -4, 0, -6, 5, 6, -7, 3, 0, -4, 14 (Μονάδες 2) Β2. Δίνεται το παρακάτω τμήμα προγράμματος σε Pascal : x:=8; ath:=0; while (x > 0 ) and ( ath < 100) do begin readln(value); ath:=ath + value; x:=x 1; end; writeln(ath); Να γράψετε ξανά το παραπάνω τμήμα ώστε να εκτελεί την ίδια λειτουργία χρησιμοποιώντας την εντολή repeat until.. (Μονάδες 8) ΘΕΜΑ Γ. Σε ΚΤΕΟ της χώρας το 2012 προσέρχονται οχήματα για έλεγχο. Τα οχήματα είναι τριών κατηγοριών φορτηγό, επιβατηγό, δίκυκλο και πληρώνουν 60, 40 και 20 αντίστοιχα. Ένα όχημα χαρακτηρίζεται ως προς την προσέλευση του «ΕΜΠΡΟΘΕΣΜΟ» ή «ΕΚΠΡΟΘΕΣΜΟ». Τα οχήματα που προσέρχονται εκπρόθεσμα επιβαρύνονται με πρόστιμο 15,80. Να αναπτύξετε πρόγραμμα Pascal το οποίο: Γ1. Περιέχει τμήμα δηλώσεων μεταβλητών. (Μονάδες 3) Γ2. Για ένα τυχαίο όχημα που προσέρχεται στο ΚΤΕΟ για έλεγχο: α. Διαβάζει το ονοματεπώνυμο του ιδιοκτήτη, έναν από τους παρακάτω χαρακτήρες( Φ ή Ε ή Δ ) για κατηγορία του οχήματος και που αφορούν Σελίδα 5 από 7
φορτηγό, επιβατηγό, δίκυκλο αντίστοιχα. Επίσης διαβάζει το τύπο προσέλευσης του οχήματος. (Μονάδες 3) β. Υπολογίζει με βάση την κατηγορία του και την εμπρόθεσμη ή εκπρόθεσμη προσέλευση του, το ποσό πληρωμής. Γ3. Εμφανίζει τα αποτελέσματα του προγράμματος ως εξής: ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΙΔΙΟΚΤΗΤΗ: ΚΑΤΗΓΟΡΙΑ ΟΧΗΜΑΤΟΣ: ΠΟΣΟ ΠΛΗΡΩΜΗΣ: ΥΠΑΡΞΗ ΠΡΟΣΤΙΜΟΥ: Όπου σε κάθε κενό διάστημα θα εμφανίζεται η τιμή της αντίστοιχης μεταβλητής αποτέλεσμα. (Μονάδες 4) Υποδείξεις για το θέμα Γ: 1.Σαν αποτέλεσμα στην ύπαρξη προστίμου να εμφανίζεται η λέξη «ΝΑΙ» ή λέξη «ΟΧΙ» ανάλογα. 2. Για κάθε είσοδο δεδομένων να υπάρχει κατάλληλο μήνυμα εξόδου. 3. Να θεωρήσετε όλα τα δεδομένα εισόδου έγκυρα. ΘΕΜΑ Δ. Το καθένα από τα πρακτορεία του ΟΠΑΠ έχει χαρακτηριστεί με ένα κωδικό Κ1 ή Κ2 και καταβάλλει ετησίως ένα χρηματικό ποσό σε αυτόν. Το ύψος του ποσού που θα καταβάλλει υπολογίζεται κλιμακωτά ως ποσοστό επί των ετήσιων εσόδων από τα παιχνίδια του ΟΠΑΠ και ανάλογα με τον κωδικό του πρακτορείου σύμφωνα με τον παρακάτω πίνακα: Ετήσια έσοδα Ποσοστό επί των ετήσιων εσόδων ανάλογα με τον κωδικό του πρακτορείου Κ1 Κ2 Έως και 80000 5% 4% Πάνω από 80000 14% 12% έως και 200000 Πάνω από 200000 22% 19% Να αναπτυχθεί αλγόριθμος σε γλώσσα προγραμματισμού Pascal ο οποίος : Δ1. Να διαβάζει το ονοματεπώνυμο του ιδιοκτήτη του πρακτορείου ΟΠΑΠ, τον κωδικό του πρακτορείου(κ1 ή Κ2), και τα ετήσια έσοδα από τα παιχνίδια του Σελίδα 6 από 7
ΟΠΑΠ. (Μονάδες 6) Δ2. Υπολογίζει το χρηματικό ποσό που θα καταβάλλει ο ιδιοκτήτης του πρακτορείου στον ΟΠΑΠ. Δ3. Εμφανίζει το ονοματεπώνυμο του ιδιοκτήτη του πρακτορείου και το ποσό που θα καταβάλλει στον ΟΠΑΠ. (Μονάδες 4) Υποδείξεις για το θέμα Δ α. Δεν χρειάζεται να γίνει έλεγχος ορθότητας τιμών. β. Τα ετήσια έσοδα είναι θετικός πραγματικός αριθμός. γ. Να υπάρχουν κατάλληλα μηνύματα στις εντολές εισόδου και εξόδου. δ. Ένα πχ. καταβολής ποσού για ιδιοκτήτη με κωδικό πρακτορείου Κ1: αν υποθέσουμε ότι είχε ετήσια έσοδα 100000 (2 η κλίμακα), τότε θα πληρώσει στον ΟΠΑΠ 4000 (το 5% των 80000) για τα 80000 της πρώτης κλίμακας συν 2800 (το 14% των 20000) για τα υπόλοιπα 20000 που ανήκουν στην δεύτερη κλίμακα δηλ. θα καταβάλλει το ποσό των 6800 στον ΟΠΑΠ. ΣΑΣ ΕΥΧΟΜΑΣΤΕ ΚΑΛΗ ΕΠΙΤΥΧΙΑ! Σελίδα 7 από 7