Μάθημα : Προγραμματισμός Η/Υ
Κωδικός : T522234
-
Εμφάνιση όλων των ενοτήτων
-
Τύποι δεδομένων
-
Πράξεις και εκφράσεις (αριθμητικές και λογικές)
-
Μεταβλητές
-
Βασικές (ενσωματωμένες) συναρτήσεις -Βιβλιοθήκες συναρτήσεων
-
Δομή προγράμματος και καλές πρακτικές
-
Τύποι και δομές δεδομένων στις γλώσσες προγραμματισμού
-
Δομή ακολουθίας
-
Αλγοριθμικές δομές (if, for, while)
-
Αλγοριθμικές δομές (Θέματα)
-
Δυαδική αναζήτηση
-
Ταξινόμηση Ευθείας ανταλλαγής
-
Διαχείριση Αρχείων
-
Υποπρογράμματα, Συναρτήσεις
-
Αρθρώματα (Modules)
-
Συμβολοσειρές (strings)
-
Λίστες
-
Στοίβα
-
Ουρά
-
Αντικειμενοστρεφής Προγραμματισμός
-
Θέματα προηγουμένων χρόνων
-
Tips & Tricks
-
Module random
-
Module math
-
Θέματα 2022-23
-
Θέματα 2023-24
-
Η ΑΙ λύνει τα θέματα
-
Τύποι δεδομένων
Λίστες
Η λίστα είναι μια διατεταγμένη ακολουθία αντικειμένων, όχι απαραίτητα του ίδιου τύπου και αποτελεί τη βασική δομή δεδομένων της Python.
Η λίστα, σε αντίθεση με τη συμβολοσειρά, είναι μια δυναμική δομή στην οποία μπορούμε να προσθέτουμε ή να αφαιρούμε στοιχεία (mutable).
Κάθε αντικείμενο της λίστας χαρακτηρίζεται από ένα αύξοντα αριθμό (δείκτης), ο οποίος ορίζει τη θέση του στη λίστα.
Η προσπέλαση στα στοιχεία της λίστας γίνεται με το όνομα της λίστας και τον αύξοντα αριθμό του αντικείμενου μέσα σε αγκύλες.
Αν θέλουμε να προσθέσουμε ένα στοιχείο στο τέλος μιας λίστας:
Λίστα = Λίστα + [ στοιχείο ]
ή
Λίστα += [στοιχείο]
ενώ στην αρχή της λίστας
Λίστα = [ στοιχείο ] + Λίστα
Οι λίστες στην Python:
● Δεν έχουν σταθερό μέγεθος.
● Η αρίθμηση των δεικτών ξεκινάει από το 0
● Είναι δυναμικές δομές π.χ. μπορούμε να έχουμε σε μια λίστα ακόμα και στοιχεία διαφορετικού τύπου.
● υπαρξιακός τελεστής in, δίνει True, αν το στοιχείο υπάρχει μέσα στη λίστα , αλλιώς επιστρέφει False.
● η συνάρτηση len, δίνει το πλήθος των στοιχείων (ή μέγεθος) της λίστας
● ο τελεστής συνένωσης + ενώνει δύο λίστες
● συνάρτηση list ( String ): Επιστρέφει μια λίστα με στοιχεία τους χαρακτήρες της συμβολοσειράς string.
● συνάρτηση range (Α,Τ,Β) επιστρέφει, αν δώσουμε την αρχική (Α), την τελική τιμή (Τ) και το βήμα(Β), μια λίστα από αριθμούς.
Μεθόδοι λιστών
, όπου L το όνομα της λίστας:
●L.append( object ): προσθήκη του στοιχείου object στο τέλος της λίστας L.
● L.insert( index, object ): προσθήκη του στοιχείου object, στη θέση index της λίστας L, μετακινώντας όλα τα στοιχεία από τη θέση index και μετά, κατά μία θέση.
● L.pop( [ index ] ): Αφαίρεση από τη λίστα του στοιχείου που βρίσκεται στη θέση index. Αν δεν δοθεί θέση, τότε θα αφαιρεθεί το τελευταίο στοιχείο της λίστας.
Διάσχιση Λίστας
for item in List :
<Εντολές Επεξεργασίας του αντικειμένου item>
Τελεστής διαμέρισης (slice operator)
Ο τελεστής διαμέρισης (:) επιστρέφει ένα τμήμα μιας συμβολοσειράς ή μιας λίστας. Η έκφραση lista [a : b ] μας επιστρέφει το τμήμα της συμβολοσειράς ή της λίστας από το στοιχείο lista[a] μέχρι και το στοιχείοlista[b-1]. ( a,b θέσεις στη λίστα)
Να γραφεί κώδικας ο οποίος εισάγει σε μια λίστα τα ονόματα των μαθητών μιας τάξης. Η εισαγωγή διακόπτεται όταν δίνεται σαν όνομα η λέξη ‘ΤΕΛΟΣ’.
Στη συνέχεια να εμφανιστούν όλα τα ονόματα των μαθητών.
---------------------------------
lista=[]
onoma=raw_input('dose onoma ')
while onoma!='TELOS':
lista.append(onoma)
onoma=raw_input('dose onoma ')
for i in lista:
print i
Να γραφεί κώδικας ο οποίος εισάγει σε μια λίστα τους βαθμούς των μαθητών μιας τάξης. Η εισαγωγή διακόπτεται όταν δίνεται σαν βαθμός -1.
Στη συνέχεια να εμφανιστεί ο μέσος όρος της βαθμολογίας.
----------------------------------------------------
lista=[]
vathmos=input('dose vathmo ')
while vathmos!=-1:
lista.append(vathmos) #lista=lista+[vathmos]
vathmos=input('dose vathmo ')
print lista
athroisma=0.0
for stoixeio in lista:
athroisma+=stoixeio
print 'mesos oros ', athroisma/len(lista)
Να γραφεί κώδικας ο οποίος
#1.εισάγει σε δυο λίστες τα ονόματα και τους βαθμούς των μαθητών μιας τάξης.
#2.Η εισαγωγή διακόπτεται όταν δίνεται σαν όνομα η λέξη "ΤΕΛΟΣ".
#3.Στη συνέχεια να εμφανιστεί ένας κατάλογος-βαθμολόγιο με τα ονόματα και τους βαθμούς.
#4.Να υπολογιστεί και να εμφανιστεί ο μέσος όρος της βαθμολογίας της τάξης.
#5.Να βρεθεί η χαμηλότερη βαθμολογία της τάξης
#6.και να εμφανιστεί το όνομα ενός από τους μαθητές που την έχει
#ή
# να εμφανιστούν όλα τα ονόματα των μαθητών που έχουν τον χαμηλότερο βαθμό
#1.Να δοθούν τιμές στις λίστες onomata και ypsos, τα ονόματα και τα ύψη παικτών μπάσκετ.Η εισαγωγή τερματιζεται όταν δοθεί σαν όνομα η λέξη "ΤΕΛΟΣ"
#2.Στη συνέχεια οι δυο λίστες να ενσωματωθούν στην name_high. Στις ζυγές θέσεις της λίστας τοποθετούνται τα στοιχεία της λίστας onomata και στις μονές τα στοιχεία της λιστας ypsos. (το 0 θεωρείται ζυγός αριθμός)
#3. Να βρεθεί ο υψηλότερος παίκτης (όνομα και ύψος) που βρίσκεται στη λίστα name_high.
#4.Να εμφανιστεί ένας κατάλογος με τα ονόματα και τα ύψη της λίστα name_high.
ΘΕΜΑ Δ
Το Υπουργείο Πολιτισμού διατηρεί στατιστικά στοιχεία για το θέατρο της Αρχαίας Επιδαύρου σχετικά με τον τίτλο κάθε παράστασης και το πλήθος των θεατών που την παρακολούθησαν (κάθε παράσταση παρουσιάζεται μόνο μία φορά και υπάρχει τουλάχιστον μία παράσταση).
Να γράψετε ένα πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο να πραγματοποιεί τα παρακάτω:
Δ1. Να διαβάζει τον τίτλο κάθε παράστασης και το πλήθος των θεατών που την παρακολούθησαν. Τα στοιχεία αυτά να καταχωρίζονται στις λίστες με ονόματα PAR και S_P αντίστοιχα. Να γίνεται έλεγχος ορθότητας για το πλήθος των θεατών που εισάγεται έτσι ώστε να είναι
θετικός αριθμός. Η εισαγωγή των στοιχείων θα τερματίζεται όταν δοθεί ως τίτλος παράστασης η λέξη «TELOS».
Μονάδες 9
Δ2. Να εντοπίζει και να εμφανίζει τον τίτλο της παράστασης με το μέγιστο πλήθος θεατών. Να θεωρήσετε ότι υπάρχει μία μόνο τέτοια παράσταση.
Μονάδες 6
Δ3. Να υπολογίζει και εμφανίζει τον μέσο όρο των θεατών όλων των παραστάσεων.
Μονάδες 4
Δ4. Κάθε παράσταση με πλήθος θεατών μεγαλύτερο ή ίσο από 1000 άτομα επιδοτείται με 10000 €, ενώ κάθε παράσταση με πλήθος θεατών μικρότερο των 1000 ατόμων επιδοτείται με 5000 €. Να υπολογίσετε και να εμφανίσετε το συνολικό ποσό της επιδότησης που θα διαθέσει το Υπουργείο Πολιτισμού.
Μονάδες 6
(ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΤΕΤΑΡΤΗ 28 ΙΟΥΝΙΟΥ 2017)
ΘΕΜΑ Δ
Σε μια Ολυμπιάδα Πληροφορικής συμμετέχουν πενήντα (50) μαθητές. Κάθε μαθητής που συμμετέχει λαμβάνει μια τελική βαθμολογία από 1 έως και 100 ακέραιες μονάδες.
Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:
Δ1.Να διαβάζει το ονοματεπώνυμο κάθε μαθητή και τη βαθμολογία που έλαβε. Τα στοιχεία αυτά καταχωρίζονται στις λίστες NAME και VATHMOS αντίστοιχα. Να γίνει έλεγχος ορθότητας ότι δηλαδή η βαθμολογία που καταχωρίζεται είναι από 1 έως και 100.
Μονάδες 9
Δ2.Να υπολογίζει και να εμφανίζει τον μέσο όρο (ΜΟ) της βαθμολογίαςόλων των μαθητών.
Μονάδες 5
Δ3. Να εντοπίζει και να εμφανίζει τα ονοματεπώνυμακαι τη βαθμολογία όλων των μαθητών των οποίων η τελική βαθμολογία είναι μεγαλύτερη ή ίση από τον μέσο όρο (ΜΟ).
Μονάδες 4
Δ4.Να εντοπίζει και να εμφανίζει με κατάλληλο μήνυμα την υψηλότερη βαθμολογία και ταονοματεπώνυματων μαθητών που έχουν αυτή τη βαθμολογία.
Μονάδες 7
(ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΤΡΙΤΗ13 ΙΟΥΝΙΟΥ 2017)
ΘΕΜΑ Δ
Μια εταιρεία κατασκευής υπολογιστών παράγει 20 διαφορετικά μοντέλα υπολογιστών.
Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Pythonτο οποίονα πραγματοποιεί τα παρακάτω:
Δ1.
Να διαβάζει για κάθε μοντέλο το όνομά του και το πλήθος των πωλήσεών του κατά το προηγούμενο έτος. Τα στοιχεία αυτά καταχωρίζονται στις λίστες με ονόματα MODELO και POLISEIS αντίστοιχα.
Μονάδες 8
Δ2.Να υπολογίζει και να εμφανίζει το σύνολο των πωλήσεων όλων των μοντέλων της εταιρείας για το προηγούμενο έτος.
Μονάδες 4
Δ3.
Να ταξινομεί με χρήση του αλγόριθμου ταξινόμησης της ευθείας ανταλλαγής (φυσαλίδα-bubble sort) τις δύο λίστες σε φθίνουσα σειρά ως προς το πλήθος των πωλήσεων.
Μονάδες 5
Δ4.Να δέχεται το όνομα ενός μοντέλου από το πληκτρολόγιο, να εντοπίζει τις πωλήσεις του και να εμφανίζει το όνομα και το πλήθος των πωλήσεών του. Στη συνέχεια να εμφανίζει τα ονόματα και τις πωλήσεις όλων των μοντέλων που οι πωλήσεις τους είναι μεγαλύτερες ή ίσες από τις πωλήσεις του παραπάνω μοντέλου. Η εμφάνιση να γίνεται σε αύξουσα σειρά ως προς τις πωλήσεις.
Μονάδες 8
(ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΑΡΑΣΚΕΥΗ 22ΣΕΠΤΕΜΒΡΙΟΥ 2017)
Για τις κινηματογραφικές ταινίες μιας χρονιάς είναι γνωστά τα εξής στοιχεία:
τίτλος της ταινίας, χώρα προέλευσης, αριθμός θεατών που την είδαν.
Να γραφεί πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
1. Καταχωρεί τα στοιχεία αυτά σε τρεις λίστες με τα ονόματα titlos, xora, theates.
2. Ταξινομεί κατά αλφαβητική σειρά ως προς τίτλο τις 3 λίστες.
3. Εμφανίζει τις λίστες οργανωμένες σε τρεις στήλες.
4. Αναζητά και εμφανίζει τα στοιχεία μιας ταινίας με βάση τον τίτλο. Αν δεν υπάρχει εμφανίζει σχετικό μήνυμα.
5. Εμφανίζει την ταινία με τον μεγαλύτερο αριθμό θεατών (Υποθέστε ότι καμία ταινία δεν έχει τον ίδιο αριθμό θεατών με κάποια άλλη)
6. Υπολογίζει και εμφανίζει το συνολικό αριθμό θεατών και τον μέσο όρο θεατών.
Δραστηριότητα 6.
Να ορίσετε μια συνάρτηση με όνομα count η οποία δέχεται δύο ορίσματα (sequence και item) και να επιστρέφει πόσες φορές εμφανίζεται το item στη λίστα sequence.
(Τετράδιο εργασιών)
Λύση
def count (sequence,item):
summ=0
for i in sequence:
if i==item:
summ+=1
return summ
#----------------
a=[1,25,56,1,45,1,58,69,36,1]
print count(a,1)
Δραστηριότητα 7.
Να ορίσετε συνάρτηση με όνομα purify, η οποία δέχεται μια λίστα αριθμών, απομακρύνει όλους τους περιττούς από τη λίστα και επιστρέφει το αποτέλεσμα. π.χ, η purify([1,2,3]) επιστρέφει [2]
(Τετράδιο εργασιών)
Λύση
def purify (lista):
i=0
while i<len(lista):
if lista[i]%2==1:
lista.pop(i)
else:
i+=1
return lista
#---------------------------------------------
a=[12,58,47,69,785,11,56,43]
print a
purify(a)
print a
#29530
ΘΕΜΑ 4
Για την πραγματοποίηση της πενθήμερης εκδρομής της Γ’ τάξης του Λυκείου «ΑΒΓ»
κατέθεσαν οικονομικές προσφορές 10 ταξιδιωτικά γραφεία. Να αναπτύξετε πρόγραμμα σε
Python το οποίο:
4.1 Για κάθε οικονομική προσφορά να διαβάζει το όνομα του γραφείου και την τιμή της
προσφοράς. Στη συνέχεια, να τα καταχωρεί στις λίστες name[] και price[] αντίστοιχα.
Απαιτείται έλεγχος εγκυρότητας δεδομένων ως προς την τιμή της προσφοράς να είναι θετική.
Μονάδες 5
4.2 Να εμφανίζει στην οθόνη το όνομα ή τα ονόματα των ταξιδιωτικών γραφείων με την
οικονομικότερη προσφορά μαζί με την τιμή της προσφοράς αυτής.
Μονάδες 12
4.3 Να διαβάζει το όνομα ενός γραφείου και να ελέγχει αν το συγκεκριμένο γραφείο έχει
καταθέσει την οικονομικότερη προσφορά ή όχι, εμφανίζοντας κατάλληλο μήνυμα στην
οθόνη.
Μονάδες 8
--------------------------------------------------------------------------------------------------------------
name=[]
price=[]
#1
for i in range(10):
grafeio=raw_input ('grafeio ')
timi=input ('prosfora ') #ελεγχος ορθοτητας
while timi<=0:
timi=input ('prosfora ')
name.append(grafeio)
price.append(timi)
#2
mini=price[0]
for x in price:
if mini>x:
mini=x
print 'xamiloteri prosfora', mini
for i in range(len(price)):
if price[i]==mini:
print 'grafeio me xamili prosfora ', name[i]
#3
poio_grafeio=raw_input('poio grafeio ')
thesi=0
for i in range(len(price)):
if poio_grafeio==name[i]:
thesi=i
if price[thesi]==mini:
print 'exei xamili prosfora'
else:
print 'den exei '
Άσκηση
Να δημιουργηθεί μια λίστα αριθμων και στη συνέχεια να εισάγεται ο αριθμός που πρέπει να αφαιρεθεί απο τη λίστα
#----------------------------------------------------------------
ARITHMOI=range(1,100,2)
for i in ARITHMOI:
print i,
print
x=input ('poios monos na afairethei ')
thesi=0
for z in range(len(ARITHMOI)):
if ARITHMOI[z]==x:
thesi=z
print 'afairesi ',ARITHMOI.pop(thesi)
for i in ARITHMOI:
print i,
print