Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΠατρίκιος Σταμάτιος Κεδίκογλου Τροποποιήθηκε πριν 8 χρόνια
1
ΚΕΦ 6 ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
2
ΣΤΑΔΙΑ ΕΠΙΛΥΣΗΣ ΕΝΟΣ ΠΡΟΒΛΗΜΑΤΟΣ ΚΑΤΑΝΟΗΣΗ – ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ (ΖΗΤΟΥΜΕΝΑ - ΔΕΔΟΜΕΝΑ) ΣΧΕΔΙΑΣΜΟΣ - ΑΝΑΠΤΥΞΗ ΛΥΣΗΣ (ΑΛΓΟΡΙΘΜΟΣ) ΥΛΟΠΟΙΗΣΗ - ΚΩΔΙΚΟΠΟΙΗΣΗ (ΑΝΑΠΤΥΞΗ ΠΡΟΓΡΑΜΜΑΤΟΣ)
3
ΤΙ ΕΙΝΑΙ ΠΡΟΓΡΑΜΜΑ ; Πρόγραμμα ονομάζεται το σύνολο των εντολών που πρέπει να δοθούν στον υπολογιστή για την επίλυση ενός προβλήματος. Το πρόγραμμα γράφεται σε κάποια Γλώσσα Προγραμματισμού, δηλαδή σε μια γλώσσα κατανοητή από τον υπολογιστή. Περιλαμβάνει τόσο την κωδικοποίηση του Αλγορίθμου, όσο και τον ορισμό των Δομών Δεδομένων που χρησιμοποιούνται.
4
ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ Ένα πρόγραμμα σε Γλώσσα Μηχανής είναι μια ακολουθία από δυαδικά ψηφία (0 και 1), που αποτελούν εντολές προς τον υπολογιστή. Ο προγραμματισμός σε γλώσσα μηχανής είναι επίπονος και χρονοβόρος, ενώ απαιτεί πολύ βαθιά γνώση του υλικού και της αρχιτεκτονικής του υπολογιστή. Όλα τα προγράμματα σε όποια γλώσσα και να είναι γραμμένα, τελικά μεταφράζονται σε εντολές γλώσσας μηχανής, πριν εκτελεστούν από τον υπολογιστή.
5
ΣΥΝΒΟΛΙΚΕΣ ΓΛΩΣΣΕΣ (ΧΑΜΗΛΟΥ ΕΠΙΠΕΔΟΥ) Οι εντολές σε συμβολική γλώσσα είναι κατανοητές από τον άνθρωπο (π.χ. ADD X), και μεταφράζονται στις αντίστοιχες εντολές της γλώσσας μηχανής από ένα εδικό πρόγραμμα που ονομάζεται συμβολομεταφραστής (assembler). Δεν διαθέτουν εντολές σύνθετων λειτουργιών, με συνέπεια την δημιουργία μακροσκελών προγραμμάτων, τα οποία είναι δύσκολο να φτιαχτούν και να συντηρηθούν. Είναι στενά συνδεδεμένες με την αρχιτεκτονική του κάθε υπολογιστή, με συνέπεια τα προγράμματα να μην μπορούν να μεταφερθούν εύκολα σε άλλο τύπο υπολογιστή.
6
ΓΛΩΣΣΕΣ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ Οι γλώσσες υψηλού επιπέδου χρησιμοποιούν ως εντολές απλές λέξεις της αγγλικής γλώσσας (π.χ. FOR X=1 TO 10), και μεταφράζονται στις αντίστοιχες εντολές της γλώσσας μηχανής από ένα ειδικό πρόγραμμα που ονομάζεται μεταγλωττιστής (compiler). Διαθέτουν εντολές σύνθετων λειτουργιών, με την βοήθεια έτοιμων συναρτήσεων και βοηθητικών βιβλιοθηκών. Είναι ανεξάρτητες από τον τύπο του κάθε υπολογιστή, με συνέπεια να μπορούν να εκτελεστούν σε οποιοδήποτε υπολογιστή (Μεταφερσιμότητα) Ευκολότερη εκμάθηση μιας γλώσσας και ευκολότερη διόρθωση και συντήρηση ενός προγράμματος. Συνολικά μείωση Χρόνου και Κόστους Παραγωγής ενός προγράμματος
7
ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ ΣΥΜΒΟΛΙΚΗ ΓΛΩΣΣΑ ΓΛΩΣΣΑ ΥΨ. ΕΠΙΠΕΔΟΥ 01001110 00001011 INDEX=$01 sum = 0 01110110 10011001 SUM=$02 FOR index=1 TO 10 01101100 LDA #10 sum=sum+index 01110010 10011001 STA INDEX NEXT index 01110110 10011001 LOOP ADD index END 01001110 00001011 DEC index 01110001 01100101 BNE LOOP 11111111 11111111 STA SUM BRK
8
ΓΛΩΣΣΕΣ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ FORTRANΜαθηματικές και Επιστημονικές Εφαρμογές COBOLΕμπορικές Εφαρμογές LISPΕφαρμογές Τεχνητής Νοημοσύνης PROLOGΈμπειρα Συστήματα – Παιχνίδια –ΤΝ BASICΓενικής χρήσης – Εκπαιδευτικού τύπου (DOS) CΠρογραμματισμός Συστημάτων (UNIX-Win) PASCALΓενικής χρήσης – Εκπαιδευτικού τύπου VISUAL BASICΟπτικός Προγραμματισμός C++Αντικειμενοστραφής Προγ/σμός JAVAΑντικειμενοστραφής Προγ/σμός Εφαρμογές Διαδικτύου
9
ΠΟΙΑ ΕΙΝΑΙ Η ΚΑΛΥΤΕΡΗ; Στην ιστορία του προγραμματισμού, έχουν αναπτυχθεί χιλιάδες γλώσσες προγραμματισμού. Δεν υπάρχει «καλύτερη» γλώσσα προγραμματισμού. Μόνο η «καταλληλότερη» για το είδος της εφαρμογής που αναπτύσσουμε. Άλλη είναι κατάλληλη για γραφικά και παιχνίδια 3D, άλλη για πολυμέσα, άλλη για βάσεις δεδομένων κλπ. Έμπειροι προγραμματιστές, γνωρίζουν πολύ καλά τουλάχιστον 2-3 γλώσσες, ώστε να ανταποκρίνονται άνετα στη συγγραφή εφαρμογών διαφόρων ειδών.
10
ΦΥΣΙΚΕΣ & ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ Γενικά, μια γλώσσα (όχι απαραίτητα προγραμματισμού) προσδιορίζεται από: Το αλφάβητο της Επιτρεπτά στοιχεία (γράμματα, σύμβολα, αριθμοί, Α-Ω, 0-9, /, *, …) Το λεξιλόγιο της Επιτρεπτοί συνδυασμοί στοιχείων του αλφαβήτου (αποδεκτές λέξεις, π.χ. ΓΡΑΨΕ και όχι ΓΡΑΨΕΘ) Τη γραμματική της Τυπικό (κανόνες για τις μορφές ή παραλλαγές μιας λέξης, π.χ ΓΡΑΦΩ, ΓΡΑΨΕ, ΓΡΑΦΟΥΜΕ,...) Συντακτικό (κανόνες για τη διάταξη των λέξεων. Μας ενδιαφέρει στις γλώσσες προγραμματισμού) Τη σημασιολογία της (semantics) Κανόνες για το νόημα των λέξεων, εκφράσεων, προτάσεων
11
ΦΥΣΙΚΕΣ & ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ ΟΙ ΔΙΑΦΟΡΕΣ ΤΟΥΣ Φυσικές γλώσσες Χρησιμεύουν στην επικοινωνία μεταξύ ανθρώπων Εξελίσσονται συνεχώς (νέες λέξεις δημιουργούνται, αλλάζουν οι κανόνες σύνταξης ή γραμματικής, κλπ.) Τεχνητές γλώσσες Χρησιμεύουν για την επικοινωνία ανθρώπου-μηχανής. Συνήθως στάσιμες αφού κατασκευάζονται για ένα συγκεκριμένο σκοπό. Βελτιώνονται σε μικρό σχετικά εύρος, από τους δημιουργούς τους για να ακολουθήσουν νέες εξελίξεις στα είδη των εφαρμογών.
12
ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ Ιεραρχική Σχεδίαση Προγράμματος Τμηματικός Προγραμματισμός Δομημένος Προγραμματισμός Αντικειμενοστραφής Προγραμματισμός Παράλληλος Προγραμματισμός
13
Είναι ένας τρόπος οργάνωσης του κώδικα του προγράμματος. Παρουσιάστηκε από το 1960 και πλέον υποστηρίζεται σχεδόν από όλες τις γλώσσες προγραμματισμού. Θεμελιώθηκε το 1968, στη μελέτη του Edger Dijkstra με τίτλο : «GOTO Statement Considered Harmful». Μέχρι τότε, δεν υπήρχε κάποια μεθοδολογία σχεδίασης, τα προγράμματα ήταν μπερδεμένα και η εντολή GOTO, που άλλαζε τη ροή εκτέλεσης, χρησιμοποιούνταν αλόγιστα (spaghetti code). Χρειάστηκαν αρκετά χρόνια για την πλήρη αποδοχή του. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
14
Παράδειγμα της «κακής» εντολή 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»
15
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Στηρίζεται στην χρήση μόνο των τριών βασικών αλγοριθμικών δομών (ακολουθία – επιλογή – επανάληψη). Κάθε πρόγραμμα έχει μόνο μία είσοδο και μόνο μία έξοδο. Περιέχει τόσο την ιεραρχική σχεδίαση, όσο και τον τμηματικό προγραμματισμό. Πλεονεκτήματα: 1) Δημιουργία απλούστερων προγραμμάτων. 2) Άμεση μεταφορά των αλγορίθμων σε προγράμματα. 3) Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα. 4) Περιορισμός των λαθών κατά την ανάπτυξη. 5) Ευκολότερη ανάγνωση και κατανόηση του προγράμματος. 6) Ευκολότερη διόρθωση και συντήρηση.
16
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Object Oriented Programming – OOP) Είναι τρόπος οργάνωσης του κώδικα και έχει πλέον επικρατήσει ως μέθοδος προγραμματισμού στις σύγχρονες γλώσσες (C++, Java). Βασίζεται στην έννοια των αντικειμένων, δηλ. αυτόνομων οντοτήτων προγράμματος οι οποίες περιλαμβάνουν τα δεδομένα και τις αντίστοιχες ενέργειες σ’ αυτά. Π.χ. Αυτοκίνητο: Δεδομένα: Χρώμα, κυβισμός, χιλιόμετρα, ταχύτητα, τιμή Ενέργειες: Άνοιξε φώτα, Άναψε μηχανή, Τρέξε, Σταμάτα Παράγει ευέλικτα και επαναχρησιμοποιήσιμα προγράμματα. Χρησιμοποιεί την ιεραρχική σχεδίαση και το δομημένο προγραμματισμό.
17
ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Parallel programming) Είναι μέθοδος προγραμματισμού για συστήματα με περισσότερους από έναν επεξεργαστές (η με πολλούς πυρήνες, π.χ. Intel Quad-Core). Οι επεξεργαστές μοιράζονται από κοινού την ίδια μνήμη. Κάθε ένας, αναλαμβάνει την εκτέλεση διαφορετικού τμήματος της εφαρμογής, αρκεί το πρόγραμμα να είναι κατάλληλα γραμμένο για το σκοπό αυτό. Προϋποθέτει κατάλληλο λειτουργικό σύστημα. Χρειάζεται προσοχή, όταν πρέπει να γίνει χρήση ενός κοινού πόρου, ο οποίος δεν μπορεί να μοιραστεί ταυτόχρονα. Ταχύτατη εκτέλεση σύνθετων εφαρμογών (συνήθως επιστημονικές, μετεωρολογικές, βιοϊατρικές (DNA), αστρονομικές κ.ά).
18
Για τη δημιουργία προγραμμάτων χρειάζονται τουλάχιστον τρία ειδικά προγράμματα: Ο συντάκτης Ο συντάκτης (Editor) Ο μεταγλωττιστής ή ο διερμηνευτής Ο μεταγλωττιστής ή ο διερμηνευτής (Compiler ή Interpreter) Ο συνδέτης Ο συνδέτης (Linker) Παρουσιάζονται αναλυτικότερα παρακάτω :
19
Ο Συντάκτης (Editor) Είναι ένας ανεξάρτητος επεξεργαστής απλού κειμένου. Δεν είναι κάποια ειδική εφαρμογή. Ο προγραμματιστής μπορεί να επιλέξει οποιοδήποτε τρόπο συγγραφής, π.χ. το απλό “σημειωματάριο” του Η/Υ. Με τον καιρό, ενσωματώθηκε στα ολοκληρωμένα περιβάλλοντα προγραμματισμού. Απέκτησε λειτουργίες διευκόλυνσης συγγραφής κώδικα, π.χ. χρωματισμό εντολών, εύκολη διόρθωση λαθών, αυτόματη εισαγωγή ολόκληρων εντολών μετά από πληκτρολόγηση των αρχικών γραμμάτων τους, αντιγραφή, επικόλληση κλπ.
20
ΜΕΤΑΦΡΑΣΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ Μεταγλωττιστής (Compiler): Δέχεται ως είσοδο τον κώδικα (source code) του αρχικού προγράμματος και παράγει το αντικείμενο πρόγραμμα (object code). Στην συνέχεια αφού συνδεθούν (linker-loader) οι απαιτούμενες βιβλιοθήκες (libraries), παράγεται το τελικό εκτελέσιμο (executable) πρόγραμμα. Διερμηνευτής (Interpreter) : Δέχεται ως είσοδο τον κώδικά του αρχικού προγράμματος και μεταφράζει μία – μία τις εντολές στις αντίστοιχες εντολές γλώσσας μηχανής, τις οποίες και εκτελεί. Τα εκτελέσιμα προγράμματα που προκύπτουν από την μεταγλώττιση, τρέχουν πολύ πιο γρήγορα από τα αντίστοιχα προγράμματα που χρησιμοποιούν διερμηνευτή.
21
3. Συνδέτης Διαβάζει το: main.obj Παράγει το: main.exe (εκτελέσιμο στον Η/Υ) 2. Μεταγλωττιστής Διαβάζει το : main.c Παράγει το : main.obj (Αντικείμενο πρόγραμμα. Δεν εκτελείται ακόμη) 1. Συντάκτης Γλώσσα : C Αποθηκεύει το : main.c (απλό κείμενο με τη σύνταξη της γλώσσας) Εντολή MS-DOS για λίστα αρχείων στο δίσκο (ορίστε ;)
22
ΛΑΘΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Συντακτικά Λάθη: Οφείλονται σε αναγραμματισμούς ονομάτων εντολών, σε λανθασμένη σύνταξη αλλά και σε πιθανή παράλειψη δήλωσης μεταβλητών. Ανιχνεύονται κατά την μετάφραση του προγράμματος και αν δεν διορθωθούν δεν μπορεί να εκτελεστεί το πρόγραμμα. Λογικά Λάθη : Οφείλονται στην λανθασμένη σχεδίαση του αλγορίθμου (π.χ. ατέρμων βρόχος) και εμφανίζονται κατά την εκτέλεση του προγράμματος. Είναι δύσκολο να εντοπιστούν και να διορθωθούν.
23
ΟΛΟΚΛΗΡΩΜΕΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Integrated Development Environments (IDE) Περιλαμβάνεται αναβαθμισμένος συντάκτης κειμένου Εύκολος εντοπισμός συντακτικών λαθών Ηλεκτρονικό εγχειρίδιο βοήθειας για τη γλώσσα προγραμματισμού Γραφική σύνθεση των παραθύρων της εφαρμογής Το ίδιο το περιβάλλον εργασίας αναλαμβάνει τη μεταγλώττιση και την σύνδεση
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.