ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4
|
|
- Νικολίτα Ρέντης
- 6 χρόνια πριν
- Προβολές:
Transcript
1 ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4 Λίστες (Lists) Λίστα (list) στην Python ονομάζεται μια δυναμική δομή δεδομένων (στην πραγματικότητα, ένα αντικείμενο) που περιέχει πολλαπλά δεδομένα. Ουσιαστικά, η λίστα είναι ένας τρόπος αποθήκευσης ενός συνόλου δεδομένων υπό ένα κοινό όνομα (το όνομα της λίστας). Οι λίστες έχουν πολλά κοινά χαρακτηριστικά με τους πίνακες άλλων γλωσσών προγραμματισμού. Η βασικότερή τους διαφορά από τους πίνακες των περισσοτέρων γλωσσών προγραμματισμού είναι ότι αποτελούν, όπως προαναφέρθηκε, δυναμικές δομές δεδομένων, δηλαδή τα περιεχόμενά τους μπορούν να αυξάνονται ή να μειώνονται κατά την εκτέλεση του προγράμματος (περισσότερες λεπτομέρειες θα αναφερθούν στη συνέχεια). Κάθε δεδομένο μιας λίστας ονομάζεται στοιχείο (element) της λίστας. Μια λίστα μπορεί να περιέχει στοιχεία διαφορετικών τύπων. Κάθε στοιχείο μιας λίστας έχει έναν δείκτη (index) που προσδιορίζει τη θέση του στη λίστα. Η αρίθμηση των δεικτών αυτών ξεκινάει από το 0. Δημιουργία λίστας i) Αναλυτικά λίστα = [στοιχείο_1, στοιχείο_2,... ] ή λίστα = [] για τη δημιουργία κενής λίστας. Π.χ., >>> list1 = [5, 10, 15, 20, 25] >>> print(list1) [5, 10, 15, 20, 25] >>> list2 = [10, 'Hello', 2.5, 100] >>> print(list2) [10, 'Hello', 2.5, 100] ii) Με χρήση του τελεστή επανάληψης * λίστα = [στοιχείο_1, στοιχείο_2,... ] * πλήθος_επαναλήψεων Ver Τμήμα Μαθηματικών ΕΚΠΑ 1
2 Π.χ., >>> list3 = [5, 2.5] * 5 >>> print(list3) [5, 2.5, 5, 2.5, 5, 2.5, 5, 2.5, 5, 2.5] >>> list3 = ['Hello', '!', 2015] * 2 >>> print(list3) ['Hello', '!', 2015, 'Hello', '!', 2015] >>> list4 = [0] * 10 >>> print(list4) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] iii) Με χρήση της συνάρτησης list() Η συνάρτηση range, όπως αναφέρθηκε στην Ενότητα 2, επιστρέφει ένα αντικείμενο τιμών βρόχου, το οποίο είναι ένα αντικείμενο που περιέχει μία αλληλουχία τιμών, η οποία όμως δεν αποτελεί λίστα, με την έννοια της λίστας της Python. Μπορεί όμως να μετατραπεί σε κανονική λίστα, με τη χρήση της ενσωματωμένης συνάρτησης list της Python, δίνοντας έτσι άλλον έναν τρόπο δημιουργίας λιστών: ή λίστα = list(range(...)) λίστα = list() για τη δημιουργία κενής λίστας. Ουσιαστικά η συνάρτηση list δέχεται σε κάποια συγκεκριμένη δομή τις τιμές που θα περιέχει η λίστα, και τις αποθηκεύει σε δομή δεδομένων λίστας. Μπορεί να εφαρμοστεί σε οποιαδήποτε αλληλουχία τιμών και όχι μόνο σε τιμές βρόχου (περισσότερα για αυτό σε επόμενη ενότητα). Π.χ., >>> list5 = list(range(0,11,2)) >>> print(list5) [0, 2, 4, 6, 8, 10] >>> list6 = list() >>> print(list6) [] Προσπέλαση στοιχείων i) Με χρήση της εντολής for Π.χ., >>> list7 = [5, 10, 15, 20, 25, 30] >>> for x in list7: print(x) Ver Τμήμα Μαθηματικών ΕΚΠΑ 2
3 ii) Με χρήση δεικτών Όπως προαναφέρθηκε, κάθε στοιχείο μιας λίστας έχει έναν δείκτη, ανάλογα με τη θέση του στη λίστα. Η αρίθμηση των δεικτών ξεκινάει από το 0 και φτάνει έως το πλήθος των στοιχείων μείον 1. Η αναφορά σε συγκεκριμένο στοιχείο μιας λίστας μπορεί να γίνει ως εξής: Π.χ., λίστα[δείκτης_στοιχείου] >>> list8 = [2, -4, 6, -8, 10] >>> print(list8[0], list8[1], list8[2], list8[3], list8[4]) >>> for index in range(5): print(list8[index]) >>> index = 0 >>> while index < 5: print(list8[index]) index += Μπορούν να χρησιμοποιηθούν και αρνητικές τιμές στους δείκτες μιας λίστας. Ως θέση -1 θεωρείται η τελευταία θέση της λίστας, -2 η προτελευταία, κοκ. Π.χ., >>> print(list8[-1], list8[-2], list8[-3]) Σε περίπτωση που χρησιμοποιηθεί κάποια μη έγκυρη τιμή δείκτη, προκαλείται σφάλμα (ένας τύπος σφάλματος που λέγεται εξαίρεση και θα αναλυθεί σε επόμενη ενότητα). Π.χ. η παρακάτω εντολή προκαλεί σφάλμα γιατί δεν υπάρχει στοιχείο στη λίστα list8 με δείκτη 5 (το τελευταίο (5ο) στοιχείο της λίστας έχει δείκτη 4): >>> print(list8[5]) Traceback (most recent call last): File "<pyshell#38>", line 1, in <module> print(list8[5]) IndexError: list index out of range Ver Τμήμα Μαθηματικών ΕΚΠΑ 3
4 Πολύ χρήσιμη για την αποφυγή τέτοιου είδους σφαλμάτων, είναι η ενσωματωμένη συνάρτηση len της Python, η οποία επιστρέφει το μέγεθος μιας λίστας, δηλαδή το πλήθος των στοιχείων της: >>> items = len(list8) >>> print(items) 5 Έτσι, ο δείκτης του τελευταίου στοιχείου μιας λίστας είναι το: len(όνομα_λίστας) 1. Άρα, η παρακάτω εντολή που χρησιμοποιήθηκε προηγουμένως ως παράδειγμα: >>> for index in range(5): print(list8[index]) θα μπορούσε να γραφεί έτσι: >>> for index in range(len(list8)): print(list8[index]) iii) Με χρήση του τελεστή : για απομόνωση τμημάτων λίστας (τεμαχισμός λίστας) Προσπέλαση σε συγκεκριμένα τμήματα μιας λίστας μπορεί να γίνει με τη χρήση του τελεστή : ως εξής: Π.χ.: λίστα[αρχή:τέλος] τα στοιχεία της λίστας από το στοιχείο με δείκτη αρχή έως το στοιχείο με δείκτη τέλος-1. λίστα[:τέλος] τα στοιχεία της λίστας από το 1ο έως το στοιχείο με δείκτη τέλος-1. λίστα[αρχή:] τα στοιχεία της λίστας από το στοιχείο με δείκτη αρχή έως το τελευταίο στοιχείο. λίστα[αρχή:τέλος:βήμα] τα μη-συνεχόμενα στοιχεία της λίστας από το στοιχείο με δείκτη αρχή έως το στοιχείο με δείκτη τέλος-1 τα οποία απέχουν μεταξύ τους βήμα-1 θέσεις (δηλαδή ο δείκτης των στοιχείων που περιλαμβάνονται αυξάνεται κατά βήμα) >>> list9 = [10, 20, 30, 40, 50, 60, 70, 80] >>> print(list9[2:5]) [30, 40, 50] >>> print(list9[:3]) [10, 20, 30] >>> print(list9[4:]) [50, 60, 70, 80] >>> print(list9[1:7:2]) [20, 40, 60] >>> print(list9[-3:]) [60, 70, 80] >>> print(list9[:-3]) [10, 20, 30, 40, 50] Ver Τμήμα Μαθηματικών ΕΚΠΑ 4
5 Σε περίπτωση που χρησιμοποιηθεί κάποια μη έγκυρη τιμή δείκτη, δεν προκαλείται κάποιο σφάλμα. Αν ο δείκτης τέλος προσδιορίζει θέση μετά το τέλος της λίστας, χρησιμοποιείται στη θέση του το μήκος της λίστας. Αν ο δείκτης αρχή προσδιορίζει θέση πριν την αρχή της λίστας, χρησιμοποιείται στη θέση του το 0. Αν ο δείκτης αρχή είναι μεγαλύτερος του δείκτη τέλος (και οι τιμές τους είναι θετικές), επιστρέφεται η κενή λίστα. Παράδειγμα Μέσος όρος τιμών λίστας: numbers = [1.5, 2, 1.2, 8.4, -2, -3.5] total = 0 for n in numbers: total += n avg = total/len(numbers) print(avg) Εκχώρηση νέων τιμών σε στοιχεία Οι λίστες είναι μεταβλητοί (mutable) τύποι, δηλαδή οι τιμές των στοιχείων τους μπορούν να αλλάξουν. Αυτό γίνεται με εκχώρηση τιμής σε συγκεκριμένο στοιχείο: Π.χ., λίστα[δείκτης] = τιμή >>> list10 = [1, 2, 3, 4, 5] >>> list10[1] = 20 >>> list10[3] = 40 >>> print(list10) [1, 20, 3, 40, 5] Σε αυτό το παράδειγμα, η ακόλουθη εντολή: >>> list10[5] = 100 προκαλεί σφάλμα, αφού δεν υπάρχει στοιχείο με δείκτη 5 στη λίστα. Άρα, η εκχώρηση τιμής σε στοιχεία της λίστας μπορεί να γίνει μόνο για τα υπάρχοντα στοιχεία της, και δεν αποτελεί τρόπο δημιουργίας νέων στοιχείων. Αρχικοποίηση λίστας Για να αρχικοποιηθούν τα στοιχεία μιας λίστας σε συγκεκριμένες τιμές, θα πρέπει πρώτα να δημιουργηθούν, με μία από τις διαδικασίες δημιουργίας λίστας. Π.χ., # Δημιουργία μιας λίστας με 5 στοιχεία. list11 = [0] * 5 # Εκχώρηση της τιμής 'θέση * 2' σε όλα τα στοιχεία της λίστας. # Με while: # Με for: index = 0 while index < len(list11): for index in range(len(list11)): list11[index] = 2*index list11[index] = 2*index index += 1 Ver Τμήμα Μαθηματικών ΕΚΠΑ 5
6 Εύρεση στοιχείων λίστας με τον τελεστή in Η έκφραση: στοιχείο in λίστα επιστρέφει True εάν το στοιχείο υπάρχει στη λίστα, και False σε διαφορετική περίπτωση. Π.χ., codes = ['U135', 'X979', 'A123', 'S888'] item = input('δώσε κωδικό προϊόντος: ') if item in codes: print('το', item, 'βρέθηκε στη λίστα.') else: print('το', item, 'δε βρέθηκε στη λίστα.') Αντίστοιχα, η έκφραση: στοιχείο not in λίστα ελέγχει εάν το στοιχείο δεν ανήκει στη λίστα. Μέθοδοι για λίστες Η Python περιέχει κάποιες μεθόδους που χρησιμοποιούνται για τη διαχείριση των λιστών. Μέθοδοι ονομάζονται κάποιοι ειδικοί τύποι συναρτήσεων που εφαρμόζονται με συγκεκριμένο τρόπο, ως εξής: λίστα.μέθοδος(...) Οι πιο σημαντικές μέθοδοι για λίστες είναι οι εξής: append(στοιχείο) Προσθέτει το στοιχείο στο τέλος της λίστας. index(στοιχείο) Επιστρέφει τον δείκτη του πρώτου στοιχείου του οποίου η τιμή ισούται με το στοιχείο. Αν το στοιχείο δεν υπάρχει στη λίστα, προκαλείται συγκεκριμένο σφάλμα (περισσότερα για αυτό σε επόμενη ενότητα που αναλύει τον Χειρισμό Εξαιρέσεων). insert(δείκτης, στοιχείο) Εισάγει το στοιχείο στη θέση που καθορίζει ο δείκτης. Όταν ένα στοιχείο εισάγεται στη λίστα, η λίστα επεκτείνεται σε μέγεθος για να συμπεριλάβει το νέο στοιχείο. Το στοιχείο που βρισκόταν προηγουμένως στη συγκεκριμένη θέση, και όλα τα στοιχεία μετά από αυτό, μετατοπίζονται κατά μία θέση προς το τέλος της λίστας. Αν καθοριστεί δείκτης πέρα από το τέλος της λίστας, το στοιχείο θα προστεθεί στο τέλος της λίστας. Αν ο δείκτης είναι αρνητικός και αναφέρεται σε μία μη-έγκυρη θέση, το στοιχείο θα προστεθεί στην αρχή της λίστας. Αν ο δείκτης είναι αρνητικός και αναφέρεται σε έγκυρη θέση (σύμφωνα με την αρνητική αρίθμηση των δεικτών, όπου το -1 αναφέρεται στην τελευταία θέση, το -2 στην προτελευταία θέση κοκ), τότε το στοιχείο θα προστεθεί στην προηγούμενη θέση από αυτή στην οποία αναφέρεται ο αρνητικός δείκτης. Αυτό συμβαίνει γιατί πρώτα δημιουργείται μια νέα θέση στη λίστα για να προστεθεί το νέο στοιχείο (μετατοπίζοντας τα στοιχεία δεξιά της καθοριζόμενης θέσης κατά μία θέση δεξιά) και στη συνέχεια προστίθεται το στοιχείο. Το ίδιο ακριβώς συμβαίνει και στην περίπτωση καθορισμού θέσης με θετικό δείκτη, αλλά στην περίπτωση αρνητικού δείκτη τελικά το νεοεισερχόμενο στοιχείο καταλήγει μία θέση αριστερά της θέσης που καθορίστηκε με τον αρνητικό δείκτη. sort() Ταξινομεί τα στοιχεία της λίστας σε αύξουσα σειρά (από τη μικρότερη προς τη μεγαλύτερη τιμή ή αλφαβητικά αν πρόκειται για συμβολοσειρές). Ver Τμήμα Μαθηματικών ΕΚΠΑ 6
7 sort(reverse=true) Ταξινομεί τα στοιχεία της λίστας σε φθίνουσα σειρά. remove(στοιχείο) Αφαιρεί από τη λίστα το στοιχείο στην πρώτη του εμφάνιση. Αν το στοιχείο δεν υπάρχει στη λίστα, προκαλείται συγκεκριμένο σφάλμα. reverse() Αντιστρέφει τη σειρά των στοιχείων στη λίστα. Π.χ. >>> list12 = [10, 20, 30, 40, 50] >>> list12.append(60) >>> print(list12) [10, 20, 30, 40, 50, 60] >>> list12.index(30) 2 >>> list12.index(35) Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> list12.index(35) ValueError: 35 is not in list >>> list12.insert(2,100) >>> print(list12) [10, 20, 100, 30, 40, 50, 60] >>> list12.insert(10,200) >>> print(list12) [10, 20, 100, 30, 40, 50, 60, 200] >>> list12.insert(-3,300) >>> print(list12) [10, 20, 100, 30, 40, 300, 50, 60, 200] >>> list12.insert(-15,400) >>> print(list12) [400, 10, 20, 100, 30, 40, 300, 50, 60, 200] >>> list12.sort() >>> print(list12) [10, 20, 30, 40, 50, 60, 100, 200, 300, 400] >>> list12.remove(60) >>> print(list12) [10, 20, 30, 40, 50, 100, 200, 300, 400] >>> list12.remove(70) Traceback (most recent call last): File "<pyshell#40>", line 1, in <module> list12.remove(70) ValueError: list.remove(x): x not in list >>> list12.reverse() >>> print(list12) [400, 300, 200, 100, 50, 40, 30, 20, 10] Ενσωματωμένες συναρτήσεις για λίστες και σχετικές εντολές Υπάρχουν τρεις πολύ χρήσιμες ενσωματωμένες συναρτήσεις που μπορούν να εφαρμοστούν σε αλληλουχίες τιμών, άρα και σε λίστες: min(λίστα) Επιστρέφει το ελάχιστο της λίστας max(λίστα) Επιστρέφει το μέγιστο της λίστας sum(λίστα) Επιστρέφει το άθροισμα των στοιχείων της λίστας Ver Τμήμα Μαθηματικών ΕΚΠΑ 7
8 Η εντολή del διαγράφει ένα στοιχείο από συγκεκριμένη θέση μιας λίστας, ως εξής: del λίστα(δείκτης) Π.χ., για τη λίστα list12 του τελευταίου παραδείγματος: [400, 300, 200, 100, 50, 40, 30, 20, 10] >>> del list12[1] >>> print(list12) [400, 200, 100, 50, 40, 30, 20, 10] Αντίγραφα λιστών Όταν μία λίστα εκχωρείται σε μια άλλη λίστα χρησιμοποιώντας τον τελεστή εκχώρησης, τότε δε δημιουργείται αντίγραφο της αρχικής λίστας, απλά η λίστα πλέον έχει δύο ονόματα. Αυτό φαίνεται από το ακόλουθο παράδειγμα: >>> list1 = [10, 20, 30, 40] >>> list2 = list1 >>> print(list2) [10, 20, 30, 40] >>> list1[1] = 99 >>> print(list1) [10, 99, 30, 40] >>> print(list2) [10, 99, 30, 40] δηλαδή, μεταβάλλοντας κάποια τιμή στη list1, μεταβάλλεται και η list2. Άρα, ουσιαστικά με αυτόν τον τρόπο δεν δημιουργείται αντίγραφο της λίστας. Αντίγραφο μιας λίστας (π.χ. της list1) μπορεί να δημιουργηθεί με τους εξής τρόπους: i) Με χρήση της μεθόδου append μέσα σε βρόχο for: list2 = [] for item in list1: list2.append(item) ii) Με χρήση του τελεστή + σε κενή λίστα: list2 = [] list2 += list1 ή με μία εντολή: list2 = [] + list1 iii) Με χρήση του τελεστή : ως εξής: list2 = list1[:] iv) Με χρήση της συνάρτησης list: list2 = list(list1) Ver Τμήμα Μαθηματικών ΕΚΠΑ 8
9 Σημείωση: Ο τελεστής + πραγματοποιεί συνένωση λιστών (περίπτωση (ii) προηγουμένως). Η πρακτική διαφορά του από τη μέθοδο append, εκτός του ότι ο τελεστής συνένωσης + εφαρμόζεται μεταξύ λιστών ενώ η append δέχεται στοιχείο λίστας, είναι ότι με τον τελεστή συνένωσης + μπορούν να προστεθούν πολλαπλά στοιχεία στο τέλος μιας λίστας, ενώ με τη συνάρτηση append προστίθεται ένα μόνο στοιχείο, ακόμα και αν αυτό αποτελεί ξεχωριστή λίστα. Άρα, π.χ.: >>> list3 = [1, 2, 3] >>> list4 = list3 + [4, 5] >>> list4 [1, 2, 3, 4, 5] >>> list4.append([6, 7, 8]) >>> list4 [1, 2, 3, 4, 5, [6, 7, 8]] δηλαδή η λίστα [6, 7, 8] που δέχεται η append εκλαμβάνεται ως ένα στοιχείο και προστίθεται ως το 6ο στοιχείο της λίστας list4. Η λίστα αυτή είναι πλέον δισδιάστατη, αφού περιέχει στοιχείο-λίστα οι δισδιάστατες λίστες θα αναλυθούν παρακάτω). Επίσης, μία άλλη σημαντική διαφορά του + από τη συνάρτηση append είναι ότι το αποτέλεσμα μιας έκφρασης συνένωσης πρέπει να εκχωρηθεί σε κάποια λίστα (όπως στο παραπάνω παράδειγμα στη list4), ενώ η κλήση της append λειτουργεί στην ίδια τη λίστα με την οποία καλείται. Ουσιαστικά, ως προς αυτή τη λειτουργικότητα, η append είναι παραπλήσια του τελεστή +=, ο οποίος συνενώνει μια λίστα με κάποια άλλη και εκχωρεί το αποτέλεσμα στην ίδια τη λίστα. Μάλιστα, υπάρχει διαφορά μεταξύ τού: και του: λίστα_α = λίστα_α + λίστα_β λίστα_α += λίστα_β Η λίστα_α και στις δύο περιπτώσεις θα περιέχει τα ίδια στοιχεία, όμως στην πρώτη περίπτωση δημιουργείται καινούρια λίστα για την αποθήκευση της συνένωσης (με το όνομα λίστα_α και πάλι), ενώ στη δεύτερη περίπτωση η συνένωση αποθηκεύεται στην ήδη υπάρχουσα λίστα_α. Άρα, συνήθως η δεύτερη εναλλακτική είναι προτιμότερη. Κάποια συχνά σφάλματα: i) >>> list5 = [10, 20, 30] >>> list5 = list Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> list5 = list TypeError: can only concatenate list (not "int") to list >>> list5 = list5 + [40] >>> list5 [10, 20, 30, 40] Δηλαδή, για να προστεθεί ένα μόνο στοιχείο στο τέλος μιας λίστας με τον τελεστή +, θα πρέπει να προστεθεί με τη μορφή λίστας (π.χ., [40]), παρόλο που πρόκειται για ένα μόνο στοιχείο. Ver Τμήμα Μαθηματικών ΕΚΠΑ 9
10 ii) >>> list6 = [0, 1, 2] >>> list7 = list6.append(3) # προβληματική κλήση >>> print(list7) None >>> print(list6) [0, 1, 2, 3] Δηλαδή, η κλήση της append δεν έχει νόημα να εκχωρηθεί σε κάποια νέα λίστα, αφού δεν επιστρέφει κάτι αλλά απλά προσθέτει κάποιο στοιχείο στη λίστα με την οποία καλείται (εδώ τη list6). Λίστες ως ορίσματα συναρτήσεων (Συναρτήσεις που δέχονται λίστες) Μια συνάρτηση μπορεί να έχει (και) λίστες ως παραμέτρους εισόδου, όπως ακριβώς ισχύει και με τις μεταβλητές. Π.χ, η παρακάτω συνάρτηση δέχεται μία λίστα και επιστρέφει το γινόμενο των στοιχείων της: def list_prod(values): prod = 1 for n in values: prod *= n return prod Χρήση της συνάρτησης: >>> numbers = [1, 34, 20, -23, 2.6, ] >>> print('το γινόμενο των στοιχείων είναι', list_prod(numbers)) Το γινόμενο των στοιχείων είναι Σημείωση: Όπως αναφέρθηκε στην προηγούμενη ενότητα, όταν καλείται μια συνάρτηση που έχει παραμέτρους εισόδου, τα ορίσματα που μεταβιβάζονται στη συνάρτηση αποθηκεύονται σε νέες, τοπικές μεταβλητές της συνάρτησης. Επομένως, οποιαδήποτε τροποποίηση γίνει στις παραμέτρους εισόδου της συνάρτησης μέσα στη συνάρτηση, παραμένει σε αυτήν και δεν μεταφέρεται στις μεταβλητές που χρησιμοποιήθηκαν ως ορίσματα (ο τρόπος αυτός μεταβίβασης ορισμάτων ονομάζεται μεταβίβαση με τιμή (pass-by-value). Στην περίπτωση της μεταβίβασης κάποιας λίστας όμως, φαινομενικά συμβαίνει το αντίθετο, δηλαδή οποιαδήποτε τροποποίηση κάποιου στοιχείου της λίστας μέσα στη συνάρτηση μεταφέρεται και στη λίστα που χρησιμοποιήθηκε ως όρισμα κατά την κλήση της συνάρτησης. Αυτό μοιάζει με τον τρόπο μεταβίβασης ορισμάτων άλλων γλωσσών προγραμματισμού γνωστό ως μεταβίβαση με αναφορά (pass-by-reference), όπου αντί για την τιμή του ορίσματος, μεταβιβάζεται η αναφορά (reference) στη θέση μνήμης που είναι αποθηκευμένη η τιμή του ορίσματος. Στην Python δεν συμβαίνει ακριβώς αυτό, αφού ακόμα και τα αντικείμενα (π.χ., οι λίστες) μεταβιβάζονται με τιμή. Όμως, ένα αντικείμενο στην Python είναι ουσιαστικά μια αναφορά στη θέση μνήμης που περιέχονται τα στοιχεία τού αντικειμένου. Δηλαδή, το όνομα μιας λίστας είναι μια αναφορά στη θέση μνήμης στην οποία είναι αποθηκευμένες οι τιμές της λίστας (χοντρικά). Επομένως, όταν μεταβιβάζεται μια λίστα σε μια συνάρτηση, γίνεται μεταβίβαση με τιμή της λίστας, η οποία όμως δεν είναι τίποτε άλλο από τη θέση μνήμης της αρχικής λίστας. Το όρισμα αυτό αντιγράφεται σε μία τοπική λίστα, που είναι και αυτή μια αναφορά στη θέση μνήμης της αρχικής λίστας. Δηλαδή αυτό που αντιγράφεται δεν είναι Ver Τμήμα Μαθηματικών ΕΚΠΑ 10
11 ολόκληρη η λίστα, αλλά η αναφορά στη θέση της (άρα η αρχική λίστα έχει πλέον δύο ονόματα, αυτό του ορίσματος και αυτό της τοπικής παραμέτρου εισόδου της συνάρτησης). Επομένως, οποιαδήποτε αλλαγή στην τοπική αυτή λίστα, πραγματοποιείται και στην αρχική λίστα. Παράδειγμα 1: def foo(foo_list): print(foo_list) foo_list.append(100) # Η foo_list τροποποιείται print(foo_list) def main(): my_list = [1, 2, 3, 4, 5] print('my_list before foo: ', my_list) foo(my_list) print('my_list after foo: ', my_list) main() Έξοδος προγράμματος: my_list before foo: [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 100] my_list after foo: [1, 2, 3, 4, 5, 100] Παράδειγμα 2: def bar(bar_list): print(bar_list) bar_list.append(100) # Η bar_list τροποποιείται bar_list = [10, 20, 30] # Στη bar_list εκχωρείται νέα λίστα print(bar_list) def main(): my_list = [1, 2, 3, 4, 5] print('my_list before bar: ', my_list) bar(my_list) print('my_list after bar: ', my_list) main() Το παράδειγμα αυτό δείχνει ότι στην Python, ακόμα και για τα αντικείμενα, όπως είναι οι λίστες, δεν γίνεται μεταβίβαση με αναφορά αλλά γίνεται μεταβίβαση με τιμή. Αν η Python λειτουργούσε με μεταβίβαση με αναφορά, το πρόγραμμα θα εκτύπωνε: my_list before bar: [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [10, 20, 30] my_list after bar: [10, 20, 30] <-- ΔΕΝ ΘΑ ΕΚΤΥΠΩΘΕΙ ΑΥΤΟ γιατί η λίστα μέσα στη συνάρτηση, αφού τροποποιηθεί με την προσθήκη της τιμής 100 στο τέλος της, αλλάζει τιμές αφού εκχωρείται σε νέα λίστα, παίρνοντας πλέον τις τιμές [10, 20, 30], και αφού η bar_list θα ήταν η αναφορά στη λίστα my_list, η τελευταία αλλαγή θα άλλαζε και τη Ver Τμήμα Μαθηματικών ΕΚΠΑ 11
12 my_list. Όμως, το πρόγραμμα θα εκτυπώσει το εξής: my_list before bar: [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [10, 20, 30] my_list after bar: [1, 2, 3, 4, 5, 100] γιατί η bar_list είναι ένα καινούριο (δεύτερο) όνομα για την τιμή με όνομα my_list, οπότε η προσθήκη της τιμής 100 σε αυτό το όνομα (bar_list) είναι κοινή και για τη my_list, όμως η εντολή bar_list = [10, 20, 30] που εκχωρεί στο όνομα bar_list μια καινούρια λίστα, δημιουργεί μία καινούρια αναφορά για το όνομα bar_list σε μια νέα τιμή ([10, 20, 30]), ενώ το όνομα my_list συνεχίζει να αναφέρεται στην προηγούμενη τιμή του. Άρα, συμπερασματικά, η Python λειτουργεί αποκλειστικά με μεταβίβαση με τιμή (pass-by-value), παρόλο που στην περίπτωση αντικειμένων (π.χ. λιστών) αυτό δεν είναι προφανές. Οποιεσδήποτε τροποποιήσεις συγκεκριμένων στοιχείων μιας λίστας μέσα στη συνάρτηση μεταφέρονται στην αρχική λίστα, ενώ τροποποιήσεις σε επίπεδο λίστας (πχ εκχώρηση της λίστας σε νέα λίστα) παραμένουν αποκλειστικά μέσα στη συνάρτηση. Ουσιαστικά, δεν υπάρχει κάποια πραγματική διαφορά μεταξύ των περιπτώσεων μεταβίβασης λίστας και μεταβίβασης μεταβλητών, αφού στην Python ακόμα και οι μεταβλητές είναι αντικείμενα. Όπως προαναφέρθηκε, και οι μεταβλητές, και οι λίστες, μεταβιβάζονται με τιμή. Μια εκχώρηση της μορφής: μεταβλητή_εισόδου = νέα_τιμή μέσα σε μια συνάρτηση είναι αντίστοιχη της: λίστα_εισόδου = [νέες τιμές], η οποία παρουσιάστηκε στο 2ο παράδειγμα παραπάνω. Και στις δύο περιπτώσεις, οι οποιεσδήποτε τροποποιήσεις παραμένουν αποκλειστικά μέσα στη συνάρτηση. Η μόνη περίπτωση να μεταφερθούν κάποιες τροποποιήσεις εκτός συνάρτησης, είναι να γίνουν αλλαγές σε επίπεδο στοιχείων της λίστας, δηλαδή τροποποιήσεις στοιχείων, προσθήκη νέων στοιχείων ή διαγραφή στοιχείων. Συναρτήσεις που επιστρέφουν λίστες Συναρτήσεις που δημιουργούν λίστες, μπορούν να επιστρέφουν αναφορές στις λίστες αυτές. Π.χ.,: def get_values(): values = [ ] # Δημιουργία μιας κενής λίστας more = 'N' while more == 'N': # Είσοδος τιμών από τον χρήστη και προσθήκη τους στη λίστα num = int(input('δώσε έναν αριθμό: ')) values.append(num) more = input('θέλεις να δώσεις άλλον αριθμό; (Ν/Ο) ') return values # Επιστροφή της λίστας Χρήση της συνάρτησης: numbers = get_values() # Είσοδος μιας λίστας που περιέχει τιμές print('οι αριθμοί στη λίστα είναι:') print(numbers) # Εμφάνιση των τιμών της λίστας Ver Τμήμα Μαθηματικών ΕΚΠΑ 12
13 Προγραμματιστικές Εφαρμογές: (Για την εκπαιδευτικά καλύτερη ανάλυση και υλοποίηση των αλγορίθμων που ακολουθούν, δεν θα γίνει χρήση συγκεκριμένων ενσωματωμένων συναρτήσεων όπως min, sum κτλ., καθώς και μεθόδων για διαχείριση λιστών που παρέχει η Python, π.χ. sort κτλ.) Ταξινόμηση λίστας με τον αλγόριθμο της επιλογής (selection sort): 1. Ξεκίνα από την πρώτη θέση. 2. Βρες το ελάχιστο στοιχείο από τη θέση αυτή και μετά. 3. Ενάλλαξε (swap) τα στοιχεία της θέσης που ξεκίνησες και της θέσης του ελάχιστου. 4. Πήγαινε στην επόμενη θέση και επανάλαβε το Βήμα 2, μέχρι να φτάσεις στην προτελευταία θέση. Υλοποίηση με συνάρτηση: def selection(v): for i in range(len(v)-1): min_index = i # έστω ότι το στοιχείο αυτό είναι το ελάχιστο # αναζήτηση του ελάχιστου: for j in range(i+1,len(v)): if v[j] < v[min_index]: min_index = j # η θέση του ελάχιστου στοιχείου if min_index!= i: # αν βρέθηκε κάποιο μικρότερο στοιχείο temp = v[i] v[i] = v[min_index] v[min_index] = temp # ή: v[i], v[min_index] = v[min_index], v[i] return v Σημείωση: Όπως φαίνεται στη γραμμή κώδικα του παραπάνω προγράμματος με έντονα γράμματα που έχει γίνει σχόλιο, η εναλλαγή (swapping) δύο μεταβλητών στην Python μπορεί να γίνει σε μία εντολή, χωρίς τη χρήση επιπλέον προσωρινής μεταβλητής, ως εξής: μεταβλητή_1, μεταβλητή_2 = μεταβλητή_2, μεταβλητή_1 Ταξινόμηση λίστας με τον αλγόριθμο εισαγωγής (insertion sort): 1. Ξεκίνα από τo δεύτερο στοιχείο. 2. Σύγκρινε το στοιχείο με ένα-ένα τα στοιχεία που βρίσκονται αριστερά του μέχρι να βρεις (άρα while-loop) κάποιο μικρότερό του, και όσο βρίσκεις κάποιο μεγαλύτερό του, ενάλλασσέ τα. 3. Πήγαινε στο επόμενο στοιχείο και επανάλαβε το Βήμα 2. Υλοποίηση με συνάρτηση: def insertion(v): for i in range(1,len(v)): while i>0 and v[i-1]>v[i]: # Δε δημιουργείται πρόβλημα με την v[i], v[i-1] = v[i-1], v[i] # τροποποίηση της τιμής του i μέσα i -= 1 # στο for! Στην επόμενη επανάληψη θα return v # πάρει την επόμενη τιμή της range. Ver Τμήμα Μαθηματικών ΕΚΠΑ 13
14 Γραμμική αναζήτηση (linear search): Ξεκινώντας από το πρώτο στοιχείο, σύγκρινε ένα-ένα τα στοιχεία του διανύσματος με το προς αναζήτηση στοιχείο (key), μέχρι να το βρεις. Υλοποίηση με συνάρτηση: def linear_search(v, key): loc = 0 # η τρέχουσα θέση αναζήτησης pos = False # η θέση του στοιχείου αναζήτησης # Θα επιστρέψει False αν δε βρεθεί hit = False # flag για το αν έχει βρεθεί το προς αναζήτηση στοιχείο while loc < len(v) and not hit: if v[loc]==key: pos = loc hit = True else: loc += 1 return pos Δυαδική αναζήτηση (binary search): Προϋπόθεση: Η λίστα πρέπει να είναι ταξινομημένη! 1. Σύγκρινε το αναζητούμενο στοιχείο με το μεσαίο στοιχείο της λίστας 2. Όσο αυτά διαφέρουν και υπάρχουν ακόμα στοιχεία στη λίστα: αν είναι μικρότερο του στοιχείου, επανάλαβε το Βήμα 1 για το αριστερό τμήμα της λίστας. αν είναι μεγαλύτερο του στοιχείου, επανάλαβε το Βήμα 1 για το δεξί τμήμα της λίστας. Υλοποίηση με συνάρτηση: def binary_search(v, key): left = 0 # το αριστερό άκρο της τρέχουσας λίστας right = len(v)-1 # το δεξί άκρο της τρέχουσας λίστας pos = False hit = False while left <= right and not hit: mid = (left+right)//2 if v[mid]==key: pos = mid hit = True elif key < v[mid]: right = mid-1 else: left = mid+1 return pos Ver Τμήμα Μαθηματικών ΕΚΠΑ 14
15 Το κόσκινο του Ερατοσθένη (3 ος αιώνας π.χ.): Αλγόριθμος για τη εύρεση των πρώτων αριθμών από το 2 έως το N. 1. Γράψε όλους τους αριθμούς από το 2 έως το N. 2. Κύκλωσε τον πρώτο διαθέσιμο αριθμό (θα είναι πρώτος). 3. Διέγραψε τα πολλαπλάσιά του. 4. Πήγαινε στο Βήμα 2. π.χ.: για N=10 έχουμε: Υλοποίηση με συνάρτηση: def eratosthenis(n): import math P = list(range(n+1)) # H λίστα των αριθμών P[0] = False # Όσοι διαγράφονται θα γίνονται False. Η πρώτη θέση με δείκτη # 0 δε μας ενδιαφέρει. Δημιουργήθηκε για να συμβαδίζουν οι # υπόλοιποι δείκτες με τις τιμές των αριθμών (για ευκολία). P[1] = False # Το 1 ΔΕΝ είναι πρώτος. for i in range(2, math.ceil(math.sqrt(n))): if P[i]: # Aν το i δεν έχει διαγραφεί for j in range(2*i,n+1,i): # πήγαινε σε κάθε πολλαπλάσιο του i P[j] = False # και διέγραψέ το # Αποθήκευση των πρώτων που βρέθηκαν, στη λίστα primes: primes = [] for p in P: if p: primes.append(p) return primes Δισδιάστατες Λίστες Οι δισδιάστατες λίστες είναι λίστες που τα στοιχεία τους είναι άλλες λίστες. Π.χ., numbers = [ [2, 4, 6, 8, 10], [1, 3, 5, 7, 9], [11, 12, 13, 14, 15] ] Το 1ο στοιχείο της λίστας numbers είναι η λίστα: [2, 4, 6, 8, 10] Το 2ο στοιχείο της λίστας numbers είναι η λίστα: [1, 3, 5, 7, 9] Το 3ο στοιχείο της λίστας numbers είναι η λίστα: [11, 12, 13, 14, 15] Ver Τμήμα Μαθηματικών ΕΚΠΑ 15
16 Επομένως, η λίστα numbers θα μπορούσε να αναπαρασταθεί με τη μορφή ενός δισδιάστατου πίνακα, ως εξής: άρα αποτελεί μια δισδιάστατη λίστα. Για την πρόσβαση σε συγκεκριμένο στοιχείο μιας δισδιάστατης λίστας απαιτούνται δύο δείκτες, ένας για τη γραμμή και ένας για τη στήλη του στοιχείου: λίστα[γραμμή][στήλη] Π.χ., για την παραπάνω λίστα numbers: >>> print(numbers[2][4]) 15 >>> print(numbers[0][2]) 6 Δημιουργία και αρχικοποίηση δισδιάστατης λίστας: Μια δισδιάστατη λίστα μπορεί να δημιουργηθεί και αρχικοποιηθεί ως εξής: λίστα = [[τιμή for j in range(πλήθος_στηλών)] for i in range(πλήθος_γραμμών)] Αφού έχει δημιουργηθεί μια λίστα, μπορεί μετά κανείς να διατρέξει τα στοιχεία της με ένθετο for και να τους εκχωρήσει νέες τιμές: for i in range(πλήθος_γραμμών): for j in range(πλήθος_στηλών): λίστα[i][j] = νέα_τιμή Με τον τρόπο αυτό, μπορεί να αρχικοποιηθεί το κάθε στοιχείο της λίστας σε διαφορετική τιμή. Αυτή η δυνατότητα παρέχεται όμως και με τον αρχικό τρόπο δημιουργίας και αρχικοποίησης που προαναφέρθηκε, αφού ουσιαστικά η εντολή διατρέχει τα στοιχεία της λίστας που δημιουργείται με τα for που εμπεριέχει. Π.χ., η εντολή: my_list = [[random.random() for j in range(3)] for i in range(5)] αρχικοποιεί τα στοιχεία της δισδιάστατης λίστας my_list μεγέθους 5x3 σε τυχαίες τιμές στο διάστημα [0, 1). Ver Τμήμα Μαθηματικών ΕΚΠΑ 16
17 Σε μια δισδιάστατη λίστα, με τη χρήση ενός μόνο δείκτη γίνεται αναφορά σε ολόκληρη την αντίστοιχη γραμμή της λίστας: λίστα[δείκτης_γραμμής] Π.χ.: >>> numbers[1] [1, 3, 5, 7, 9] >>> numbers[2] [11, 12, 13, 14, 15] Σε μια δισδιάστατη λίστα, με τη χρήση του τελεστή in γίνεται αναφορά ανά γραμμή της λίστας: for γραμμή in λίστα Π.χ.: >>> for row in numbers: print(row) [2, 4, 6, 8, 10] [1, 3, 5, 7, 9] [11, 12, 13, 14, 15] Το πλήθος των γραμμών μιας δισδιάστατης λίστας δίνεται από την εντολή: len(λίστα) Το πλήθος των στηλών μιας δισδιάστατης λίστας δίνεται από την εντολή: len(λίστα[0]) δηλαδή, το πλήθος των στηλών δίνεται από το πλήθος των στοιχείων της πρώτης γραμμής (το λίστα[0] είναι η 1η γραμμή της λίστας). Για να ισχύει αυτό για μια λίστα, θα πρέπει η λίστα να έχει τον ίδιο αριθμό στοιχείων σε όλες τις γραμμές της. Αυτό γενικά, δεν είναι απαραίτητο να ισχύει, δηλαδή μπορεί να υπάρχει π.χ. η ακόλουθη λίστα: numbers2 = [ [2, 4, 6, 8], [1, 3], [11, 12, 13] ] η οποία στην 1η γραμμή έχει 4 στοιχεία, στη 2η γραμμή 2 στοιχεία και στην 3η γραμμή 3 στοιχεία. Επίσης, όπως και στις κανονικές λίστες, και μία δισδιάστατη λίστα μπορεί να περιέχει στοιχεία διαφόρων τύπων: results = [['Student1', 'Student2', 'Student3'], [1, 2, 1], [8, 7.5, 3.5]] Σύμφωνα με τα παραπάνω, για να προστεθεί π.χ. ένα στοιχείο 'Student4' στην παραπάνω λίστα με χρήση της μεθόδου append: results[0].append('student4') Ver Τμήμα Μαθηματικών ΕΚΠΑ 17
18 Παραδείγματα 1. Άθροισμα και μέσος όρων όλων των στοιχείων μιας δισδιάστατης λίστας: numbers = [ [2, 4, 6, 8, 10], [1, 3, 5, 7, 9], [11, 12, 13, 14, 15] ] total = 0 for r in range(len(numbers)): for c in range(len(numbers[r])): total += numbers[r][c] print('το άθροισμα των στοιχείων είναι', total) average = total / (len(numbers)*len(numbers[0])) print('ο μέσος όρος των στοιχείων είναι', average) ή: numbers = [ [2, 4, 6, 8, 10], [1, 3, 5, 7, 9], [11, 12, 13, 14, 15] ] total = 0 for r in range(len(numbers)): for v in numbers[r]: total += v print('το άθροισμα των στοιχείων είναι', total) average = total / (len(numbers)*len(numbers[0])) print('ο μέσος όρος των στοιχείων είναι', average) ή: numbers = [ [2, 4, 6, 8, 10], [1, 3, 5, 7, 9], [11, 12, 13, 14, 15] ] total = 0 for row in numbers: total += sum(row) print('το άθροισμα των στοιχείων είναι', total) average = total / (len(numbers)*len(numbers[0])) print('ο μέσος όρος των στοιχείων είναι', average) Σημείωση: Ο υπολογισμός του συνολικού πλήθους των στοιχείων της λίστας με την έκφραση len(numbers)*len(numbers[0]) είναι σωστός μόνο στην περίπτωση που η λίστα έχει τον ίδιο αριθμό στοιχείων σε κάθε γραμμή. Για πιο γενικές περιπτώσεις, θα πρέπει να χρησιμοποιηθεί ένας επιπλέον μετρητής, π.χ., για την τρίτη εκδοχή του προγράμματος: numbers = [ [2, 4, 6, 8, 10], [1, 3, 5, 7, 9], [11, 12, 13, 14, 15] ] total = 0 nelements = 0 for row in numbers: total += sum(row) nelements += len(row) print('το άθροισμα των στοιχείων είναι', total) average = total/nelements print('ο μέσος όρος των στοιχείων είναι', average) Ver Τμήμα Μαθηματικών ΕΚΠΑ 18
19 2. Άθροισμα και μέσος όρων των στοιχείων κάθε γραμμής μιας δισδιάστατης λίστας: numbers = [ [2, 4, 6, 8, 10], [1, 3, 5, 7, 9], [11, 12, 13, 14, 15] ] for r in range(len(numbers)): total = 0 for c in range(len(numbers[r])): total += numbers[r][c] print('το άθροισμα των στοιχείων της γραμμής', r, είναι', total) average = total / len(numbers[0]) print('ο μέσος όρος των στοιχείων της γραμμής', r, είναι', average) ή: numbers = [ [2, 4, 6, 8, 10], [1, 3, 5, 7, 9], [11, 12, 13, 14, 15] ] for row in numbers: total = sum(row) print('το άθροισμα των στοιχείων της γραμμής', row, είναι', total) average = total / len(numbers[0]) print('ο μέσος όρος των στοιχείων της γραμμής', row, είναι', average) Πλειάδες (Tuples) Οι πλειάδες αποτελούν αμετάβλητο τύπο αλληλουχίας. Έχουν σχεδόν ίδια χαρακτηριστικά με αυτά των λιστών, με βασική διαφορά ότι οι τιμές τους δε μεταβάλλονται (σε αντίθεση με αυτές των λιστών). Άλλη βασική διαφορά: Δημιουργούνται με παρενθέσεις και όχι με αγκύλες: πλειάδα = (τιμή_1, τιμή_2, τιμή_3,... ) Π.χ., >>> tuple1 = (3, -2, 1.5, 0) >>> print(tuple1) (3, -2, 1.5, 0) Για τη δημιουργία πλειάδας ενός στοιχείου, πρέπει να περιλαμβάνεται και το κόμμα στην εντολή, διαφορετικά δημιουργείται απλή μεταβλητή: >>> tuple2 = (5,) >>> print(tuple2) (5,) >>> not_a_tuple = (10) >>> print(not_a_tuple) 10 Ver Τμήμα Μαθηματικών ΕΚΠΑ 19
20 Κατά τα άλλα, ισχύουν οι περισσότερες λειτουργίες που ισχύουν και στις λίστες: Διαχείριση με δείκτες (μόνο για ανάκτηση τιμών των στοιχείων) Μέθοδοι όπως η index Ενσωματωμένες συναρτήσεις όπως οι len, min και max Εκφράσεις τεμαχισμού Ο τελεστής in Οι τελεστές + και * Λόγοι ύπαρξης των Πλειάδων: Υπολογιστική απόδοση: η επεξεργασία με πλειάδες είναι ταχύτερη από την επεξεργασία με λίστες. Ασφάλεια: αποθήκευση δεδομένων χωρίς τον κίνδυνο τροποποίησης (κατά λάθος ή με άλλον τρόπο) από τον κώδικα του προγράμματος. Υπάρχουν ορισμένες πράξεις στην Python οι οποίες απαιτούν τη χρήση πλειάδων. Μετατροπή Πλειάδας σε Λίστα και το αντίθετο: >>> my_tuple = (1, 2, 3) >>> my_list = list(my_tuple) >>> print(my_list) [1, 2, 3] >>> my_new_tuple = tuple(my_list) >>> print(my_new_tuple) (1, 2, 3) Ver Τμήμα Μαθηματικών ΕΚΠΑ 20
Θέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 10: Θεματική Ενότητα: Λίστες (Lists) και Πλειάδες (Tuples) ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική
Διαβάστε περισσότεραΠληροφορική ΙΙ Θεματική Ενότητα 10
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 10 Λίστες (Lists) και Πλειάδες (Tuples) Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5
ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Πίνακες (Arrays) [1/2] Δομές δεδομένων για την αποθήκευση δεδομένων υπό
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Πίνακες [1/2] (Διανύσματα)
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Πίνακες [1/2] (Διανύσματα) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 5. Λεξικά (Dictionaries)
ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 5 Λεξικά (Dictionaries) Τα λεξικά είναι μια μεταβλητή δομή δεδομένων της Python για την αποθήκευση συλλογών δεδομένων της μορφής: κλειδί τιμή. Δηλαδή, κάθε στοιχείο σε ένα
Διαβάστε περισσότεραΔιάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ
Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal
Διαβάστε περισσότεραΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016 Αναζήτηση και Ταξινόμηση Βασικές λειτουργίες σε προγράμματα Αναζήτηση (searching): Βρες ένα ζητούμενο στοιχείο σε μια
Διαβάστε περισσότεραΒασικές Ασκήσεις από τα Εργαστήρια της Python. Πέμπτη Εργ. 3 17:15 και 19:15
Βασικές Ασκήσεις από τα Εργαστήρια της Python Πέμπτη Εργ. 3 17:15 και 19:15 Αντί να χρησιμοποιούμε πολλές ομοειδείς μεταβλητές του ίδιου τύπου, όπως παραδείγματος χάριν, οι 7 μέσες θερμοκρασίες μίας εβδομάδας,
Διαβάστε περισσότεραΣημειωματάριο Τετάρτης 18 Οκτ. 2017
Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Περισσότερα για λίστες και ανακύκλωση Είδαμε σήμερα διάφορα προβλήματα και λύσεις για λίστες. Είδαμε επίσης την ανακύκλωση while. Στο επόμενο βλέπουμε πώς μπορούμε να
Διαβάστε περισσότεραΣτόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων
Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python
ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής
Διαβάστε περισσότεραΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Αναζήτηση και Ταξινόµηση Χειµερινό Εξάµηνο 2014 Αναζήτηση και Ταξινόµηση Βασικές λειτουργίες σε προγράµµατα Αναζήτηση (searching): Βρες ένα ζητούµενο στοιχείο σε µια
Διαβάστε περισσότεραΕισαγωγή στον Προγ/μό Υπολογιστών
Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 1 Εκφράσεις, κλητικές εκφράσεις, ονόματα Περιεχόμενα Εκφράσεις (expressions) Τελεστές (operators) της Python Κλητικές εκφράσεις (call expressions) Ονόματα (names)
Διαβάστε περισσότεραΣημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού
Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική
Διαβάστε περισσότεραΦύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα
3 Φύλλο Εργασίας 3 Στο φύλλο εργασιών 3 θα ασχοληθούμε με τις λίστες μια δομή της γλώσσας python που έχει την δομή ενός πίνακα. Θα χρησιμοποιήσουμε τις βασικές εντολές από τις λίστες και θα κατασκευάσουμε
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής
Διαβάστε περισσότεραΘέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 7: Θεματική Ενότητα: Δομές επανάληψης ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα 7 Δομές επανάληψης
Διαβάστε περισσότερα2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ
ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)
Διαβάστε περισσότεραΔιορθώσεις σελ
Διορθώσεις σελ. 73-74 # Τώρα ο άνθρωπος σκέφτεται έναν αριθμό από 1 έως 1000 Ν = 1000 print Σκέψου έναν αριθμό από το 1 έως το, Ν guesses = 0 found = False first = 1 last = N while not found and guesses
Διαβάστε περισσότεραΣημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού
Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική
Διαβάστε περισσότεραακολουθία (sequence)
Λίστες στην Python Η βασικώτερη δομή δεδομένων στην Pyhton είναι η ακολουθία (sequence). Σε κάθε στοιχείο μιας ακολουθίας ανατίθεται ένας ακέραιος που ονομάζεται δείκτης (index) ή θέση του στοιχείου. Ο
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python
Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και
Διαβάστε περισσότεραΠληροφορική 2. Αλγόριθμοι
Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται
Διαβάστε περισσότεραΘέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 4: Θεματική Ενότητα: Είσοδος/έξοδος, μεταβλητές, αναθέσεις ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων
Προγραμματισμός Η/Υ Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση
Διαβάστε περισσότεραΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016 Δομές δεδομένων Μια δομή δεδομένων είναι μια δομημένη (οργανωμένη) συλλογή στοιχείων (π.χ., ψηφίων, χαρακτήρων,
Διαβάστε περισσότεραΓραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες
Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες Σκοπός της 3ης άσκησης είναι να μάθουμε να φτιάχνουμε και να προσπελαύνουμε λίστες, να δούμε τι διαφορά έχουν από τα tuples και επίσης πώς μπορούμε
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναζήτηση και ταξινόµηση 7 Αναζήτηση (search) Πρόβληµα: αναζήτηση της καταχώρησης key στη
Διαβάστε περισσότεραΘέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 8: Θεματική Ενότητα: Συναρτήσεις ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα 8 Συναρτήσεις Πληροφορική
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται
Διαβάστε περισσότεραΠως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;
Λίστα για ψώνια Έννοιες: αρχεία- άνοιγμα- εγγραφή διάβασμα Προαπαιτούμενα : δομή επιλογής, επανάληψης, συναρτήσεις, λίστες Ο Άκης, τώρα που έμαθε και τις λίστες στην Python αποφάσισε να φτιάξει μια λίστα
Διαβάστε περισσότεραΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)
ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΑΡΑΣΚΕΥΗ 22 ΣΕΠΤΕΜΒΡΙΟΥ 2017 ΘΕΜΑ Α ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ:
Διαβάστε περισσότεραΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 7ο Τμήμα Διοίκησης Επιχειρήσεων Παλαιό ΕΠΔΟ α εξάμηνο Β. Φερεντίνος Δείκτες (Pointers) (1) 142 Κάθε μεταβλητή, εκτός από την τιμή της, έχει και μία συγκεκριμένη διεύθυνση
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ
ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ KAI ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ ΠΕΜΠΤΗ 26 ΣΕΠΤΕΜΒΡΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 13 Πίνακες & Συναρτήσεις Εισαγωγή Στις προηγούμενες
Διαβάστε περισσότεραΛίστες. Lista=[ red, green, blue ] Το πλήθος των στοιχείων μια λίστας δίνεται από τη συνάρτηση len(): Len(Lista)
Λίστες Η πιο σημαντική ακολουθία της Python, μοιάζουν με τους πίνακες των παραδοσιακών γλωσσών αλλά είναι πολύ ποιο ευέλικτες: μπορεί να περιέχουν στοιχεία διαφορετικού τύπου και μας παρέχουν τη δυνατότητα
Διαβάστε περισσότεραΕνότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό
Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό 1 Εισαγωγή Σκεφτείτε έναν αριθμό από το 1 έως το 1000 και απαντήστε στην ερώτηση: Ο αριθμός που σκεφτήκατε είναι μεγαλύτερος
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραI. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:
ΑΕσΠΠ 1 / 8 I. ΑΛΓΟΡΙΘΜΟΣ 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: i. Είσοδος : χρήση μιας μεταβλητής που δεν έχει πάρει προηγουμένως τιμή. ii. Έξοδος : ο αλγόριθμος δεν εμφανίζει
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕισαγωγή στον Προγ/μό Υπολογιστών
Εισαγωγή στον Προγ/μό Υπολογιστών Διάλεξη 7 Ακολουθίες (Sequences) Περιεχόμενα 1. Ακολουθίες 2. Λίστα (list) 3. Επαναληπτικοί υπολογισμοί ακολουθιών 4. Επεξεργασία ακολουθιών 5. Τελεστές ακολουθιών 6.
Διαβάστε περισσότεραΕργαστηριακή Άσκηση 1
Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python
Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή
Διαβάστε περισσότεραΣτη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:
Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται
Διαβάστε περισσότεραΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014
ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014 Δοµές δεδοµένων Μια δοµή δεδοµένων είναι µια δοµηµένη (οργανωµένη) συλλογή στοιχείων (π.χ., ψηφίων, χαρακτήρων, αριθµών,
Διαβάστε περισσότεραΕνδεικτικές Ερωτήσεις Θεωρίας
Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο
Διαβάστε περισσότεραΗΥ-150. Ταξινόµηση και Αναζήτηση
ΗΥ-150 Ταξινόµηση και Αναζήτηση To πρόβληµα της Αναζήτησης οθέντος δεδοµένων, λ.χ. σε Πίνακα (P) Ψάχνω να βρω κάποιο συγκεκριµένο στοιχείο (key) Αν ο πίνακας δεν είναι ταξινοµηµένος Γραµµική Αναζήτηση
Διαβάστε περισσότεραΔιάλεξη 09: Αλγόριθμοι Ταξινόμησης I
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή
Διαβάστε περισσότεραΤι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΠληροφορική ΙΙ Θεματική Ενότητα 7
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 7 Δομές επανάληψης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΔομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός
Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.
ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΑ ΕΙΔΙΚΟΤΗΤΑΣ ΤΕΤΑΡΤΗ 19/04/2017 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΠΕΝΤΕ (5) Α1. Να χαρακτηρίσετε τις προτάσεις που
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3 ο : ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΚΕΦΑΛΑΙΟ 9 ο : ΠΙΝΑΚΕΣ ΜΕΡΟΣ 1 ο : ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΙΝΑΚΕΣ 1 & 2 ΔΙΑΣΤΑΣΕΩΝ http://eclass.sch.gr/courses/el594100/
Διαβάστε περισσότεραΠληροφορική 2. Δομές δεδομένων και αρχείων
Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες
Διαβάστε περισσότεραΓ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης
Γ7.5 Αλγόριθμοι Αναζήτησης Γ Λυκείου Κατεύθυνσης Εισαγωγή Αλγόριθμος αναζήτησης θεωρείται ένας αλγόριθμος, ο οποίος προσπαθεί να εντοπίσει ένα στοιχείο με συγκεκριμένες ιδιότητες, μέσα σε μία συλλογή από
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 13 η Δομές & Ενώσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή
Διαβάστε περισσότεραΔείκτες & Πίνακες Δείκτες, Πίνακες
Δείκτες & Πίνακες Δείκτες, Πίνακες Δείκτες Δείκτης είναι μια μεταβλητή που ως δεδομένο περιέχει τη θέση μνήμης (διεύθυνση) μιας άλλης μεταβλητής. Μεταβλητές Τιμές. (*) Δείκτης p Μεταβλητή v Δ1. Δ2. τιμή
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 6. Συμβολοσειρές, λίστες, πλειάδες, λεξικά. 6.1 Εισαγωγή
ΚΕΦΑΛΑΙΟ 6 Συμβολοσειρές, λίστες, πλειάδες, λεξικά Σύνοψη Στο κεφάλαιο αυτό θα εμβαθύνουμε στην κατανόηση σημαντικών δομών δεδομένων, όπως οι συμβολοσειρές (strings), οι λίστες (lists), οι πλειάδες (tuples)
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων
Διαβάστε περισσότεραi 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης
ΘΕΜΑ Α A1 Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις α-δ και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν είναι λανθασμένη. a. Σε μία εντολή εκχώρησης του αποτελέσματος
Διαβάστε περισσότεραΘέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική
Διαβάστε περισσότεραΠληρουορική Γ Γσμμασίοσ
Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης
Προγραμματισμός Υπολογιστών & Κ.Π. Γιαλούρης Στόχοι του σημερινού μαθήματος Εξοικείωση με τα περιβάλλοντα της Python Κατανόηση βασικών εννοιών & τεχνικών Τύπος δεδομένων Μεταβλητή Εντολή ανάθεση τιμής
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1
ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Περιεχόμενο μαθήματος: Αλγοριθμική επίλυση προβλημάτων Προγραμματισμός
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4
ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή ΣΥΝΑΡΤΗΣΕΙΣ Συνάρτηση ονομάζεται ένα τμήμα κώδικα (ή υποπρόγραμμα) το
Διαβάστε περισσότεραΠεριεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης
Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους
Διαβάστε περισσότεραΔυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client
ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.
Εισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης Πίνακες/Λίστες Σε πολλές περιπτώσεις στον προγραμματισμό υπάρχει η
Διαβάστε περισσότεραΕισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C
Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος
Διαβάστε περισσότεραΥπολογισμός - Εντολές Επανάληψης
Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία
Διαβάστε περισσότεραΠίνακες. 1 Πίνακες. 30 Μαρτίου 2014
Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις Python Ενότητα 3 Ν. Φερεντίνος. ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 3. Συναρτήσεις
ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 3 Συναρτήσεις Συνάρτηση ονομάζεται ένα τμήμα κώδικα (ή υποπρόγραμμα) το οποίο κάνει μια συγκεκριμένη διεργασία και μπορεί να καλείται από ένα πρόγραμμα (ή από μια άλλη συνάρτηση).
Διαβάστε περισσότεραΟι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διαβάστε περισσότεραΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 4ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Συναρτήσεις (functions) 56 Τεμαχισμός του προγράμματος σε μικρότερα κομμάτια που είναι πιο κατανοητά, πιο εύκολα
Διαβάστε περισσότεραΘέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 6: Θεματική Ενότητα: Λογικοί Τελεστές Έλεγχος ροής ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα
Διαβάστε περισσότεραΒασικά Στοιχεία Python 3
Βασικά Στοιχεία Python 3 Compiler Lecture s 1.0 documentation Βασικά Στοιχεία Python 3 Στη συνέχεια παρουσιάζονται ορισμένα ενδιαφέροντα στοιχεία της Python 3. Αυτό που ακολουθεί δεν είναι tutorial, αν
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ 2 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω θέματα: Συναρτήσεις (κεφάλαιο Functions)
Διαβάστε περισσότερα2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων
2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει
Διαβάστε περισσότεραΔιάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής
Διάλεξη 1 Πράξεις Τελεστές Έλεγχος Ροής Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 Αριθμητικοί Τελεστές- Αριθμητικές Πράξεις 2 Internal use only Αριθμητικοί
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΕισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1
Εισαγωγή στην Γλώσσα Προγραμματισμού Python 12/10/16 costis@teicrete.gr 1 Διάφορες Γλώσσες Προγραμματισμού C or C++ Java Perl Scheme Fortran Python Matlab 12/10/16 costis@teicrete.gr 2 Περίληψη Παρουσίασης
Διαβάστε περισσότεραfor for for for( . */
Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται
Διαβάστε περισσότεραΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων
ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016
Διαβάστε περισσότεραΟρισμός μεταβλητών δεικτών και αρχικοποίηση
Ορισμός μεταβλητών δεικτών και αρχικοποίηση Η έννοια του δείκτη Κάθε μεταβλητή σχετίζεται με μια θέση στην κύρια μνήμη του Η/Υ η οποία έχει τη δική της ξεχωριστή διεύθυνση Ο δείκτης είναι μια μεταβλητή
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE
ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Απλά προγράμματα
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα
Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΦροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015
Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Βάλβης Δημήτριος Μηχανικός Πληροφορικής ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα
Διαβάστε περισσότεραΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Λεξικά Χειμερινό Εξάμηνο 2016
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Λεξικά Χειμερινό Εξάμηνο 2016 Γιατί Λεξικά; Στις ακολουθίες (π.χ. λίστες, αλφαριθμητικά) μπορούμε να αναφερόμαστε σε ένα στοιχείο με τον αριθμητικό δείκτη του (π.χ.
Διαβάστε περισσότεραΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος
Διαβάστε περισσότερα