Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Σχετικά έγγραφα
Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Θέματα Προγραμματισμού Η/Υ

Μάντεψε τον Αριθμό. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Οδηγίες

Μάντεψε τον Αριθμό Φύλλο Εργασίας 2

Μάντεψε τον Αριθμό. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Μάντεψε!

Μάντεψε τον Αριθμό. Έχω Ένα Μυστικό. Το Βρήκα;

Τυχαίοι αριθμοί ρίξε μια «ζαριά»

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Μάντεψε τον Αριθμό. Φύλλο Εργασίας. Οδηγίες

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ

Το Παιχνίδι της Αφαίρεσης

Πληροφορική ΙΙ Θεματική Ενότητα 7

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

Γραφικά υπολογιστών Εργαστήριο 2 Παιχνίδια μαντεύματος με τυχαίους αριθμούς και loops

Η Απάντηση. Φύλλο Εργασίας. Μηνύματα

Πληρουορική Γ Γσμμασίοσ

Η Απάντηση. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Μηνύματα. 1. Πληκτρολογήστε την εντολή:

Θέματα Προγραμματισμού Η/Υ

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Θέματα Προγραμματισμού Η/Υ

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία.

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Εισαγωγή στην Αριθμητική Ανάλυση

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

Μάντεψε τον Αριθμό. Φύλλο Εργασίας. Μάντεψε!

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Δραστηριότητα 2 a, b = 0,1 a,b = b,a

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

α. Οι συμβολοσειρές είναι μια ακολουθία από χαρακτήρες. Μια συμβολοσειρά μπορεί να αποτελείται από περισσότερες από μία λέξεις.

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

Οδηγός των νέων δελτίων

Πληροφορική 2. Αλγόριθμοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Mπαρμπούτι. Φύλλο Εργασίας. Τυχαιότητα

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Mπαρμπούτι. Ενδεικτικές Απαντήσεις Φύλλου Εργασίας. Τυχαιότητα

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 24/04/2019

Σημειωματάριο Τετάρτης 25 Οκτ. 2017

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

Εισαγωγή στον Προγραμματισμό

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Θέματα Προγραμματισμού Η/Υ

ΘΕΜΑ Α. Μονάδες 10 Α2.

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Εισαγωγή στον Προγραμματισμό με την Python 3. Βασίλης Βασιλάκης Γιώργος Μπουκέας

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Α2. α. Να αναφέρετε ένα παράδειγμα τρισδιάστατου πίνακα. (μονάδες 3)

Το Παιχνίδι της Αφαίρεσης

Ταξινόμηση με συγχώνευση Merge Sort

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Εντολές επιλογής Επαναλήψεις (if, switch, while)

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Διαδικασιακός Προγραμματισμός

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

for for for for( . */

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Πληροφορική ΙΙ Θεματική Ενότητα 6

Η γλώσσα προγραμματισμού Strange

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

Φάσμα προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Θέματα Προγραμματισμού Η/Υ

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Διαδικασιακός Προγραμματισμός

Θέματα Προγραμματισμού Η/Υ

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Διορθώσεις σελ

3 ο Εργαστήριο Μεταβλητές, Τελεστές

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

Transcript:

3 Φύλλο Εργασίας 3 Στο φύλλο εργασιών 3 θα ασχοληθούμε με τις λίστες μια δομή της γλώσσας python που έχει την δομή ενός πίνακα. Θα χρησιμοποιήσουμε τις βασικές εντολές από τις λίστες και θα κατασκευάσουμε ένα πρόγραμμα που θα προσομοιώνει το παιχνίδι Λόττο με χρήση των λιστών. Έννοιες: δομή επανάληψης, συναρτήσεις και λίστες. Σκοπός αυτού του φύλλου είναι να γνωρίσουμε καλύτερα τις δυνατότητες της δομή επανάληψης της καλύτερης χρήσης των συναρτήσεων και τις λίστες. Μια γρήγορη επανάληψη από τα προηγούμενα If Παράδειγμα: 1) print("δώσε έναν αριθμό:",end='')# end='' δεν αλλάζει γραμμή num = int(input()) if num >= 0 : print("θετικός αριθμός") 2) print("δώσε έναν αριθμό:",end='')# end='' δεν αλλάζει γραμμή num = int(input()) if num >= 0 : print("θετικός αριθμός") else: print("αρνητικός") Σελίδα 1 από 12

While Παράδειγμα: num = 0 while num<10: print("num =",num) num = num + 1 Ορισμός συνάρτησης Παράδειγμα: def increment(n): n = n + 1 return n print("δώσε έναν αριθμό:", end='') γραμμή num = int(input()) num2 = increment(num) print(num2) # end='' δεν αλλάζει Σελίδα 2 από 12

Δομή λίστας και βασικές λειτουργίες Τι είναι μια λίστα Μια λίστα έχει την δομή ενός πίνακα σχηματικά έχει την παρακάτω διάταξη: Παράδειγμα: Αν θεωρήσουμε ότι αυτή η λίστα έχει όνομα monty τότε το στοιχείο monty[0] έχει τιμή M ενώ το στοιχείο monty[6] έχει τιμή P. Στις θέσεις monty[6:10] έχει τιμές ["P","y","t","h"] και προσοχή στις θέσεις monty[-12:-7] έχει τιμές ["M","o","n","t","y"] Σελίδα 3 από 12

Δημιουργία λίστας Οι τιμές που θα περιέχονται στη λίστα εσωκλείονται σε αγκύλες [ ] και χωρίζονται με κόμμα. Οι τιμές καταχωρούνται ακολουθιακά, η μια μετά την άλλη. Τρόποι δημιουργίας λίστας. Παραδείγματα: nums = [3,5,8,13,21,34,55] users = ["Αργυρώ", "Γιάννης", "Κυριάκος"] empty = [] Τώρα εκτελέστε τις παρακάτω εντολές για να δείτε το περιεχόμενο τους: print(nums) print(users) print(empty) Πρόσβαση σε στοιχείο της λίστας Αποκτούμε πρόσβαση σε ένα στοιχείο της λίστας γράφοντας το όνομα της λίστας και τη θέση του στοιχείου μέσα σε [ ]. Η αρίθμηση των θέσεων ξεκινάει πάντα από το 0 και φτάνει μέχρι το πλήθος των στοιχείων της λίστας μειωμένο κατά 1. Μέσα στις αγκύλες μπορούμε να γράψουμε οποιαδήποτε ακέραια έκφραση. Σε περίπτωση που αναφερθούμε σε μια θέση που δεν υπάρχει στη λίστα, δηλαδή σε έναν αριθμό μεγαλύτερο ή ίσο με το πλήθος των στοιχείων της τότε προκύπτει σφάλμα. Παραδείγματα: nums[3] = 1 # δίνει στο τέταρτο στοιχείο την τιμή 1 nums[-1] = 89 # δίνει στο τελευταίο στοιχείο την τιμή 89 print(nums[0]) # εμφανίζει το πρώτο στοιχείο της λίστας Συνάρτηση len Λειτουργία: Επιστρέφει το πλήθος των στοιχείων μιας Σελίδα 4 από 12 ακολουθίας, όπως η λίστα.

Πλήθος στοιχείων print(len(nums)) print(len(users)) print(len(empty)) Παράδειγμα: nums = [] if len(nums) == 0: print("η λίστα είναι κενή" Απαρίθμηση στοιχείων λίστας Παράδειγμα: nums = [3,5,8,13,21,34,55] for ar in nums: print(ar) Πράξεις Τεμαχισμός λίστας Λειτουργία: Δημιουργεί μια νέα λίστα που αντιστοιχεί σε ένα «τεμαχισμένο» τμήμα της αρχικής Για να τεμαχίσουμε μια λίστα γράφουμε μέσα σε αγκύλες [ ] τρεις αριθμούς: την αρχική θέση του τεμαχισμού, τη θέση τερματισμού του τεμαχισμού (που δεν περιλαμβάνεται στο τελικό τμήμα) και ανά πόσα στοιχεία θα περιλαμβάνονται στο τεμαχισμένο τμήμα, ξεκινώντας από την αρχική θέση. Παραδείγματα nums = [3,5,8,13,21,34,55] nums2=nums[1:4] # δημιουργεί μια νέα λίστα που περιέχει τα στοιχεία στις θέσεις 1 έως και 3 της Σελίδα 5 από 12

#αρχικής λίστας print(nums2) for ar in nums2: print(ar) print("*********************************") for ar in nums: print(ar) Αν παραλείψουμε την αρχική θέση, ο τεμαχισμός ξεκινάει από το πρώτο στοιχείο της λίστας. 1. nums = [23,15,28,413,221] nums2=nums[:3] # δημιουργεί μια νέα λίστα που περιέχει τα στοιχεία #στις θέσεις 1 έως και 2 της #αρχικής λίστας for ar in nums2: print(ar) Αν παραλείψουμε την τελική θέση τότε ο τεμαχισμός φτάνει μέχρι το τέλος της λίστας. nums = [23,15,28,413,221] nums2=nums[2:] # δημιουργεί μια νέα λίστα που περιέχει τα στοιχεία στις θέσεις 2 έως και το # τελευταίο της αρχικής λίστας for ar in nums2: print(ar) Συνένωση και πολλαπλασιασμός Παραδείγματα n = [1,2,3] + [4,5,6] #το n θα περιέχει τα [1,2,3,4,5,6] n1 = [1,2,3] * 3 #το n περιέχει τα [1,2,3,1,2,3,1,2,3] Ο τελεστής + (συνένωση) χρησιμοποιείται ανάμεσα σε δύο λίστες και δημιουργεί μια νέα λίστα που περιέχει όλα τα στοιχεία των αρχικών. Ο τελεστής * έχει ως αποτέλεσμα τη δημιουργία μιας νέας λίστας που περιέχει πολλές φορές τα στοιχεία της αρχικής. Σελίδα 6 από 12

Πως θα διαπιστώσετε με την χρήση της print το περιεχόμενο από τις λίστες n και n1:.. Έλεγχος ύπαρξης τιμής σε λίστα O Τελεστής in ελέγχει αν η τιμή βρίσκεται στη λίστα και επιστρέφει αντίστοιχα την τιμή True ή False. Παράδειγμα nums = [23,15,28,413,21] if 21 in nums: print("το βρήκα") Δοκιμάστε να κάνετε αναζήτηση και του στοιχείου 15, και του στοιχείου 23:.. Πως θα αλλάξετε την εντολή if να μας λέει ότι δεν το βρήκε και δοκιμάστε να κάνετε αναζήτηση των στοιχείων 10, και 2:.. Σελίδα 7 από 12

Εφαρμογή των λιστών στο παιχνίδι Λόττο Η ιστορία του Λόττο ξεκινάει από την αρχαιότητα. Στην Αρχαία Κίνα σύμφωνα με όλους τους ιστορικούς που ασχολούνται με το θέμα του λόττο και των τυχερών παιχνιδιών φαίνεται ότι πρωτοπαίχτηκε ένα παιχνίδι που έμοιαζε στο σημερινό κίνο και είναι ο πρώτος πρόγονος του Λόττο στην Ιστορία. Το Λόττο στην Ελλάδα παίχθηκε πρώτη φορά τον Δεκέμβριο του 1990 και το κόστος συμμετοχής για τους παίκτες ήταν 30 δραχμές ανά στήλη. Από το 1994 και για τα επόμενα 15 χρόνια η στήλη του Λόττο κόστιζε 0,15. Το 2009 άλλαξε η τιμή της στήλης και διαμορφώθηκε στα 0,50. Οι σημαντικές αλλαγές που έχουν γίνει όλα αυτά τα 20 χρόνια στον λόττο στην Ελλάδα είναι ότι το 1997 καθιερώθηκε νέα κατηγορία για τους νικητές (3 σωστές επιλογές αριθμών) και ότι το 2009 καθιερώθηκε ακόμη μια κατηγορία νικητών ( 5 σωστές επιλογές +μία). Επίσης στο ελληνικό λόττο που διοργανώνει ο ΟΠΑΠ το 2009 καθιερώθηκαν προκαθορισμένα κέρδη ανά επιτυχία και παρουσιάστηκαν τα καινούργια δελτία του λόττο. Αρκετά με την ιστορική αναδρομή. Στα δικά μας τώρα. Σκοπός του συγκεκριμένου φύλλου εργασίας είναι να λειτουργήσει επαναληπτικά σε έννοιες που αφορούν στις εντολές εισόδου, εξόδου στις έννοιες των μεταβλητών, στις δομές επιλογής, να εισάγει την έννοια της επανάληψης και του υποπρογράμματος ώστε να κάνουμε το πρόγραμμά μας όσο γίνεται μικρότερο, ευέλικτο και πιο κατανοητό και τέλος να μας εισάγει σε μια καινούργια έννοια, τις λίστες. Μια δομή δεδομένων είναι ένα σύνολο δεδομένων, μαζί με ένα σύνολο επιτρεπτών λειτουργιών (πράξεων) επί αυτών, όπως προσπέλαση, εισαγωγή, διαγραφή, αναζήτηση, ταξινόμηση, συγχώνευση και διαχωρισμό. Οι λίστες είναι τέτοιες δομές δεδομένων και συγκεκριμένα είναι μια διατεταγμένη συλλογή τιμών, οι οποίες αντιστοιχίζονται σε δείκτες. Τα στοιχεία μιας λίστας δεν χρειάζεται να είναι του ίδιου τύπου. Σελίδα 8 από 12

Στο τυχερό παιχνίδι Λόττο, ο παίκτης επιλέγει έξι αριθμούς από 1 έως 49. Στη συνέχεια κληρώνονται έξι αριθμοί με τυχαίο τρόπο. Ανάλογα με το πλήθος που κατάφερε να μαντέψει ο παίκτης έχει και τα αντίστοιχα κέρδη. Να θυμηθούμε τις εντολές, συναρτήσεις, input, print, input, int, float, random με το παρακάτω παράδειγμα. 1. Δημιουργήστε ένα πρόγραμμα με τις παρακάτω εντολές import random name=input("πως σε λένε") age=int(input("ποιά είναι η ηλικία σου;")) height=float(input("ποιό είναι το ύψος σου σε μέτρα (η υποδιαστολή με.")) num=random.randint(1,49) print ("Σε λένε ",name) print ("Είσαι ", age, " χρονών") print ("Και το ύψος σου μέτρα είναι ", height) print ("Ο Η/Υ έδωσε τυχαία τον αριθμό ", num) Όπως ξέρουμε τα στοιχεία μιας λίστας διαχωρίζονται με κόμμα και περικλείονται σε αγκύλες. Μία λίστα που είναι άδεια συμβολίζεται με []. Για παράδειγμα: numbers= [6, 3,-5,9] numbers=[3, 6, μήλο, πορτοκάλι, 9] numbers=[ ] Με όσα έχουμε μάθει ας δοκιμάσουμε τις παρακάτω εντολές import random usernum=[1, 5, 3, 9,7] print(usernum[1]) print(usernum[0]) print(usernum[2]) print(usernum[3]) print(usernum[4]) usernum =[] print (usernum) usernum =[22] usernum =[33] print(usernum) usernum =[] num=random.randint(1,49) usernum = usernum +[num] print(usernum) Σελίδα 9 από 12

num=random.randint(1,49) usernum = usernum +[num] 2. Δοκιμάζουμε τώρα να κατασκευάσουμε ένα πρόγραμμα το οποίο να παράγει 5 τυχαίους αριθμούς από το 1 έως το 49 και να τα βάζει σε μια λίστα αριθμών. import random lottonum =[] len=0 while len<6: num=random.randint(1,49) lottonum = lottonum +[num] len=len+1 print (lottonum) Υπάρχει ένα πρόβλημα που θα πρέπει να λύσουμε και αυτό είναι ότι δεν εξασφαλίσουμε ότι οι αριθμοί στην λίστα είναι μοναδική δηλαδή κάθε νέος αριθμός που παράγεται τυχαία δεν θα είναι μέσα στην λίστα δηλαδή όχι μέσα δηλαδή not in. 3. Επίλυση του προβλήματος import random lottonum =[] len=0 while len<6: num=random.randint(1,49) if num not in lottonum: lottonum = lottonum +[num] len=len+1 print(num) Αυτό είναι το τμήμα του προγράμματος που παράγει τους 6 τυχαίους αριθμούς και δημιουργεί με αυτούς την λίστα των αριθμών του Λοττο. 4. Τώρα πρέπει να κατασκευάσουμε το τμήμα του προγράμματος που παράγει ο χρήστης 6 αριθμούς, δηλαδή τη συμπλήρωση του δελτίου. Συμπλήρωση δελτίου Λόττο, οι 6 αριθμοί που περνά ο χρήστης στο δελτίο του Σελίδα 10 από 12

usernum=[] len=0 while len<6: # ότι κάνει στην ουσία η random.randint(1,49) num=int(input("δώσε αριθμό 1..49:")) while num<1 or num>49: num=int(input("δώσε σωστό αριθμό 1..49:")) if num not in usernum: usernum= usernum + [num] len = len + 1 print(usernum) 5. Τώρα έστω ότι παράγαμε δυο λίστες από τιμές μια από τις τιμές του Λόττο και μια από τον παίχτη usernum=[1,2,3] lottonum=[3,1,3] if usernum==lottonum: print("iσες λίστες") else: print("δεν είναι ισες λίστες") Τι παρατηρούμε μετά την σύγκριση της λίστας usernum και lottonum.. 6. Έστω ότι είχαν την ίδια σειρά και τους ίδιους αριθμούς δηλαδή usernum=[1,2,3] lottonum=[1,2,3] if usernum==lottonum: print("ίσες λίστες") else: print("δεν είναι ίσες λίστες") Τι παρατηρούμε μετά την σύγκριση της λίστας usernum και lottonum.. Δηλαδή αν είχαμε έναν τρόπο ταξινόμησης των λιστών θα ήταν εύκολη η σύγκριση τους. Υπάρχει ή δεν υπάρχει τρόπος ταξινόμησης λιστών???? Σελίδα 11 από 12

7. Και όμως υπάρχει η sorted() και γράφεται sorted(όνομα_λίστας) και μας δίνει μια ταξινομημένη λίστα άρα πριν την σύγκριση θα πρέπει να ταξινομήσουμε τις λίστες ως εξής: usernum=[1,2,3] lottonum=[3,1,3] usernum=sorted(usernum) lottonum=sorted(lottonum) if usernum==lottonum: print("iσες λίστες") else: print("δεν είναι ισες λίστες") 8. Τώρα να δημιουργήσετε τις παρακάτω συναρτήσεις: a) Το μηχάνημα υπολογίζει τους 5 αριθμούς του Λόττο def createlottonumbers() και επιστρέφει την λίστα με τους 5 αριθμούς που έχουν επιλεγεί, lottonum[] (δες 3 βήμα) b) Ο παίχτης γράφει στο χαρτί τους 5 αριθμούς def insertusernumber() και επιστρέφει τους αριθμούς που έχει εισάγει ο παίκτης usernum[] (δες 4 βήμα) c) Το μηχάνημα συγκρίνει τους αριθμούς του μεταξύ τους και βρίσκει τον νικητή def isequallists(list1,list2) δέχεται σαν είσοδο 2 λίστες και επιστρέφει την λογική μεταβλητή true (αλήθεια) αν είναι ίση και false (ψέμα) αν είναι διαφορετικές. (δες 7 βήμα) Δραστηριότητα Προσπαθήστε να φτιάξετε το πρόγραμμα βασιζόμενοι στις οδηγίες που σας έχουν δοθεί, το τέλος της 2 ης ώρας θα σας δοθεί η σωστή λύση και άσκηση για την επόμενη φορά. Σελίδα 12 από 12