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

Σχετικά έγγραφα
ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές. Εισαγωγή. Νίκος Αθανάσης.

Object Oriented Programming με Python

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

Μάριος Αγγελίδης Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. ΚΕΦΑΛΑΙΟ 2 Βασικές Έννοιες Αλγορίθμων

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Γλώσσα προγραμματισμού python

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Μαλούτα Θεανώ Σελίδα 1

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΕΠΠ Ερωτήσεις θεωρίας

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Προγραμματισμός I (Θ)

Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

6. Εισαγωγή στον προγραµµατισµό

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Θεωρία Προγραμματισμού

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

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

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

Προγραμματισμός Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

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

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

Πρόβλημα 37 / σελίδα 207

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

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

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

ΘΕΜΑ 1ο Α. 1-6 Σωστό Λάθος Μονάδες 12 Β. Στήλης Στήλης Β Στήλης Α Στήλης Β).

Επιµέλεια Θοδωρής Πιερράτος

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Σφάλματα, εξαιρέσεις, εκσφαλμάτωση Χειμερινό Εξάμηνο 2016

Πληροφορική ΙΙ. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

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

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

Δομημένος Προγραμματισμός

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

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Βασικές Έννοιες Αλγορίθμων Τι είναι αλγόριθμος

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

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

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Α. Ερωτήσεις Ανάπτυξης

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 3 ΙΟΥΝΙΟΥ ΑΕΠΠ

Ενότητα 3 ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ PYTHON

Transcript:

ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές Η γλώσσα προγραμματισμού Python Νίκος Αθανάσης e-mail: athanasis@geo.aegean.gr

Η έννοια του αλγορίθμου Αλγόριθμος είναι ένα πεπερασμένο σύνολο εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, οι οποίες όταν ακολουθηθούν επιτυγχάνεται ένα επιθυμητό αποτέλεσμα ή επιλύεται ένα συγκεκριμένο πρόβλημα. Ο όρος αυτός χρησιμοποιείται, για να δηλώσει ένα συγκεκριμένο σύνολο βημάτων-ενεργειών για την επίλυση προβλημάτων

Κριτήρια Αλγορίθμων Είσοδος (input). Καμία, μία ή περισσότερες ποσότητες να δίνονται ως είσοδοι στον αλγόριθμο. Έξοδος (output). Ο αλγόριθμος να δημιουργεί τουλάχιστον μία ποσότητα ως αποτέλεσμα. Καθοριστικότητα (definiteness). Κάθε εντολή να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της. Δηλαδή η μηχανή επεξεργασίας δεδομένων που θα κλιθεί να τη διεκπεραιώσει να καταλάβει τι ζητάμε να γίνει. Μπορούμε να το συνδέσουμε με τη σωστή σύνταξη.

Κριτήρια Αλγορίθμων Περατότητα (finiteness). Ο αλγόριθμος να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του.

Κριτήρια Αλγορίθμων Αποτελεσματικότητα (effectiveness). Κάθε μεμονωμένη εντολή του αλγορίθμου να είναι επαρκώς απλή, έτσι ώστε να μπορεί να εκτελεστεί από ένα άτομο με χρήση χαρτιού και μολυβιού. Δεν αρκεί δηλαδή να είναι ορισμένη (κριτήριο 3), αλλά πρέπει να είναι και εκτελέσιμη. Η αποτελεσματικότητα έχει να κάνει με την εκτελεσιμότητα. Αν εκτελείται μια σαφώς ορισμένη εντολή. Για παράδειγμα στην εντολή x=1/y όπου ψ=0, το πρόγραμμα καταλαβαίνει τι πρέπει να κάνει, αλλά δεν μπορεί να το εκτελέσει. Άρα η εντολή είναι μη αποτελεσματική γιατί δεν παράγει αποτέλεσμα.

Η εξίσωση των Αλγορίθμων Από τον Niklaus Wirth (που παρουσίασε την πρώτη δομημένη γλώσσα προγραμματισμού, την Pascal) διατυπώθηκε το 1976 η εξής εξίσωση: Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα

Η εξίσωση των Αλγορίθμων Δηλώνει ότι οι αλγόριθμοι συνυφασμένοι με τις απαραίτητες δομές σε μία αδιάσπαστη ενότητα αποτελούν τη βάση κάθε προγράμματος, ουσιαστικά δηλαδή τη βάση κάθε εφαρμογής. Η ανάλυση των αλγορίθμων μπορεί να διεκπεραιωθεί μόνο έχοντας στο υπόβαθρο ότι οι αλγόριθμοι επενεργούν σε κάποιες συγκεκριμένες δομές δεδομένων.

Δομές Δεδομένων Ένα σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών Στατικές Δομές Δεδομένων Δυναμικές Δομές Δεδομένων

Στατικές δομές δεδομένων Το μέγεθος της μνήμης που απαιτείται καθορίζεται από την αρχή του προγραμματισμού και όχι κατά την εκτέλεση του προγράμματος Στις στατικές δομές δεδομένων αφού γνωρίζουμε εκ των προτέρων το μέγεθός τους, τα στοιχεία αποθηκεύονται σε συνεχόμενες θέσεις μνήμης

Δυναμικές δομές δεδομένων Δεν έχουν σταθερό μέγεθος Ο αριθμός των κόμβων τους αυξομειώνεται ανάλογα με το αν εισάγουμε ή διαγράφουμε δεδομένα Δεν αποθηκεύονται σε συνεχόμενες θέσεις μνήμης

Αλγόριθμοι και Προγράμματα Η έννοια του αλγόριθμου δεν ταυτίζεται με την έννοια του προγράμματος. Το δεύτερο είναι μία υλοποίηση του πρώτου με τη βοήθεια των εντολών και των εργαλείων ενός προγραμματιστικού περιβάλλοντος. Σε σχέση με τα ανωτέρω κριτήρια, ένα πρόγραμμα δεν ικανοποιεί αναγκαστικά το 4ο κριτήριο της περατότητας (για παράδειγμα, ένα λειτουργικό σύστημα εκτελεί διαρκώς έναν ατέρμονα βρόχο περιμένοντας εντολές να εισέλθουν στο σύστημα).

Τρόποι παρουσίασης των αλγορίθμων Με την περιγραφή του αλγόριθμου σε φυσική γλώσσα (natural language) Με ελεύθερο κείμενο (free text). Μπορεί να παραβιασθεί το τρίτο κριτήριο του ορισμού. Με τη χρήση ενός διαγράμματος ροής (flow chart). Με κωδικοποίηση (coding), δηλαδή με ένα πρόγραμμα που, όταν εκτελεσθεί, θα δώσει τα ίδια αποτελέσματα με τον αλγόριθμο.

Γλώσσα μηχανής Το πρόγραμμα περιέχει εντολές που είναι σε δυαδική μορφή, άμεσα κατανοητή από τον Η/Υ (όχι όμως από τον άνθρωπο). Δηλαδή, το πρόγραμμα αποτελείται από ακολουθίες 0 και 1 π.χ. 10101000 00001010 11000000 00000001 Πλεονεκτήματα : Ταχύτατη εκτέλεση των εντολών. Δεν απαιτείται μεταφραστικό πρόγραμμα. Μειονεκτήματα : Το γράψιμο του προγράμματος είναι μία ιδιαίτερα επίπονη και χρονοβόρα διαδικασία. Απαιτείται βαθιά γνώση της αρχιτεκτονικής του Η/Υ. Το πρόγραμμα «τρέχει» μόνο στο συγκεκριμένο τύπο του Η/Υ.

Γλώσσες χαμηλού επιπέδου ή Συμβολικές γλώσσες Οι εντολές που είναι σε μορφή 0 και 1 αντικαθίστανται από μνημονικά (συμβολικά) ονόματα. Για παράδειγμα, η εντολή 100001100 αντικαθίστανται από το ADD. Ένα δείγμα χρήσης θα ήταν : INDEX =$01 {βάλε στην INDEX την τιμή 1} ADD INDEX {πρόσθεσε την τιμή της INDEX στον συσσωρευτή} LDA #10 {φόρτωσε στο συσσωρευτή την τιμή 10} CLA {καθάρισε το συσσωρευτή}.. Πλεονεκτήματα : Ταχύτατη εκτέλεση των εντολών. Η μορφή του προγράμματος είναι καλύτερα κατανοητή από τον άνθρωπο σε σχέση με τη γλώσσα μηχανής. Μειονεκτήματα : Η αντιστοιχία 1 προς 1 με τις εντολές της γλώσσας παρέμενε. Απαιτείται η χρήση ενός μεταφραστικού προγράμματος ώστε οι συμβολικές εντολές να μετατραπούν στις αντίστοιχες δυαδικές. Το ειδικό αυτό πρόγραμμα ονομάζεται συμβολομεταφραστής (assembler). Το γράψιμο του προγράμματος εξακολουθεί να είναι μία ιδιαίτερα επίπονη και χρονοβόρα διαδικασία. Απαιτείται βαθιά γνώση της αρχιτεκτονικής του Η/Υ. Το πρόγραμμα «τρέχει» μόνο στο συγκεκριμένο τύπο του Η/Υ.

Γλώσσες υψηλού επιπέδου Λέγονται έτσι διότι τα προγράμματα διατυπωμένα σε μία τέτοια γλώσσα είναι άμεσα κατανοητά από τον άνθρωπο (αλλά όχι από τον Η/Υ) αφού χρησιμοποιείται μία γλώσσα που είναι αρκετά περιγραφική όπως μία φυσική γλώσσα. Παράδειγμα, INPUT Δώσε την τελική τιμή ; N SUM = 0 For INDEX = 1 to N SUM = SUM + INDEX Next Πλεονεκτήματα : Η μορφή του προγράμματος είναι εύκολα κατανοητή από τον άνθρωπο σε σχέση με τη γλώσσα μηχανής ή τη συμβολική γλώσσα. Το γράψιμο του προγράμματος δεν είναι πλέον μία ιδιαίτερα επίπονη και χρονοβόρα διαδικασία όπως συμβαίνει με τη γλώσσα μηχανής ή τη συμβολική γλώσσα. Δεν απαιτείται σχεδόν καμία γνώση της αρχιτεκτονικής του Η/Υ. Συνεπώς, είναι ανεξάρτητα από την αρχιτεκτονική του Η/Υ. Το πρόγραμμα «τρέχει» σε όλους τους τύπους Η/Υ αρκεί να υπάρχει το κατάλληλο μεταφραστικό πρόγραμμα. Συνεπώς ένα χαρακτηριστικό τους είναι η μεταφερσιμότητα, δηλαδή ένα πρόγραμμα υψηλού επιπέδου να εκτελείται, με ελάχιστες μετατροπές, σε πολλούς τύπους Η/Υ. Η εκμάθηση της γλώσσας είναι εύκολη. Η διόρθωση λαθών και η συντήρηση των προγραμμάτων είναι ευκολότερη. Μειονεκτήματα : Απαιτείται η χρήση ενός μεταφραστικού προγράμματος ώστε οι εντολές να μετατραπούν σε πολλές δυαδικές εντολές (δεν έχουμε εδώ αντιστοιχία 1 προς 1). Έχουμε δύο ειδών μεταφραστικά προγράμματα: τους μεταγλωττιστές (compilers) και τους διερμηνείς (interpreters). Το πρόγραμμα «τρέχει» πιο αργά σε σχέση με τα προγράμματα των συμβολικών γλωσσών ή της γλώσσας μηχανής.

Μεταφραστικά Προγράμματα Ο προγραμματισμός είναι η διατύπωση του αλγορίθμου σε μορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέμε στην ορολογία της Πληροφορικής). Ένα πρόγραμμα που φτιάχνεται σε μία γλώσσα υψηλού επιπέδου δεν είναι άμεσα κατανοητό από τον Η/Υ. Θα πρέπει να μεταφραστεί σε ισοδύναμο πρόγραμμα σε γλώσσα μηχανής (δυαδική μορφή). Την διαδικασία μετάφρασης την πραγματοποιούν τα μεταφραστικά προγράμματα. Είναι δύο ειδών: Μεταγλωττιστές (Compilers) Διερμηνευτές (Interpreters)

Μεταφραστικά Προγράμματα Μεταγλωττιστής : Παίρνει, ως είσοδο, το πηγαίο πρόγραμμα και αναλαμβάνει να το μεταφράσει εξ ολοκλήρου παράγοντας το αντικείμενο πρόγραμμα.

Μεταφραστικά Προγράμματα Διερμηνευτής : Παίρνει, ως είσοδο, μία-μία εντολή του πηγαίου, την μεταφράζει και την εκτελεί αμέσως. Η λειτουργία του μοιάζει με τον άνθρωπο-διερμηνέα που μεταφράζει επί τόπου κάθε πρόταση.

Η Γλώσσα Προγραμματισμού Python Object oriented Interpreted language Αντικειμενοστραφής μεταφραστική γλώσσα Μεταφερσιμότητα προς όλα τα γνωστά Λειτουργικά Συστήματα (Windows, Linux, MacOS) Υποστηρίζει βασικούς τύπους δεδομένων (αριθμούς, αλφαριθμητικά) αλλά και σύνθετους τύπους δεδομένων (πχ λίστες, ευρετήρια) που απλοποιούν την ανάπτυξη λογισμικού Η νέα έκδοση της Python (3), διαθέτει σημαντικές διαφορές με την έκδοση 2. Η Python2 θα συνεχίσει να υποστηρίζεται για λίγα χρόνια ακόμη Είναι μια από τις 4 επίσημες γλώσσες τις Google (Java, Javascript, C++, Python)

Η Γλώσσα Προγραμματισμού Python https://www.youtube.com/watch?v=jrd EMERq8MA (Στο διάλλειμα)!

Κέλυφος Python (Python Shell)

(1) print ("Hello world!") greeting = "Hello" name = "Nikos" print (greeting + " " + name) Αποθήκευση (example1.py) Εκτέλεση με F5 (2) a = 1 b = 2 c = a+b print (c) print (1+2) print () for i in range(10): print(i) for i in range(10): print(i, end=" ") Εκτέλεση σε cmd mode (python example1.py) (3) name = input("what is your name?") age = input("what is your age?") print ("Name\tAGE") print (name+"\t"+age) Τροποποιείστε:

(4) (4Ok) name = input("what is your name?") age = 40#input("What is your age?") print ("Name\tAGE") print (name+"\t"+age) Τι παρατηρείτε; (5) name = input("what is your name?") age = input("what is your age?") print ("Name\tAGE") print (name+"\t"+str(age)) print (name+"\t"+"{0}". format(age)) name = input("what is your name?") age = input("what is your age?") print ("Name\tAGE") print (name+"\t"+ str(age)) (6) name = input("what is your name?") age = input("what is your age?") print ("Name:\t"+name) print ("Age:\t"+str(age)) print ("Name:\t{0}". format(name)) print ("Age:\t{0}". format(age)) print ("""Name:\t{0}. Age:\t{1}""". format(name, age)) Γράψτε πρόγραμμα το οποίο θα δέχεται το όνομα και το επίθετο του χρήστη και θα τα εμφανίζει σε αντίστροφη σειρά

a = 10 b = 3 print (a/b) print(a//b) print(a%b) (9) (7) name = input("what is your name?") print (name) print ("Length of your name:{0}". format(len(name))) print ("Starts with "+name[0]) print ("Ends with "+name[len(name)-1]) print ("Ends with "+name[-1]) print ("First 3 [0:3]"+name[0:3]) print ("First 3 [:3]"+name[:3]) print ("Last 3 [-3:]"+name[-3:]) print ("From 3 to end:"+name[3:]) (8) a = 12 b = 3 for i in range(1, a//b): print (i,end=" ") print() print (a + b / 3-4 * 12) print (a + b // 3-4 * 12) print ("Third character from the end:"+name[-3]) print ("Two characters starting from the third character from the end:"+name[-3:-1])

(10) (11) number = "9,123,456,789" print(number[1::4]) number = "1, 2, 3, 4, 5, 6, 7, 8, 9" print(number[0::3]) print("-"*30) for i in range(10): print("{0} squared is {1}, cubed {2}".format(i, i**2, i**3)) for i in range(1,10): print("{0} squared is {1}, cubed {2}".format(i, i**2, i**3)) for i in range(1,10): print("{0}:2 squared is {1:<4} Cubed {2}".format(i, i**2, i**3)) for i in range(1,10,2): print("{0}:2 squared is {1:<4} Cubed {2}".format(i, i**2, i**3))

(12) (13) name = input("name:") age = int(input("age:")) if age>=18: print("welcome " + name) else: print ("Come back in {0} years".format(18-age)) name = input("name:") if not name: print("please specify name") else: print("hello {}".format(name)) (14) age = int(input("age:")) if 0<=age<30: print("you are younger than 30") elif 30<=age<40: print(" You are between 30-40") else: print("older than 40") Τι παρατηρούμε για age = -10? Διορθώστε το σφάλμα (15) for season in ["Spring", "Summer", "Autumn", "Winter"]: print("season" + season)

Λύση age = int(input("age:")) if age<0: print("invalid age") elif 0<=age<30: print("you are younger than 30") elif 30<=age<40: print(" You are between 30-40") else: print("older than 40")

Άσκηση: Ο Δείκτης Μάζας Σώματος ΔΜΣ υπολογίζεται από τον τύπο ΔΜΣ = Β/Υ 2 για άτομα πάνω από 18 ετών. Να γράψετε πρόγραμμα όπου θα διαβάζει την ηλικία, το βάρος και το ύψος του ατόμου και θα υπολογίζει το ΔΜΣ και θα εμφανίζει κατάλληλο μήνυμα σύμφωνα με τον παρακάτω πίνακα. ΔΜΣ<18.5 18.5<=ΔMΣ<=25 25<=ΔΜΣ<30 30<=ΔΜΣ Αδύνατο άτομο Κανονικό άτομο Βαρύ άτομο Υπέρβαρο άτομο

import sys try: weight = float(input("give weight :")) height = float(input("give height :")) age = int(input("give age :")) if age<18: print("age must be greater than 18. Aborting") sys.exit() dms = round(weight / (height * height), 2) print (dms) except (Exception): print( "Invalid response")

(16) i = 1 while i<=10: print(i, end="\t") i+=1 Υλοποιήστε το ισοδύναμο με for Να γράψετε πρόγραμμα όπου θα ζητείται η ηλικία του χρήστη και θα γίνεται έλεγχος εγκυρότητας Άσκηση: Να αναπτυχθεί αλγόριθμος που θα υλοποιεί το παιχνίδι «Μάντεψε τον αριθμό» στον οποίο με δεδομένο έναν αριθμό κωδικό 1-100, διαβάζονται επαναληπτικά αριθμοί μέχρι να εντοπιστεί ο κωδικός. Σε κάθε προσπάθεια πρέπει να εμφανίζεται αν ο αριθμός που διαβάστηκε είναι μεγαλύτερος ή μικρότερος από τον κωδικό. Στο τέλος ο αλγόριθμος θα πρέπει να εμφανίζει το μήνυμα «Συγχαρητήρια, χρειάστηκες Ν προσπάθειες μέχρι να βρεθεί ο κωδικός», όπου Ν το πλήθος των προσπαθειών μέχρι να βρεθεί ο κωδικός. Χρησιμοποιήστε τη συνάρτηση import random target = random.randint(1,100)

(18) reply = input( Enter x and y, separated by spaces: ) pieces = reply.split( ) x = float(pieces[0]) y = float(pieces[1]) print (x+y) (19) def personal_details(): name, age = Nikos", 40 address = Mytilini" print("name: {}\nage: {}\naddress: {}".format(name, age, address)) personal_details() Να γράψετε πρόγραμμα όπου θα ζητείται το όνομα ενός αρχείου και θα επιστρέφει την κατάληξη του

Λύση filename = input("input the Filename: ") extension = filename.split(".") print ("The extension of the file is : " + extension[-1])

(20) #formal parameters def scale(val,factor): val = val*factor val = 5 factor = 2 #actual parameters print(val) scale(val,factor) print(val) (21) def scale(data, factor): for j in range(len(data)): data[j] = factor factor = 2 data = [1,2,3] print(data) scale(data,factor) print(data)

(24) (25) try: val = int(input( "Give me a number:" )) except (Exception): print( "Invalid response") try: filename = input("give Filename: ") fp = open(filename) print ("Content of the file: ". format (fp.name)) line = fp.readlines() print ("Read Line: {0}". format (line)) fp.close() except IOError as e: print("unable to open the file:", e)

(21) Να γραφτεί πρόγραμμα στην Python που θα δίνεται ένα string και να υπολογίζει το πλήθος των ψηφίων και το πλήθος των γραμμάτων s = input("input a string") d=l=0 for c in s: if c.isdigit(): d=d+1 elif c.isalpha(): l=l+1 else: pass print("letters", l) print("digits", d)

(Ι) Να γράψετε μια συνάρτηση που θα υπολόγίζει το άθροισμα τριών δοθέντων αριθμών εάν οι τιμές δεν είναι ίσες μεταξύ τους και το τριπλάσιο τους σε περίπτωση που είναι ίσες. (ΙΙ) Δίνεται μια σειρά από αριθμούς χωρισμένους από, πχ 4,5,6,2 από όπου θα κατασκευάζετα το παρακάτω σχήμα **** ***** ****** ** (ΙΙΙ) Να γράψετε μια συνάρτηση που θα ελέγχει αν μια διεύθυνση IP είναι έγκυρη. Για περισσότερες πληροφορίες σχετικά με την εγκυρότητα IPs: http://www.noip.com/support/knowledg ebase/what-is-a-valid-ip-address/ (ΙV) Να γράψετε μια συνάρτηση που θα δέχεται μια φράση και θα την αντιστρέφει