Σωστό Ή Λάθος;
H συνάρτηση range δημιουργεί μια λίστα αριθμών
Η συνάρτηση range(7) και η range(1,7) παράγουν ίδια λίστα αριθμών
Η συνάρτηση range παίρνει και πραγματικούς αριθμούς
Η συνάρτηση range (5,1) παράγει [1,2,3,4]; Ή [5,4,3,2] Ή κάτι άλλο;
Η range(5,5) παράγει κενή λίστα
Η range (-10,-2) και η range(-10,-2,1) δημιουργούν ίδια λίστα τιμών
Η συνάρτηση random.randint(1,10) αποκλείεται να δώσει τιμή 1 ή 10
Η συνάρτηση random.randrange(1,10) μπορεί να δώσει τιμή 10
Η εντολή for i in range(2,2) εκτελείται μία φορά.
Κάθε πρόβλημα που λύνεται με δομή επανάληψης μπορεί να λυθεί με εντολή for.
Να γίνει ο πίνακας τιμών:
s=0
for i in range(1,4):
s+=i
k=s*2
if k%2==0
s=s-1
print s
else
k=k-5
print k
print s,k
1. Ποιες τιμές παίρνει το i;
a. for i in range(1,11):
b.for i in range(10,100):
c. for i in range(0,110,2):
d. for i in range(10,0,-1):
e. for i in range(20):
2. Να διαβάζονται 10 ακέραιοι αριθμοί και να υπολογίζεται και εμφανίζεται το:
α. Άθροισμα των θετικών
β. Ο μέσος όρος των αρνητικών
γ. Το πλήθος των περιττών
δ. το ποσοστό των άρτιων
ε. Ο μέγιστος και ο ελάχιστος.
στ. Αφού βρεθεί ο μέγιστος, να υπολογιστεί το Max! (=1*2*3*...Max)
3. Να γραφεί πρόγραμμα που να διαβάζει το ονοματεπώνυμο και το μέσο όρο βαθμολογίας 50 μαθητών και να εμφανίζει το ονοματεπώνυμο και τον βαθμό του μαθητή με το μεγαλύτερο μέσο όρο βαθμολογίας.
4. Ένα ξενοδοχείο έχει 50 δωμάτια και απασχολεί αριθμό υπαλλήλων ανάλογα με το πόσα δωμάτια είναι κατειλημμένα, όπως φαίνεται στον πίνακα:
ΑΡΙΘΜΟΣ ΚΑΤΕΙΛΗΜΜΕΝΩΝ ΔΩΜΑΤΙΩΝ |
ΣΥΝΟΛΙΚΟΣ ΑΡΙΘΜΟΣ ΥΠΑΛΛΗΛΩΝ |
ΛΙΓΟΤΕΡΑ ΑΠΟ 10 |
4 |
ΑΠΟ 10 ΜΕΧΡΙ ΚΑΙ 25 |
6 |
ΠΆΝΩ ΑΠΟ 25 |
10 |
( Ο αριθμός υπαλλήλων και ο αριθμός δωματίων δεν έχουν κλιμακωτή σχέση)
Δεδομένου ότι το μισθός ανά ημέρα κάθε υπαλλήλου είναι 70 ευρώ, να γράψετε πρόγραμμα που να διαβάζει τον αριθμό κατειλημμένων δωματίων και να εμφανίζει τον αριθμό των υπαλλήλων που εργάζονται καθώς και το συνολικό κόστος για την πληρωμή τους για τη συγκεκριμένη ημέρα για 30 ημέρες.
5. Στο Τμήμα Γ Πληροφορικής υπάρχουν 12 μαθητές που ο καθένας έχει βαθμούς 10 μαθημάτων.
Να γραφεί πρόγραμμα που να διαβάζει το ονοματεπώνυμο του κάθε μαθητή , τους βαθμούς του και να υπολογίζει τον μέσο όρο του. Θα εμφανίζει ονοματεπώνυμο και μέσο όρο.
--------------------------------------------------------------------------------------------------------------------------
Ασκήσεις με while:
1. Να γραφεί πρόγραμμα στο οποίο ο χρήστης θα δίνει ακέραιους αριθμούς και θα υπολογίζει και εμφανίζει :
α. Άθροισμα των θετικών
β. Το μέσο όρο των αρνητικών
γ. Το πλήθος των περιττών
δ. το ποσοστό των άρτιων
ε. Ο μέγιστος και ο ελάχιστος.
στ. Αφού βρεθεί ο μέγιστος, να υπολογιστεί το Max! (=1*2*3*...Max)
ζ. Το πλήθος όλων των αριθμών.
Θα τελειώνει (συνθήκη τερματισμού) μόλις ο χρήστης δώσει το -999.
2. Να γραφεί πρόγραμμα που να διαβάζει βαθμούς, ελέγχοντας ότι αυτοί είναι από 0 ως και 20 (έλεγχος ορθότητας-εγκυρότητας) και ονόματα μαθημάτων. Αν είναι εκτός αυτής της περιοχής, να βγάζει κατάλληλο μήνυμα. Να εμφανίζει το μάθημα με το μεγαλύτερο βαθμό και δίπλα το βαθμό και ομοίως για το μάθημα με το μικρότερο βαθμό. Η Επανάληψη τελειώνει όταν δοθεί για όνομα μαθήματος το "ΤΕΛΟΣ"
3.Το κλασικό παιχνίδι «Πέτρα-Ψαλίδι-Χαρτί» παίζεται με δύο παίκτες. Σε κάθε γύρο του παιχνιδιού, ο κάθε παίκτης επιλέγει ένα από τα ΠΕΤΡΑ, ΨΑΛΙΔΙ, ΧΑΡΤΙ, και παρουσιάζει την επιλογή του ταυτόχρονα με τον αντίπαλό του.
Η ΠΕΤΡΑ κερδίζει το ΨΑΛΙΔΙ, το ΨΑΛΙΔΙ το ΧΑΡΤΙ και το ΧΑΡΤΙ την ΠΕΤΡΑ.
Σε περίπτωση που οι δύο παίκτες έχουν την ίδια επιλογή, ο γύρος λήγει ισόπαλος.
Το παιχνίδι προχωράει με συνεχόμενους γύρους μέχρι ένας τουλάχιστον από τους παίκτες να αποχωρήσει. Νικητής αναδεικνύεται ο παίκτης με τις περισσότερες νίκες. Αν οι δύο παίκτες έχουν τον ίδιο αριθμό νικών, το παιχνίδι λήγει ισόπαλο.
Να αναπτύξετε πρόγραμμα που να διαβάζει τα ονόματα των δύο παικτών και υλοποιεί το παραπάνω παιχνίδι ως εξής:
Α. Για κάθε γύρο του παιχνιδιού:
1. διαβάζει την επιλογή κάθε παίκτη, η οποία μπορεί να είναι μία από τις εξής:
ΠΕΤΡΑ, ΨΑΛΙΔΙ, ΧΑΡΤΙ, ΤΕΛΟΣ. (απαιτείται έλεγχος εγκυρότητας τιμών.)
2. συγκρίνει τις επιλογές των παικτών και διαπιστώνει το νικητή του γύρου ή την ισοπαλία.
Β. Τερματίζει το παιχνίδι όταν ένας τουλάχιστον από τους δύο παίκτες επιλέξει ΤΕΛΟΣ.
Γ. Εμφανίζει το όνομα του νικητή ή, αν δεν υπάρχει νικητής, το μήνυμα «ΤΟ ΠΑΙΧΝΙΔΙ ΕΛΗΞΕ ΙΣΟΠΑΛΟ». (Πανελλήνιες ΓΕΛ 2007)
4. ∆ημόσιος οργανισμός διαθέτει ένα συγκεκριμένο ποσό για την επιδότηση επενδυτικών έργων. Η επιδότηση γίνεται κατόπιν αξιολόγησης και αφορά δύο συγκεκριμένες κατηγορίες έργων με βάση τον προϋπολογισμό τους. Οι κατηγορίες και τα αντίστοιχα ποσοστά επιδότησης επί του προϋπολογισμού φαίνονται στον παρακάτω πίνακα:
Η εκταμίευση των επιδοτήσεων των αξιολογηθέντων έργων γίνεται με βάση τη χρονική σειρά υποβολής τους. Μετά από κάθε εκταμίευση μειώνεται το ποσό που διαθέτει ο οργανισμός. Να αναπτύξετε πρόγραμμα που:
Γ 1. Να διαβάζει το ποσό που διαθέτει ο οργανισμός για το πρόγραμμα επενδύσεων συνολικά, ελέγχοντας ότι το ποσό είναι μεγαλύτερο από 5.000.000 ευρώ.
Γ 2. Να διαβάζει το όνομα κάθε έργου. Η σειρά ανάγνωσης είναι η σειρά υποβολής των έργων. Η επαναληπτική διαδικασία να τερματίζεται, όταν αντί για όνομα έργου δοθεί η λέξη «ΤΕΛΟΣ», ή όταν το διαθέσιμο ποσό έχει μειωθεί τόσο, ώστε να μην είναι δυνατή η επιδότηση ούτε ενός έργου μικρής κατηγορίας. Για κάθε έργο, αφού διαβάσει το όνομά του, να διαβάζει και τον προϋπολογισμό του (δεν απαιτείται έλεγχος εγκυρότητας του προϋπολογισμού).
Γ 3. Για κάθε έργο να ελέγχει αν το διαθέσιμο ποσό καλύπτει την επιδότηση, και μόνον τότε να γίνεται η εκταμίευση του ποσού. Στη συνέχεια, να εμφανίζει το όνομα του έργου και το ποσό της επιδότησης που δόθηκε.
Γ 4. Να εμφανίζει το πλήθος των έργων που επιδοτήθηκαν από κάθε κατηγορία καθώς και τη συνολική επιδότηση που δόθηκε σε κάθε κατηγορία.
Γ 5. Μετά το τέλος της επαναληπτικής διαδικασίας να εμφανίζει το ποσό που δεν έχει διατεθεί, μόνο αν είναι μεγαλύτερο του μηδενός. (Πανελλήνιες ΓΕΛ 2012)
(Πανελλήνιες 2021)
Β1. α) Δίνεται το παρακάτω τμήμα προγράμματος σε γλώσσα προγραμματισμού Python:
x = 0
while x <= 5:
x = x + 1
print x
Να γράψετε στο τετράδιό σας τις τιμές του x με τη σειρά που εμφανίζονται στην οθόνη με την εντολή print κατά την εκτέλεσή του (μον. 6).
β) Να ξαναγράψετε το παραπάνω τμήμα προγράμματος χρησιμοποιώντας την εντολή επανάληψης for αντί της εντολής επανάληψης while, ώστε να εμφανίζει το ίδιο αποτέλεσμα (μον. 4).
(Πανελλήνιες 2020)
Α1 ε. Η συνάρτηση range(10, 1, -2) επιστρέφει τη λίστα [10, 8, 6, 4, 2].
A2. Δίνονται τα παρακάτω τρία (3) τμήματα προγραμμάτων:
Να γράψετε στο τετράδιό σας τον αριθμό του τμήματος προγράμματος και δίπλα το πλήθος των επαναλήψεων που θα πραγματοποιηθούν σε καθένα από αυτά.
(Πανελλήνιες 2019)
ΘΕΜΑ Γ
Σε έναν αγώνα ταχύτητας αυτοκινήτων συμμετέχουν στον προκριματικό 35 οδηγοί με τα αυτοκίνητα τους. Στον τελικό αγώνα θα συμμετάσχουν όσοι οδηγοί σημειώσουν επίδοση
μικρότερη ή ίση από 180 δευτερόλεπτα που αποτελεί το όριο πρόκρισης. Κάθε οδηγός έχει μέχρι τέσσερις (4) προσπάθειες για να πετύχει το όριο πρόκρισης. Αν πετύχει σε μία προσπάθεια, σταματά και δεν συνεχίζει τις υπόλοιπες προσπάθειες.
Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:
Γ1. Για κάθε οδηγό να διαβάζει το όνομά του (μον. 2) και διαδοχικά τον χρόνο των προσπαθειών του μέχρι να πετύχει την κατάλληλη επίδοση ή να συμπληρωθεί ο αριθμός των προσπαθειών που δικαιούται. (μον. 8)
Μονάδες 10
Γ2. Για κάθε οδηγό να εμφανίζει το όνομά του και αν προκρίθηκε τον χρόνο πρόκρισής του, διαφορετικά να εμφανίζει το μήνυμα “ΜΗ ΣΥΜΜΕΤΟΧΗ”.
Μονάδες 4
Γ3. Να υπολογίζει και να εμφανίζει το πλήθος των προκριθέντων οδηγών (μον. 3), καθώς και το μέσο όρο των χρόνων πρόκρισης που πέτυχαν. (μον. 3) Υποθέστε ότι υπάρχει τουλάχιστον ένας.
Μονάδες 6
Γ4. Να βρίσκει και να εμφανίζει το όνομα του οδηγού με το μικρότερο χρόνο πρόκρισης και τον χρόνο αυτό (Υποθέστε ότι είναι μοναδικός).
Μονάδες 5
(Πανελλαδικές 2018)
Α1 β. Στη γλώσσα προγραμματισμού Python χρησιμοποιούμε την εντολή for για να εκτελεστεί
ένα τμήμα του κώδικα για έναν καθορισμένο αριθμό επαναλήψεων.
ΘΕΜΑ B
Β1. Δίνεται το παρακάτω τμήμα προγράμματος σε γλώσσα προγραμματισμού Python.
for i in range(15,5,-5):
for j in range(2,10,4):
print i,j
Να γράψετε στο τετράδιό σας τα ζεύγη των τιμών i,j με τη σειρά που εμφανίζονται στην οθόνη με την εντολή print κατά την εκτέλεσή του.
B3. Δίνεται το παρακάτω τμήμα προγράμματος σε γλώσσα
προγραμματισμού Python όπου υπάρχουν κενά, τα
οποία έχουν αριθμηθεί και υπογραμμιστεί.
Να γράψετε στο τετράδιό σας τους αριθμούς (1), (2), (3), (4) και (5) που αντιστοιχούν στα κενά του
παραπάνω τμήματος προγράμματος και δίπλα σε κάθε αριθμό, αυτό που πρέπει να συμπληρωθεί, ώστε να υπολογιστούν διαδοχικά τα παρακάτω αθροίσματα:
α) 20+40+60+80+100
(Πανελλήνιες 2017)
B2. Να γράψετε στο τετράδιό σας ό,τι ακριβώς εμφανίζεται στην οθόνη κατά την εκτέλεση του παρακάτω τμήματος προγράμματος:
a=2
x=1
b=0
while x<4:
b=b+1
a=a*x
print "a=", a, "x=", x
if b%2 == 0:
x=x+1
else:
x=x+2
print "b=", b
Β4. Να ξαναγράψετε το παρακάτω τμήμα προγράμματος, χρησιμοποιώντας την εντολή επανάληψης while αντί της εντολής επανάληψης for έτσι ώστε να εμφανίζει το ίδιο αποτέλεσμα.
s=0
for i in range(1,10,2):
s=s+i
print s
print s
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
Σημείωση: Μόνο ένα μέλος αυτού του ιστολογίου μπορεί να αναρτήσει σχόλιο.