ΑΣΚΗΣΕΙΣ
ΑΣΚΗΣΗ 1
Ποια είναι η έξοδος των παρακάτω αποσπασμάτων;
num = 1
while num <= 10:
print(num**2, end=" ")
num = num + 1
power = 5
while power > 0:
print("Your power is", power)
power = power - 1
print("No more power! Game Over!")
ΑΣΚΗΣΗ 2
Ποια είναι η έξοδος των παρακάτω αποσπασμάτων;
num = 0
while True:
num += 5
if num == 55:
break
if num == 15 or num == 25:
continue
print(num, end = " ")
num = 0
while True:
num += 1
if num % 2 == 0:
continue
if num == 21:
break
print(num, end = " ")
ΑΣΚΗΣΗ 3
Εντοπίστε και διορθώστε τα λογικά λάθη στα παρακάτω τμήματα κώδικα:
number = 1
while number <= 5:
print(number)
x = 1
while x <= 5:
print(x)
x -= 1
a = 1
b = 2
while a != 10:
print(a + b)
a = a + b
ΑΣΚΗΣΗ 4
Ποια είναι η έξοδος των παρακάτω τμημάτων κώδικα;
word = "letter"
for i in word:
print(i)
word = "letter"
for letter in word.upper():
print(letter)
ΑΣΚΗΣΗ 5
Ποια είναι η έξοδος των παρακάτω τμημάτων κώδικα;
for x in range(10):
print(x, end = " ")
for x in range(5,15):
print(x, end = " ")
for x in range(10,101,20):
print(x, end = " ")
ΑΣΚΗΣΗ 6
Ποια είναι η έξοδος του παρακάτω τμήματος;
for i in range(5,10,2):
for j in range(1,11):
print(i*j, end = " ")
print("\n---------------")
ΑΣΚΗΣΗ 7
Να γραφεί πρόγραμμα που για ένα ηλεκτρονικό παιχνίδι:
- Δημιουργεί μια μεταβλητή με όνομα strength, και την αρχικοποιεί με την τιμή 5.
- Εμφανίζει μήνυμα με την αρχική δύναμη (strength) του χρήστη.
- Δημιουργεί ένα βρόχο while που επαναλαμβάνεται μέχρι η strength να γίνει 10.
- Μέσα στο βρόχο, εμφανίζει μήνυμα με την τρέχουσα τιμή της μεταβλητής strength.
- Μέσα στο βρόχο, προσαυξάνει την τιμή της μεταβλητής strength κατά 1.
- Εκτός βρόχου, εμφανίζει μήνυμα που αναφέρει ότι ο χρήστης κατάφερε να περάσει στο επόμενο επίπεδο του παιχνιδιού.
ΑΣΚΗΣΗ 8
Να γραφεί πρόγραμμα που εμφανίζει μια σειρά από ακέραιους αριθμούς. Ο χρήστης εισάγει την αρχική τιμή, την τελική τιμή και το βήμα μέτρησης των αριθμών. Για παράδειγμα, αν ο χρήστης εισάγει τις τιμές 10, 2 και 20, το πρόγραμμα θα εμφανίζει τις τιμές 10, 12, 14, 16, 18.
ΑΣΚΗΣΗ 9
Να γραφεί πρόγραμμα που δέχεται έναν ακέραιο αριθμό μεταξύ 1 και 10 και εμφανίζει την προπαίδεια του αριθμού αυτού στην οθόνη. Για παράδειγμα, αν ο χρήστης εισάγει τον αριθμό 5, το πρόγραμμα θα εμφανίζει τα ακόλουθα:
Multiplication Table of 5
5 * 1 = 5
5 * 2 = 10
5 * 2 = 15
…
5 * 10 = 50
ΑΣΚΗΣΗ 10
Να τροποποιήσετε το προηγούμενο πρόγραμμα προπαίδειας ώστε να γίνει πιο αποδοτικό. Το πρόγραμμα δεν θα δέχεται την τιμή του χρήστη σε περίπτωση που είναι εκτός του διαστήματος 1 έως 10. Όσο ο χρήστης εισάγει αριθμούς εκτός διαστήματος, το πρόγραμμα θα του ζητάει να ξαναδώσει. Στο τέλος, θα εμφανίζει τον πίνακα της προπαίδειας καθώς και το πλήθος των εσφαλμένων τιμών που εισήγαγε ο χρήστης.
ΑΣΚΗΣΗ 11
Να γραφεί πρόγραμμα που υπολογίζει τα παρακάτω αθροίσματα:
- Sum = 1 + 2 + 3 + 4 + … + 100
- Sum2 = 12 + 22 + 32 + … + 102
Το πρόγραμμα θα εμφανίζει τα αποτελέσματα με κατάλληλα μηνύματα στην οθόνη.
ΑΣΚΗΣΗ 12
Να γραφεί πρόγραμμα που προσομοιώνει την ρίψη ενός νομίσματος 100 φορές και εμφανίζει το πλήθος των φορών που ήρθαν κορώνα (heads) και το πλήθος των φορών που ήρθαν γράμματα (tails). Για ευκολία, η κορώνα μπορεί να παριστάνεται με τον αριθμό 0 και τα γράμματα με τον αριθμό 1. Να γίνει χρήση του αρθρώματος random.
ΑΣΚΗΣΗ 13
Να γραφεί πρόγραμμα που μάντεψε τον αριθμό. Ο υπολογιστής παράγει τυχαία έναν αριθμό από το 1 έως το 100 και ο χρήστης προσπαθεί να τον μαντέψει με όσο το δυνατό λιγότερες προσπάθειες.
Σε κάθε προσπάθεια του χρήστη, το πρόγραμμα εμφανίζει αν η προσπάθεια είναι πολύ χαμηλή, πολύ υψηλή ή ακριβώς ίδια σε σχέση με το μυστικό αριθμό.
Όταν ο χρήστης πετύχει τον μυστικό αριθμό, το πρόγραμμα εμφανίζει τον αριθμό των προσπαθειών που χρειάστηκε ο χρήστης για να νικήσει.
ΑΣΚΗΣΗ 14
Να μετατραπεί το προηγούμενο πρόγραμμα μάντεψε τον αριθμό, έτσι ώστε ο χρήστης να έχει έναν περιορισμένο αριθμό προσπαθειών (έστω 10) στη διάθεση του. Αν ο χρήστης αποτύχει να μαντέψει τον αριθμό, το πρόγραμμα εμφανίζει "game over".
ΑΣΚΗΣΗ 15
Να συμπληρωθούν τα κενά των παρακάτω προτάσεων με τους όρους που λείπουν:
1) Στον προγραμματισμό, ο __________ είναι μια σειρά εντολών που επαναλαμβάνονται συνεχώς έως ότου συμβεί μία συνθήκη.
2) Σε μια πρόταση __________, ο υπολογιστής εκτελεί επαναλαμβανόμενα μια ομάδα εντολών όσο η συνθήκη είναι True. Όταν η συνθήκη γίνει False, τερματίζει την εκτέλεση του.
3) Συχνά, οι εντολές while ελέγχονται από μία μεταβλητή __________ η οποία συγκρίνεται στη συνθήκη με μία ή περισσότερες τιμές ελέγχοντας την είσοδο στο βρόχο.
4) Ένας βρόχος που ποτέ δεν ολοκληρώνεται ονομάζεται __________ βρόχος που οδηγεί το πρόγραμμα σε άπειρες επαναλήψεις μέχρι αυτό να «παγώσει».
5) Με την εντολή ___________ μπορούμε να διακόψουμε άμεσα την εκτέλεση ενός βρόχου. Με την εντολή __________ μπορούμε να επιστρέψουμε στην αρχή του βρόχου.
6) Όταν αντί συνθήκης χρησιμοποιούμε ένα αριθμό, η τιμή 0 αντιστοιχεί στη τιμή _________ ενώ κάθε άλλη τιμή αντιστοιχεί στην τιμή __________.
7) Η εντολή __________ επαναλαμβάνει ένα τμήμα εντολών χωρίς να βασίζεται στην τιμή μιας συνθήκης αλλά σε μία ακολουθία τιμών που παράγονται από αυτή και εκτελεί το τμήμα εντολών της μία φορά για κάθε στοιχείο της συγκεκριμένης ακολουθίας τιμών.
8) Για τη δημιουργία ενός βρόχου for, γράφουμε for, ακολουθούμενο από το όνομα μιας μεταβλητής, τη λέξη _________, την ακολουθία στην οποία βασίζουμε την επανάληψη και το χαρακτήρα άνω-κάτω τελεία. Τέλος, γράφουμε το block εντολών που αποτελούν το βρόχο.
9) Η εντολή for συχνά χρησιμοποιείται σε συνδυασμό με τη συνάρτηση _________ που επιστρέφει μια ακολουθία αριθμών.
10) Όταν έχουμε _________ βρόχους, για κάθε επανάληψη του εξωτερικού βρόχου, η Python εκτελεί όλες τις εντολές του εσωτερικού βρόχου.
Μακρής Ηλίας Π.Ε. Πληροφορικής