Vous êtes sur la page 1sur 8

Ελληνικό Ανοικτό Πανεπιστήμιο

Σχολή Θετικών Επιστημών και Τεχνολογίας

(Σ.Θ.Ε.Τ.)

Πρόγραμμα Σπουδών Πληροφορική

Θ.Ε. ΠΛΗ-10: Εισαγωγή στην Πληροφορική

Βασικές αρχές ανάπτυξης προγραμμάτων –


Διαγράμματα ροής (flow chart)

Συμπληρωματικό υλικό για τον Α’ Τόμο - Εισαγωγή στην Πληροφορική

Έκδοση 3.0

2015

1
Βασικές αρχές ανάπτυξης προγραμμάτων - Διαγράμματα ροής (flow chart)

Από τα πρώτα βήματα που απαιτούνται να ακολουθήσει ο Μηχανικός Πληροφορικής


με σκοπό τη μετατροπή ενός προβλήματος σε πρόγραμμα, είναι τα ακόλουθα: Αφού
προσδιοριστεί πλήρως το πρόβλημα που καλείται να επιλύσει θα πρέπει να προχωρήσει
στη διατύπωση του αλγορίθμου, δηλαδή ενός τυποποιημένου τρόπου λύσης. Προκειμένου
να περιγράψει αυτόν τον αλγόριθμο, μπορεί δημιουργήσει το διάγραμμα ροής του
προγράμματος.
Αυτό θα του δώσει τη δυνατότητα να ελέγξει τη λογική της επιλεγμένης /
προτεινόμενης μεθόδου λύσης ώστε στη συνέχεια να προχωρήσει στη κωδικοποίηση σε
κάποια γλώσσα προγραμματισμού, δηλαδή τη συγγραφή του αλγορίθμου σε γλώσσα
κατανοητή από τον Η/Υ. Το αποτέλεσμα της κωδικοποίησης, ο κώδικας θα πρέπει να
μεταγλωττισθεί, διορθωθεί και ελεγχθεί και θα αποτελέσει το πρόγραμμα που θα επιλύει
το πρόβλημα που του τέθηκε.
Όπως ήδη αναφέρθηκε, για την επίδειξη της ακολουθίας των βημάτων ενός
αλγορίθμου οι προγραμματιστές χρησιμοποιούν συχνά ένα διάγραμμα ροής (flow chart)
που αποτελεί ένα καλό τρόπο διαγραμματικής αναπαράστασης των βημάτων αυτών. Για
τους σκοπούς αυτούς χρησιμοποιούνται διάφορα γεωμετρικά σχήματα µε καθορισμένη
σημασία, σαν αυτά του Σχήματος 1.

Στη συνέχεια δείτε 4 επιλεγμένα παραδείγματα εφαρμογής τέτοιων Διαγραμμάτων Ροής.

2
Παράδειγμα 1: Το παραγοντικό (factorial) ενός φυσικού αριθμού ορίζεται από τον
ακόλουθο τύπο:
Ν! = Ν * (Ν-1) * (Ν-2) * … * 1 για Ν ≥ 1, και Ν! = 1 για Ν = 0.
Να δημιουργηθεί Διάγραμμα Ροής που να περιγράφει τον παραπάνω τρόπο υπολογισμού
του παραγοντικού.

Απάντηση παραδείγματος 1:

3
Παράδειγμα 2: Δώστε το Διάγραμμα Ροής Προγράμματος για τον υπολογισμό του κάτωθι
αθροίσματος:
1 1 1 1
S  1    ...  , δεδομένου ότι Ν > 0.
2! 3! 4! N!

Απάντηση παραδείγματος 2:

ΑΡΧΗ

ΔΙΑΒΑΣΕ Ν

Π1

Ι1

Σ0

OXI
Ι <= N ΓΡΑΨΕ Σ

NAI

ΠΠ*Ι

ΤΕΛΟΣ
Σ  Σ + 1/Π

ΙΙ+1

4
Παράδειγμα 3: Ένας πίνακας μπορεί να θεωρηθεί ως μία συλλογή ομοειδών (ιδίου
τύπου) στοιχείων μίας, δύο ή περισσότερων διαστάσεων. Για να αναφερθούμε σε ένα
στοιχείο ενός πίνακα δύο διαστάσεων χρησιμοποιούμε δύο ακέραιους αριθμούς τους
οποίους ονομάζουμε δείκτες. Ο πρώτος ακέραιος δηλώνει τον αριθμό της γραμμής
που βρίσκεται το στοιχείο, ενώ ο δεύτερος ακέραιος δηλώνει αντίστοιχα τον αριθμό
της στήλης. Για παράδειγμα, στον ακόλουθο πίνακα Α, που αποτελείται από 4
γραμμές και 4 στήλες, το στοιχείο Α[2,3] έχει τιμή 4, ενώ το στοιχείο Α[4,1] έχει τιμή
2.
5 7 0 -3
2 -1 4 0
Α=
3 9 -5 4
2 -6 6 3

Με βάση τα παραπάνω τι εμφανίζει καθένα από τα ακόλουθα διαγράμματα ροής


(flow charts) προγράμματος:

5
Απάντηση παραδείγματος 3: Τα διαγράμματα ροής θα εμφανίσουν το νούμερο 12.
Πρόκειται για το άθροισμα των στοιχείων που βρίσκονται πάνω από την κύρια διαγώνιο
του πίνακα (κύρια διαγώνιος ενός πίνακα που έχει τόσες γραμμές όσες και στήλες είναι η
νοητή ευθεία που περιλαμβάνει τα στοιχεία εκείνα για τα οποία ο δείκτης της γραμμής
είναι ίσος με το δείκτη της στήλης. Στο συγκεκριμένο πίνακα Α, τα στοιχεία της κύριας
διαγωνίου είναι τα 5, -1, -5, 3).

Παράδειγμα 4: Η διόρθωση ορθογραφικών λαθών είναι μια (απαραίτητη) διαδικασία για


την παραγωγή ενός ορθογραφημένου κειμένου. Παλαιότερα γινόταν αποκλειστικά από
τους διορθωτές κειμένων (ειδικά στους εκδοτικούς οίκους), αλλά σήμερα όλοι έχουμε τη
βοήθεια ενός ηλεκτρονικού ορθογράφου - διορθωτή κειμένου που μας εντοπίζει τις
«λάθος» λέξεις και προτείνει διορθώσεις.
Ο τρόπος με τον οποίο συνήθως γίνεται αυτό είναι με τη χρήση ενός λεξικού, δηλαδή
μιας λίστας λέξεων που έχουν καταχωρηθεί στον υπολογιστή. Πιο συγκεκριμένα, όταν ο
χρήστης γράψει ένα κείμενο και αναλάβει ο ορθογράφος να το ελέγξει, αυτό που κάνει
είναι ότι επιλέγει μία – μία τις λέξεις και τις συγκρίνει με τα περιεχόμενα του λεξικού. Αν
υπάρχουν εκεί, αυτό σημαίνει ότι είναι ορθές. Το Διάγραμμα Ροής Προγράμματος που
ακολουθεί περιγράφει τη διαδικασία αυτή.

6
Αρχη

Διάβασε Ν

Ι  1,
Κ 0

ΟΧΙ

Ι <=Ν? Κ > 0?
ΟΧΙ

ΝΑΙ
ΝΑΙ

Διάβασε Επόμενη
Λέξη W

I I + 1

Το κείμενο έχει «K»


λάθη

OXI

Η λέξη W υπάρχει
Κ Κ + 1 Το κείμενο δεν έχει
στο Λεξικό?
λάθη!

NAI

Τέλος

Α) Εξηγήστε (μέχρι 10 γραμμές) τη λειτουργία του παραπάνω ΔΡΠ θεωρώντας ότι το


πλήθος των λέξεων του κειμένου, εισάγεται από τον χρήστη στην αρχή και αποθηκεύεται
στην μεταβλητή «Ν».
Β) Στη διαδικασία ελέγχου είναι πολλές οι περιπτώσεις που μια λέξη αναγνωρίζεται ως
«λανθασμένη» ενώ στην πραγματικότητα δεν είναι. Απλά δεν υπάρχει στο λεξικό που
έχουμε. Και είναι φυσικό: τα λεξικά που συνήθως έχουν εγκατεστημένα οι ελεγκτές
κειμένου περιέχουν λέξεις της «Νέας Ελληνικής», της καθομιλουμένης δηλαδή. Έτσι,
τεχνική ορολογία, λέξεις της καθαρεύουσας κλπ. είναι τις περισσότερες φορές εκτός της
λίστας. Για να ξεπεράσουμε αυτή τη δυσκολία, τα περισσότερα σχετικά συστήματα, δίνουν
στο χρήστη τη δυνατότητα να δημιουργήσει και να συντηρεί ένα «λεξικό χρήστη», όπου θα
προσθέτει τις δικές του λέξεις. Συνεπώς κατά τον ορθογραφικό έλεγχο, ελέγχεται κάθε λέξη
πρώτα ως προς το «βασικό (κυρίως) λεξικό» και στη συνέχεια ως προς το «λεξικό χρήστη».
Τροποποιήστε κατάλληλα το ΔΡΠ ώστε να περιλαμβάνει και τον έλεγχο του «λεξικού
χρήστη».

7
Απάντηση παραδείγματος 4Α: Στο ΔΡΠ διαβάζεται πρώτα το πλήθος των λέξεων του
κειμένου και αποθηκεύεται στη μεταβλητή Ν. Κατόπιν ο μετρητής λέξεων (μεταβλητή) Ι
αρχικοποιείται στο 1 και μηδενίζεται ο μετρητής λανθασμένων λέξεων (μεταβλητή) Κ. Στη
συνέχεια διαβάζει μία - μία τις λέξεις του κειμένου, αυξάνοντας για κάθε λέξη το μετρητή Ι
και ελέγχοντας να μην ξεπεραστεί το πλήθος των λέξεων (Ι <= Ν) και ελέγχει αν η λέξη
υπάρχει ή όχι στο λεξικό. Στην περίπτωση που ΔΕΝ υπάρχει, αυξάνει το μετρητή Κ κατά 1.
Όταν τελειώσουν όλες οι λέξεις του κειμένου, εξετάζει την τιμή του μετρητή Κ και: α) αν το
Κ είναι μεγαλύτερο του μηδενός, τυπώνει ότι βρέθηκαν Κ λανθασμένες λέξεις, διαφορετικά
β) τυπώνει ότι το κείμενο δεν έχει λάθη.

Απάντηση παραδείγματος 4Β: Η ζητούμενη τροποποίηση υποδεικνύεται με κόκκινο χρώμα


στο παρακάτω ΔΡΠ:

Αρχη

Διάβασε Ν

Ι  1,
Κ 0

ΟΧΙ

Ι <=Ν? Κ > 0?
ΟΧΙ

ΝΑΙ
ΝΑΙ

Κ Κ + 1

Διάβασε Επόμενη
Λέξη W
OXI

Η λέξη W υπάρχει
στο Λεξικό χρήστη?
NAI I I + 1
Το κείμενο έχει «K»
λάθη

Η λέξη W υπάρχει Το κείμενο δεν έχει


στο Λεξικό? λάθη!

OXI

NAI

Τέλος

Vous aimerez peut-être aussi