Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ΄ Λυκείου

Δημοσιεύτηκε από τον/την codebrakes στις

Ανάπτυξη Εφαρμογών σε
Προγραμματιστικό Περιβάλλον Γ΄ Λυκείου

Κεφάλαιο 1ο – Ανάλυση προβλήματος

1.1 Η έννοια του προβλήματος

Στην καθημερινότητα μας έχουμε ένα σύνολο από προβλήματα τα οποία θέλουμε να λύσουμε. Πλέον σε κάθε δημόσια υπηρεσία για να παραλάβουμε μια βεβαίωση υπάρχουν εφαρμογές όπου ο χρήστης εισάγει δεδομένα (όπως αριθμό ταυτότητας) και αυτή εκδίδει την κατάλληλη βεβαίωση.
Συνεπώς με τον όρο πρόβλημα αναφερόμαστε σε μια κατάσταση που απαιτεί λύση αλλά αυτή είτε δεν είναι άμεσα διαθέσιμη είτε δεν είναι εύκολη να βρεθεί. Οπότε χρειάζεται σκέψη και αναζήτηση νέων τρόπων για να αντιμετωπιστεί.

1.2 Κατανόηση του προβλήματος

Πριν προχωρήσουμε στην επίλυση ενός προβλήματος είναι σημαντικό να το έχουμε κατανοήσει του έτσι ώστε να εισάγουμε τα κατάλληλα δεδομένα για να λάβουμε το κατάλληλο αποτέλεσμα. Η κατανόηση ενός προβλήματος εξαρτάται σε μεγάλο βαθμό στον τρόπο που αυτό έχει διατυπωθεί. 

Υπάρχουν διάφοροι τρόποι για την κατανόηση ενός προβλήματος, αυτοί συνήθως εκφράζονται με τον γραπτό ή τον προφορικό λόγο. Σημαντικό σε κάθε πρόβλημα είναι η σαφή του διατύπωση έτσι ώστε να βρεθεί και η κατάλληλη λύση. Έστω οι δύο παρακάτω ερμηνείες ενός ζητήματος:

  1. Πρώτη ερμηνεία: Η Μπέλα και ο Μπλάκ είναι σκυλιά που είναι αδέρφια μεταξύ τους.
  2. Δεύτερη ερμηνεία: Η Μπέλα είναι σκύλος και ο Μπλάκ σκύλος.

Η πρώτη ερμηνεία είναι σαφής καθότι δηλώνει πως ότι η Μπέλα και ο Μπλάκ είναι ένας σκυλιά και ότι είναι αδέρφια. Στην δεύτερη περίπτωση η ερμηνεία δεν είναι σαφής καθότι δηλώνει απλά δύο καταστάσεις χωρίς να καταλήγουν σε κάποιο συμπέρασμα.

Η Μπέλα και ο Μπλάκ 😀

Σημαντικοί ορισμοί

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

1.3 Δομή του προβλήματος

Η κατανόηση ενός προβλήματος είναι απαραίτητη για να μπορέσουμε στη συνέχεια να το αποτυπώσουμε σωστά. Όταν καταγράφουμε τη δομή του, ξεκινάμε την ανάλυσή του σε μικρότερα και πιο απλά μέρη. Αυτή η διαδικασία συνεχίζεται μέχρι να φτάσουμε σε απλά προβλήματα που μπορούν να λυθούν εύκολα. Η δομή ενός προβλήματος αναφέρεται στα διάφορα μέρη που το αποτελούν και στον τρόπο που αυτά τα μέρη συνδέονται μεταξύ τους. Είναι ουσιαστικά τα κομμάτια του προβλήματος και πώς αυτά συνεργάζονται. Όσο διασπάμε ένα πρόβλημα σε μικρότερα προβλήματα τόσο πιο εύκολη είναι και η επίλυση του.

Ας δούμε ένα παράδειγμα προβλήματος. Έστω μια δημόσια υπηρεσία που εξυπηρετεί πολίτες για περιπτώσεις οχημάτων (τύπου μηχανολογικού). Θα υπάρχουν διάφορα τμήματα π.χ., ένα θα αφορά μια διαδικασία μεταβίβασης οχήματος, μια άλλη περίπτωση θα αφορά μια διαδικασία κλοπής οχήματος, άλλη μια θα αφορά μια διαδικασία κατάθεσης πινακίδων (λόγω ακινησίας) κλπ.. Για να φτιάξουμε λοιπόν μια τέτοια εφαρμογή που θα προσφέρει λύσεις μηχανογράφησης για όλες αυτές τις υπηρεσίες θα πρέπει να διαχωρίσουμε το πρόβλημα σε μικρότερα προβλήματα. Ακολουθεί ένα σχετικό διάγραμμα.

Παράδειγμα επίλυσης γενικού προβλήματος σε υποπροβλήματα σε δημόσια υπηρεσία

Σχήμα 1.1. Αντίστοιχο παράδειγμα επίλυσης γενικού προβλήματος στο σχολικό βιβλίο (σελίδα 11)

1.4 Καθορισμός Απαιτήσεων

Για να λύσουμε σωστά ένα πρόβλημα, πρέπει να καταλάβουμε με ακρίβεια τα δεδομένα που μας δίνει και τι ακριβώς ζητάει να βρούμε. Κάποιες φορές τα δεδομένα δεν είναι προφανή και χρειάζεται προσοχή για να τα εντοπίσουμε. Η διαδικασία αυτή απαιτεί συγκέντρωση και σκέψη. Δεν υπάρχει μια σταθερή μέθοδος για να βρούμε τα δεδομένα ή να ξεκαθαρίσουμε τα ζητούμενα. 

Πρέπει επίσης να είμαστε σαφείς σχετικά με τα ζητούμενα του προβλήματος. Αν δεν είναι κατανοητό τι ζητάει, πρέπει να κάνουμε ερωτήσεις, είτε στον δημιουργό του προβλήματος, είτε στον εαυτό μας, για να διευκρινίσουμε οποιεσδήποτε απορίες σχετικά με τον τρόπο παρουσίασης ή το εύρος των ζητούμενων.

Για λόγους αξιολόγησης της εκπαιδευτικής του πολιτικής, το Υπουργείο Παιδείας χρειάζεται να ενημερωθεί για τα πρόσφατα αποτελέσματα φοίτησης των μαθητών της χώρας. Ζήτησε λοιπόν μεταξύ άλλων, από την Υπηρεσία Πληροφορικής να παρουσιάσει και τα αποτελέσματα που είχαν οι μαθητές Γ’ τάξης της Τεχνολογικής Κατεύθυνσης των Ενιαίων Λυκείων στα μαθήματα ειδικότητας.

Παράδειγμα 3 (από την σελίδα 12 του σχολικού βιβλίου)

Το πρόβλημα που τέθηκε είναι να βρεθούν τα αποτελέσματα των μαθητών της Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης στα μαθήματα ειδικότητας. Η Υπηρεσία πληροφορικής του ΥΠΑΙΘΑ έπρεπε πρώτα να καταλάβει ποιο είναι το ζητούμενο καθότι δεν ήταν ξεκάθαρο από το σημείωμα του προϊστάμενου. Αν και δεν διευκρινίζεται η χρονική περίοδος, υποθέτουν ότι αφορούν την προηγούμενη σχολική χρονιά. Γνωρίζουμε ποια σχολεία προσφέρουν την Τεχνολογική Κατεύθυνση και ότι υπάρχουν τέσσερα μαθήματα ειδικότητας. Άρα, ζητούν τα αποτελέσματα από αυτά τα μαθήματα για όλους τους μαθητές της Γ’ τάξης αυτών των σχολείων. 

Το ερώτημα που προκύπτει είναι: Αρκεί να συγκεντρώσουν τους τελικούς βαθμούς των μαθητών από όλα τα σχολεία και για κάθε μάθημα;

Σε κάθε Λύκειο όλοι οι μαθητές της Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης διδάσκονται τα ίδια μαθήματα. Έτσι ότι ζητείται για το σύνολο των σχολείων, ζητείται καταρχήν για ένα σχολείο. Μπορούμε λοιπόν να μελετήσουμε το πρόβλημα για ένα σχολείο και μετά να το επεκτείνουμε για όλα τα Λύκεια της χώρας.

ed

Σχολείο: 9ο Λύκειο Θεσσαλονίκης
Τάξη Γ’ Τμήμα 2
Μάθημα: Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
α/α Ονοματεπώνυμο Τελικός Βαθμός
1 Μαϊκούσης Αθανάσιος 10
2 Μπουρνέλη Διονυσία 17
3 Μυλωνάς Αλέξανδρος 15

Πίνακας 1.1., του σχολικού βιβλίου (Σελ.23)

Η μελέτη επικεντρώνεται σε ένα σχολείο με 100 μαθητές της Γ’ Λυκείου, χωρισμένους σε τρία τμήματα. Οι βαθμολογίες των μαθητών έχουν ήδη καταχωρηθεί, και ο πίνακας δείχνει τις βαθμολογίες ενός τμήματος στο μάθημα «Ανάπτυξη Εφαρμογών». Συγκεντρώνοντας τις βαθμολογίες από όλα τα τμήματα, δημιουργείται μια συνολική λίστα για όλους τους μαθητές. Ωστόσο, προκύπτουν ερωτήματα: Πώς μπορεί κάποιος να βγάλει συμπεράσματα διαβάζοντας μια λίστα με 100 ονόματα; 

Για παράδειγμα, για να βρούμε πόσοι μαθητές περνάνε, χρειάζεται να μετρήσουμε όσους δεν περνάνε, κάτι που απαιτεί μελέτη όλης της λίστας. Το ίδιο θα πρέπει να γίνει και για όλα τα σχολεία!

Ένα επιπλέον ερώτημα που προκύπτει είναι αν μας ενδιαφέρει ποιοι μαθητές περνάνε το μάθημα ή απλώς πόσοι περνάνε και πόσοι κόβονται. Από το πρόβλημα, είναι σαφές ότι μας ενδιαφέρει το δεύτερο. Έτσι, το αποτέλεσμα για το μάθημα «Ανάπτυξη Εφαρμογών» σε ένα σχολείο θα μπορούσε να είναι ότι 92 μαθητές προάγονται και 8 απορρίπτονται. Για όλη τη χώρα, το τελικό αποτέλεσμα θα μπορούσε να είναι ότι από 5,809 μαθητές, 5,287 προάγονται και 522 απορρίπτονται στο συγκεκριμένο μάθημα. Οι αριθμοί που αφορούν τα μαθήματα της κατεύθυνσης είναι ακριβείς, αλλά δεν βοηθούν άμεσα στην κατανόηση της εικόνας. Είναι καλύτερο να εκφραστούν σε ποσοστά για πιο εύκολη κατανόηση.

Το να γνωρίζουμε μόνο πόσοι πέρασαν και πόσοι απέτυχαν δεν αρκεί, πρέπει να δούμε και τι ποσοστό αρίστευσε ή είχε χαμηλές βαθμολογίες. Έτσι, τα αποτελέσματα πρέπει να περιλαμβάνουν ποσοστά ανά κλίμακα βαθμολογίας, ώστε να έχουμε μια πιο ξεκάθαρη εικόνα της απόδοσης των μαθητών.

Χαρακτηρισμός επίδοσης στο μάθημα Βαθμός από Βαθμός έως Αριθός Μαθητών Ποσοστό Μαθητών %
Απορρίπτονται 0 9 522 9,0
Μέτρια 10 13 1211 20,8
Καλά 14 15 2120 36,5
Πολύ Καλά 16 17 1180 20,3
Άριστα 18 20 776 13,4
Σύνολο 5809 100

Πίνακας 1.2., του σχολικού βιβλίου (Σελ.24)

Ο πίνακας 1.2 στη Στατιστική ονομάζεται πίνακας συχνοτήτων, καθώς δείχνει πόσα άτομα (ή μονάδες) ανήκουν σε μια συγκεκριμένη ομάδα (απόλυτη συχνότητα) και το ποσοστό τους σε αυτή την ομάδα (σχετική συχνότητα). Επειδή τα αποτελέσματα θα δημοσιοποιηθούν, θα ήταν πιο χρήσιμο να παρουσιαστούν με ένα γράφημα. Έτσι, ο καθένας μπορεί να καταλάβει γρήγορα τις βασικές πληροφορίες χωρίς να χρειάζεται να απομνημονεύσει αριθμούς.

Η μέση τιμή της βαθμολογίας και η τυπική απόκλιση μπορούν να δείξουν γενικές τάσεις και πόσο οι βαθμολογίες αποκλίνουν από τη μέση τιμή. Για την ολοκλήρωση της ανάλυσης, η ίδια διαδικασία πρέπει να εφαρμοστεί και για τα άλλα τρία μαθήματα, αρχικά για ένα σχολείο και μετά για όλα τα σχολεία της χώρας, με δημιουργία αντίστοιχων πινάκων και γραφημάτων.

Η Υπηρεσία Πληροφορικής ολοκληρώνει την ανάλυση, θεωρώντας ότι έχει κατανοήσει πλήρως το πρόβλημα και τα ζητούμενα αποτελέσματα, τα οποία παρουσιάζονται τόσο αριθμητικά όσο και γραφικά.

Η μέση τιμή της βαθμολογίας και η τυπική απόκλιση μπορούν να δείξουν γενικές τάσεις και πόσο οι βαθμολογίες αποκλίνουν από τη μέση τιμή. Για την ολοκλήρωση της ανάλυσης, η ίδια διαδικασία πρέπει να εφαρμοστεί και για τα άλλα τρία μαθήματα, αρχικά για ένα σχολείο και μετά για όλα τα σχολεία της χώρας, με δημιουργία αντίστοιχων πινάκων και γραφημάτων. Η Υπηρεσία Πληροφορικής ολοκληρώνει την ανάλυση, θεωρώντας ότι έχει κατανοήσει πλήρως το πρόβλημα και τα ζητούμενα αποτελέσματα, τα οποία παρουσιάζονται τόσο αριθμητικά όσο και γραφικά.

Σχήμα 1.2., του σχολικού βιβλίου

Η ανάλυση του προβλήματος μπορεί να ολοκληρωθεί με τον υπολογισμό της μέσης βαθμολογίας και της τυπικής απόκλισης, που δείχνουν πόσο οι βαθμοί αποκλίνουν από τον μέσο όρο. Για τα υπόλοιπα τρία μαθήματα, πρέπει να γίνουν οι ίδιοι υπολογισμοί, ξεκινώντας από ένα σχολείο και επεκτείνοντας τα αποτελέσματα σε όλα τα σχολεία της χώρας, με κατάλληλους πίνακες και γραφήματα. 

Η Υπηρεσία Πληροφορικής θεωρεί ότι έχει πλήρως κατανοήσει το πρόβλημα. Το περιβάλλον και τα δεδομένα έχουν αποσαφηνιστεί, και τα αποτελέσματα παρουσιάζονται τόσο σε αριθμούς όσο και σε γραφήματα.

Συνοπτικά, τα τρία στάδια επίλυσης ενός προβλήματος είναι:

  1. Κατανόηση: Σωστή αποσαφήνιση των δεδομένων και ζητούμενων.
  2. Ανάλυση: Διάσπαση του προβλήματος σε μικρότερα, απλούστερα μέρη.
  3. Επίλυση: Εφαρμογή λύσεων στα επιμέρους προβλήματα.

Στάδια αντιμετώπισης προβλήματος

1.5 Κατηγορίες προβλημάτων

Τα προβλήματα με βάση τη δυνατότητα επίλυσής τους χωρίζονται σε τρεις κατηγορίες:

  1. Επιλύσιμα: Προβλήματα με γνωστή ή αναμενόμενη λύση.
  2. Ανοικτά: Προβλήματα χωρίς λύση μέχρι τώρα, αλλά με πιθανότητα να επιλυθούν στο μέλλον.
  3. Άλυτα: Προβλήματα που δεν έχουν λύση, όπως ο τετραγωνισμός του κύκλου, που έχει μόνο προσεγγιστική λύση.

Τα επιλύσιμα προβλήματα διακρίνονται σε τρεις κατηγορίες ανάλογα με το βαθμό δόμησης της λύσης τους:

  1. Δομημένα: Προβλήματα με γνωστή και αυτοματοποιημένη λύση (π.χ., δευτεροβάθμια εξίσωση).
  2. Ημιδομημένα: Προβλήματα με πολλές πιθανές λύσεις, όπου η ανθρώπινη επιλογή παίζει ρόλο (π.χ., επιλογή μεταφορικού μέσου).
  3. Αδόμητα: Προβλήματα χωρίς προκαθορισμένη λύση, βασισμένα στη διαίσθηση (π.χ., οργάνωση εφηβικού πάρτυ).

Τα προβλήματα έννοιας αλγορίθμου μπορούν να χωριστούν σε τρεις κατηγορίες ανάλογα με το είδος της λύσης που ζητούν:

  1. Απόφασης: Απαιτούν μια απάντηση τύπου “Ναι” ή “Όχι” (π.χ., αν ένας αριθμός είναι άρτιος).
  2. Υπολογιστικά: Χρειάζονται υπολογισμούς για να βρεθεί μια συγκεκριμένη τιμή (π.χ., ο υπολογισμός της περιμέτρου ενός κύκλου).
  3. Βελτιστοποίησης: Στόχος είναι το καλύτερο δυνατό αποτέλεσμα για τα δεδομένα που έχουμε (π.χ., εύρεση της πιο σύντομης διαδρομής σε ένα χάρτη).

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

2.1 Τι είναι αλγόριθμος 

Η θεωρία των αλγορίθμων έχει μακρά ιστορία, με ορισμένους αλγορίθμους, όπως τον αλγόριθμο του Ευκλείδη και το κόσκινο του Ερατοσθένη, να μετρούν χιλιάδες χρόνια. Σήμερα, η Θεωρία Αλγορίθμων είναι ένας πλούσιος τομέας με πολλές σύγχρονες εφαρμογές, ενώ οι περισσότεροι αλγόριθμοι έχουν αναπτυχθεί τα τελευταία 25 χρόνια, παράλληλα με την ανάπτυξη της Πληροφορικής. Ο όρος «αλγόριθμος» δηλώνει γενικά μεθόδους για την επίλυση προβλημάτων, ενώ πιο αυστηρά ορίζεται ως μια σειρά βημάτων για την επίτευξη μιας λύσης.

Ορισμός
Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.

Ένας αλγόριθμος πρέπει να πληροί τα εξής βασικά κριτήρια:

  1. Είσοδος: Δέχεται δεδομένα (καμία ή περισσότερες τιμές) για να τα επεξεργαστεί.
  2. Έξοδος: Παράγει τουλάχιστον ένα αποτέλεσμα.
  3. Καθοριστικότητα: Κάθε βήμα πρέπει να είναι σαφές και χωρίς αμφιβολία.
  4. Περατότητα: Ολοκληρώνεται μετά από συγκεκριμένα βήματα.
  5. Αποτελεσματικότητα: Οι εντολές του είναι απλές και εκτελέσιμες.

Η έννοια του αλγορίθμου είναι κεντρική στην Πληροφορική. Οι αλγόριθμοι μελετώνται από διαφορετικές οπτικές:

  1. Υλικό (hardware): Η ταχύτητα εκτέλεσης του αλγορίθμου εξαρτάται από τα χαρακτηριστικά του υπολογιστή, όπως η ταχύτητα της μνήμης και του επεξεργαστή (CPU).
  2. Γλώσσες προγραμματισμού: Η γλώσσα που χρησιμοποιείται επηρεάζει τη δομή και την ταχύτητα του αλγορίθμου. Χαμηλού επιπέδου γλώσσες, όπως η C, είναι γενικά ταχύτερες από γλώσσες υψηλού επιπέδου.
  3. Θεωρία (theoretical): Αναζητούμε αν υπάρχει αποδοτικός αλγόριθμος για την επίλυση ενός προβλήματος.
  4. Ανάλυση (analytical): Μελετάμε πόρους όπως μνήμη και χρόνος επεξεργασίας που απαιτούνται από τον αλγόριθμο.

Υπάρχουν διάφοροι τρόποι αναπαράστασης ενός αλγορίθμου:

  1. Ελεύθερο κείμενο: Αδόμητος τρόπος που μπορεί να μην είναι εκτελέσιμος.
  2. Διαγράμματα ροής: Γραφική αναπαράσταση, αλλά πλέον σπάνια στη χρήση.
  3. Φυσική γλώσσα βήμα προς βήμα: Χρειάζεται προσοχή για να είναι σαφής.
  4. Κωδικοποίηση: Χρήση ψευδογλώσσας ή γλώσσας προγραμματισμού για άμεση εκτέλεση του αλγορίθμου.

Στο βιβλίο, οι αλγόριθμοι παρουσιάζονται σε δομημένη ψευδογλώσσα και μπορούν εύκολα να μεταφραστούν σε άλλες γλώσσες. Παρακάτω παρουσιάζονται παραδείγματα αλγορίθμων, εξετάζοντας βασικές εντολές:

  1. Σειριακές εντολές: Απλή εκτέλεση εντολών με συγκεκριμένη σειρά.
  2. Αναθέσεις τιμών: Όπου γίνεται απόδοση συγκεκριμένης τιμής σε μεταβλητές.
  3. Επιλογή με βάση κριτήρια: Εντολές «αν» που εκτελούνται ανάλογα με συνθήκες.
  4. Επαναλήψεις: Εντολές που επαναλαμβάνονται μέχρι να ικανοποιηθεί ένα κριτήριο.
  5. Πολλαπλές επιλογές: Ενέργειες που εξαρτώνται από περισσότερα κριτήρια.
  6. Εμφωλευμένες περιπτώσεις: Συνδυασμός πολλών επιλογών ή επαναλήψεων.

Για κάθε παράδειγμα υπάρχει η εκφώνηση, τα βήματα και το διάγραμμα ροής. Ένα διάγραμμα ροής περιλαμβάνει γεωμετρικά σχήματα που αντιπροσωπεύουν συγκεκριμένες ενέργειες. Τα βασικά σχήματα είναι: 

  1. Έλλειψη: Αρχή και τέλος του αλγορίθμου.
  2. Ρόμβος: Ερώτηση με πολλαπλές επιλογές εξόδου.
  3. Ορθογώνιο: Εκτέλεση πράξεων.
  4. Πλάγιο παραλληλόγραμμο: Είσοδος ή έξοδος δεδομένων.
Τα σχήματα συνδέονται με βέλη που δείχνουν τη σειρά εκτέλεσης.

Μερικά απ’ τα στοιχεία που χρησιμοποιούνται σε ένα διάγραμμα ροής (Σελ.36 του σχολικού βιβλίου)

2.4.1 Δομή ακολουθίας

Η ακολουθιακή δομή εντολών χρησιμοποιείται για την επίλυση απλών προβλημάτων, όπου η σειρά εκτέλεσης των ενεργειών είναι δεδομένη. Ένα παράδειγμα είναι μια συνταγή μαγειρικής, όπου τα βήματα και οι ποσότητες είναι συγκεκριμένα και καθορισμένα. Ακολουθεί παράδειγμα με σειριακή εκτέλεση εντολών για απλό πρόβλημα.

Παράδειγμα 1: Να φτιάξετε σε ψευδοκώδικα ένα αποτέλεσμα που να διαβάζει δύο αριθμούς στο οποίο να υπολογίζει το άθροισμά τους και να το εκτυπώνει στην οθόνη

Αλγόριθμος Παράδειγμα_1

Διάβασε a

Διάβασε b

c ← a + b

Εκτύπωσε c

Τέλος Παράδειγμα_1

2.4.1 Δομή ακολουθίας

Ένας αλγόριθμος σε ψευδογλώσσα ξεκινά με τη λέξη «Αλγόριθμος» και τελειώνει με τη λέξη «Τέλος», συνοδευόμενες από το όνομα του αλγορίθμου. Η εισαγωγή δεδομένων γίνεται με την εντολή «Διάβασε», ενώ η πράξη εκχώρησης τιμής (όπως η προσθήκη δύο αριθμών) γίνεται με την εντολή «c ← a + b». Οι εντολές διαχωρίζονται από ονόματα και τιμές με διαφορετικά χρώματα για καλύτερη κατανόηση.

Η σειριακή εκτέλεση βημάτων δεν είναι επαρκής για όλα τα προβλήματα. Τα περισσότερα απαιτούν επιλογές με βάση κάποια κριτήρια. Για παράδειγμα, αν βρέχει, θα πάρουμε ομπρέλα, αλλιώς καπέλο. Η διαδικασία επιλογής βασίζεται σε μία συνθήκη, που είναι είτε αληθής είτε ψευδής, και καθορίζει ποια ενέργεια θα εκτελεστεί. Σε ένα παράδειγμα, εκτελείται μία ενέργεια αν η συνθήκη είναι αληθής, ενώ σε άλλο παράδειγμα, εκτελείται μία ενέργεια αν η συνθήκη είναι αληθής και μία άλλη αν είναι ψευδής.

Παράδειγμα 2: Να φτιάξετε σε ψευδοκώδικα ένα αποτέλεσμα που να διαβάζει έναν αριθμό και να εκτυπώνει την απόλυτη τιμή του.

Αλγόριθμος Παράδειγμα_2

Διάβασε a

Αν a > b Τότε a ← a*(-1)

Εκτύπωσε a

Τέλος Παράδειγμα_2

Παράδειγμα 3: Διάβασε δύο αριθμούς. Αν ο πρώτος αριθμός είναι μικρότερος από τον δεύτερο, υπολόγισε και εκτύπωσε το άθροισμά τους. Αλλιώς, υπολόγισε και εκτύπωσε το γινόμενό τους.

Αλγόριθμος Παράδειγμα_3

Διάβασε a,b

Αν a < b Τότε

   c ← a + b

Αλλιώς

   c ← a * b

Τέλος Αν

Εκτύπωσε c

Τέλος Παράδειγμα_3

Ένας αλγόριθμος σε ψευδογλώσσα ξεκινά με τη λέξη «Αλγόριθμος» και τελειώνει με τη λέξη «Τέλος», συνοδευόμενες από το όνομα του αλγορίθμου. Η εισαγωγή δεδομένων γίνεται με την εντολή «Διάβασε», ενώ η πράξη εκχώρησης τιμής (όπως η προσθήκη δύο αριθμών) γίνεται με την εντολή «c ← a + b». Οι εντολές διαχωρίζονται από ονόματα και τιμές με διαφορετικά χρώματα για καλύτερη κατανόηση.

Η σειριακή εκτέλεση βημάτων δεν είναι επαρκής για όλα τα προβλήματα. Τα περισσότερα απαιτούν επιλογές με βάση κάποια κριτήρια. Για παράδειγμα, αν βρέχει, θα πάρουμε ομπρέλα, αλλιώς καπέλο. Η διαδικασία επιλογής βασίζεται σε μία συνθήκη, που είναι είτε αληθής είτε ψευδής, και καθορίζει ποια ενέργεια θα εκτελεστεί. Σε ένα παράδειγμα, εκτελείται μία ενέργεια αν η συνθήκη είναι αληθής, ενώ σε άλλο παράδειγμα, εκτελείται μία ενέργεια αν η συνθήκη είναι αληθής και μία άλλη αν είναι ψευδής.

Αν συνθήκη Τότε

εντολή ή εντολές

αλλιώς

εντολή ή εντολές

2.4.3 Διαδικασίες πολλαπλών επιλογών

Οι διαδικασίες πολλαπλών επιλογών χρησιμοποιούνται όταν πρέπει να ληφθούν διαφορετικές αποφάσεις βασισμένες σε μια τιμή. Για παράδειγμα, αν κάθε γράμμα του αλφαβήτου αντιστοιχίζεται σε έναν αριθμό από 1 έως 24 για κωδικοποίηση, χρησιμοποιούμε πολλαπλές επιλογές για να καθορίσουμε τις ενέργειες ανάλογα με την τιμή του αριθμού.

Παράδειγμα 4: Διαβάστε έναν ακέραιο. Αν είναι 1, 2 ή 3, εκτυπώστε το αντίστοιχο γράμμα του αλφαβήτου (1 → Α, 2 → Β, 3 → Γ). Αλλιώς, εκτυπώστε «άγνωστος».

Αλγόριθμος Παράδειγμα_4

Διάβασε a

Αν a = 1 Τότε εκτύπωσε “A”

αλλιώς_αν a = 2 Τότε εκτύπωσε “Β”

αλλιώς_αν a = 3 Τότε εκτύπωσε “Γ”

αλλιώς_αν a = 2 Τότε εκτύπωσε “Β”

Αλλιώς εκτύπωσε "Άγνωστος"

   c ← a * b

Τέλος_αν

Τέλος Παράδειγμα_4

Παράδειγμα 5: Να φτιάξετε σε ψευδοκώδικα ένα αποτέλεσμα που να διαβάζει έναν ακέραιο που αντιστοιχεί σε ηλικία και εκτυπώνει το κατάλληλο μήνυμα ανάλογα με τα όρια που εντάσσεται:

  1. Αν 0-12: «Παιδί»
  2. Αν 13-19: «Έφηβος»
  3. Αν 20-64: «Ενήλικας»
  4. Αν 65+: «Ηλικιωμένος»

Αλγόριθμος Παράδειγμα_5

Διάβασε age

Επίλεξε age

Περίπτωση < 0

   Εμφάνισε “Είπαμε ηλικία ...”

Περίπτωση < 5

   Εμφάνισε “Μάλλον τα παραλές !!”

Περίπτωση < 60

   Εμφάνισε “Μπράβο!”

Περίπτωση < 100

   Εμφάνισε “Μπράβο!”

Περίπτωση αλλιώς

   Εμφάνισε “Κάλλιο αργά παρά ποτέ”

Τέλος_επιλογών

Τέλος Παράδειγμα_5

2.4.4 Εμφωλευμένες Διαδικασίες

Οι πολλαπλές επιλογές μπορούν να γίνουν με εμφωλευμένες δομές, όπου μία εντολή 

  1. “Αν…τότε” βρίσκεται μέσα σε άλλη.
  2. Αν μια συνθήκη ισχύει, εκτελείται η αντίστοιχη εντολή.
  3. Αν όχι, ελέγχεται η επόμενη συνθήκη.

Αυτή η λογική μπορεί να συνεχιστεί με πολλές “Αν…τότε” εντολές, η μία μέσα στην άλλη.

Παράδειγμα 6: Να φτιάξετε σε ψευδοκώδικα ένα αποτέλεσμα που να διαβάζει δύο αριθμούς για το ύψος και το βάρος που έχουν άτομα. Αν το βάρος είναι κάτω από 80, εκτυπώστε «ελαφρύς», αλλιώς «βαρύς». Αν το ύψος είναι κάτω από 1.70, τότε να εκτυπώνει «κοντός», αλλιώς «ψηλός».

Αλγόριθμος Παράδειγμα_6

Διάβασε βάρος, ύψος

Αν βάρος < 80 τότε

Αν ύψος < 1.70

τότε

εκτύπωσε "ελαφρύς-κοντός"

αλλιώς

εκτύπωσε "ελαφρύς-ψηλός"

Τέλος_αν

αλλιώς

Αν ύψος < 1.70 τότε

εκτύπωσε "βαρύς-κοντός"

αλλιώς

εκτύπωσε "βαρύς-ψηλός"

Τέλος_αν

Τέλος_αν

Τέλος Παράδειγμα_6

Οι λογικές πράξεις συνδυάζουν κριτήρια για λήψη αποφάσεων. Τρεις βασικές είναι:

  1. Ή: Αληθής αν μία τουλάχιστον συνθήκη ισχύει.
  2. Και: Αληθής μόνο αν όλες οι συνθήκες ισχύουν.
  3. Όχι: Αληθής όταν η συνθήκη είναι ψευδής.

Παράδειγμα:

  • «Αν βρέχει ή χιονίζει, θα πάρω ομπρέλα.»
  • «Αν έχει ήλιο και ζέστη, θα πάρω καπέλο.»
  • «Αν δεν έχει ήλιο, θα πάρω ομπρέλα.»
Πρόταση ΑΠρόταση ΒΑ ή ΒΑ και Βόχι Α
ΑληθήςΑληθήςΑληθήςΨευδήςΨευδής
ΑληθήςΨευδήςΑληθήςΨευδήςΨευδής
ΨευδήςΑληθήςΑληθήςΨευδήςΑληθής
ΨευδήςΨευδήςΨευδήςΨευδήςΑληθής

Οι λογικές πράξεις συνδυάζουν κριτήρια για λήψη αποφάσεων. Τρεις βασικές είναι:

  1. Ή: Αληθής αν μία τουλάχιστον συνθήκη ισχύει.
  2. Και: Αληθής μόνο αν όλες οι συνθήκες ισχύουν.
  3. Όχι: Αληθής όταν η συνθήκη είναι ψευδής.

Παράδειγμα:

  • «Αν βρέχει ή χιονίζει, θα πάρω ομπρέλα.»
  • «Αν έχει ήλιο και ζέστη, θα πάρω καπέλο.»
  • «Αν δεν έχει ήλιο, θα πάρω ομπρέλα.»

2.4.5 Δομή Επανάληψης: Επανάληψη στις Εντολές Προγραμματισμού

Τι είναι η επανάληψη;

Ορισμός
Επανάληψη ή βρόχος χρησιμοποιείται όταν ένα σύνολο εντολών πρέπει να εκτελεστεί πολλές φορές για δεδομένα που έχουν κάτι κοινό.

Παράδειγμα Εφαρμογής

Σενάριο 1: Θέλουμε να υπολογίσουνε τους τόκους για ένα σύνολο 50 τραπεζικών λογαριασμών. Σε καθέναν από τους τραπεζικούς λογαριασμούς ισχύει η παρακάτω συνθήκη:

Τόκος = Ποσό * Επιτόκιο

Συνεπώς, η ίδια εντολή εφαρμόζεται για όλους τους λογαριασμούς.

Σενάριο 2: Θέλουμε να βρούμε τον μέσο όρο τριών αριθμών. Ο μέσος όρος είναι το άθροισμα των τιμών δια το πλήθος αυτών, δηλαδή:

Έστω το σύνολο αριθμών 5, 10 και 15:

Ας υποθέσουμε ότι έχουμε 50 αριθμούς που θέλουμε τον μέσο όρο και πρέπει να το αποτυπώσουμε σε εντολές. Αντί για κάθε σύνολο να γράφουμε 50 φορές την κάθε εντολή, εφαρμόζουμε τις επαναλήψεις (βρόγχος επανάληψης).

2.4.5 Δομή Επανάληψης: Επανάληψη στις Εντολές Προγραμματισμού

ΓΙΑ…ΑΠΟ…ΜΕΧΡΙ: Όταν γνωρίζουμε εκ των προτέρων πόσες φορές θα επαναληφθεί η διαδικασία.

ΟΣΟ…ΕΠΑΝΑΛΑΒΕ: Εκτελείται όσο ισχύει μια συγκεκριμένη συνθήκη.

ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ…ΜΕΧΡΙΣ_ΟΤΟΥ: Η εντολή εκτελείται τουλάχιστον μία φορά και επαναλαμβάνεται μέχρι να ικανοποιηθεί μια συνθήκη.


Παράδειγμα 7: Γράψε έναν αλγόριθμο που εμφανίζει τους αριθμούς από το 1 έως το 100. Χρησιμοποίησε την επαναληπτική εντολή “Όσο…επανάλαβε”, ώστε η μεταβλητή i να αυξάνεται κατά 1 κάθε φορά, ξεκινώντας από το 1 και σταματώντας στο 100.

Επεξήγηση: Η εφαρμογή ζητάει ένα σύνολο αριθμών από 1 έως 100. Αυτό για να γίνει χρειάζεται αρχικά μια ένδειξη κάτι τέλος πάντων που θα καταγράφει σε ποιο αριθμό βρίσκεται ο αλγόριθμος σε κάθε επανάληψη. Αυτό λοιπόν συμβολίζει η μεταβλητή i όπου μπορεί να αποτυπωθεί ως:

i ← i + 1
Για να μπορέσει όμως η μεταβλητή i να αυξάνεται κάθε φορά με συν μια παραπάνω τιμή, θα πρέπει να υπάρχει μέσα σε μια δομή επανάληψης για να μπορέσει να χρησιμοποιηθεί ως σημείο αναφοράς. Αυτό θα έχει την παρακάτω δομή:

Όσο συνθήκη Επανέλαβε

εντολές

Τέλος_επανάληψης

Η λειτουργία της εντολής “Όσο…επανάλαβε” είναι απλή:

  1. Επαναλαμβάνει την εκτέλεση των εντολών που βρίσκονται μέσα στον βρόχο, όσο η συνθήκη ισχύει (είναι αληθής).
  2. Όταν η συνθήκη γίνει ψευδής, ο βρόχος σταματά και ο αλγόριθμος συνεχίζεται με την εντολή που βρίσκεται μετά το “Τέλος_επανάληψης”.

Έτσι, ο σχεδιασμός του αλγορίθμου είναι:

  1. Έλεγχος συνθήκης.
  2. Εκτέλεση των εντολών αν η συνθήκη είναι αληθής.
  3. Αύξηση της μεταβλητής.
  4. Επανάληψη μέχρι η συνθήκη να γίνει ψευδής.

Αυτός ο μηχανισμός διασφαλίζει ότι ο βρόχος εκτελείται μόνο όσο πρέπει. Συνεπώς το παράδειγμα 7 έχει ως εξής:

Αλγόριθμος Παράδειγμα_7

i ← 1

Όσο i ≤ 100 επανάλαβε

Εμφάνισε i

i ← i + 1

Τέλος_επανάληψης

Τέλος Παράδειγμα_7

Παράδειγμα 8: Να φτιάξετε έναν αλγόριθμο που διαβάζει διαδοχικά αριθμούς (άγνωστο πλήθος), χωρίς να γνωρίζει από πριν πόσοι θα είναι, και να εμφανίζει κάθε αριθμό που διαβάζει. Με πιο απλά λόγια:

Αλγόριθμος Διάβασε_Αριθμούς

  1. Διάβασε αριθμό
  2. Όσο αριθμός ≠ 0 επανάλαβε:
       –  Εμφάνισε αριθμό
       –  Διάβασε νέο αριθμό
  3. Τέλος
Συνεπώς το παράδειγμα 8 έχει ως εξής:

Αλγόριθμος Παράδειγμα_8

Διάβασε x

Όσο< x > 0 επανάλαβε

Εμφάνισε x

Διάβασε x

Τέλος_επανάληψης

Τέλος Παράδειγμα_8

Τελευταία ενημέρωση: 15/09/2024