Εφαρμογή βασικών αλγοριθμικών εννοιών για τη δημιουργία απλών προγραμμάτων

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

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

Δραστηριότητα 1α: Εκχώρηση τιμών σε μεταβλητές και εμφάνιση του αποτελέσματος

Διδακτικοί στόχοι

Στόχος της δραστηριότητας αυτής είναι να μάθετε:

§  Να χρησιμοποιείτε τις μεταβλητές σε ένα πρόγραμμα

§  Να εκχωρείτε τιμή σε μεταβλητή

§  Να χρησιμοποιείτε τον τύπο της συμβολοσειράς

§  Να εμφανίζετε τα αποτελέσματα ενός προγράμματος

Ζητούμενο

Να κατασκευαστεί ο ψευδοκώδικας του προγράμματος το οποίο εκχωρεί στις μεταβλητές ONOMA, EPWNYMO, HLIKIA, TAKSH, TMHMA τα προσωπικά σας στοιχεία και εμφανίζει τα αποτελέσματα το ένα κάτω από το άλλο στο παράθυρο των αποτελεσμάτων. Τέλος, αποθηκεύστε το πρόγραμμα με το όνομα Ask_1a.elp, εκτελέστε το και δείτε τα αποτελέσματα.

Υπόδειξη

Ι.          Για να κάνετε απλά εκχώρηση τιμής σε μια μεταβλητή, χρησιμοποιήστε την εντολή:

-Θέσε .. ίσο με ..

Στις μεταβλητές της δραστηριότητας θα γίνει εκχώρηση τιμής τύπου αλφαριθμητικής παράστασης (συμβολοσειρά). Για να ενημερώσουμε το πρόγραμμα ότι θα εισάγουμε μια τιμή με αυτό τον τύπο, αρκεί να προσθέσουμε στην αρχή και στο τέλος της τιμής τo χαρακτήρα των απλών εισαγωγικών (“) (quote), π.χ. “συμβολοσειρά”.

ΙΙ.        Για να εμφανίσετε τις μεταβλητές τη μια κάτω από την άλλη, χρησιμοποιήστε την εντολή:

-Εμφάνισε ( .. ) και άλλαξε γραμμή

Αλγόριθμος

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

Ø  Βάλε στις μεταβλητές ONOMA, EPWNYMO, HLIKIA, TAKSH, TMHMA τις αντίστοιχες τιμές.

Ø  Εμφάνισε τα περιεχόμενα των μεταβλητών ONOMA, EPWNYMO, HLIKIA, TAKSH, TMHMA, το ένα κάτω από το άλλο.

Δραστηριότητα 1β: Δομές επανάληψης

Διδακτικοί στόχοι

Στόχος της δραστηριότητας αυτής είναι να μάθετε:

§  Να χρησιμοποιείτε τη δομή επανάληψης

§  Να χρησιμοποιείτε τον τύπο δεδομένων των ακέραιων αριθμών

§  Να εφαρμόζετε τις αριθμητικές πράξεις

Ζητούμενο Α´

Να κατασκευαστεί ο ψευδοκώδικας του προγράμματος που υπολογίζει το τετράγωνο όλων των ακέραιων αριθμών από το 1 έως το 20 και εμφανίζει τα αποτελέσματα, το ένα κάτω από το άλλο. Αποθηκεύστε το πρόγραμμα με το όνομα Ask_1b_1.elp, εκτελέστε το και δείτε τα αποτελέσματα.

Υπόδειξη

Ι.          Για να επαναλάβετε την ίδια διαδοχή εντολών πολλές φορές μέσα σε ένα πρόγραμμα, χρησιμοποιήστε τη δομή:

-Για .. από .. μέχρι .. κάνε

(εντολή)

(εντολή)

......

(εντολή)

ΤέλοςΓια

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

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

-Θέσε X ίσο με a+3

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

-Θέσε Χ ίσο με το άθροισμα του a και του 3

ΙΙΙ.       Τέλος, για να εμφανίσετε τα αποτελέσματα το ένα κάτω από το άλλο χρησιμοποιήστε την εντολή:

-Εμφάνισε ( .. ) και άλλαξε γραμμή

Αλγόριθμος

Ο αλγόριθμος που περιγράφει διαδικασία υπολογισμού του ζητουμένου είναι:

Ø  Ξεκινώντας από το 1, επανάλαβε 20 φορές τα παρακάτω βήματα:

o   Βάλε στη μεταβλητή TETRAGWNO το αποτέλεσμα της πράξης J*J, όπου J ο μετρητής της επαναληπτικής διαδικασίας.

o   Εμφάνισε σε νέα γραμμή το περιεχόμενο της μεταβλητής TETRAGWNO.

 

Ζητούμενο Β´

Να κατασκευαστεί ο ψευδοκώδικας του προγράμματος που υπολογίζει το τετράγωνο όλων των μονών ακέραιων αριθμών από το 1 μέχρι το 20 και εμφανίζει τα αποτελέσματα, το ένα κάτω από το άλλο. Αποθηκεύστε το πρόγραμμα με το όνομα Ask_1b_2.elp, εκτελέστε το και δείτε τα αποτελέσματα.

Υπόδειξη

Βλ. Υπόδειξη του Ζητουμένου Α´.

Αλγόριθμος

Ο αλγόριθμος που περιγράφει διαδικασία υπολογισμού του ζητουμένου είναι:

Ø  Ξεκινώντας από το 1, επανάλαβε 20 φορές τα παρακάτω βήματα:

o   Βάλε στη μεταβλητή TETRAGWNO το αποτέλεσμα της πράξης J*J, όπου J ο μετρητής της επαναληπτικής διαδικασίας.

o   Εμφάνισε σε νέα γραμμή το περιεχόμενο της μεταβλητής TETRAGWNO.

o   Αύξησε το μετρητή J κατά 1.

 

Ζητούμενο Γ´

Να κατασκευαστεί ο ψευδοκώδικας του προγράμματος που υπολογίζει το τετράγωνο όλων των  ζυγών ακέραιων αριθμών από το 1 μέχρι το 20 και εμφανίζει τα αποτελέσματα, το ένα κάτω από το άλλο. Αποθηκεύστε το πρόγραμμα με το όνομα Ask_1b_3.elp, εκτελέστε το και δείτε τα αποτελέσματα.

Υπόδειξη

Βλ. Υπόδειξη του Ζητουμένου Α´.

Αλγόριθμος

Ο αλγόριθμος που περιγράφει διαδικασία υπολογισμού του ζητουμένου είναι:

Ø  Ξεκινώντας από το 1, επανάλαβε 20 φορές τα παρακάτω βήματα:

o   Αύξησε το J κατά 1, όπου J ο μετρητής της επαναληπτικής διαδικασίας.

o   Βάλε στη μεταβλητή TETRAGWNO το αποτέλεσμα της πράξης J*J.

o   Εμφάνισε σε νέα γραμμή το περιεχόμενο της μεταβλητής TETRAGWNO.

Δραστηριότητα 1γ: Πίνακες – Εισαγωγή και ανάκτηση τιμών των στοιχείων

Διδακτικοί στόχοι

Στόχος της δραστηριότητας αυτής είναι να μάθετε:

§  Να χρησιμοποιείτε έναν πίνακα

§  Να διαχειρίζεστε (εκχώρηση-ανάκτηση τιμής) τα στοιχεία ενός πίνακα

§  Να σαρώνετε σειριακά τα στοιχεία ενός πίνακα

Ζητούμενο

Να κατασκευαστεί ο ψευδοκώδικας του προγράμματος που δημιουργεί έναν κενό πίνακα, με το όνομα PINAKAS, 20 στοιχείων, και στη συνέχεια αναθέτει στα στοιχεία του πίνακα αυτού τα τετράγωνα των ακέραιων αριθμών από 1 μέχρι 20. Τέλος, να γίνεται η εμφάνιση των τιμών όλων των στοιχείων του πίνακα, η μια κάτω από την άλλη. Αποθηκεύστε το πρόγραμμα με το όνομα Ask_1c.elp, εκτελέστε το και δείτε τα αποτελέσματα.

Υπόδειξη

Ι.          Για να δημιουργήσετε έναν κενό πίνακα χρησιμοποιήστε την εντολή:

-Δήλωση πίνακα .. με αριθμό στοιχείων ..

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

ΙΙ.        Για να αναφερθούμε στο x-οστό στοιχείο ενός πίνακα εισάγουμε ΟΝΟΜΑ_ΠΙΝΑΚΑ[x]. Την αναφορά αυτή τη χρησιμοποιούμε είτε για να εκχωρήσουμε μια τιμή στο συγκεκριμένο στοιχείο του πίνακα, είτε για να ανακτήσουμε την τιμή του.

Π.χ. Έστω ο πίνακας PIN ο οποίος περιέχει 5 στοιχεία.

Μπορούμε να αναθέσουμε την τιμή 45 στο δεύτερο στοιχείο του ως εξής:

-Θέσε PIN[2] ίσο με 45,

είτε να ανακτήσουμε (με τη βοήθεια μιας μεταβλητής) την τιμή του τρίτου στοιχείου του ως εξής:

-Θέσε METABLHTH  ίσο με PIN[2]

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

Αλγόριθμος

Ο αλγόριθμος που περιγράφει τη ζητούμενη διαδικασία είναι:

Ø  Δημιούργησε έναν κενό πίνακα, με το όνομα PINAKAS, 20 στοιχείων.

Ø  Ξεκινώντας από το 1, επανάλαβε 20 φορές τα παρακάτω βήματα:

o   Βάλε στη μεταβλητή TETRAGWNO το αποτέλεσμα της πράξης J*J, όπου J ο μετρητής της επαναληπτικής διαδικασίας.

o   Βάλε στο J-οστό στοιχείο του πίνακα PINAKAS το περιεχόμενο της μεταβλητής TETRAGWNO.

Ø  Ξεκινώντας από το 1, επανάλαβε 20 φορές τα παρακάτω βήματα:

o   Εμφάνισε σε νέα γραμμή το K-οστό στοιχείο του πίνακα PINAKAS, όπου K ο μετρητής της επαναληπτικής διαδικασίας.

Δραστηριότητα 1δ: Εμφωλευμένες εντολές – Δομές επιλογής – Είσοδος δεδομένων

Διδακτικοί στόχοι

Στόχος της δραστηριότητας αυτής είναι να μάθετε:

§  Να χρησιμοποιείτε τις εμφωλευμένες δομές

§  Να χρησιμοποιείτε τις λογικές συνθήκες και τις δομές επιλογής (απόφασης)

§  Να εμφανίζετε τα δεδομένα, διαχωρισμένα με κάποιο χαρακτήρα, στην ίδια γραμμή

§  Να εισάγετε δεδομένα σε ένα πρόγραμμα κατά την εκτέλεσή του

Ζητούμενο Α´

Να κατασκευαστεί ο ψευδοκώδικας του προγράμματος το οποίο βρίσκει και εμφανίζει σε μια γραμμή (διαχωρίζοντας με «,») όλους τους ακέραιους αριθμούς μεταξύ 20 και 55 που είναι πολλαπλάσια του τρία. Στη συνέχεια, αποθηκεύστε το πρόγραμμα ως Ask_1d_1.elp και εκτελέστε το για να δείτε τα αποτελέσματα.

Υπόδειξη

Ι.          Κάθε λογική συνθήκη επιστρέφει (έχει ως αποτέλεσμα) δύο δυνατές τιμές: Αληθής (True ή 1) ή Ψευδής (False ή 0). Μια λογική συνθήκη μπορεί να είναι είτε μια παράσταση στην οποία γίνεται σύγκριση μεταξύ δύο τιμών ή μεταβλητών με τη βοήθεια ενός συγκριτικού τελεστή, ή μια μεταβλητή λογικού τύπου (Boolean). Οι συγκριτικοί τελεστές είναι:

Ισότητας (=), ανισότητας (<>), μικρότερου (<), μικρότερου ή ίσου (<=), μεγαλύτερου (>), μεγαλύτερου ή ίσου (>=).

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

                                 Var1 <> Var2                          (αληθής όταν τα Var1 και Var2

                                                                                 δεν έχουν την ίδια τιμή)

                                 “internet” <= “my internet”                                       (ψευδής)

                                 “internet” <= “m”                                                      (ψευδής)

                                 2+1-2*1 < 3                                                               (αληθής)

ΙΙ.        Για να εμφανίσουμε τα αποτελέσματα σε μια γραμμή και όχι το ένα κάτω από το άλλο, χρησιμοποιούμε την εντολή:

-Εμφάνισε ( .. )

Το αποτέλεσμα της πολλαπλής χρήσης της εντολής αυτής είναι μια συνεχόμενη ακολουθία χαρακτήρων στην οποία δε διακρίνονται τα αποτελέσματα.

Π.χ. Το αποτέλεσμα της εκτέλεσης του ψευδοκώδικα:

-Εμφάνισε ( ”324” )

-Εμφάνισε ( ”56” )

-Εμφάνισε ( ”67” )

-Εμφάνισε ( ”105” )

είναι: «3245667105»

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

-Εμφάνισε ( “324”, “ ” )

-Εμφάνισε ( “56”, “ ” )

-Εμφάνισε ( “67” )

-Εμφάνισε ( “ ” )

-Εμφάνισε ( “105” )

Το αποτέλεσμα της εκτέλεσης θα είναι: «324 56 67 105».

Αλγόριθμος

Ο αλγόριθμος που περιγράφει τη ζητούμενη διαδικασία είναι:

Ø  Βάλε στη μεταβλητή K την τιμή μηδέν (αρχικοποίηση μεταβλητής).

Ø  Δημιούργησε έναν κενό πίνακα, με το όνομα PINAKAS, 35 (= 55-20) στοιχείων.

Ø  Ξεκινώντας από το 20, επανάλαβε 35 φορές τα παρακάτω βήματα:

o   Βάλε στη μεταβλητή YPOLOIPO το υπόλοιπο της διαίρεσης J:3, όπου J ο μετρητής της επαναληπτικής διαδικασίας.

o   Εξέτασε το περιεχόμενο της μεταβλητής YPOLOIPO.

q  αν το YPOLOIPO είναι ίσο με μηδέν (δηλαδή αν η διαίρεση του προηγούμενου βήματος ήταν τέλεια), τότε:

i.               Αύξησε τη μεταβλητή K κατά 1.

ii.             Βάλε στο K-οστό στοιχείο του πίνακα PINAKAS το περιεχόμενο της μεταβλητής J.

Ø  Ξεκινώντας από το 1, επανάλαβε K φορές τα παρακάτω βήματα:

o   Εμφάνισε το F-οστό στοιχείο του πίνακα PINAKAS, όπου F ο μετρητής της επαναληπτικής διαδικασίας

o    Εξέτασε τη συνθήκη F< K

q  αν η συνθήκη είναι Αληθής τότε:

i.               Εμφάνισε τους χαρακτήρες κόμμα+κενό (διαχωριστική συμβολοσειρά).

 

 

 


Ζητούμενο Β´

Να τροποποιηθεί ο ψευδοκώδικας του Ζητουμένου Α´, έτσι ώστε το πρόγραμμα να γίνει πιο δυναμικό: να γίνεται η εύρεση των πολλαπλάσιων ενός τυχαίου αριθμού Χ, τα οποία είναι μεταξύ δύο οποιωνδήποτε ακέραιων αριθμών Α και Β (με Α>Β). Τέλος, αποθηκεύστε το τροποποιημένο πρόγραμμα ως Ask_1d_2.elp. Εκτελέστε το και δείτε τα αποτελέσματα.

Υπόδειξη

Ι.          Βλ. Υπόδειξη Ζητουμένου Α´.

ΙΙ.        Για να εισάγουμε τιμές στις μεταβλητές ενός προγράμματος κατά τη διάρκεια της εκτέλεσης, χρησιμοποιούμε την εντολή:

-Διάβασε ..

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

Αλγόριθμος

Ο αλγόριθμος που περιγράφει τη ζητούμενη διαδικασία είναι:

Ø  Διάβασε τις μεταβλητές Α, Β, Χ.

Ø  Βάλε στη μεταβλητή K το μηδέν (αρχικοποίηση μεταβλητής).

Ø  Δημιούργησε έναν κενό πίνακα, με το όνομα PINAKΑS, Β-Α στοιχείων.

Ø  Ξεκινώντας από το Α, επανάλαβε Β-Α φορές τα παρακάτω βήματα:

o   Βάλε στη μεταβλητή YPOLOIPO το υπόλοιπο της διαίρεσης J:X, όπου J ο μετρητής της επαναληπτικής διαδικασίας.

o   Εξέτασε το περιεχόμενο της μεταβλητής YPOLOIPO.

q  αν το YPOLOIPO είναι ίσο με μηδέν (δηλαδή αν η διαίρεση του προηγούμενου βήματος ήταν τέλεια), τότε:

i.               Αύξησε τη μεταβλητή K κατά 1.

ii.             Βάλε στο K-οστό στοιχείο του πίνακα PINAKAS το περιεχόμενο της μεταβλητής J.

Ø  Ξεκινώντας από το 1, επανάλαβε K φορές τα παρακάτω βήματα:

o   Εμφάνισε το F-οστό στοιχείο του πίνακα PINAKΑS, όπου F ο μετρητής της επαναληπτικής διαδικασίας.

o    Εξέτασε τη συνθήκη F < K

q  αν η συνθήκη είναι Αληθής τότε:

i.               εμφάνισε τους χαρακτήρες κόμμα+κενό (διαχωριστική συμβολοσειρά).