Χωρίς τίτλο διαφάνειας -...

17
Προγραμματισμός Η/Υ

Transcript of Χωρίς τίτλο διαφάνειας -...

ΠρογραµµατισµόςΗ/Υ

ΠεριεχόµεναΑνασκόπηση - ΟρισµοίΟ κύκλος ανάπτυξης προγράµµατος

Περιγραφή προβλήµατοςΑνάλυση προβλήµατοςΛογικό ∆ιάγραµµαΨευδοκώδικαςΚωδικοποίησηΣυντήρηση

Γλώσσες ΠρογραµµατισµούΑσκήσεις

ΕισαγωγήΑλγόριθµο ονοµάζουµε µια ταξινοµηµένη ακολουθία µη διφορούµενων βηµάτων που οδηγούν στη λύση ενός προβλήµατος. Πρόγραµµα ονοµάζουµε την αναπαράσταση ενός η πολλών αλγορίθµων σε µορφή κατανοητή από τον υπολογιστήΗ διαδικασία της ανάπτυξης ενός αλγορίθµου σε συνδυασµό µε την συγγραφή ενός προγράµµατος καλείται προγραµµατισµός.Το σύνολο των γραµµατικών και συντακτικών κανόνων που µας επιτρέπει να δίνουµε εντολές στον Η/Υ µέσω ενός προγράµµατος καλείται γλώσσα προγραµµατισµούΗ διαδικασία που ακολουθούµε για την ανάπτυξη ενός προγράµµατος καλείται κύκλος ανάπτυξης προγράµµατος

Ο κύκλος ανάπτυξης προγράµµατοςΟ κύκλος ανάπτυξης προγράµµατος αναλύεται σε έξι βασικά βήµατα:

Περιγραφή του προβλήµατος, καθορισµός απαιτήσεων,Ανάλυση προβλήµατος, προσδιορισµός της λύσηςΣχεδίαση της λύσης του προβλήµατοςΑνάπτυξη αλγορίθµούΣχεδιασµός διαγράµµατος ροής∆ηµιουργία ψευδοκώδικαΚωδικοποίηση σε γλώσσα προγραµµατισµού,Έλεγχος, διόρθωση λαθών,Συντήρηση προγράµµατος.

Περιγραφή του προβλήµατος & καθορισµός απαιτήσεων

Προσπαθούµε µε απλά βήµατα να αποµονώσουµε και να καταγράψουµε τις πραγµατικές συνιστώσες ενός προβλήµατος, τοποθετώντας τις σε λογική σειρά µεταξύ τους.

Ποια είναι τα δεδοµένα εισόδου?Ποιο είναι το απτό αποτέλεσµα που πρέπει να προκύψει από την επίλυση του προβλήµατος?>

Αποσαφηνίζουµε τους στόχους που επιδιώκουµε να υλοποιήσουµε µε αναλυτικό τρόπο προκειµένου να καταγραφεί το πλαίσιο απαιτήσεων της όλης προσπάθειας.

Μήπως οι απαιτήσεις για την επίλυση του προβλήµατος το καθιστούν την αυτοµατοποίηση της διαδικασίας µη συµφέρουσα?

Ανάλυση του προβλήµατος & προσδιορισµός της λύσης

Ολοκληρωµένη απεικόνιση του πλαισίου επίλυσης του προβλήµατος Σκιαγραφούµε ένα προσχέδιο της επίλυσης του προβλήµατοςΕλέγχουµε αν η λύση καλύπτει τους στόχους που έχουν τεθεί και αν παράγει τα επιθυµητά δεδοµένα εξόδου∆ιερευνούµε την πιθανότητα ύπαρξης περισσότέρων λύσεωνΕπιλέγουµε την βέλτιστη λύση µε βάση τις προδιαγραφές που έχουν τεθεί

Σχεδίαση της λύσης του προβλήµατος

Ανάπτυξη του αλγορίθµου επίλυσης του προβλήµατος

∆ηµιουργία µιας ταξινοµηµένης ακολυθίαςµη διφορούµενων βηµάτων που οδηγούν στη λύση

Σχεδιασµός διαγράµµατος ροής

Σχηµατικός τρόπος αναπαράστασης του αλγορίθµου

Σχεδίαση της λύσης του προβλήµατος∆ηµιουργία ψευδοκώδικα

Αναπαράσταση του αλγορίθµου µε ένα µίγµα λέξεων της Αγγλικής γλώσσας και κοινών σε πολλές γλώσσες προγραµµατισµού εντολών

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 whileclose 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

Ερωτήσεις

?