Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΑοιδή Πυλαρινός Τροποποιήθηκε πριν 8 χρόνια
2
Εισαγωγή στον προγραμματισμό ΤΑΞΗ: Γ’ ΛΥΚΕΙΟΥ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ
3
Εισαγωγή στον Προγραμματισμό Επίλυση Προβλήματος στον Η/Υ 1. Κατανόηση 2. Ανάλυση: Καταγραφή Δεδομένων και Ζητούμενων, γνωστών τύπων, παραδείγματα, διάσπαση σε υποπροβλήματα (Δομή Προβλήματος) 3. Σχεδιασμός: Διατύπωση αλγορίθμου με φυσική γλώσσα, διάγραμμα ροής, ψευδογλώσσα. 4. Υλοποίηση: Υλοποίηση του αλγορίθμου σε πρόγραμμα γραμμένο σε γλώσσα προγραμματισμού υψηλού επιπέδου. 5. Έλεγχος: Ελέγχεται το πρόγραμμα για όλες τις πιθανές εισόδους. 6. Συντήρηση: Αλλαγές στο μέλλον για διόρθωση λαθών ή ικανοποίηση νέων απαιτήσεων.
4
Εισαγωγή στον Προγραμματισμό Η Έννοια του Προγράμματος Τι είναι πρόγραμμα; Πρόγραμμα = σύνολο εντολών που πρέπει να δοθούν στο υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος. Ο άνθρωπος επικοινωνεί με τον Η/Υ μέσω προγραμμάτων Πρόγραμμα = Δεδομένα + Αλγόριθμοι Ο προγραμματισμός δίνει την εσφαλμένη εντύπωση ότι οι υπολογιστές είναι «έξυπνες» μηχανές. Ο υπολογιστής όμως αναπαριστά τα δεδομένα και τις εντολές με 0 και 1 και μπορεί να κάνει μόνο απλές πράξεις: αριθμητικές, συγκρίσεις και αποθήκευση.
5
Εισαγωγή στον Προγραμματισμό ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ Αν και οι υπολογιστές και οι γλώσσες προγραμματισμού βελτιώνονται και εμπλουτίζονται, οι βασικές αρχές λειτουργίας του υπολογιστή παραμένουν οι ίδιες όπως διατυπώθηκαν το 1945 από τον Φον Νόυμαν.
6
Εισαγωγή στον Προγραμματισμό Πρόγραμμα σε γλώσσα μηχανής, σε συμβολική γλώσσα και σε γλώσσα προγραμματισμού υψηλού επιπέδου, Γλώσσα ΜηχανήςΣυμβολική ΓλώσσαΓΛΩΣΣΑ 10101000 00001000 11000000 00000011 10001100 11000000 11111111 LDA #08 ADD #03 STA #192 BRK ΠΡΟΓΡΑΜΜΑ ΠΡΟΣΘΕΣΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: ΑΘΡΟΙΣΜΑ ΑΡΧΗ ΑΘΡΟΙΣΜΑ 8+3 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΣΘΕΣΗ
7
Εισαγωγή στον Προγραμματισμό Γλώσσα Μηχανής (1ης γενιάς) Τι είναι γλώσσα μηχανής; Γλώσσα πολύ χαμηλού επιπέδου, άμεσα εκτελέσιμη. Οι εντολές και τα δεδομένα γράφονται σε ακολουθίες από 0 και 1. Είναι διαφορετική για κάθε κατηγορία υπολογιστή. Είναι δυσνόητη κι επίπονη στη χρήση αφού απαιτεί βαθιά γνώση του υλικού και της αρχιτεκτονικής του συγκεκριμένου υπολογιστή Χρησιμοποιήθηκε στους πρώτους υπολογιστές ενώ σήμερα παράγεται από τις γλώσσες προγραμματισμού υψηλού επιπέδου με τη χρήση μεταγλωττιστή ή διερμηνευτή. 10101000 00001000 11000000 00000011 10001100 11000000 11111111 ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΘΕΣΗ ΑΘΡΟΙΣΜΑ 8+3 ΤΕΛΟΣ_ΠΡΟΣΘΕΣΗ
8
Εισαγωγή στον Προγραμματισμό Συμβολική Γλώσσα (2ης γενιάς) Γλώσσα χαμηλού επιπέδου που αποτελείται από συντομογραφίες εντολών στην αγγλική γλώσσα, συμβολικά ονόματα (π.χ. ADD, LDA, κλπ) που αντιστοιχούν σε εντολές της γλώσσας μηχανής. Είναι διαφορετική για κάθε κατηγορία υπολογιστή Είναι λιγότερο επίπονη στη χρήση αλλά εξακολουθεί να απαιτεί βαθιά γνώση της αρχιτεκτονικής του υπολογιστή Δεν διαθέτει εντολές σύνθετων λειτουργιών και οδηγεί σε μακροσκελή προγράμματα που είναι δύσκολο να συντηρηθούν. συμβολομεταφραστή Μετατρέπεται σε γλώσσα μηχανής με τη χρήση συμβολομεταφραστή (assembler) LDA #08 ADD #03 STA $92 BRK
9
Εισαγωγή στον Προγραμματισμό Γλώσσες Υψηλού Επιπέδου (3ης γενιάς) Αποτελούνται από κατανοητές εντολές συνήθως στην αγγλική γλώσσα (π.χ.PRINT, INPUT κλπ) Καλύτερη επικοινωνία ανθρώπου – μηχανής. μεταγλωττιστήδιερμηνευτή Είναι ίδιες για κάθε υπολογιστή που διαθέτει μεταγλωττιστή ή διερμηνευτή της συγκεκριμένης γλώσσας (FORTRAN, COBOL, BASIC, PASCAL, κλπ) Είναι εύκολες στη χρήση και δεν απαιτούν βαθιά γνώση του υλικού του υπολογιστή ΠΡΟΓΡΑΜΜΑ ΠΡΟΣΘΕΣΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: ΑΘΡΟΙΣΜΑ ΑΡΧΗ ΑΘΡΟΙΣΜΑ 8+3 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΣΘΕΣΗ
10
Εισαγωγή στον Προγραμματισμό Πρόγραμμα σε γλώσσα μηχανής, σε συμβολική γλώσσα και σε γλώσσα προγραμματισμού υψηλού επιπέδου, Γλώσσα ΜηχανήςΣυμβολική ΓλώσσαΓΛΩΣΣΑ 10101000 00001000 11000000 00000011 10001100 11000000 11111111 LDA #08 ADD #03 STA #192 BRK ΠΡΟΓΡΑΜΜΑ ΠΡΟΣΘΕΣΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: ΑΘΡΟΙΣΜΑ ΑΡΧΗ ΑΘΡΟΙΣΜΑ 8+3 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΡΟΣΘΕΣΗ
11
Εισαγωγή στον Προγραμματισμό Αλγόριθμος εξίσωσης 1ου βαθμού α x + β = γ Αλγόριθμος Πρωτοβάθμια_Εξίσωση Διάβασε α, β Αν α <> 0 τότε χ -β/α Εμφάνισε 'Η λύση είναι:', χ Αλλιώς Αν β <> 0 τότε Εμφάνισε 'Η επίλυση της εξίσωσης είναι αδύνατη' Αλλιώς Εμφάνισε 'Η εξίσωση είναι αόριστη' Τέλος_αν Τέλος Πρωτόβάθμια_Εξίσωση
12
Εισαγωγή στον Προγραμματισμό FORTRAN Ήταν η πρώτη γλώσσα υψηλού επιπέδου (1960) Χρησιμοποιήθηκε ευρύτατα για έρευνα και ανάπτυξη επιστημονικών εφαρμογών Είναι αποδοτική για μαθηματικούς υπολογισμούς αλλά υστερεί στη διαχείριση αρχείων μεταγλωττιστή Παράγεται γλώσσα μηχανής με τη χρήση μεταγλωττιστή (compiler)
13
Εισαγωγή στον Προγραμματισμό FORTRAN C PROGRAM EQUATION READ(*,1) A,B 1 FORMAT(F5.1) IF (A.EQ.0) GO TO 20 X=(-1.)*B/A WRITE(*,2) X 2 FORMAT(‘X=’,F10.2) GO TO 50 20 IF (B.EQ.0) WRITE(*,3) IF (B.NE.0) WRITE(*,4) 3 FORMAT(‘ΑΟΡΙΣΤΗ’) 4 FORMAT(‘ΑΔΥΝΑΤΗ’) 50 STOP END
14
Εισαγωγή στον Προγραμματισμό COBOL Αναπτύχθηκε το 1960 για να καλύψει τις αδυναμίες της FORTRAN. Χρησιμοποιήθηκε ευρύτατα για ανάπτυξη εμπορικών - λογιστικών - τραπεζικών εφαρμογών. Είναι αποδοτική στη διαχείριση αρχείων αλλά υστερεί στους υπολογισμούς. μεταγλωττιστές της Υπάρχουν μεταγλωττιστές της σχεδόν σε όλες τις κατηγορίες υπολογιστών. Χρησιμοποιείται ακόμα και σήμερα κυρίως σε μεγάλους Η/Υ (mainframes) αλλά έχει σχεδόν ξεπερασθεί παρόλο που γνώρισε πολλές βελτιώσεις.
15
Εισαγωγή στον Προγραμματισμό ALGOL Αναπτύχθηκε το 1960 ως αλγοριθμική γλώσσα γενικής χρήσης. Καθιέρωσε το δομημένο προγραμματισμό. Επηρέασε αρκετές μεταγενέστερες γλώσσες (π.χ. PASCAL). Αποτελεί θεμέλιο λίθο των αλγοριθμικών ή διαδικασιακών (procedural) γλωσσών.
16
Εισαγωγή στον Προγραμματισμό PL/1 Αναπτύχθηκε την δεκαετία του 60. Είχε στόχο να ενσωματώσει τις αρετές της FORTRAN και της COBOL σε μία γλώσσα αλλά απέτυχε πρακτικά (εμπορικά).
17
Εισαγωγή στον Προγραμματισμό PROLOG και LISP Είναι γλώσσες τεχνητής νοημοσύνης κι όχι αλγοριθμικές. Η LISP είναι βασισμένη στη δομή δεδομένων της λίστας και σε συναρτήσεις μεταξύ λιστών. Οι γλώσσες αυτές χρησιμοποιούνται σε προβλήματα τεχνητής νοημοσύνης (έμπειρα συστήματα, παιχνίδια, κλπ).
18
Εισαγωγή στον Προγραμματισμό LOGO Γλώσσα για παιδιά.
19
Εισαγωγή στον Προγραμματισμό BASIC Μία πετυχημένη αλγοριθμική γλώσσα για σύντομα προγράμματα σε μικροϋπολογιστές (PC). Χρησιμοποιήθηκε ευρύτατα για ανάπτυξη εφαρμογών γενικής χρήσης Είναι ιδανική για αρχαρίους. διερμηνευτή Τα προγράμματα γραμμένα σε BASIC μετατρέπονται σε γλώσσα μηχανής από πρόγραμμα διερμηνευτή (interpreter). QuickBasic, Visual Basic.
20
Εισαγωγή στον Προγραμματισμό PASCAL Αναπτύχθηκε το 1970 με βάση την ALGOL. Χρησιμοποιήθηκε αρκετά για ανάπτυξη εφαρμογών γενικής χρήσης. Είναι πολύ καλή για εκπαίδευση (εισαγωγή στον προγραμματισμό) αφού αποτελεί πρότυπο εύχρηστης αλγοριθμικής γλώσσας. Αποτέλεσε βάση για ανάπτυξη άλλων δομημένων γλωσσών όπως οι ADA, Modula-2, DELPHI, κλπ.
21
Εισαγωγή στον Προγραμματισμό Δομημένος Προγραμματισμός Παρουσιάστηκε στα μέσα της δεκαετίας του 60. Επηρέασε την εξέλιξη των γλωσσών προγραμματισμού. Οδηγεί σε απλά και κατανοητά προγράμματα.
22
Εισαγωγή στον Προγραμματισμό C και C++ Η C είναι μία πολύ ισχυρή αλγοριθμική γλώσσα υψηλού επιπέδου που ενσωματώνει όμως κι αρετές γλωσσών χαμηλού επιπέδου (assembly). Χρησιμοποιείται ευρύτατα για προγραμματισμό συστημάτων και ανάπτυξη επιστημονικών εφαρμογών. αντικειμενοστραφής Σήμερα η C συνεχίζει να εξαπλώνεται και ιδιαίτερα η αντικειμενοστραφής εξέλιξή της, η C++, έχει πολλές εφαρμογές.
23
Εισαγωγή στον Προγραμματισμό C #include int main(int argc, char* argv[]) { float a, b; printf(“A = ”); scanf(“%f”, &a); printf(“B = ”); scanf(“%f”, &b); if (a == 0) { if (b == 0) { printf(“ΑΟΡΙΣΤΗ”); } else { printf(“ΑΔΥΝΑΤΗ”); } else { printf(“X = %f\n”, -b/a); } return 0; }
24
Εισαγωγή στον Προγραμματισμό JAVA αντικειμενοστραφής Είναι μία νέα αντικειμενοστραφής γλώσσα υψηλού επιπέδου. Χρησιμοποιείται ευρύτατα για ανάπτυξη εφαρμογών στο διαδίκτυο (internet). Είναι αποδοτική σε κατανεμημένα περιβάλλοντα. Σήμερα εξαπλώνεται με ιδιαίτερα ταχείς ρυθμούς.
25
Εισαγωγή στον Προγραμματισμό Οπτικός (visual) Προγραμματισμός γραφικό Είναι μία νέα προσπάθεια εξέλιξης των γλωσσών υψηλού επιπέδου, ώστε ολόκληρο το περιβάλλον των προγραμμάτων να δημιουργείται με γραφικό τρόπο (χρήση πλαισίων, κουμπιών, μενού, παραθύρων, κλπ). παραθυρικό Εκμεταλλευόμαστε τον παραθυρικό τρόπο επικοινωνίας μεταξύ ανθρώπου και υπολογιστή (WINDOWS). οδηγούμενος από το γεγονός Ο προγραμματισμός αντί να είναι αυστηρά αλγοριθμικός γίνεται οδηγούμενος από το γεγονός (event-driven). Σήμερα οι κυριότεροι εκφραστές του είναι η VISUAL BASIC, VISUAL C, DELPHI, JAVA κ.α.
26
Εισαγωγή στον Προγραμματισμό Γλώσσες 4ης γενιάς (Πολύ υψηλού επιπέδου) Απευθύνονται όχι μόνο σε προγραμματιστές αλλά και σε απλούς χρήστες. Μία εντολή γλώσσας 4ης γενιάς θα αντιστοιχούσε σε πολλές εντολές γλώσσας 3ης γενιάς. βάσεις δεδομένων Χρησιμοποιούνται για ειδικές εφαρμογές ή ως γλώσσες ερωτήσεων σε βάσεις δεδομένων (π.χ. SQL) SELECT ENAME, JOB, SAL FROM EMPLOYES WHERE DEPTNO=20 AND SAL > 300000;
27
Εισαγωγή στον Προγραμματισμό Πλεονεκτήματα Γλωσσών Υψηλού Επιπέδου 1.Φυσικότερος τρόπος έκφρασης ενός προβλήματος. Πιο κοντά στον τρόπο σκέψη του ανθρώπου. 2.Μεταφερσιμότητα με ελάχιστες μετατροπές. Ανεξαρτησία από τον τύπο του υπολογιστή. 3.Ευκολία εκμάθησης και εκπαίδευσης. 4.Ευκολότερη διόρθωση λαθών και συντήρηση των προγραμμάτων. 5.Λιγότερος χρόνος για την ανάπτυξη ενός προγράμματος και μικρότερο κόστος.
28
Εισαγωγή στον Προγραμματισμό Ταξινόμηση Γλωσσών ανάλογα με το Επίπεδο Προγραμματισμού Πολύ χαμηλού επιπέδου ή 1ης γενιάς είναι οι γλώσσες μηχανής Χαμηλού επιπέδου ή 2ης γενιάς είναι οι συμβολικές γλώσσες (assembly) Υψηλού επιπέδου ή 3ης γενιάς είναι οι FORTRAN, COBOL, BASIC, PASCAL, C, C++, JAVA, κλπ Πολύ υψηλού επιπέδου ή 4ης γενιάς είναι οι SQL, Clipper, κλπ
29
Εισαγωγή στον Προγραμματισμό Λίστα Γλωσσών Προγραμματισμού ΓΛΩΣΣΑΧΡΗΣΗ ΙΔΕΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ FORTRAN Γενική - Επιστημονική Διαδικασιακή (Αλγοριθμική) COBOL Γενική - Εμπορική Διαδικασιακή (Αλγοριθμική) ALGOLΓενική LISP Τεχνητή Νοημοσύνη Συναρτησιακή PROLOG Μη διαδικασιακή BASIC Γενική - Εμπορική Διαδικασιακή (Αλγοριθμική) PASCALΓενική CΣυστημάτων C++ΓενικήΑντικειμενοστραφής JAVAΓενική Αντικειμενοστραφής – Οπτικού Προγραμματισμ. Visual Basic Γενική - Εμπορική Αντικειμενοστραφής – Οπτικού Προγραμματισμ. Visual C Γενική - Εμπορική Αντικειμενοστραφής – Οπτικού Προγραμματισμ. LOGO Ειδική - Εκπαίδευση Συναρτησιακή – Διαδικασ. SQL Ειδική - Βάσεις Δεδομένων Ερωταπαντήσεων
30
Εισαγωγή στον Προγραμματισμό Λίστα Γλωσσών Προγραμματισμού ΟΝΟΜΑ ΓΛΩΣΣΑΣ ΓΕΝΙΑ Ή ΕΠΙΠΕΔΟ ΤΡΟΠΟΣ ΠΡΟΓΡ/ΣΜΟΥΧΡΗΣΗ Μηχανής1 η, Πολύ χαμηλό Συμβολική2 η, Χαμηλό Fortran3 η,ΥψηλόΑλγοριθμικόςΕπιστημονική Cobol3 η,ΥψηλόΑλγοριθμικόςΕμπορική Algol3 η,ΥψηλόΑλγοριθμικόςΓενική Lisp3 η - 4 η, Πολύ ΥψηλόΣυναρτησιακόςΤεχνητή νοημοσύνη Prolog4 η, Πολύ ΥψηλόΛογικός (Μη διαδικασιακός) Τεχνητή νοημοσύνη (έμπειρα συστήματα) Logo3 η,ΥψηλόΜη διαδικασιακός ή οπτικόςΕιδικής χρήσης Εκπαιδευτική PL/13 η,ΥψηλόΑλγοριθμικόςΓενική Basic3 η,ΥψηλόΑλγοριθμικόςΓενική Pascal3 η,ΥψηλόΑλγοριθμικόςΓενική
31
Εισαγωγή στον Προγραμματισμό Λίστα Γλωσσών Προγραμματισμού C3η,ΥψηλόΑλγοριθμικόςΓενική, Επιστημονική, Προγραμματισμός συστημάτων C++3η,ΥψηλόΑντικειμενο-στραφήςΓενική, Επιστημονική, Προγραμματισμός συστημάτων SQL4η, Πολύ ΥψηλόΕρωταπαντήσεωνΕμπορική Βάσεις Δεδομένων dBASE, Clipper, Access 4η, Πολύ ΥψηλόΕρωταπαντήσεωνΕμπορική Βάσεις Δεδομένων Occam3η,ΥψηλόΠαράλληλοςΕιδική Parallel C3η,ΥψηλόΠαράλληλοςΕιδική Visual C3η,ΥψηλόΟπτικόςΓενική, Επιστημονική, Προγραμματισμός συστημάτων Visual C++3η,ΥψηλόΟπτικός και Αντικειμενο- στραφής Γενική, Επιστημονική, Προγραμματισμός συστημάτων Visual Basic3η,ΥψηλόΟπτικόςΓενική Java3η,ΥψηλόΑντικειμενο-στραφήςΔιαδίκτυο
32
Εισαγωγή στον Προγραμματισμό Εργαστήριο Αλγόριθμος Παράδειγμα_Χρήσης_Σημαίας βρέθηκε ΨΕΥΔΗΣ !λογική μεταβλητή που δείχνει αν ! έχουμε εισάγει το 999 Για ι από 1 μέχρι 10 επανέλαβε Διάβασε αριθμός Αν αριθμός=999 τότε βρέθηκε ΑΛΗΘΗΣ Τέλος_αν Τέλος_επανάληψης Αν βρέθηκε=ΑΛΗΘΗΣ τότε Εμφάνισε ‘Έχεις εισάγει το 999’ αλλιώς Εμφάνισε ‘Δεν έχεις εισάγει το 999’ Τέλος_αν Τέλος Παράδειγμα_Χρήσης_Σημαίας
33
Εισαγωγή στον Προγραμματισμό Εργαστήριο Άσκηση Η λύση του προβλήματος «Να γραφτεί αλγόριθμος και πρόγραμμα (με την εντολή ΟΣΟ) που να εμφανίζει τους αριθμούς από το 1 έως το 20.» δίνεται παρακάτω.. ΠΡΟΓΡΑΜΜΑ Αριθμοί ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: ι ΑΡΧΗ ι <-- 1 Όσο ι<=20 ΕΠΑΝΑΛΑΒΕ ΓΡΑΨΕ ι ι <-- ι+1 Τέλος_επανάληψης ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Αριθμοί Κάντε όσες αλλαγές νομίζετε απαραίτητες ώστε να εκτυπώνονται από το πρόγραμμα μόνο οι άρτιοι αριθμοί ανάμεσα στο 1 και το 20. Κάντε όσες αλλαγές νομίζετε απαραίτητες ώστε το πρόγραμμα να εκτυπώνει επιπλέον και το άθροισμα των άρτιων αριθμών.
34
Εισαγωγή στον Προγραμματισμό Ταξινόμηση γλωσσών ανάλογα με τον Τρόπο Προγραμματισμού Αλγοριθμικές ή διαδικασιακές (procedural) όπως FORTRAN, COBOL, ALGOL, PASCAL, BASIC κλπ Αντικειμενοστραφείς (object – oriented) όπως SMALLTALK, C++, JAVA, κλπ Μη διαδικαστικές (non procedural) ή λογικές όπως η PROLOG Συναρτησιακές (functional) όπως η LISP Οπτικές (visual) όπως VISUAL BASIC, VISUAL C, VISUAL C++, κλπ Ερωταπαντήσεων (query languages) όπως η SQL
35
Εισαγωγή στον Προγραμματισμό Ταξινόμηση Γλωσσών ανάλογα με τη Χρήση Γενικής χρήσης όπως PASCAL, BASIC κλπ Επιστημονικής κατεύθυνσης π.χ. FORTRAN Εμπορικής κατεύθυνσης π.χ. COBOL Προγραμματισμού συστημάτων όπως η C Τεχνητής νοημοσύνης όπως LISP, PROLOG κλπ Ειδικών (εξειδικευμένων) χρήσεων (π.χ. γραφικά, ρομποτική, εκπαίδευση, βάσεις δεδομένων, κλπ)
36
Εισαγωγή στον Προγραμματισμό Επιλογή γλώσσας προγραμματισμού Καμία γλώσσα δεν υπερέχει από όλες τις άλλες Η επιλογή γίνεται με βάση: Το είδος της εφαρμογής Το υπολογιστικό περιβάλλον στο οποίο θα εκτελεστεί το πρόγραμμα Τα προγραμματιστικά περιβάλλοντα που διαθέτουμε Τις γνώσεις του προγραμματιστή και τις προτιμήσεις του.
37
Εισαγωγή στον Προγραμματισμό Φυσικές και Τεχνητές Γλώσσες Αλφάβητο (δηλ. δεκτά γράμματα, ψηφία, σημεία στίξης) Λεξιλόγιο (δηλ. αποδεκτές λέξεις) Γραμματική Τυπικό (δηλ. τυπικά αποδεκτές μορφές λέξεων) Συντακτικό (δηλ. συντακτικά σωστές προτάσεις/ εντολές) Σημασιολογία (δηλ. αποτελεσματικές προτάσεις, με σημασία) Φυσικές γλώσσες εξελίσσονται από μόνες τους ενώ οι τεχνητές βελτιώνονται από τους δημιουργούς τους. Γλώσσες Προγραμματισμού είναι τεχνητές γλώσσες. Έχουν αλφάβητο, λεξιλόγιο, γραμματική, σημασιολογία
38
Εισαγωγή στον Προγραμματισμό Τεχνικές Σχεδίασης Προγράμματος Ιεραρχική Ιεραρχική σχεδίαση (δηλ. από πάνω προς τα κάτω) Τμηματικός Τμηματικός προγραμματισμός Δομημένος Δομημένος προγραμματισμός
39
Εισαγωγή στον Προγραμματισμό Ιεραρχική Σχεδίαση–Τμηματικός Προγραμματισμός
40
Εισαγωγή στον Προγραμματισμό Ιεραρχική Σχεδίαση–Τμηματικός Προγραμματισμός Η ιεραρχική σχεδίαση διασπά το πρόβλημα σε υποπροβλήματα τα οποία να είναι εύκολο να υλοποιηθούν Η ιεραρχική σχεδίαση (top-down program design) υποβοηθείται από διαγραμματικές τεχνικές Η ιεραρχική σχεδίαση υλοποιείται από τον τμηματικό προγραμματισμό. Κάθε υποπρόβλημα υλοποιείται από ένα ανεξάρτητο τμήμα προγράμματος (ενότητα – module). Ο τμηματικός προγραμματισμός διευκολύνει τη δημιουργία προγράμματος, μειώνει τα λάθη, βοηθά στην κατανόηση και στη συντήρησή του προγράμματος από τρίτους.
41
Εισαγωγή στον Προγραμματισμό Δομημένος Προγραμματισμός 1964 Bohm και Jacopini, 1968 Dijkstra Όλα τα προγράμματα μπορούν να γραφούν χρησιμοποιώντας: τη δομή της ακολουθίας τη δομή της επιλογής τη δομή της επανάληψης. Κάθε πρόγραμμα όπως και κάθε ενότητα προγράμματος έχει μόνο μία είσοδο και μόνο μία έξοδο όχι χρήση της εντολής GO TO. Περιέχει τόσο την ιεραρχική σχεδίαση όσο και τον τμηματικό προγραμματισμό.
42
Εισαγωγή στον Προγραμματισμό Δομημένος Προγραμματισμός - Παράδειγμα Αν Αριθμός>0 τότε GOTO 1 Αν Αριθμός=0 τότε GOTO 2 ΓΡΑΨΕ ‘Αρνητικός’ GOTO 4 1: ΓΡΑΨΕ ‘Θετικός’ GOTO 4 2: ΓΡΑΨΕ ‘Μηδέν’ GOTO 4 4:! Συνέχεια,,,,, Αν Αριθμός>0 τότε ΓΡΑΨΕ ‘Θετικός’ Αλλιώς_αν Αριθμός =0 τότε ΓΡΑΨΕ ‘Μηδέν’ Αλλιώς ΓΡΑΨΕ ‘Αρνητικός’ Τέλος_Αν,,,
43
Εισαγωγή στον Προγραμματισμό Δομημένος Προγραμματισμός - Άσκηση Αλγόριθμος Μη_δομημένο_1 Διάβασε x Αν x <= 50 τότε y x*25 Πήγαινε στο Ε2 y x*23 E2: Εμφάνισε y Τέλος Μη_δομημένο_1 Αλγόριθμος Δομημένο_1 Διάβασε x Αν x <= 50 τότε y x*25 αλλιώς y x*23 Τέλος_αν Εμφάνισε y Τέλος Δομημένο_1
44
Εισαγωγή στον Προγραμματισμό Δομημένος Προγραμματισμός - Πλεονεκτήματα Δημιουργία απλούστερων προγραμμάτων. Άμεση μεταφορά των αλγορίθμων σε προγράμματα. Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα. Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος. Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους. Ευκολότερη διόρθωση και συντήρηση.
45
Εισαγωγή στον Προγραμματισμό Αντικειμενοστραφής προγραμματισμός Επικρατούσα Κατάσταση Έμφαση στα δεδομένα παρά στις ενέργειες Εκλαμβάνει ως πρωτεύοντα δομικά στοιχεία ενός προγράμματος τα δεδομένα, από τα οποία δημιουργούνται με κατάλληλη μορφοποίηση τα αντικείμενα (objects). Χρησιμοποιεί την ιεραρχική σχεδίαση, τον τμηματικό προγραμματισμό και ακολουθεί τις αρχές του δομημένου προγραμματισμού. Ευελιξία – Επαναχρησιμοποίηση Σήμερα οι κυριότεροι εκφραστές του είναι η SMALLTALK, η C++, η JAVA, κ.α.
46
Εισαγωγή στον Προγραμματισμό Αντικειμενοστραφής προγραμματισμός Αλγόριθμος Γεωμετρικά_Σχήματα Διάβασε α,β,γ,υ !Τρίγωνο Έ β*υ Π α+β+γ Εμφάνισε Ε,Π Διάβασε α,β !Ορθογώνιο Ε α*β Π 2*(α+β) Εμφάνισε Ε,Π Τέλος Γεωμετρικά_Σχήματα Αλγόριθμος Γεωμετρικά_Σχήματα Αντικείμενο Τ Τρίγωνο Δεδομένα α,β,γ,υ Μέθοδοι Εμβαδόν {Επέστρεψε β*υ} Περίμετρος {Επέστρεψε α+β+γ} Τέλος Τρίγωνο Αντικείμενο Ο Ορθογώνιο Δεδομένα α,β Μέθοδοι Εμβαδόν {Επέστρεψε β*α} Περίμετρος {Επέστρεψε 2*(α+β)} Τέλος Ορθογώνιο Διάβασε Τ.α,Τ.β,Τ.γ,Τ.υ Εμφάνισε Τ.εμβαδόν, Τ.Περίμετρος Διάβασε Ο.α,Ο.β Εμφάνισε Ο.εμβαδόν, Ο.Περίμετρος Τέλος Γεωμετρικά_Σχήματα
47
Εισαγωγή στον Προγραμματισμό Παράλληλος Προγραμματισμός Είναι μία νέα προσπάθεια εξέλιξης των γλωσσών, ώστε να μπορούμε να εκμεταλλευτούμε συστήματα με περισσότερους από έναν επεξεργαστές που λειτουργούν παράλληλα και μοιράζονται την ίδια μνήμη Οι εντολές των προγραμμάτων ‘διαμοιράζονται’ κατάλληλα στους διαφορετικούς επεξεργαστές Τα προγράμματα γίνονται πολύ ταχύτερα Στο μέλλον θα υπάρξει μεγάλη άνθηση του παράλληλου προγραμματισμού Σήμερα οι κυριότεροι εκφραστές του είναι η OCCAM, η Parallel C, κ.α.
48
Εισαγωγή στον Προγραμματισμό Παράλληλος προγραμματισμός Επεξεργαστής1Επεξεργαστής2 Επεξεργαστής Ν Μνήμη RAM Διαίρεση αλγορίθμου σε τμήματα που μπορούν να εκτελεστούν παράλληλα ταχύτητα
49
Εισαγωγή στον Προγραμματισμό Προγραμματιστικά Περιβάλλοντα Μεταγλωττιστή (compiler) Περιβάλλοντα με Μεταγλωττιστή (compiler) Σύνταξη προγράμματος πηγαίο πρόγραμμα Μεταγλώττιση αντικείμενο πρόγραμμα Σύνδεση (φόρτωση) εκτελέσιμο πρόγραμμα Εκτέλεση Διερμηνευτή (interpreter) Περιβάλλοντα με Διερμηνευτή (interpreter) Σύνταξη προγράμματος πηγαίο πρόγραμμα Διερμήνευση - Εκτέλεση
50
Εισαγωγή στον Προγραμματισμό Προγραμματιστικά Περιβάλλοντα Πηγαίο Πρόγραμμα Μεταγλωτ- τιστής Αντικείμενο Πρόγραμμα Συνδέτης – Φορτωτής Εκτελέσιμο Πρόγραμμα
51
Εισαγωγή στον Προγραμματισμό Προγραμματιστικά Περιβάλλοντα Τα λάθη χωρίζονται σε δύο κατηγορίες: Συντακτικά: εντοπίζονται κατά τη μεταγλώττιση διορθώνονται εύκολα π.χ. ορθογραφικό λάθος σε μία εντολή Λογικά: εντοπίζονται κατά την εκτέλεση του προγράμματος διορθώνονται συνήθως δύσκολα αφού το λάθος βρίσκεται στον αλγόριθμο. Τα σύγχρονα προγραμματιστικά περιβάλλοντα προσφέρουν: Διερμηνευτή, κατά την ανάπτυξη του προγράμματος Μεταγλωττιστή, για την τελική έκδοση του προγράμματος Συντάκτη – Εργαλεία για τη διόρθωση των λαθών Γραφικά αντικείμενα για οπτικό προγραμματισμό
52
Εισαγωγή στον Προγραμματισμό Ασκήσεις ΑΡΧΗ ΟΣΟ Συνθήκη1 ΕΠΑΝΑΛΑΒΕ Εντολή2 ΑΝ Συνθήκη2 ΤΟΤΕ Εντολή4 Πήγαινε στο Τέλος ΑΛΛΙΩΣ Εντολή5 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ ΔΣ1, ΔΣ2 για σπίτι …….. ΔΤ1
53
Εισαγωγή στον Προγραμματισμό ΛΥΣΗ ΔΤ1 ΑΡΧΗ ΣΤΑΜΑΤΑ ΨΕΥΔΗΣ ΟΣΟ Συνθήκη1 ΚΑΙ ΣΤΑΜΑΤΑ=ΨΕΥΔΗΣ ΕΠΑΝΕΛΑΒΕ Εντολή2 ΑΝ Συνθήκη2 ΤΟΤΕ Εντολή4 ΣΤΑΜΑΤΑ ΑΛΗΘΗΣ ΑΛΛΙΩΣ Εντολή5 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ
54
Εισαγωγή στον Προγραμματισμό Ασκήσεις 1. Η βιοτεχνία ΓΦΡΦ που παρασκευάζει πλαστικές σακούλες σε 2 μεγέθη. Το κόστος είναι 0.01 € για τις μεγάλες και 0.007 € για τις μικρές σακούλες. Ωστόσο, για παραγγελίες μεγαλύτερες από 150 € ή 3500 τεμάχια παρέχεται έκπτωση 10%. Αν μια παραγγελία ξεπεράσει τα 500 € η έκπτωση φτάνει το 25%. Να αναπτύξετε αλγόριθμο που θα διαβάζει για μια παραγγελία το πλήθος για μεγάλες και μικρές σακούλες και να εκτυπώνει το οφειλόμενο ποσό. 2. Στα πλαίσια του Γ' Ευρωπαϊκού Πακέτου Στήριξης και πιο συγκεκριμένα του προγράμματος "Ανταγωνιστικότητα" προβλέπεται η χρηματοδότηση μικρομεσαίων επιχειρήσεων (προσωπικό <= 50 άτομα). Έτσι, αν κάποια επιχείρηση απασχολεί μέχρι και 15 άτομα τότε θα λάβει επιχορήγηση 20.000 € για εκσυγχρονισμό του εξοπλισμού της, ενώ για περισσότερα άτομα το ποσό αυτό ανέρχεται σε 35.000 €. Ταυτόχρονα, αν πάνω από 35% των υπαλλήλων της έχουν ηλικία < 28 έτη, η επιχείρηση επιχορηγείται με ποσό 10.000 € με τη δέσμευση να τους απασχολήσει για διάστημα τουλάχιστον 3 έτη. Να αναπτύξετε αλγόριθμο που θα διαβάζει για μια επιχείρηση το πλήθος των ατόμων που απασχολεί συνολικά, το πλήθος των εργαζομένων με ηλικία < 28 έτη και το αν θα συνεχίσει να απασχολεί τους τελευταίους για 3 έτη (η απάντηση του χρήστη είναι "Ναι"/"Όχι") και να εκτυπώνει το συνολικό ποσό της επιχορήγησης που θα λάβει αυτή η επιχείρηση.
55
Εισαγωγή στον Προγραμματισμό Ασκήσεις - Λύσεις Αλγόριθμος ΓΦΡΦ Διάβασε μεγάλες, μικρές οφειλή ← μεγάλες * 0.01 + μικρές * 0.007 Αν (οφειλή > 500) τότε οφειλή ← οφειλή * 0.75 ! έκπτωση 25% Αλλιώς_Αν (οφειλή > 150) ή (μεγάλες + μικρές > 3500) τότε οφειλή ← οφειλή * 0.90 ! έκπτωση 10% Τέλος_Αν Εκτύπωσε "Το οφειλόμενο ποσό είναι ", οφειλή Τέλος ΓΦΡΦ
56
Εισαγωγή στον Προγραμματισμό Ασκήσεις - Λύσεις Αλγόριθμος Ανταγωνιστικότητα Διάβασε Εργαζ_σύνολο, Εργαζ_28 Αν (Εργαζ_σύνολο > 50) τότε ! Πρέπει να κάνω έλεγχο στοιχείων Εκτύπωσε "Το πρόγραμμα επιχορηγεί μόνο μικρομεσαίες επιχειρήσεις" Αλλιώς Αν (Εργαζ_σύνολο <= 15) τότε επιχορήγηση ← 20000 Αλλιώς ! εννοείται οτι εργαζόμενοι ανήκουν στο διάστημα (15, 50] επιχορήγηση ← 35000 Τέλος_Αν ποσοστό ← Εργαζ_28 / Εργαζ_σύνολο Αν (ποσοστό <= 0.35) τότε Διάβασε απάντηση Αν (απάντηση = "Ναι") τότε επιχορήγηση ←επιχορήση + 10000 Εκτύπωσε "Προσοχή, αν απολυθούν εργαζόμενοι κάτω των 25 επιστρέφονται 10.000 €" Τέλος_Αν Εκτύπωσε "Η συνολική επιχορήγηση που θα λάβετε είναι ", επιχορήγηση Τέλος_Αν Τέλος Ανταγωνιστικότητα
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.