Προγραμματισμός Η/Υ
Περιεχόμενα Ανασκόπηση - Ορισμοί Ο κύκλος ανάπτυξης προγράμματος Περιγραφή προβλήματος Ανάλυση προβλήματος Λογικό Διάγραμμα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραμματισμού Ασκήσεις
Εισαγωγή Αλγόριθμο ονομάζουμε μια ταξινομημένη ακολουθία μη διφορούμενων βημάτων που οδηγούν στη λύση ενός προβλήματος. Πρόγραμμα ονομάζουμε την αναπαράσταση ενός η πολλών αλγορίθμων σε μορφή κατανοητή από τον υπολογιστή Η διαδικασία της ανάπτυξης ενός αλγορίθμου σε συνδυασμό με την συγγραφή ενός προγράμματος καλείται προγραμματισμός. Το σύνολο των γραμματικών και συντακτικών κανόνων που μας επιτρέπει να δίνουμε εντολές στον Η/Υ μέσω ενός προγράμματος καλείται γλώσσα προγραμματισμού Η διαδικασία που ακολουθούμε για την ανάπτυξη ενός προγράμματος καλείται κύκλος ανάπτυξης προγράμματος
Ο κύκλος ανάπτυξης προγράμματος Ο κύκλος ανάπτυξης προγράμματος αναλύεται σε έξι βασικά βήματα: Περιγραφή του προβλήματος, καθορισμός απαιτήσεων, Ανάλυση προβλήματος, προσδιορισμός της λύσης Σχεδίαση της λύσης του προβλήματος Ανάπτυξη αλγορίθμού Σχεδιασμός διαγράμματος ροής Δημιουργία ψευδοκώδικα Κωδικοποίηση σε γλώσσα προγραμματισμού, Έλεγχος, διόρθωση λαθών, Συντήρηση προγράμματος.
Περιγραφή του προβλήματος & καθορισμός απαιτήσεων Περιγραφή του προβλήματος & καθορισμός απαιτήσεων Προσπαθούμε με απλά βήματα να απομονώσουμε και να καταγράψουμε τις πραγματικές συνιστώσες ενός προβλήματος, τοποθετώντας τις σε λογική σειρά μεταξύ τους. Ποια είναι τα δεδομένα εισόδου? Ποιο είναι το απτό αποτέλεσμα που πρέπει να προκύψει από την επίλυση του προβλήματος?> Αποσαφηνίζουμε τους στόχους που επιδιώκουμε να υλοποιήσουμε με αναλυτικό τρόπο προκειμένου να καταγραφεί το πλαίσιο απαιτήσεων της όλης προσπάθειας. Μήπως οι απαιτήσεις για την επίλυση του προβλήματος το καθιστούν την αυτοματοποίηση της διαδικασίας μη συμφέρουσα?
Ανάλυση του προβλήματος & προσδιορισμός της λύσης Ανάλυση του προβλήματος & προσδιορισμός της λύσης Ολοκληρωμένη απεικόνιση του πλαισίου επίλυσης του προβλήματος Σκιαγραφούμε ένα προσχέδιο της επίλυσης του προβλήματος Ελέγχουμε αν η λύση καλύπτει τους στόχους που έχουν τεθεί και αν παράγει τα επιθυμητά δεδομένα εξόδου Διερευνούμε την πιθανότητα ύπαρξης περισσότέρων λύσεων Επιλέγουμε την βέλτιστη λύση με βάση τις προδιαγραφές που έχουν τεθεί
Σχεδίαση της λύσης του προβλήματος Ανάπτυξη του αλγορίθμου επίλυσης του προβλήματος Δημιουργία μιας ταξινομημένης ακολυθίας μη διφορούμενων βημάτων που οδηγούν στη λύση Σχεδιασμός διαγράμματος ροής Σχηματικός τρόπος αναπαράστασης του αλγορίθμου
Σχεδίαση της λύσης του προβλήματος Δημιουργία ψευδοκώδικα Αναπαράσταση του αλγορίθμου με ένα μίγμα λέξεων της Αγγλικής γλώσσας και κοινών σε πολλές γλώσσες προγραμματισμού εντολών open STUDENT.DAT /* Open the file that contains the student list */ read student_name /* Read the first student name */ while not EOF do /* Begin the main loop */ read student_info /* Read the remaining student info */ if YEAR=1 then print student_name /* conditional structure */ read student_name /* Read the next student name */ end while close STUDENT.DAT /* Close the input file */ end /* End of program */
Κωδικοποίηση Αξιοποιείται η διαδικασία του σχεδιασμού Πραγματοποιείται η συγγραφή του προγράμματος σε μια γλώσσα προγραμματισμού. Μέσω μεταγλωτιστή (compiler) ή μεταφραστή (interpreter) το πρόγραμμα μετατρέπεται σε γλώσσα γλώσσα μηχανής η οποία είναι αναγνωρίσιμη από τον υπολογιστή. Στο στάδιο αυτό γίνεται ο έλεγχος συντακτικών λαθών (λάθη που οφείλονται σε λανθασμένη χρήση των κανόνων της γλώσσας προγραμματισμού)
Έλεγχος λαθών, συντήρηση προγράμματος Έλεγχος λαθών και διόρθωση προγράμματος: Πραγματοποιούνται συνεχείς δοκιμές προκειμένου να βεβαιωθούμε ότι το πρόγραμμα δουλεύει σωστά. Διορθώνονται πιθανά λογικά σφάλματα (σφάλματα που σχετίζονται με τον σχεδιασμό της λύσης). Συντήρηση προγράμματος: Συγγραφή τεκμηρίωσης Το λογισμικό εγκαθίσταται και ξεκινά η λειτουργία του. Οι ανάγκες των χρηστών, και η συνεχής προσαρμογή των προγραμμάτων στις νέες απαιτήσεις καθιστούν αναγκαία την συνεχή παρακολούθηση του προγράμματος, και την τροποποίηση του.
Γλώσσες προγραμματισμού Γλώσσα Μηχανής- Machine Language, (Γλώσσα πρώτης γενιάς-1940) Είναι η φυσική γλώσσα των Η/Υ. Είναι κώδικας σε δυαδική μορφή (0,1). Διακρίνεται για την ταχύτητα εκτέλεσης των εντολών της και την βέλτιστη χρήση της κύριας μνήμης. Είναι δύσκολη στην χρήση της, στον εντοπισμό και διόρθωση τυχόν λαθών. Συμβολική γλώσσα -Assembly Language ( Γλώσσα δεύτερης Γενιάς -1950-60) Μνημονική αναπαράσταση των χαρακτήρων. Είναι πιο εύκολη στην γραφή και στην κατανόηση. Η εκτέλεση της απαιτεί την μετάφραση της σε γλώσσα μηχανής μέσω των συμβολομεταφραστών (Assembler).
Γλώσσες προγραμματισμού Γλώσσες υψηλού επιπέδου- High level Languages, (Γλώσσες τρίτης Γενιάς 1960-..) Εννοιολογικά εμφανίζονται να βρίσκονται πιο κοντά στις ανθρώπινες γλώσσες. Χρησιμοποιούν ένα μικρό σύνολο από αγγλικές λέξεις. Για να εκτελεστεί ένα τέτοιο πρόγραμμα γίνεται χρήση μεταγλωττιστών (Compilers) και των μεταφραστών ή διερμηνευτών (Interpreters). Παραδείγματα: Cobol, Fortran, Basic, Logo, Pascal, Ada, C.
Γλώσσες προγραμματισμού Γλώσσες τέταρτης γενιάς - 4th Generation Languages.-1980 -1990 Ο προγραμματιστής δεν περιγράφει αλγορίθμους. Απλά καθορίζει τα δεδομένα και τις ενέργειες που πρέπει να γίνουν και το ίδιο το εργαλείο δημιουργεί τον κώδικα σε κάποια γλώσσα προγραμματισμού. Αντικειμενοστραφείς γλώσσες προγραμματισμού (Object oriented L). Παραδείγματα: C++, Java, Visual basic. Γλώσσες ανάπτυξης εφαρμογών τεχνητής νοημοσύνης, Π.χ LISP, PROLOG. Γλώσσες ερωταποκρίσεων. Γεννήτριες προγραμμάτων. Συστήματα διαχείρισης βάσεων δεδομένων.
Γλώσσες προγραμματισμού Γλώσσες Πέμπτης Γενιάς (5th Generation language) - 21ος αιώνας Η επικοινωνία μεταξύ ανθρώπου και μηχανής γίνεται με την βοήθεια φυσικής γλώσσας. Χρησιμοποιούν λέξεις και συντακτικούς κανόνες της φυσικής γλώσσας. Αναπτύσσονται τεχνικές αναγνώρισης φωνής. Έχουν μεγάλες υπολογιστικές απαιτήσεις. Δεν έχουν ακόμη αναπτυχθεί πρότυπα με ευρεία αποδοχή. Όλες οι παραπάνω γλώσσες εκτός από την γλώσσα μηχανής προκειμένου να γίνουν κατανοητές από τον Η/Υ πρέπει να μεταφραστούν σε γλώσσα μηχανής
Άσκηση 1 Πολλαπλασίασε τρεις αριθμούς Αν το γινόμενο τους είναι μεγαλύτερο από το άθροισμα τους τότε τύπωνε κάθε φορά το 1/3 του γινομένου αλλιώς τύπωσε το 1/3 του αθροίσματος. (1). Να σχεδιαστεί το λογικό διάγραμμα (2). Να γραφεί ο ψευδοκώδικας (3). Να γίνει έλεγχος με τα εξής δεδομένα εισόδου (α) 3,2,1 (β) 4,5,2
Άσκηση 2 1. Να σχεδιαστεί το λογικό διάγραμμα ΔΙΑΒΑΣΕ ΤΡΕΙΣ ΑΡΙΘΜΟΥΣ. ΑΝ ΤΟ ΑΘΡΟΙΣΜΑ ΤΟΥΣ ΥΠΕΡΒΑΙΝΕΙ ΤΟ 100 ΤΟΤΕ ΝΑ ΒΡΙΣΚΕΙ ΤΟΝ ΜΕΣΟ ΟΡΟ ΤΟΥΣ ΚΑΙ ΝΑ ΤΟΝ ΤΥΠΩΝΕΙ. ΑΝ ΤΟ ΑΘΡΟΙΣΜΑ ΤΟΥΣ ΕΙΝΑΙ ΜΙΚΡΟΤΕΡΟ ΤΟΥ ΕΚΑΤΟ ΤΟΤΕ ΝΑ ΕΚΥΠΩΝΕΙ ΤΟΥΣ ΑΡΙΘΜΟΥΣ ΑΝ ΤΟ ΑΘΡΟΙΣΜΑ ΤΟΥΣ ΕΙΝΑΙ ΙΣΟ ΜΕ ΤΟ ΕΚΑΤΟ ΤΟΤΕ ΝΑ ΤΥΠΩΝΕΙ ΤΗΝ ΦΡΑΣΗ «ΤΑ ΚΑΤΑΦΕΡΑΜΕ» 1. Να σχεδιαστεί το λογικό διάγραμμα 2. Να γραφεί ο ψευδοκώδικας 3. Να γίνει έλεγχος με τα εξής input data (α) 30,40,20, (β) 100, 10, 40, (γ) 50, -50, 0
Ερωτήσεις ?