Εισαγωγή στον Προγραµµατισµό. Σύντοµες Σηµειώσεις. Γιώργος Μανής

Σχετικά έγγραφα
Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

ΚΕΦΑΛΑΙΟ 2 Ο ΕΞΙΣΩΣΕΙΣ-ΑΝΙΣΩΣΕΙΣ

Κεφάλαιο ΙII : Εργαστηριακές ασκήσεις που αφορούν εντολές ελέγχου της ροής ενός προγράµµατος.

Επιµέλεια Θοδωρής Πιερράτος

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Να περιγραφεί η δομή επανάληψης Αρχή_επανάληψης Μέχρις_ότου

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;


Αλγεβρα. Ενότητα: Πολυώνυµα πολλών µεταβλητών - ο αλγόριθµος της διαίρεσης. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

επιµέλεια Θοδωρής Πιερράτος

ζωγραφίζοντας µε τον υπολογιστή

Περι-γράφοντας... κλωνάρια

ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

6 η Δραστηριότητα στο MicroWorlds Pro (1)

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

1.2 Εξισώσεις 1 ου Βαθμού

οµή Επιλογής Α. Κατηγορία προβληµάτων Β. Κριτήριο Αλγορίθµου Γ. Τρόπος αναπαράστασης αλγορίθµων . Είδος σταθεράς Ε. Λογική τιµή

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

Αριθµητική Ολοκλήρωση

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ

ΠροσδιορισµόςΒέλτιστης Λύσης στα Προβλήµατα Μεταφοράς Η µέθοδος Stepping Stone

ΕΥΑΙΣΘΗΣΙΑ ΗΛΕΚΤΡΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ

ΑΕΠΠ 1o Επαναληπτικό Διαγώνισµα

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Σηµειώσεις στις σειρές

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex

Πρόβλημα 29 / σελίδα 28

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) Γ ΤΑΞΗΣ 2003

Περι-γράφοντας... βρόχους

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΚΕΦΑΛΑΙΑ & 8.2 (ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ) ΘΕΩΡΙΑ

Γραµµική Αλγεβρα Ι. Ενότητα: Εισαγωγικές Εννοιες. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) Γ ΤΑΞΗΣ 2003

Πληροφορική 2. Αλγόριθμοι

Επίλυση Γραµµικών Συστηµάτων

13 Μέθοδοι υπολογισµού ολοκληρωµάτων Riemann

Κεφάλαιο 10 ο Υποπρογράµµατα

Μαθηματικά Γ Γυμνασίου

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΜΕ Η/Υ Γ ΓΥΜΝΑΣΙΟΥ Καθηγητής Παναγιώτης

Η Ευκλείδεια διαίρεση

ΑΝ.ΕΦ. Γ ΛΥΚΕΙΟΥ Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται µεταξύ των λέξεων ΤΟΤΕ και και η εκτέλεση του προγράµµατος συνεχίζετα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:


Καλάθι αγαθών. Σχέσεις προτίµησης. Ιδιότητες σχέσεων προτίµησης. Notes. Notes. Notes. Notes

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Γ ΛΥΚΕΙΟΥ

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

5.2 ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟ ΟΣ

Μάθηµα 1. Κεφάλαιο 1o: Συστήµατα. γ R παριστάνει ευθεία και καλείται γραµµική εξίσωση µε δύο αγνώστους.

4 η δεκάδα θεµάτων επανάληψης

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: Β - Γ ΛΥΚΕΙΟΥ ΤΜΗΜΑΤΑ: Β(ΧΟΛΑΡΓΟΣ) HM/NIA: 15/1/2017

Δραστηριότητα Περίπτωσης. Τίτλος: Οι διαφορές της απλής, της σύνθετης και της εμφωλευμένης δομής επιλογής

Θέματα Προγραμματισμού Η/Υ

5.1 Ιδιοτιµές και Ιδιοδιανύσµατα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

2 Αποδείξεις. 2.1 Εξαντλητική µέθοδος. Εκδοση 2005/03/22. Υπάρχουν πολλών ειδών αποδείξεις. Εδώ ϑα δούµε τις πιο κοινές:

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

4.1 Θεωρητική εισαγωγή

Συνήθεις ιαφορικές Εξισώσεις, Απαντήσεις-Παρατηρήσεις στην Εξέταση Περιόδου Σεπτεµβρίου.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ Τάξη Ηµερήσιου Γενικού Λυκείου

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Δ ΕΣΠΕΡΙΝΩΝ

Μεθοδολογίες παρεµβολής σε DTM.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ομή Επανάληψης

Ο ΗΓΟΣ ΧΡΗΣΗΣ ΓΕΩΜΕΤΡΙΑ

14 Εφαρµογές των ολοκληρωµάτων

8. Επιλογή και επανάληψη

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Α. Ερωτήσεις Ανάπτυξης

ΚΕΦΑΛΑΙΟ ΕΥΤΕΡΟ ΘΕΡΜΟ ΥΝΑΜΙΚΗ

Γραµµική Αλγεβρα Ι. Ενότητα: ιανυσµατικοί χώροι. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

ΕΡΩΤΗΣΕΙΣ ΚΑΤΑ Ι ΑΚΤΙΚΗ ΕΝΟΤΗΤΑ ΤΟΥ ΚΕΦΑΛΑΙΟΥ 4

x=l ηλαδή η ενέργεια είναι µία συνάρτηση της συνάρτησης . Στα µαθηµατικά, η συνάρτηση µίας συνάρτησης ονοµάζεται συναρτησιακό (functional).

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο

ΑΕΠΠ 1o Επαναληπτικό Διαγώνισµα

Transcript:

Εισαγωγή στον Προγραµµατισµό Σύντοµες Σηµειώσεις Γιώργος Μανής Νοέµβριος 2012

Αλγόριθµοι και Λογικά ιαγράµµατα Αλγόριθµος λέγεται µία πεπερασµένη διαδικασία καλά ορισµένων ϐηµάτων µου ακολουθείται για τη λύση ενός προβλήµατος, ενώ το λογικό διάγραµµα (Λ ) ή αλλιώς διάγραµµα ϱοής προγράµµατος ( ΡΠ) είναι µία σχηµατική πα- ϱάσταση του αλγορίθµου. Η έννοια του αλγορίθµου είναι πολύ ϐασική στην πληροφορική, ενώ το λογικό διάγραµµα ένα πολύ χρήσιµο περιγραφικό εργαλείο. Ενα λογικό διάγραµµα αποτελείται από σύµβολα και λέξεις οι οποίες είναι σε ϑέση να περιγράψουν µε λεπτοµέρεια κάθε διαδικασία επίλυσης ο- ποιουδήποτε προβλήµατος. Η κατασκευή ενός λογικού διαγράµµατος προηγείται της κωδικοποίησης. Το λογικό διάγραµµα δίνει τη δυνατότητα να µελετήσουµε καλά ένα πρόβληµα και να εµβαθύνουµε σε αυτό, επιτρέπει να το σχεδιάσουµε στην ολότητά του και να το δούµε λυµένο (ή να διαπιστώσουµε αν λύνεται) πριν ακόµα ξεκινήσουµε την επίπονη διαδικασία της κωδικοποίησης, αλλά και να συγκρίνουµε διαφορετικές µεταξύ τους λύσεις και να επιλέξουµε την καλύτερη αρκετά νω- ϱίς, αφού οι αλλαγές κατά την κωδικοποίηση είναι πολύ πιο ακριβές από ότι οι αλλαγές κατά τη σχεδίαση ενός συστήµατος. Τα ϐασικότερα σύµβολα που χρησιµοποιούνται από ένα λογικό διάγραµ- µα είναι η έλλειψη, το ορθογώνιο και το πλάγιο παραλληλόγραµµο, ο ϱόµβος και τα ϐέλη (Σχήµα 1). Οι ελλείψεις χρησιµοποιούνται για να συµβολίσουν την αρχή και το τέλος ενός αλγορίθµου. Τα ορθογώνια παραλληλόγραµµα συµβολίζουν επεξεργασία. Τα πλάγια παραλληλόγραµµα είσοδο και έξοδο δεδοµένων, ενώ οι ϱόµβοι αποτελούν σηµεία στα οποία πρέπει να ληφθεί κάποια απόφαση. Με τα ϐέλη απεικονίζουµε τη ϱοή του προγράµµατος. Πέρα από αυτά τα σύµβολα, υπάρχουν µερικά ακόµα, δευτερεύουσας σηµασίας, αλλά 1

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 2 Σχήµα 1: Τα ϐασικότερα σύµβολα που χρησιµοποιούνται στα λογικά διαγράµ- µατα επίσης χρήσιµα. Ας µείνουµε τώρα σε αυτά και ας τα δούµε αναλυτικά. Η έλλειψη χρησιµοποιείται για να σηµειωθεί η αρχή και το τέλος του αλγορίθµου. Το πλάγιο παραλληλόγραµµο περιγράφει διαδικασία εισόδου ή εξόδου στοιχείων. Στο παράδειγµα της πρόσθεσης είσοδο δεδοµένων έχουµε στην αρχή του προγράµµατος όπου και πρέπει να δοθούν από το χρήστη στον υπολογιστή οι δύο αριθµοί που ϑα προστεθούν. Σε εκείνο το σηµείο έχουµε και έξοδο δεδοµένων, αφού για κάθε έναν από τους δύο αριθµούς που Ϲητούνται προηγείται ένα µήνυµα διευκρινιστικό προς το χρήστη ( ώσε µου τον πρώτο αριθµό και ώσε µου τον δεύτερο αριθµό ). Εξοδο έχουµε στο τέλος του προγράµµατος, όπου έχουµε την εµφάνιση του αποτελέσµατος στην οθόνη συνοδευόµενο πάλι από το κατάλληλο ϐοηθητικό µήνυµα ( Το αποτέλεσµα είναι : ). Τα µέρη του διαγράµµατος ϱοής προγράµµατος για το πρόβληµα της πρόσθεσης που αναλογούν στην είσοδο και έξοδο δεδοµένων ϕαίνεται στα σχήµατα 2(α ) και 2(ϐ ) αντίστοιχα. Ο ϱόµβος χρησιµοποιείται για να συµβολιστούν σηµεία στα οποία πρέπει να ληφθεί κάποια απόφαση. Σηµεία δηλαδή, στα οποία το πρόγραµµα έχει περισσότερες από ένα δρόµο να επιλέξει ανάλογα µε το αν ισχύουν ή όχι κάποιες συνθήκες. Στο πρόγραµµα της πρόσθεσης δεν απαιτείται ϱόµβος, αλλά ϑα δούµε παρακάτω ένα άλλο πρόβληµα (την λύση του τριωνύµου) στο οποίο απαιτείται. Το ορθογώνιο παραλληλόγραµµο χρησιµοποιείται για να περιγραφεί κά-

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 3 (α ) Εισαγωγή δεδοµένων για το πρόγραµµα της πρόσθεσης (ϐ ) Εξοδος δεδοµένων για το πρόγραµµα της πρόσθεσης Σχήµα 2: Είσοδος και έξοδος δεδοµένων για την πρόσθεση ποια διαδικασία. Στο παράδειγµα, ϑα συµβολιστεί µε ορθογώνιο παραλληλόγραµµο η πρόσθεση των δύο αριθµών. Τέλος, τα ϐέλη ϱοής δείχνουν ποιο είναι το επόµενο σχήµα στο λογικό διάγραµµα στο οποίο ϑα µεταβεί ο έλεγχος του προγράµµατος. Από κάθε σχήµα µπορεί να µη ξεκινά κανένα ϐέλος (συµβαίνει όταν τερµατίζεται το πρόγραµµα), µπορεί να ξεκινά ένα ϐέλος το οποίο καταλήγει στο επόµενο σχήµα στο οποίο ϑα περάσει η εκτέλεση ή περισσότερα ϐέλη όταν έχουµε ϱόµβο απόφασης. Το διάγραµµα ϱοής προγράµµατος για το πρόβληµα της πρόσθεσης εικονίζεται στο σχήµα 3. Πριν όµως προχωρήσουµε στην κωδικοποίηση, ας δούµε και ένα λίγο µεγαλύτερο παράδειγµα, ένα πρόγραµµα που δέχεται σαν είσοδο ένα τριώνυµο και αποφασίζει αν το τριώνυµο έχει και πόσες πραγµατικές ϱίζες. Στην περίπτωση που το τριώνυµο έχει πραγµατικές ϱίζες τότε αυτές υπολογίζονται και τυπώνονται στην οθόνη. Στην περίπτωση που το τριώνυµο δεν έχει πραγµα-

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 4 Σχήµα 3: Ολοκληρωµένο το λογικό διάγραµµα της πρόσθεσης τικές ϱίζες, τότε τυπώνεται ένα µήνυµα που µας ειδοποιεί ότι δεν υπάρχουν πραγµατικές ϱίζες. Είσοδος στοιχείων απαιτείται κατά την εκκίνηση του προγράµµατος όπου και Ϲητείται το τριώνυµο, οι συντελεστές α, ϐ και γ δηλαδή. Ετσι, στην αρχή του λογικού διαγράµµατος υπάρχουν τρία πλάγια παραλληλόγραµµα. Για να είναι το πρόγραµµα ϕιλικό στο χρήστη πριν από κάθε ερώτηση για τις τιµές των α, ϐ και γ πρέπει να τυπώνεται ένα µήνυµα στην οθόνη που να πληροφορεί το χρήστη τι ακριβώς πρέπει να κάνει. Συνεπώς, πριν από κάθε πλάγιο πα- ϱαλληλόγραµµο για την εισαγωγή µίας τιµής πρέπει να υπάρχει και ένα άλλο πλάγιο παραλληλόγραµµο που να τυπώνει ένα µήνυµα της µορφής : ώσε µου το συντελεστή α :, ή ώσε µου το συντελεστή ϐ: ή ώσε µου το συντελεστή γ:, αντίστοιχα. Στο τέλος του προγράµµατος πρέπει να τυπώνεται το αποτέλεσµα. Ετσι, σε κάποιο σηµείο του λογικού µας διαγράµµατος πρέπει να υπάρχουν τα κατάλληλα πλάγια παραλληλόγραµµα για τα αποτελέσµατα : Το τριώνυµο δεν έχει πραγµατικές ϱίζες και Το τριώνυµο έχει µία πραγ- µατική διπλή ϱίζα την : και Το τριώνυµο έχει δύο πραγµατικές ϱίζες τις :. Επίσης, αν διαπιστωθεί ότι η εξίσωση είναι πρωτοβάθµια πρέπει να τυπωθεί το κατάλληλο µήνυµα Η εξίσωση είναι πρωτοβάθµια (Αν και αυτό µαθηµατικά

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 5 δεν είναι απόλυτα σωστό, αλλά ας κρατήσουµε το πρόγραµµα σχετικά απλό). Μπορεί κανείς να παρατηρήσει ότι σε ένα τόσο απλό πρόγραµµα και για µια τόσο απλή διαδικασία απαιτούνται τόσα πολλά πλάγια παραλληλόγραµµα. Το ίδιο πρόβληµα υπάρχει µε όλα τα σχήµατα του λογικού διαγράµµατος. Για να µειώσουµε την έκτασή του συνηθίζουµε να οµαδοποιούµε λειτουργίες περισσοτέρων σχηµάτων σε ένα, όταν αυτό δεν αποβαίνει σε ϐάρος της περιγραφής του αλγορίθµου. Στο συγκεκριµένο παράδειγµα µπορούµε να χρησιµοποιήσουµε ένα ή δύο πλάγια παραλληλόγραµµα αντί για έξι στην αρχή του προγράµµατος, ενώ από ένα µπορεί να χρησιµοποιηθεί και για κάθε µία από τις πιθανές περιπτώσεις αποτελέσµατος. Σχήµα 4: ιάγραµµα ϱοής για την επίλυση του τριωνύµου Στο παράδειγµα του τριωνύµου χρησιµοποιείται και ο ϱόµβος. Ο αλγό- ϱιθµος σε κάποιο σηµείο εξετάζει εάν η διακρίνουσα είναι ϑετική, αρνητική ή µηδέν και αποφασίζει εάν υπάρχουν και πόσες πραγµατικές ϱίζες. Σε κάθε µία από τις τρεις περιπτώσεις το πρόγραµµα ακολουθεί διαφορετικό δρόµο και κάνει διαφορετικούς υπολογισµούς. Είναι ένα χαρακτηριστικό παράδειγ- µα λογικής απόφασης. Στο ίδιο πρόγραµµα πρέπει να γίνει έλεγχος εάν το α είναι µηδέν ή όχι, γιατί σε αυτή την περίπτωση η λύση είναι πρωτοβάθµια. Πάλι δηλαδή έχουµε µία περίπτωση απόφασης µε δύο δρόµους αυτή τη ϕορά,

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 6 έναν που το πρόγραµµα ϑα συνεχίζει κανονικά στην επίλυση του τριωνύµου και έναν που ϑα τυπώνει το µήνυµα Η επίλυση ανάγεται πρωτοβάθµια και ϑα τερµατίζεται το πρόγραµµα. Το διάγραµµα ϱοής για το τριώνυµο ϕαίνεται στο σχήµα 4. Σχήµα 5: ιάγραµµα ϱοής για την εύρεση του µέγιστου τριών αριθµών Ας δούµε λίγα ακόµα ενδιαφέροντα διαγράµµατα ϱοής προγράµµατος. Στο σχήµα 5 ϕαίνεται ένα διάγραµµα ϱοής στο οποίο τρεις αριθµοί συγκρίνονται έτσι ώστε να ϐρεθεί ποιος από τους τρείς είναι ο µεγαλύτερος. ε µας ενδιαφέρει να διαπιστώσουµε ότι για παράδειγµα ο δεύτερος αριθµός είναι ο µεγαλύτερος, αλλά ποια τιµή έχει ο µεγαλύτερος από τους τρεις αριθµούς. ηλαδή, αν έχουµε σαν είσοδο τους αριθµούς 3,8,5 η απάντηση είναι 8. Το λογικό διάγραµµα ξεκινάει εισάγωντας τους τρεις αριθµούς, έστω A,B,C. Στη συνέχεια εξετάζουµε ποιος από τους δύο πρώτους (A και B) είναι ο µεγαλύτερος. Αν ο A είναι ο µεγαλύτερος, τότε αποκλείουµε την περίπτωση ο B να είναι ο µεγαλύτερος από τους τρεις. Ετσι συνεχίζουµε την αναζήτηση ανάµεσα στους A και C. Οµοια, αν ο B ήταν ο µεγαλύτερος, τότε ϑα αποκλείαµε την περίπτωση ο A να ήταν ο µεγαλύτερος από τους τρεις. Ετσι ϑα συνεχί- Ϲουµε την αναζήτηση ανάµεσα στους B και C. Η δεύτερη σύγκριση ανάµεσα στους δύο πιθανούς αριθµούς, αφού αποκλείστηκε ο ένας από τους τρεις, µας

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 7 ϕανερώνει το µέγιστο ο οποίος και τυπώνεται. Παρατηρείστε ότι το διάγραµ- µα ϱοής προγράµµατος επιστρέφει σωστό αποτέλεσµα στην περίπτωση που ο µεγαλύτερος αριθµός εµφανίζεται σε δύο ή και στις τρεις από τις µεταβλητές A,B,C. Ας δούµε γιατί : έστω A = B και A > C και ϕυσικά B > C. Η πρώτη σύγκριση ϑα µας οδηγήσει στο ϱόµβο B > C και στη συνέχεια ϑα τυπωθεί το B. ε µας πειράζει ότι το αποτέλεσµα τυπώθηκε από το B. Θα µπορούσε να είχε τυπωθεί και από το A αν είχαµε σχεδιάσει διαφορετικά το διάγραµµα. Σε κάθε περίπτωση όµως και ανεξάρτητα από το αν ϑα τυπωθεί το αποτέλεσµα από το A ή το B ο αριθµός που ϑα τυπωθεί ϑα έχει τη µέγιστη τιµή, την τιµή δηλαδή που αναζητούσαµε. Σηµειώνουµε πάλι ότι το διαγραµµα ϱοής ϑα ήταν διαφορετικό αν δε µας έννοιαζε να τυπωθεί η µέγιστη τιµή, αλλά µας ένοιαζε και από ποια ή ποιες απο τις A,B,C προήλθε αυτή η µέγιστη τιµή. Σχήµα 6: ιάγραµµα ϱοής για την εύρεση του παραγοντικού Στο σχήµα 6 παρουσιάζεται το διάγραµµα ϱοής προγράµµατος για τον υπολογισµό του παραγοντικού. Για να υπολογίσουµε το παραγοντικό του x ϑα πρέπει να υπολογίσουµε την παράσταση 1 2 3... x. Χρειαζόµαστε

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 8 δηλαδή µία µεταβλητή που ϑα ξεκινήσει από την τιµή 1, ϑα αυξάνεται σε κάθε ϐήµα κατά 1 και ϑα καταλήγει να έχει την τιµή x. Ας ονοµάσουµε τη µεταβλητή αυτή i. Σε κάθε ένα ϐήµα ϑα πρέπει µία άλλη µεταβλητή να πολλαπλασιάζει την τιµή που είχε στο προηγούµενο ϐήµα µε την τιµή της i. Ας την ονοµάσουµε fact. είτε στη µέση του σχήµατος 6 την αύξηση των µεταβλητών i και f act κατά 1 και i ϕορές αντίστοιχα. Παρατηρήστε στην αρχή του διαγράµµατος την αρχικοποίηση των µεταβλητών αυτών σε 1. Το i είναι προφανές γιατί πρέπει να αρχικοποιηθεί σε 1, αφού είπαµε ότι ϑέλουµε να υπολογίσουµε την παράσταση 1 2 3... x. Το fact πρέπει και αυτό να αρχικοποιηθεί σε 1, και ο λόγος είναι ότι ϑέλουµε να το αρχικοποιήσουµε στο ουδέτερο στοιχείο του πολλαπλασιασµού. Σκεφτείτε τι ϑα γινόταν αν το αρχικοποιούσαµε στο 0. Το fact ϑα είχε πάντοτε την τιµή 0, αφού µε ό,τι και να το πολλαπλασιάζαµε το αποτέλεσµα ϑα ήταν 0. Τώρα, σχεδόν έχουµε περιγράψει όλο το διάγραµµα εκτός από το ϱόµβο που συγκρίνει το i µε το x. Μετά την αύξηση της τιµής του fact, το i ελέγχεται για να διαπιστωθεί εάν έχουν γίνει όλες οι επαναλήψεις που απαιτούνται. Εάν έχουν γίνει, δηλαδή αν οι δύο µεταβλητές έχουν την ίδια τιµή, τότε ο υπολογισµός του παραγοντικού έχει τελειώσει και τυπώνουµε το αποτέλεσµα. Εάν όχι, οδηγούµε τον έλεγχο στο σηµείο που αυξάνεται το i κατά 1 και εκτελούµε ακόµα µία επανάληψη. Σχήµα 7: Ελεγχος ορθής εισόδου για το ΡΠ του παραγοντικού

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 9 Το διάγραµµα ϱοής προγράµµατος για τον υπολογισµό του παραγοντικού ϕαίνεται να λειτουργεί. Για να είµαστε όµως περισσότερο ορθοί ϑα πρέπει να ελέξουµε ότι η τιµή που δόθηκε από το χρήστη για τη µεταβλητή x είναι νόµιµη. Το παραγοντικό ορίζεται για αριθµούς µεγαλύτερους ή ίσους από το 0. Ετσι εάν από το χρήστη δοθεί αρνητικός αριθµός ϑα πρέπει να εµφανιστεί κάποιο κατάλληλο µήνυµα λάθους και να επιστρέψει ο έλεγχος στην εντολή που Ϲητά να δοθεί τιµή για το x. Ετσι, όσο ο χρήστης δίνει αρνητικές τιµές για το x ϑα του εµφανίζεται το µήνυµα λάθους και ϑα του Ϲητείται να δώσει εκ νέου τιµή. Το τµήµα του διαγράµµατος ϱοής που υλοποιεί την παραπάνω λειτουργία ϕαίνεται στο σχήµα 7. Σχήµα 8: Μετατροπή δεκαδικού αριθµού σε δυαδικό Ολα τώρα ϕαίνεται να λειτουργούν σωστά. Η µήπως όχι ; Αναφέραµε προηγουµένως ότι το παραγοντικό ορίζεται για αριθµούς µεγαλύτερους ίσους από το µηδέν. Εµείς στον συλλογισµό που κάναµε για το λογικό διάγραµµα δεν εξετάσαµε καθόλου τι γίνεται για x = 0 και µάλιστα αρχικοποιήσαµε την τιµή του fact σε ένα. Είναι σωστό αυτό που κάναµε ή πρέπει να διορθώουµε κάτι. Κατ αρχήν ας ϑυµηθούµε ότι το παραγοντικό του 0 είναι ίσο µε 1

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 10 (0!=1). Ας δούµε τι ϑα ϐγάλει το διάγραµµα ϱοής προγράµµατος αν δώσουµε στο x την τιµή 1. Το fact ϑα αρχικοποιηθεί σε 1, ϑα εκτελεστεί µία ϕορά η fact = fact i, χωρις να αλλάξει η τιµή του fact αφού το i ισούται µε 1 και δε ϑα γίνει άλλη επανάληψη αφού ο ϱόµβος ϑα οδηγήσει την εκτέλεση έξω από το ϐρόχο (το i ισούται µε x). Τώρα έχουµε ϐεβαιωθεί ότι όλα έχουν πάει καλά και µπορούµε να ϑεωρήσουµε ότι ολοκληρώθηκε το διάγραµµα ϱοής. Σχήµα 9: Άθροισµα περιττών αριθµών Παραθέτουµε ακόµα τρία ακόµα λογικά διαγράµµατα. Στο σχήµα 9 ϕαίνεται το άθροισµα των περιττών αριθµών µικρότερων ή ίσων από ένα δεδοµένο αριθµό. Στο σχήµα 8 ϕαίνεται ο τρόπος µετατροπής ενός δεκαδικού αριθµού σε δυαδικό, ενώ στο σχήµα 10 ο τρόπος υπολογισµού του µέσου όρου µίας σειράς αριθµών. Εχοντας µελετήσει τα λογικά διαγράµµατα των προηγούµενων παραδειγ- µάτων είµαστε σε ϑέση να αρχίσουµε την κωδικοποίηση. Σε ποια γλώσσα όµως ; Γιατί όχι στη C, αφού είναι ευρέως χρησιµοποιούµενη και αποτελεί τη ϐάση για πολλές από τις περισσότερο χρησιµοποιούµενες γλώσσες, ενώ αυτή

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΛΟΓΙΚΑ ΙΑΓΡΑΜΜΑΤΑ 11 Σχήµα 10: Μέσος όρος σειράς αριθµών και όσες γλώσσες έχουν προκύψει από αυτήν Ϲητούνται στην αγορά εργασίας. Ισως είναι λίγο νωρίς να µπούµε από τώρα στα ϐαθιά. Θα αναζητήσουµε τον κοινό παρονοµαστή όλων των γλωσσών προγραµµατισµού που ανήκουν στην κατηγορία των γλωσσών του δοµηµένου προγραµµατισµού (όσο αυτό ϐέβαια είναι δυνατό), και ϑα διδακτούµε αυτό. Σαν ϐάση, λοιπόν, ϑα χρησιµοποιήσουµε τη γλώσσα Python αλλά σκοπός µας δεν είναι να µάθουµε Python και να εµβαθύνουµε σε αυτή, αλλά να τη χρησιµοποιήσουµε ως µέσο για να µάθουµε αυτό που καλείται δοµηµένος προγραµµατισµός.