SlideShare a Scribd company logo
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΦΥΣΙΚΕΣ & ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ
Γενικά, μια γλώσσα (όχι απαραίτητα προγραμματισμού)
προσδιορίζεται από:
Το αλφάβητο της
 Επιτρεπτά στοιχεία (γράμματα, σύμβολα, αριθμοί, π.χ. Α-Ω, 0-9,
#,%,$,+,* κλπ)
Το λεξιλόγιο της
 Επιτρεπτοί συνδυασμοί στοιχείων του αλφαβήτου (αποδεκτές λέξεις,
π.χ. ΓΡΑΨΕ και όχι ΓΡΑΨΕΘ)
Τη γραμματική της
 Τυπικό (κανόνες για τις μορφές ή παραλλαγές μιας λέξης, π.χ
ΓΡΑΦΩ, ΓΡΑΨΕ, ΓΡΑΦΟΥΜΕ,...)
 Συντακτικό (κανόνες για τη διάταξη των λέξεων. Μας ενδιαφέρει στις
γλώσσες προγραμματισμού)
Τη σημασιολογία της (semantics)
 Κανόνες για το νόημα των λέξεων, εκφράσεων, προτάσεων
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΦΥΣΙΚΕΣ & ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ
ΟΙ ΔΙΑΦΟΡΕΣ ΤΟΥΣ
Φυσικές γλώσσες
 Χρησιμεύουν στην επικοινωνία μεταξύ ανθρώπων
 Εξελίσσονται συνεχώς (νέες λέξεις δημιουργούνται,
αλλάζουν οι κανόνες σύνταξης ή γραμματικής, κλπ.)
Τεχνητές γλώσσες
 Χρησιμεύουν για την επικοινωνία ανθρώπου-μηχανής
 Συνήθως στάσιμες αφού κατασκευάζονται για ένα
συγκεκριμένο σκοπό
 Βελτιώνονται σε μικρό σχετικά εύρος, από τους
δημιουργούς τους για να ακολουθήσουν νέες εξελίξεις
στα είδη εφαρμογών
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ
ΠΡΟΓΡΑΜΜΑΤΩΝ
Είναι συνεχής η προσπάθεια εξεύρεσης
μεθοδολογιών και τεχνικών ανάπτυξης λογισμικού
Κύριοι λόγοι είναι :
 Η απλοποίηση της οργάνωσης του κώδικα
 Η ευκολία διόρθωσης και γενικά η συντήρησή του από
τους προγραμματιστές
 Η μείωση του χρόνου υλοποίησης των εφαρμογών
Ακολουθούν οι κυριότερες τεχνικές σχεδίασης
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ
ΠΡΟΓΡΑΜΜΑΤΩΝ
ΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ
Διάσπαση του
προβλήματος σε μικρότερα,
απλούστερα και κατά το
δυνατόν ανεξάρτητα μέρη
Λέγεται και
προγραμματισμός «από
επάνω προς τα κάτω» (top
down program design)
Χρήση ειδικών
διαγραμμάτων
ΦΟΡΟΛΟΓΙΑ
Δεδομένα
Υπολο-
γισμοί
Αποτελέ-
σματα
Φορολο-
γητέο
Φόρος
προπληρ
Εισόδημα
Εκπτώση
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ
ΠΡΟΓΡΑΜΜΑΤΩΝ
ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Υλοποιεί την ιεραρχική σχεδίαση
Κάθε υποπρόβλημα αποτελεί ξεχωριστή ενότητα
(module) και γράφεται ανεξάρτητα
Ο συνδυασμός των ενοτήτων συμβάλλει στην επίλυση
του προβλήματος
Χρειάζεται προσοχή για τη σωστή διάσπαση σε
ενότητες
Μειώνονται τα λάθη
Καλύτερη παρακολούθηση και κατανόηση
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ
ΠΡΟΓΡΑΜΜΑΤΩΝ
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Είναι ένας τρόπος οργάνωσης του κώδικα του προγράμματος
Παρουσιάστηκε από το 1960 και πλέον υποστηρίζεται σχεδόν από
όλες τις γλώσσες προγραμματισμού
Θεμελιώθηκε το 1968, στη μελέτη του Edger Dijkstra με τίτλο :
«GOTO Statement Considered Harmful»
Μέχρι τότε, δεν υπήρχε κάποια μεθοδολογία σχεδίασης, τα
προγράμματα ήταν μπερδεμένα και η εντολή GOTO, που άλλαζε τη
ροή εκτέλεσης, χρησιμοποιούνταν αλόγιστα (spagetti code)
Χρειάστηκαν αρκετά χρόνια για την πλήρη αποδοχή του
Στηρίζεται στις δομές ακολουθίας, επιλογής και επανάληψης και στο
ότι κάθε υποενότητα πρέπει να έχει μια είσοδο και μια έξοδο
Περιλαμβάνει : ιεραρχική σχεδίαση και τμηματικό προγραμματισμό
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ
ΠΡΟΓΡΑΜΜΑΤΩΝ
Παράδειγμα της «κακής» εντολή GO TO,
που οδήγησε στο δομημένο προγραμματισμό
90 PRINT «Νέα συναλλαγή; (Κ/ατάθεση, Χ/ρέωση, Τ/έλος)"
100 T$=INPUT$(1)
110 IF T$ <> «Κ» AND T$<> «κ» GOTO 210
120 INPUT «Ποσό κατάθεσης:";DEPOSIT
130 BALANCE = BALANCE + DEPOSIT
140 PRINT USING «Νέο υπόλοιπο: $#####.##";BALANCE
150 GOTO 90
210 IF T$ <> «Χ» AND T$<> «χ» GOTO 300
220 INPUT «Ποσό χρέωσης";CHECK
230 BALANCE = BALANCE - CHECK
240 PRINT USING «Νέο υπόλοιπο: $#####.##";BALANCE
250 GOTO 90
300 IF T$ <> «Τ» AND T$<> «τ» GOTO 90
410 PRINT USING “Υπόλοιπο λογ/σμού: $#####.##";BALANCE
430 END
Αυτή η απόλυτη
ελευθερία να
μεταφέρεται η ροή
του προγράμ-
ματος σε διάφορα
σημεία, παρήγαγε
κώδικα με την
επωνυμία
«spaghetti code»
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ
ΠΡΟΓΡΑΜΜΑΤΩΝ
ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΔΟΜΗΜΕΝΟΥ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
Απλούστερα προγράμματα
Άμεση μεταφορά των αλγορίθμων σε προγράμματα
Εύκολη ανάλυση του προγράμματος σε τμήματα
Περιορισμός λαθών
Εύκολη κατανόηση από τρίτους προγραμματιστές
Εύκολη διόρθωση και συντήρηση
Γρηγορότερη υλοποίηση των εφαρμογών
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ & ΔΙΕΡΜΗΝΕΥΤΕΣ
Για τη δημιουργία προγραμμάτων χρειάζονται
τουλάχιστον τρία προγράμματα:
Ο συντάκτης (Editor)
Ο μεταγλωττιστής ή ο διερμηνευτής
(Compiler ή Interpreter)
Ο συνδέτης (Linker)
Παρουσιάζονται αναλυτικότερα παρακάτω :
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ & ΔΙΕΡΜΗΝΕΥΤΕΣ
Ο συντάκτης (Editor)
Είναι ένας ανεξάρτητος επεξεργαστής απλού κειμένου.
Δεν είναι κάποια ειδική εφαρμογή. Ο προγραμματιστής
μπορεί να επιλέξει οποιοδήποτε τρόπο συγγραφής, π.χ. το
απλό “σημειωματάριο” του Η/Υ
Με τον καιρό, ενσωματώθηκε στα ολοκληρωμένα
περιβάλλοντα προγραμματισμού
Απέκτησε λειτουργίες διευκόλυνσης συγγραφής κώδικα, π.χ.
χρωματισμό εντολών, εύκολη διόρθωση λαθών, αυτόματη
εισαγωγή ολόκληρων εντολών μετά από πληκτρολόγηση των
αρχικών γραμμάτων τους, αντιγραφή, επικόλληση κλπ.
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ & ΔΙΕΡΜΗΝΕΥΤΕΣ
Ο μεταγλωττιστής και ο διερμηνευτής (Compiler και Interpreter)
Κάθε πρόγραμμα πρέπει να μετατραπεί σε μορφή
αναγνωρίσιμη από τον Η/Υ, δηλ. σε γλώσσα μηχανής. Αυτό
αναλαμβάνει ο μεταγλωττιστής και ο διερμηνευτής
Ο μεταγλωττιστής, δέχεται ως είσοδο όλο το αρχικό κείμενο
(πηγαίος κώδικας - source code) του προγράμματος και
παράγει το αντίστοιχο πρόγραμμα σε γλώσσα μηχανής
(αντικείμενο πρόγραμμα - object)
Ο διερμηνευτής από την άλλη (π.χ. της ΓΛΩΣΣΑΣ), δέχεται
μία προς μία τις εντολές του πηγαίου κώδικα, τις μεταφράζει
σε γλώσσα μηχανής κάθε φορά (π.χ. στις επαναλήψεις) και
τις εκτελεί. Έχουμε πιο αργή εκτέλεση, σε σχέση με τη
μεταγλώττιση, η οποία γίνεται μία φορά για όλο τον κώδικα.
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ & ΔΙΕΡΜΗΝΕΥΤΕΣ
Ο συνδέτης (Linker)
Το αντικείμενο (object) πρόγραμμα που παράγει ο μεταγλωττιστής
δεν μπορεί να εκτελεστεί αμέσως.
Χρειάζεται να συνδεθεί με άλλα τμήματα προγράμματος
(βιβλιοθήκες – libraries) τα οποία, είτε έχει γράψει ο
προγραμματιστής, είτε είναι μέρος της γλώσσας προγραμματισμού,
ώστε να αξιοποιηθούν και χαρακτηριστικά του λειτουργικού
συστήματος
Τη δουλειά αυτή αναλαμβάνει ο συνδέτης (linker), οποίος τελικά
παράγει το τελικό εκτελέσιμο πρόγραμμα (executable)
Συνολικά η διαδικασία αποκαλείται «μεταγλώττιση και σύνδεση»
(compiling and linking) ή «χτίσιμο» (build)
Αρχικό
πρόγραμμα
Αντικείμενο
πρόγραμμα
Εκτελέσιμο
πρόγραμμα
Μεταγλωττιστής
Συνδέτης
Βιβλιοθήκες
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ
ΠΕΡΙΒΑΛΛΟΝΤΑ
Παλαιότερα, ο προγραμματιστής αναλάμβανε να εκτελέσει
ξεχωριστά, κάθε ένα από τα προηγούμενα προγράμματα
Σήμερα, και τα τρία (συντάκτης, μεταγλωττιστής/διερμηνευτής
και συνδέτης), είναι πλέον ενοποιημένα σε ειδικά ολοκληρωμένα
περιβάλλοντα εργασίας, σε όλες τις γλώσσες προγραμματισμού
Χρησιμοποιείται γραφικό περιβάλλον εργασίας (Graphical User
Interface – GUI)
Εύκολη συγγραφή κώδικα, άμεση μεταγλώττιση σε γλώσσα
μηχανής και διασύνδεση με τις βιβλιοθήκες και το λειτουργικό
σύστημα
Άμεση εμφάνιση συντακτικών λαθών
Βοηθητικές λειτουργίες, π.χ. λήψη εφεδρικών αντιγράφων,
εκτυπώσεις, αλλαγή στην εμφάνιση και στη λειτουργία κατά τις
προτιμήσεις του προγραμματιστή, εισαγωγή κειμένου από άλλα
προγράμματα, κ.ά.
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
3. Συνδέτης
 Διαβάζει το: main.obj
 Παράγει το: main.exe
(εκτελέσιμο στον Η/Υ)
2. Μεταγλωττιστής
 Διαβάζει το : main.c
 Παράγει το : main.obj
(Αντικείμενο πρόγραμμα.
Δεν εκτελείται ακόμη)
1. Συντάκτης
 Γλώσσα : C
 Αποθηκεύει το : main.c
(απλό κείμενο με τη
σύνταξη της γλώσσας)
ΧΕΙΡΟΚΙΝΗΤΗ ΧΡΗΣΗ ΤΡΙΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ
Εντολή MS-DOS για
λίστα αρχείων στο
δίσκο (ορίστε ;)
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΟΛΟΚΛΗΡΩΜΕΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ
ΠΕΡΙΒΑΛΛΟΝΤΑ
Integrated Development Environments (IDE)
Περιλαμβάνεται
αναβαθμισμένος
συντάκτης κειμένου
Εύκολος εντοπισμός
συντακτικών λαθών
Ηλεκτρονικό εγχειρίδιο
βοήθειας για τη γλώσσα
προγραμματισμού
Γραφική σύνθεση των
παραθύρων της
εφαρμογής
Πολλαπλές εκδόσεις
Το ίδιο το περιβάλλον
εργασίας αναλαμβάνει τη
μεταγλώττιση και σύνδεση
Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για
Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα
ΕΙΔΗ ΛΑΘΩΝ ΣΤΑ ΠΡΟΓΡΑΜΜΑΤΑ
Συντακτικά λάθη (syntax errors)
 Οφείλονται στη λανθασμένη χρήση ή ορθογραφία των
εντολών από τον προγραμματιστή
 Εντοπίζονται αμέσως από το περιβάλλον εργασίας κατά
τη μεταγλώττιση
 Ο προγραμματιστής πρέπει να τα διορθώσει, για να
μεταγλωττιστεί το πρόγραμμα
Λογικά (logical errors ή bugs)
 Είναι τα πιο επικίνδυνα, αφού οφείλονται σε κακή
υλοποίηση του αλγορίθμου (είναι λάθη λογικής), π.χ. αντί
μιας πρόσθεσης, προγραμματίστηκε μια αφαίρεση.
 Δύσκολα στην ανεύρεσή τους
 Μπορεί να οδηγήσουν σε σφάλματα εκτέλεσης
(τερματισμό) του προγράμματος, π.χ. διαίρεση με το 0, ή
άνοιγμα αρχείου που δεν υπάρχει, κλπ.

More Related Content

Similar to Κεφ 6.pptx

Ιστορία του Προγραμματισμού των Ηλεκτρονικών Υπολογιστών
Ιστορία του Προγραμματισμού των Ηλεκτρονικών ΥπολογιστώνΙστορία του Προγραμματισμού των Ηλεκτρονικών Υπολογιστών
Ιστορία του Προγραμματισμού των Ηλεκτρονικών ΥπολογιστώνStathis Gourzis
 
Kef 1 4 & 1 5
Kef 1 4 & 1 5Kef 1 4 & 1 5
Kef 1 4 & 1 5
Terzakis Argiris
 
C_24112023.pdf
C_24112023.pdfC_24112023.pdf
C_24112023.pdf
argideli1
 
Κεφ. 6 Εισαγωγή στον Προγραμματισμό
Κεφ. 6 Εισαγωγή στον ΠρογραμματισμόΚεφ. 6 Εισαγωγή στον Προγραμματισμό
Κεφ. 6 Εισαγωγή στον ΠρογραμματισμόΙωάννου Γιαννάκης
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
leonbont
 
6.1 Γλώσσες και εργαλεία προγραμματισμού
6.1 Γλώσσες και εργαλεία προγραμματισμού6.1 Γλώσσες και εργαλεία προγραμματισμού
6.1 Γλώσσες και εργαλεία προγραμματισμού
ΑΡΓΚΕΝ ΖΟΤΚΑ
 
γλώσσες εργαλεία προγραμματισμού
γλώσσες εργαλεία προγραμματισμούγλώσσες εργαλεία προγραμματισμού
γλώσσες εργαλεία προγραμματισμού
kmag388
 
C_01122023.pdf
C_01122023.pdfC_01122023.pdf
C_01122023.pdf
argideli1
 
ΑΕΠΠ ΚΕΦ 6
ΑΕΠΠ ΚΕΦ 6ΑΕΠΠ ΚΕΦ 6
ΑΕΠΠ ΚΕΦ 6
educast
 
Εισαγωγή στην έννοια του Αλγορίθμου και στον προγραμματισμό (Μέρος 2)
Εισαγωγή στην έννοια του Αλγορίθμου και στον προγραμματισμό (Μέρος 2) Εισαγωγή στην έννοια του Αλγορίθμου και στον προγραμματισμό (Μέρος 2)
Εισαγωγή στην έννοια του Αλγορίθμου και στον προγραμματισμό (Μέρος 2)
Konstantinos Kalaras Lafkiotis
 
C_27102023.pdf
C_27102023.pdfC_27102023.pdf
C_27102023.pdf
argideli1
 
κεφάλαιο 6
κεφάλαιο 6κεφάλαιο 6
κεφάλαιο 6
sotiriasa
 
Life savingtools ebook_metafrasi_2018
Life savingtools ebook_metafrasi_2018Life savingtools ebook_metafrasi_2018
Life savingtools ebook_metafrasi_2018
Virginia Katsimpiri, MSc
 
Ανάπτυξη λογισμικού
Ανάπτυξη λογισμικούΑνάπτυξη λογισμικού
Ανάπτυξη λογισμικού
pasxelfstone
 
προγραμματισμός Η Υ.pptx
προγραμματισμός Η Υ.pptxπρογραμματισμός Η Υ.pptx
προγραμματισμός Η Υ.pptx
ΦΩΤΕΙΝΗ ΧΑΤΖΗΠΑΠΑ
 
Μορφές των αρχείων γραμματοσειρών: TrueType (TTF), PostScript y OpenType (OTF)
Μορφές των αρχείων γραμματοσειρών: TrueType (TTF), PostScript y OpenType (OTF)Μορφές των αρχείων γραμματοσειρών: TrueType (TTF), PostScript y OpenType (OTF)
Μορφές των αρχείων γραμματοσειρών: TrueType (TTF), PostScript y OpenType (OTF)
Dinkybueno
 
κεφ2 λογισμικό
κεφ2 λογισμικόκεφ2 λογισμικό
κεφ2 λογισμικό
akarathanos
 

Similar to Κεφ 6.pptx (20)

Ιστορία του Προγραμματισμού των Ηλεκτρονικών Υπολογιστών
Ιστορία του Προγραμματισμού των Ηλεκτρονικών ΥπολογιστώνΙστορία του Προγραμματισμού των Ηλεκτρονικών Υπολογιστών
Ιστορία του Προγραμματισμού των Ηλεκτρονικών Υπολογιστών
 
Kef 1 4 & 1 5
Kef 1 4 & 1 5Kef 1 4 & 1 5
Kef 1 4 & 1 5
 
C_24112023.pdf
C_24112023.pdfC_24112023.pdf
C_24112023.pdf
 
Aepp-6.1-6.2-6.3-tsiotakis
Aepp-6.1-6.2-6.3-tsiotakisAepp-6.1-6.2-6.3-tsiotakis
Aepp-6.1-6.2-6.3-tsiotakis
 
Κεφ. 6 Εισαγωγή στον Προγραμματισμό
Κεφ. 6 Εισαγωγή στον ΠρογραμματισμόΚεφ. 6 Εισαγωγή στον Προγραμματισμό
Κεφ. 6 Εισαγωγή στον Προγραμματισμό
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
6.1 Γλώσσες και εργαλεία προγραμματισμού
6.1 Γλώσσες και εργαλεία προγραμματισμού6.1 Γλώσσες και εργαλεία προγραμματισμού
6.1 Γλώσσες και εργαλεία προγραμματισμού
 
γλώσσες εργαλεία προγραμματισμού
γλώσσες εργαλεία προγραμματισμούγλώσσες εργαλεία προγραμματισμού
γλώσσες εργαλεία προγραμματισμού
 
C_01122023.pdf
C_01122023.pdfC_01122023.pdf
C_01122023.pdf
 
Eisagwgi
EisagwgiEisagwgi
Eisagwgi
 
ΑΕΠΠ ΚΕΦ 6
ΑΕΠΠ ΚΕΦ 6ΑΕΠΠ ΚΕΦ 6
ΑΕΠΠ ΚΕΦ 6
 
Εισαγωγή στην έννοια του Αλγορίθμου και στον προγραμματισμό (Μέρος 2)
Εισαγωγή στην έννοια του Αλγορίθμου και στον προγραμματισμό (Μέρος 2) Εισαγωγή στην έννοια του Αλγορίθμου και στον προγραμματισμό (Μέρος 2)
Εισαγωγή στην έννοια του Αλγορίθμου και στον προγραμματισμό (Μέρος 2)
 
C_27102023.pdf
C_27102023.pdfC_27102023.pdf
C_27102023.pdf
 
κεφάλαιο 6
κεφάλαιο 6κεφάλαιο 6
κεφάλαιο 6
 
Life savingtools ebook_metafrasi_2018
Life savingtools ebook_metafrasi_2018Life savingtools ebook_metafrasi_2018
Life savingtools ebook_metafrasi_2018
 
Ανάπτυξη λογισμικού
Ανάπτυξη λογισμικούΑνάπτυξη λογισμικού
Ανάπτυξη λογισμικού
 
προγραμματισμός Η Υ.pptx
προγραμματισμός Η Υ.pptxπρογραμματισμός Η Υ.pptx
προγραμματισμός Η Υ.pptx
 
Μορφές των αρχείων γραμματοσειρών: TrueType (TTF), PostScript y OpenType (OTF)
Μορφές των αρχείων γραμματοσειρών: TrueType (TTF), PostScript y OpenType (OTF)Μορφές των αρχείων γραμματοσειρών: TrueType (TTF), PostScript y OpenType (OTF)
Μορφές των αρχείων γραμματοσειρών: TrueType (TTF), PostScript y OpenType (OTF)
 
ΑΕΠΠ-ch7-tsiotakis
ΑΕΠΠ-ch7-tsiotakisΑΕΠΠ-ch7-tsiotakis
ΑΕΠΠ-ch7-tsiotakis
 
κεφ2 λογισμικό
κεφ2 λογισμικόκεφ2 λογισμικό
κεφ2 λογισμικό
 

Recently uploaded

TEST 1 - ΙΑΣΟΝΑΣ ΠΕΤΡΟΣ hhhh (ΒΟΥΝΑ ΠΟΤΑΜΙΑ).ppt
TEST 1 - ΙΑΣΟΝΑΣ ΠΕΤΡΟΣ hhhh (ΒΟΥΝΑ ΠΟΤΑΜΙΑ).pptTEST 1 - ΙΑΣΟΝΑΣ ΠΕΤΡΟΣ hhhh (ΒΟΥΝΑ ΠΟΤΑΜΙΑ).ppt
TEST 1 - ΙΑΣΟΝΑΣ ΠΕΤΡΟΣ hhhh (ΒΟΥΝΑ ΠΟΤΑΜΙΑ).ppt
nikzoit
 
Τα θέματα σε Δίκτυα Υπολογιστών για τα ΕΠΑΛ
Τα θέματα σε Δίκτυα Υπολογιστών για τα ΕΠΑΛΤα θέματα σε Δίκτυα Υπολογιστών για τα ΕΠΑΛ
Τα θέματα σε Δίκτυα Υπολογιστών για τα ΕΠΑΛ
Newsroom8
 
ΑΠΑΝΤΗΣΕΙΣ_ΛΑΤΙΝΙΚΑ_ΠΑΝΕΛΛΗΝΙΕΣ-2024.pdf
ΑΠΑΝΤΗΣΕΙΣ_ΛΑΤΙΝΙΚΑ_ΠΑΝΕΛΛΗΝΙΕΣ-2024.pdfΑΠΑΝΤΗΣΕΙΣ_ΛΑΤΙΝΙΚΑ_ΠΑΝΕΛΛΗΝΙΕΣ-2024.pdf
ΑΠΑΝΤΗΣΕΙΣ_ΛΑΤΙΝΙΚΑ_ΠΑΝΕΛΛΗΝΙΕΣ-2024.pdf
athinadimi
 
Οι απαντήσεις στην Πληροφορική για τα ΓΕΛ
Οι απαντήσεις στην Πληροφορική για τα ΓΕΛΟι απαντήσεις στην Πληροφορική για τα ΓΕΛ
Οι απαντήσεις στην Πληροφορική για τα ΓΕΛ
Newsroom8
 
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησειςΑναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
ΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Απολογισμός Ομίλου Ρομποτικής - SxedioDrasis2023-24ApologismosRobotiki-F.docx
Απολογισμός Ομίλου Ρομποτικής - SxedioDrasis2023-24ApologismosRobotiki-F.docxΑπολογισμός Ομίλου Ρομποτικής - SxedioDrasis2023-24ApologismosRobotiki-F.docx
Απολογισμός Ομίλου Ρομποτικής - SxedioDrasis2023-24ApologismosRobotiki-F.docx
Tassos Karampinis
 
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptxΗ χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
peter190314
 
一比一原版(USYD毕业证书)悉尼大学毕业证成绩单如何办理
一比一原版(USYD毕业证书)悉尼大学毕业证成绩单如何办理一比一原版(USYD毕业证书)悉尼大学毕业证成绩单如何办理
一比一原版(USYD毕业证书)悉尼大学毕业证成绩单如何办理
3zoh0uxr
 
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdfΑπαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
athinadimi
 
ΕΓΚΥΚΛ.-ΠΑΡΑΛ.-ΣΤΗΡΙΞΗΣ-2024-25-ΨΒΣΕ46ΝΚΠΔ-1ΦΤ.pdf
ΕΓΚΥΚΛ.-ΠΑΡΑΛ.-ΣΤΗΡΙΞΗΣ-2024-25-ΨΒΣΕ46ΝΚΠΔ-1ΦΤ.pdfΕΓΚΥΚΛ.-ΠΑΡΑΛ.-ΣΤΗΡΙΞΗΣ-2024-25-ΨΒΣΕ46ΝΚΠΔ-1ΦΤ.pdf
ΕΓΚΥΚΛ.-ΠΑΡΑΛ.-ΣΤΗΡΙΞΗΣ-2024-25-ΨΒΣΕ46ΝΚΠΔ-1ΦΤ.pdf
2lykkomo
 
Σχέδιο Δράσης. Απολογισμός. SxedioDrasis2023-24ApologismosEikastikwn-2.docx
Σχέδιο Δράσης. Απολογισμός. SxedioDrasis2023-24ApologismosEikastikwn-2.docxΣχέδιο Δράσης. Απολογισμός. SxedioDrasis2023-24ApologismosEikastikwn-2.docx
Σχέδιο Δράσης. Απολογισμός. SxedioDrasis2023-24ApologismosEikastikwn-2.docx
Tassos Karampinis
 
ΔΑΣΗ εργασια ναγια ηλεκτραφβφβφβφβφββφββφ ω ω ω .pptx
ΔΑΣΗ εργασια ναγια ηλεκτραφβφβφβφβφββφββφ ω ω ω .pptxΔΑΣΗ εργασια ναγια ηλεκτραφβφβφβφβφββφββφ ω ω ω .pptx
ΔΑΣΗ εργασια ναγια ηλεκτραφβφβφβφβφββφββφ ω ω ω .pptx
peter190314
 
ΑΠΑΝΤΗΣΕΙΣ_ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ-ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
ΑΠΑΝΤΗΣΕΙΣ_ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ-ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdfΑΠΑΝΤΗΣΕΙΣ_ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ-ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
ΑΠΑΝΤΗΣΕΙΣ_ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ-ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
athinadimi
 
Θέματα χημείας -Πανελλαδικές εξετάσεις 2024
Θέματα χημείας  -Πανελλαδικές εξετάσεις 2024Θέματα χημείας  -Πανελλαδικές εξετάσεις 2024
Θέματα χημείας -Πανελλαδικές εξετάσεις 2024
Θεόδωρος Μαραγκούλας
 
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdfΑπαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
athinadimi
 
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛΤα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Newsroom8
 
Η τέχνη του Sampling/ The art of Sampling
Η τέχνη του Sampling/ The art of SamplingΗ τέχνη του Sampling/ The art of Sampling
Η τέχνη του Sampling/ The art of Sampling
ssuser6717fd
 
ΑΠΑΝΤΗΣΕΙΣ - ΠΑΝΕΛΛΗΝΙΕΣ 2024 - 3 - πληροφορική.pdf
ΑΠΑΝΤΗΣΕΙΣ - ΠΑΝΕΛΛΗΝΙΕΣ 2024 - 3 - πληροφορική.pdfΑΠΑΝΤΗΣΕΙΣ - ΠΑΝΕΛΛΗΝΙΕΣ 2024 - 3 - πληροφορική.pdf
ΑΠΑΝΤΗΣΕΙΣ - ΠΑΝΕΛΛΗΝΙΕΣ 2024 - 3 - πληροφορική.pdf
athinadimi
 
them_latin_gel_240606. latinika panellinies 2024pdf
them_latin_gel_240606. latinika panellinies 2024pdfthem_latin_gel_240606. latinika panellinies 2024pdf
them_latin_gel_240606. latinika panellinies 2024pdf
konstantinantountoum1
 
PANELLINIES 2024 LATINIKA APANTISEIS.pdf
PANELLINIES 2024 LATINIKA APANTISEIS.pdfPANELLINIES 2024 LATINIKA APANTISEIS.pdf
PANELLINIES 2024 LATINIKA APANTISEIS.pdf
konstantinantountoum1
 

Recently uploaded (20)

TEST 1 - ΙΑΣΟΝΑΣ ΠΕΤΡΟΣ hhhh (ΒΟΥΝΑ ΠΟΤΑΜΙΑ).ppt
TEST 1 - ΙΑΣΟΝΑΣ ΠΕΤΡΟΣ hhhh (ΒΟΥΝΑ ΠΟΤΑΜΙΑ).pptTEST 1 - ΙΑΣΟΝΑΣ ΠΕΤΡΟΣ hhhh (ΒΟΥΝΑ ΠΟΤΑΜΙΑ).ppt
TEST 1 - ΙΑΣΟΝΑΣ ΠΕΤΡΟΣ hhhh (ΒΟΥΝΑ ΠΟΤΑΜΙΑ).ppt
 
Τα θέματα σε Δίκτυα Υπολογιστών για τα ΕΠΑΛ
Τα θέματα σε Δίκτυα Υπολογιστών για τα ΕΠΑΛΤα θέματα σε Δίκτυα Υπολογιστών για τα ΕΠΑΛ
Τα θέματα σε Δίκτυα Υπολογιστών για τα ΕΠΑΛ
 
ΑΠΑΝΤΗΣΕΙΣ_ΛΑΤΙΝΙΚΑ_ΠΑΝΕΛΛΗΝΙΕΣ-2024.pdf
ΑΠΑΝΤΗΣΕΙΣ_ΛΑΤΙΝΙΚΑ_ΠΑΝΕΛΛΗΝΙΕΣ-2024.pdfΑΠΑΝΤΗΣΕΙΣ_ΛΑΤΙΝΙΚΑ_ΠΑΝΕΛΛΗΝΙΕΣ-2024.pdf
ΑΠΑΝΤΗΣΕΙΣ_ΛΑΤΙΝΙΚΑ_ΠΑΝΕΛΛΗΝΙΕΣ-2024.pdf
 
Οι απαντήσεις στην Πληροφορική για τα ΓΕΛ
Οι απαντήσεις στην Πληροφορική για τα ΓΕΛΟι απαντήσεις στην Πληροφορική για τα ΓΕΛ
Οι απαντήσεις στην Πληροφορική για τα ΓΕΛ
 
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησειςΑναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
 
Απολογισμός Ομίλου Ρομποτικής - SxedioDrasis2023-24ApologismosRobotiki-F.docx
Απολογισμός Ομίλου Ρομποτικής - SxedioDrasis2023-24ApologismosRobotiki-F.docxΑπολογισμός Ομίλου Ρομποτικής - SxedioDrasis2023-24ApologismosRobotiki-F.docx
Απολογισμός Ομίλου Ρομποτικής - SxedioDrasis2023-24ApologismosRobotiki-F.docx
 
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptxΗ χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
 
一比一原版(USYD毕业证书)悉尼大学毕业证成绩单如何办理
一比一原版(USYD毕业证书)悉尼大学毕业证成绩单如何办理一比一原版(USYD毕业证书)悉尼大学毕业证成绩单如何办理
一比一原版(USYD毕业证书)悉尼大学毕业证成绩单如何办理
 
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdfΑπαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
 
ΕΓΚΥΚΛ.-ΠΑΡΑΛ.-ΣΤΗΡΙΞΗΣ-2024-25-ΨΒΣΕ46ΝΚΠΔ-1ΦΤ.pdf
ΕΓΚΥΚΛ.-ΠΑΡΑΛ.-ΣΤΗΡΙΞΗΣ-2024-25-ΨΒΣΕ46ΝΚΠΔ-1ΦΤ.pdfΕΓΚΥΚΛ.-ΠΑΡΑΛ.-ΣΤΗΡΙΞΗΣ-2024-25-ΨΒΣΕ46ΝΚΠΔ-1ΦΤ.pdf
ΕΓΚΥΚΛ.-ΠΑΡΑΛ.-ΣΤΗΡΙΞΗΣ-2024-25-ΨΒΣΕ46ΝΚΠΔ-1ΦΤ.pdf
 
Σχέδιο Δράσης. Απολογισμός. SxedioDrasis2023-24ApologismosEikastikwn-2.docx
Σχέδιο Δράσης. Απολογισμός. SxedioDrasis2023-24ApologismosEikastikwn-2.docxΣχέδιο Δράσης. Απολογισμός. SxedioDrasis2023-24ApologismosEikastikwn-2.docx
Σχέδιο Δράσης. Απολογισμός. SxedioDrasis2023-24ApologismosEikastikwn-2.docx
 
ΔΑΣΗ εργασια ναγια ηλεκτραφβφβφβφβφββφββφ ω ω ω .pptx
ΔΑΣΗ εργασια ναγια ηλεκτραφβφβφβφβφββφββφ ω ω ω .pptxΔΑΣΗ εργασια ναγια ηλεκτραφβφβφβφβφββφββφ ω ω ω .pptx
ΔΑΣΗ εργασια ναγια ηλεκτραφβφβφβφβφββφββφ ω ω ω .pptx
 
ΑΠΑΝΤΗΣΕΙΣ_ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ-ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
ΑΠΑΝΤΗΣΕΙΣ_ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ-ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdfΑΠΑΝΤΗΣΕΙΣ_ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ-ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
ΑΠΑΝΤΗΣΕΙΣ_ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ-ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
 
Θέματα χημείας -Πανελλαδικές εξετάσεις 2024
Θέματα χημείας  -Πανελλαδικές εξετάσεις 2024Θέματα χημείας  -Πανελλαδικές εξετάσεις 2024
Θέματα χημείας -Πανελλαδικές εξετάσεις 2024
 
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdfΑπαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
Απαντήσεις Χημείας - ΠΑΝΕΛΛΗΝΙΕΣ 2024.pdf
 
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛΤα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
 
Η τέχνη του Sampling/ The art of Sampling
Η τέχνη του Sampling/ The art of SamplingΗ τέχνη του Sampling/ The art of Sampling
Η τέχνη του Sampling/ The art of Sampling
 
ΑΠΑΝΤΗΣΕΙΣ - ΠΑΝΕΛΛΗΝΙΕΣ 2024 - 3 - πληροφορική.pdf
ΑΠΑΝΤΗΣΕΙΣ - ΠΑΝΕΛΛΗΝΙΕΣ 2024 - 3 - πληροφορική.pdfΑΠΑΝΤΗΣΕΙΣ - ΠΑΝΕΛΛΗΝΙΕΣ 2024 - 3 - πληροφορική.pdf
ΑΠΑΝΤΗΣΕΙΣ - ΠΑΝΕΛΛΗΝΙΕΣ 2024 - 3 - πληροφορική.pdf
 
them_latin_gel_240606. latinika panellinies 2024pdf
them_latin_gel_240606. latinika panellinies 2024pdfthem_latin_gel_240606. latinika panellinies 2024pdf
them_latin_gel_240606. latinika panellinies 2024pdf
 
PANELLINIES 2024 LATINIKA APANTISEIS.pdf
PANELLINIES 2024 LATINIKA APANTISEIS.pdfPANELLINIES 2024 LATINIKA APANTISEIS.pdf
PANELLINIES 2024 LATINIKA APANTISEIS.pdf
 

Κεφ 6.pptx

  • 1. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΦΥΣΙΚΕΣ & ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ Γενικά, μια γλώσσα (όχι απαραίτητα προγραμματισμού) προσδιορίζεται από: Το αλφάβητο της  Επιτρεπτά στοιχεία (γράμματα, σύμβολα, αριθμοί, π.χ. Α-Ω, 0-9, #,%,$,+,* κλπ) Το λεξιλόγιο της  Επιτρεπτοί συνδυασμοί στοιχείων του αλφαβήτου (αποδεκτές λέξεις, π.χ. ΓΡΑΨΕ και όχι ΓΡΑΨΕΘ) Τη γραμματική της  Τυπικό (κανόνες για τις μορφές ή παραλλαγές μιας λέξης, π.χ ΓΡΑΦΩ, ΓΡΑΨΕ, ΓΡΑΦΟΥΜΕ,...)  Συντακτικό (κανόνες για τη διάταξη των λέξεων. Μας ενδιαφέρει στις γλώσσες προγραμματισμού) Τη σημασιολογία της (semantics)  Κανόνες για το νόημα των λέξεων, εκφράσεων, προτάσεων
  • 2. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΦΥΣΙΚΕΣ & ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ ΟΙ ΔΙΑΦΟΡΕΣ ΤΟΥΣ Φυσικές γλώσσες  Χρησιμεύουν στην επικοινωνία μεταξύ ανθρώπων  Εξελίσσονται συνεχώς (νέες λέξεις δημιουργούνται, αλλάζουν οι κανόνες σύνταξης ή γραμματικής, κλπ.) Τεχνητές γλώσσες  Χρησιμεύουν για την επικοινωνία ανθρώπου-μηχανής  Συνήθως στάσιμες αφού κατασκευάζονται για ένα συγκεκριμένο σκοπό  Βελτιώνονται σε μικρό σχετικά εύρος, από τους δημιουργούς τους για να ακολουθήσουν νέες εξελίξεις στα είδη εφαρμογών
  • 3. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ Είναι συνεχής η προσπάθεια εξεύρεσης μεθοδολογιών και τεχνικών ανάπτυξης λογισμικού Κύριοι λόγοι είναι :  Η απλοποίηση της οργάνωσης του κώδικα  Η ευκολία διόρθωσης και γενικά η συντήρησή του από τους προγραμματιστές  Η μείωση του χρόνου υλοποίησης των εφαρμογών Ακολουθούν οι κυριότερες τεχνικές σχεδίασης
  • 4. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ ΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ Διάσπαση του προβλήματος σε μικρότερα, απλούστερα και κατά το δυνατόν ανεξάρτητα μέρη Λέγεται και προγραμματισμός «από επάνω προς τα κάτω» (top down program design) Χρήση ειδικών διαγραμμάτων ΦΟΡΟΛΟΓΙΑ Δεδομένα Υπολο- γισμοί Αποτελέ- σματα Φορολο- γητέο Φόρος προπληρ Εισόδημα Εκπτώση
  • 5. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Υλοποιεί την ιεραρχική σχεδίαση Κάθε υποπρόβλημα αποτελεί ξεχωριστή ενότητα (module) και γράφεται ανεξάρτητα Ο συνδυασμός των ενοτήτων συμβάλλει στην επίλυση του προβλήματος Χρειάζεται προσοχή για τη σωστή διάσπαση σε ενότητες Μειώνονται τα λάθη Καλύτερη παρακολούθηση και κατανόηση
  • 6. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Είναι ένας τρόπος οργάνωσης του κώδικα του προγράμματος Παρουσιάστηκε από το 1960 και πλέον υποστηρίζεται σχεδόν από όλες τις γλώσσες προγραμματισμού Θεμελιώθηκε το 1968, στη μελέτη του Edger Dijkstra με τίτλο : «GOTO Statement Considered Harmful» Μέχρι τότε, δεν υπήρχε κάποια μεθοδολογία σχεδίασης, τα προγράμματα ήταν μπερδεμένα και η εντολή GOTO, που άλλαζε τη ροή εκτέλεσης, χρησιμοποιούνταν αλόγιστα (spagetti code) Χρειάστηκαν αρκετά χρόνια για την πλήρη αποδοχή του Στηρίζεται στις δομές ακολουθίας, επιλογής και επανάληψης και στο ότι κάθε υποενότητα πρέπει να έχει μια είσοδο και μια έξοδο Περιλαμβάνει : ιεραρχική σχεδίαση και τμηματικό προγραμματισμό
  • 7. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ Παράδειγμα της «κακής» εντολή GO TO, που οδήγησε στο δομημένο προγραμματισμό 90 PRINT «Νέα συναλλαγή; (Κ/ατάθεση, Χ/ρέωση, Τ/έλος)" 100 T$=INPUT$(1) 110 IF T$ <> «Κ» AND T$<> «κ» GOTO 210 120 INPUT «Ποσό κατάθεσης:";DEPOSIT 130 BALANCE = BALANCE + DEPOSIT 140 PRINT USING «Νέο υπόλοιπο: $#####.##";BALANCE 150 GOTO 90 210 IF T$ <> «Χ» AND T$<> «χ» GOTO 300 220 INPUT «Ποσό χρέωσης";CHECK 230 BALANCE = BALANCE - CHECK 240 PRINT USING «Νέο υπόλοιπο: $#####.##";BALANCE 250 GOTO 90 300 IF T$ <> «Τ» AND T$<> «τ» GOTO 90 410 PRINT USING “Υπόλοιπο λογ/σμού: $#####.##";BALANCE 430 END Αυτή η απόλυτη ελευθερία να μεταφέρεται η ροή του προγράμ- ματος σε διάφορα σημεία, παρήγαγε κώδικα με την επωνυμία «spaghetti code»
  • 8. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Απλούστερα προγράμματα Άμεση μεταφορά των αλγορίθμων σε προγράμματα Εύκολη ανάλυση του προγράμματος σε τμήματα Περιορισμός λαθών Εύκολη κατανόηση από τρίτους προγραμματιστές Εύκολη διόρθωση και συντήρηση Γρηγορότερη υλοποίηση των εφαρμογών
  • 9. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ & ΔΙΕΡΜΗΝΕΥΤΕΣ Για τη δημιουργία προγραμμάτων χρειάζονται τουλάχιστον τρία προγράμματα: Ο συντάκτης (Editor) Ο μεταγλωττιστής ή ο διερμηνευτής (Compiler ή Interpreter) Ο συνδέτης (Linker) Παρουσιάζονται αναλυτικότερα παρακάτω :
  • 10. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ & ΔΙΕΡΜΗΝΕΥΤΕΣ Ο συντάκτης (Editor) Είναι ένας ανεξάρτητος επεξεργαστής απλού κειμένου. Δεν είναι κάποια ειδική εφαρμογή. Ο προγραμματιστής μπορεί να επιλέξει οποιοδήποτε τρόπο συγγραφής, π.χ. το απλό “σημειωματάριο” του Η/Υ Με τον καιρό, ενσωματώθηκε στα ολοκληρωμένα περιβάλλοντα προγραμματισμού Απέκτησε λειτουργίες διευκόλυνσης συγγραφής κώδικα, π.χ. χρωματισμό εντολών, εύκολη διόρθωση λαθών, αυτόματη εισαγωγή ολόκληρων εντολών μετά από πληκτρολόγηση των αρχικών γραμμάτων τους, αντιγραφή, επικόλληση κλπ.
  • 11. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ & ΔΙΕΡΜΗΝΕΥΤΕΣ Ο μεταγλωττιστής και ο διερμηνευτής (Compiler και Interpreter) Κάθε πρόγραμμα πρέπει να μετατραπεί σε μορφή αναγνωρίσιμη από τον Η/Υ, δηλ. σε γλώσσα μηχανής. Αυτό αναλαμβάνει ο μεταγλωττιστής και ο διερμηνευτής Ο μεταγλωττιστής, δέχεται ως είσοδο όλο το αρχικό κείμενο (πηγαίος κώδικας - source code) του προγράμματος και παράγει το αντίστοιχο πρόγραμμα σε γλώσσα μηχανής (αντικείμενο πρόγραμμα - object) Ο διερμηνευτής από την άλλη (π.χ. της ΓΛΩΣΣΑΣ), δέχεται μία προς μία τις εντολές του πηγαίου κώδικα, τις μεταφράζει σε γλώσσα μηχανής κάθε φορά (π.χ. στις επαναλήψεις) και τις εκτελεί. Έχουμε πιο αργή εκτέλεση, σε σχέση με τη μεταγλώττιση, η οποία γίνεται μία φορά για όλο τον κώδικα.
  • 12. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ & ΔΙΕΡΜΗΝΕΥΤΕΣ Ο συνδέτης (Linker) Το αντικείμενο (object) πρόγραμμα που παράγει ο μεταγλωττιστής δεν μπορεί να εκτελεστεί αμέσως. Χρειάζεται να συνδεθεί με άλλα τμήματα προγράμματος (βιβλιοθήκες – libraries) τα οποία, είτε έχει γράψει ο προγραμματιστής, είτε είναι μέρος της γλώσσας προγραμματισμού, ώστε να αξιοποιηθούν και χαρακτηριστικά του λειτουργικού συστήματος Τη δουλειά αυτή αναλαμβάνει ο συνδέτης (linker), οποίος τελικά παράγει το τελικό εκτελέσιμο πρόγραμμα (executable) Συνολικά η διαδικασία αποκαλείται «μεταγλώττιση και σύνδεση» (compiling and linking) ή «χτίσιμο» (build) Αρχικό πρόγραμμα Αντικείμενο πρόγραμμα Εκτελέσιμο πρόγραμμα Μεταγλωττιστής Συνδέτης Βιβλιοθήκες
  • 13. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Παλαιότερα, ο προγραμματιστής αναλάμβανε να εκτελέσει ξεχωριστά, κάθε ένα από τα προηγούμενα προγράμματα Σήμερα, και τα τρία (συντάκτης, μεταγλωττιστής/διερμηνευτής και συνδέτης), είναι πλέον ενοποιημένα σε ειδικά ολοκληρωμένα περιβάλλοντα εργασίας, σε όλες τις γλώσσες προγραμματισμού Χρησιμοποιείται γραφικό περιβάλλον εργασίας (Graphical User Interface – GUI) Εύκολη συγγραφή κώδικα, άμεση μεταγλώττιση σε γλώσσα μηχανής και διασύνδεση με τις βιβλιοθήκες και το λειτουργικό σύστημα Άμεση εμφάνιση συντακτικών λαθών Βοηθητικές λειτουργίες, π.χ. λήψη εφεδρικών αντιγράφων, εκτυπώσεις, αλλαγή στην εμφάνιση και στη λειτουργία κατά τις προτιμήσεις του προγραμματιστή, εισαγωγή κειμένου από άλλα προγράμματα, κ.ά.
  • 14. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα 3. Συνδέτης  Διαβάζει το: main.obj  Παράγει το: main.exe (εκτελέσιμο στον Η/Υ) 2. Μεταγλωττιστής  Διαβάζει το : main.c  Παράγει το : main.obj (Αντικείμενο πρόγραμμα. Δεν εκτελείται ακόμη) 1. Συντάκτης  Γλώσσα : C  Αποθηκεύει το : main.c (απλό κείμενο με τη σύνταξη της γλώσσας) ΧΕΙΡΟΚΙΝΗΤΗ ΧΡΗΣΗ ΤΡΙΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ Εντολή MS-DOS για λίστα αρχείων στο δίσκο (ορίστε ;)
  • 15. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΟΛΟΚΛΗΡΩΜΕΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Integrated Development Environments (IDE) Περιλαμβάνεται αναβαθμισμένος συντάκτης κειμένου Εύκολος εντοπισμός συντακτικών λαθών Ηλεκτρονικό εγχειρίδιο βοήθειας για τη γλώσσα προγραμματισμού Γραφική σύνθεση των παραθύρων της εφαρμογής Πολλαπλές εκδόσεις Το ίδιο το περιβάλλον εργασίας αναλαμβάνει τη μεταγλώττιση και σύνδεση
  • 16. Πρόβλημα Αλγόριθμοι Αν/τότε Όσο Μέχρις_ότου Για Boole Δομές δεδομένων Γλώσσες Υποπρόγραμμα ΕΙΔΗ ΛΑΘΩΝ ΣΤΑ ΠΡΟΓΡΑΜΜΑΤΑ Συντακτικά λάθη (syntax errors)  Οφείλονται στη λανθασμένη χρήση ή ορθογραφία των εντολών από τον προγραμματιστή  Εντοπίζονται αμέσως από το περιβάλλον εργασίας κατά τη μεταγλώττιση  Ο προγραμματιστής πρέπει να τα διορθώσει, για να μεταγλωττιστεί το πρόγραμμα Λογικά (logical errors ή bugs)  Είναι τα πιο επικίνδυνα, αφού οφείλονται σε κακή υλοποίηση του αλγορίθμου (είναι λάθη λογικής), π.χ. αντί μιας πρόσθεσης, προγραμματίστηκε μια αφαίρεση.  Δύσκολα στην ανεύρεσή τους  Μπορεί να οδηγήσουν σε σφάλματα εκτέλεσης (τερματισμό) του προγράμματος, π.χ. διαίρεση με το 0, ή άνοιγμα αρχείου που δεν υπάρχει, κλπ.