Προγραµµατισµός Η/Υ
Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού Ασκήσεις
Εισαγωγή Αλγόριθµο ονοµάζουµε µια ταξινοµηµένη ακολουθία µη διφορούµενων βηµάτων που οδηγούν στη λύση ενός προβλήµατος. Πρόγραµµα ονοµάζουµε την αναπαράσταση ενός η πολλών αλγορίθµων σε µορφή κατανοητή από τον υπολογιστή Η διαδικασία της ανάπτυξης ενός αλγορίθµου σε συνδυασµό µε την συγγραφή ενός προγράµµατος καλείται προγραµµατισµός. Το σύνολο των γραµµατικών και συντακτικών κανόνων που µας επιτρέπει να δίνουµε εντολές στον Η/Υ µέσω ενός προγράµµατος καλείται γλώσσα προγραµµατισµού Η διαδικασία που ακολουθούµε για την ανάπτυξη ενός προγράµµατος καλείται κύκλος ανάπτυξης προγράµµατος
Ο κύκλος ανάπτυξης προγράµµατος Ο κύκλος ανάπτυξης προγράµµατος αναλύεται σε έξι βασικά βήµατα: Περιγραφή του προβλήµατος, καθορισµός απαιτήσεων, Ανάλυση προβλήµατος, προσδιορισµός της λύσης Σχεδίαση της λύσης του προβλήµατος Ανάπτυξη αλγορίθµού Σχεδιασµός διαγράµµατος ροής ηµιουργία ψευδοκώδικα Κωδικοποίηση σε γλώσσα προγραµµατισµού, Έλεγχος, διόρθωση λαθών, Συντήρηση προγράµµατος.
Περιγραφή του προβλήµατος & καθορισµός απαιτήσεων Προσπαθούµε µε απλά βήµατα να αποµονώσουµε και να καταγράψουµε τις πραγµατικές συνιστώσες ενός προβλήµατος, τοποθετώντας τις σε λογική σειρά µεταξύ τους. Ποια είναι τα δεδοµένα εισόδου? Ποιο είναι το απτό αποτέλεσµα που πρέπει να προκύψει από την επίλυση του προβλήµατος?> Αποσαφηνίζουµε τους στόχους που επιδιώκουµε να υλοποιήσουµε µε αναλυτικό τρόπο προκειµένου να καταγραφεί το πλαίσιο απαιτήσεων της όλης προσπάθειας. Μήπως οι απαιτήσεις για την επίλυση του προβλήµατος το καθιστούν την αυτοµατοποίηση της διαδικασίας µη συµφέρουσα?
Ανάλυση του προβλήµατος & προσδιορισµός της λύσης Ολοκληρωµένη απεικόνιση του πλαισίου επίλυσης του προβλήµατος Σκιαγραφούµε ένα προσχέδιο της επίλυσης του προβλήµατος Ελέγχουµε αν η λύση καλύπτει τους στόχους που έχουν τεθεί και αν παράγει τα επιθυµητά δεδοµένα εξόδου ιερευνούµε την πιθανότητα ύπαρξης περισσότέρων λύσεων Επιλέγουµε την βέλτιστη λύση µε βάση τις προδιαγραφές που έχουν τεθεί
Σχεδίαση της λύσης του προβλήµατος Ανάπτυξη του αλγορίθµου επίλυσης του προβλήµατος ηµιουργία µιας ταξινοµηµένης ακολυθίας µη διφορούµενων βηµάτων που οδηγούν στη λύση Σχεδιασµός διαγράµµατος ροής Σχηµατικός τρόπος αναπαράστασης του αλγορίθµου
Σχεδίαση της λύσης του προβλήµατος ηµιουργία ψευδοκώδικα Αναπαράσταση του αλγορίθµου µε ένα µίγµα λέξεων της Αγγλικής γλώσσας και κοινών σε πολλές γλώσσες προγραµµατισµού εντολών 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 ΑΝ ΤΟ ΑΘΡΟΙΣΜΑ ΤΟΥΣ ΥΠΕΡΒΑΙΝΕΙ ΤΟ 100 ΤΟΤΕ ΝΑ ΒΡΙΣΚΕΙ ΤΟΝ ΜΕΣΟ ΟΡΟ ΤΟΥΣ ΚΑΙ ΝΑ ΤΟΝ ΤΥΠΩΝΕΙ. ΑΝ ΤΟ ΑΘΡΟΙΣΜΑ ΤΟΥΣ ΕΙΝΑΙ ΜΙΚΡΟΤΕΡΟ ΤΟΥ ΕΚΑΤΟ ΤΟΤΕ ΝΑ ΕΚΥΠΩΝΕΙ ΤΟΥΣ ΑΡΙΘΜΟΥΣ ΑΝ ΤΟ ΑΘΡΟΙΣΜΑ ΤΟΥΣ ΕΙΝΑΙ ΙΣΟ ΜΕ ΤΟ ΕΚΑΤΟ ΤΟΤΕ ΝΑ ΤΥΠΩΝΕΙ ΤΗΝ ΦΡΑΣΗ «ΤΑ ΚΑΤΑΦΕΡΑΜΕ» 1. Να σχεδιαστεί το λογικό διάγραµµα 2. Να γραφεί ο ψευδοκώδικας 3. Να γίνει έλεγχος µε τα εξής input data (α) 30,40,20, (β) 100, 10, 40, (γ) 50, -50, 0
Ερωτήσεις?