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

Page 1

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ σε ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ γ΄ λυκείου Επιµέλεια: ΚΑΤΕΡΙΝΑ ΜΑΝΩΛΗ


ΠΕΡΙΕΧΟΜΕΝΑ Κεφάλαιο 1ο – Ανάλυση Προβλήματος __________________________________________ 1 Ερωτήσεις και Προβλήματα_____________________________________________________ 8 Σχολικό Βιβλίο: Κεφάλαιο 1ο

Κεφάλαιο 2ο – Βασικές Έννοιες Αλγορίθμων ____________________________________ 11 Ερωτήσεις και Προβλήματα____________________________________________________ 22 Σχολικό Βιβλίο: Κεφάλαιο 2ο (έως σελ.30) Κεφάλαιο 7ο

Κεφάλαιο 3ο – Δομή Ακολουθίας ______________________________________________ 26 Ερωτήσεις και Προβλήματα____________________________________________________ 28 Σχολικό Βιβλίο: Κεφάλαιο 2ο (§2.4.1)

Κεφάλαιο 4ο – Δομή Επιλογής ________________________________________________ 31 Λυμένα Παραδείγματα ________________________________________________________ 36 Ερωτήσεις και Προβλήματα____________________________________________________ 41 Σχολικό Βιβλίο: Κεφάλαιο 2ο (σελ 32 έως 39) Κεφάλαιο 8ο (έως σελ.173)

Κεφάλαιο 5ο – Δομή Επανάληψης _____________________________________________ 55 Λυμένα Παραδείγματα - Εφαρμογές _____________________________________________ 64 Ερωτήσεις και Προβλήματα____________________________________________________ 80 Σχολικό Βιβλίο : Κεφάλαιο 2ο ( σελ. 39 έως 48) Κεφάλαιο 8ο (σελ.173 έως 180)

Κεφάλαιο 6ο – Εισαγωγή στον Προγραμματισμό ________________________________ 105 Ερωτήσεις και Προβλήματα___________________________________________________ 116 Σχολικό Βιβλίο : Κεφάλαιο 6ο

Κεφάλαιο 7ο – Βασικά Στοιχεία Προγραμματισμού______________________________ 117 Σχολικό Βιβλίο : Κεφάλαιο 7ο

Κεφάλαιο 8ο – Δομές Δεδομένων I – Πίνακες ___________________________________ 122 Εφαρμογές στους μονοδιάστατους πίνακες _______________________________________ 138 Εφαρμογές στους δισδιάστατους πίνακες ________________________________________ 149 Ερωτήσεις και Προβλήματα___________________________________________________ 152 Σχολικό Βιβλίο : Κεφάλαιο 3ο Κεφάλαιο 9ο


Κεφάλαιο 9ο – Δομές Δεδομένων II – Στοίβα – Ουρά _____________________________171 Ερωτήσεις και Προβλήματα ___________________________________________________173 Σχολικό Βιβλίο : Κεφάλαιο 3ο (§3.4 - §3.5)

Κεφάλαιο 10ο – Υποπρογράμματα _____________________________________________175 Λυμένα Παραδείγματα _______________________________________________________181 Ερωτήσεις και Προβλήματα ___________________________________________________190 Σχολικό Βιβλίο : Κεφάλαιο 10

ΕΞΕΤΑΣΤΕΑ ΎΛΗ (ΣΧΟΛΙΚΟ ΒΙΒΛΙΟ) : κεφ. 1ο, κεφ. 2ο (εκτός παράγραφος 2.2 και Δομή Επίλεξε), κεφ. 3ο (έως και παράγραφο 3.7), κεφ. 6ο (εκτός παράγραφοι 6.5, 6.6), κεφ. 7ο, κεφ. 8ο (εκτός παράγραφος 8.1.2), κεφ. 9ο, κεφ. 10ο (έως και παράγραφο 10.5)


Κεφ άλ αιο 1o Αν άλυσ η Προ βλήμ ατ ος 1. Τι ονομάζουμε πρόβλημα; Με τον όρο πρόβλημα εννοείται μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. Παραδείγματα: α) Πρόβλημα καθημερινότητας για τους κατοίκους των μεγαλουπόλεων είναι φυσικά το κυκλοφοριακό και το συγκοινωνιακό. β) Πρόβλημα είναι η λύση ενός σταυρόλεξου στις διακοπές μας. γ) Ένα σύνθετο πρόβλημα και η αποκωδικοποίηση του ανθρώπινου γονιδιώματος (DNA), το οποίο έχει φθάσει μετά από προσπάθειες πολλών ετών στη λύση του. δ) Η συμπλήρωση του μηχανογραφικού δελτίου είναι ένα σύνθετο πρόβλημα που αντιμετωπίζουν οι μαθητές στο τέλος της Γ’ Λυκείου.

2. Τι ονομάζουμε επίλυση ενός προβλήματος; Η επίλυση ενός προβλήματος είναι η διαδικασία μέσω της οποίας βρίσκουμε το ζητούμενο, δηλαδή το σημείο στο οποίο πρέπει να φτάσουμε για να βγούμε από την «προβληματική» κατάσταση στην οποία βρισκόμαστε.

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


2

Ανάπτυξη Εφαρμογών Σε Προγραμματιστικό Περιβάλλον μουσική, τι μουσική θα βάλουμε (ελληνική, ξένη, rock); Πότε θα γίνει; Ποιους θα καλέσουμε; Πόσο θα κοστίσει; Που θα γίνει; Αν απαντήσουμε στα παραπάνω ερωτήματα το πρόβλημα μπορεί να διαμορφωθεί ως εξής: Θέλω να οργανώσω ένα πάρτι με μουσική rock από στερεοφωνικό που θα μου δανείσει ο ξάδερφος μου, στο οποίο θα καλέσω όλους τους συμμαθητές μου από το σχολείο και μερικούς ακόμα φίλους. Το πάρτι θα γίνει στο σπίτι μου το πρώτο Σάββατο του Μαΐου. 3. Ερμηνεία απ’ αυτόν που καλείται ν’ αντιμετωπίσει το πρόβλημα. Είναι φανερό ότι στα πρόβλημα των στοιβαγμένων εγγράφων, αν δοθεί σαν πρόβλημα η έλλειψη χώρου και όχι η διακίνηση των εγγράφων, υπάρχει πέρα από την μη κατανόηση του προβλήματος και το πρόβλημα του λανθασμένου μηνύματος που στέλνουμε στο λύτη του προβλήματος. Ο λύτης του προβλήματος θα πρέπει από την αρχή να δει τις αιτίες του προβλήματος και είναι δυνατόν να χρειαστεί να τις αναδιατυπώσει προκειμένου να ορίσει με σαφήνεια το πρόβλημα προτού οδηγηθεί στη λύση του.

4. Τι εννοούμε με τους όρους δεδομένα, πληροφορία και επεξεργασία δεδομένων;  Δεδομένα: είναι οποιαδήποτε στοιχεία μπορούν να γίνουν αντιληπτά από ένα παρατηρητή, με μία από τις πέντε αισθήσεις του. Τα δεδομένα είναι τα στοιχεία πάνω στα οποία μπορούμε να στηριχτούμε για να λύσουμε ένα πρόβλημα.  Πληροφορία: αποτελεί οποιοδήποτε γνωσιακό στοιχείο προέρχεται από επεξεργασία δεδομένων.  Επεξεργασία δεδομένων: είναι η διαδικασία κατά την οποία ένας ‘μηχανισμός’ δέχεται δεδομένα, τα επεξεργάζεται σύμφωνα με έναν προκαθορισμένο τρόπο και αποδίδει πληροφορίες.

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

6. Με ποιους τρόπους μπορούμε να αναπαραστήσουμε την ανάλυση ενός προβλήματος; 1. Φραστικά Παράδειγμα: Ας υποθέσουμε ότι τίθεται σαν πρόβλημα το θέμα αντιμετώπισης των ναρκωτικών. Η αντιμετώπιση του προβλήματος θα γίνει απλούστερη αν μπορέσουμε να αναλύσουμε το πρόβλημα σε άλλα απλούστερα. Το αρχικό πρόβλημα είναι “Αντιμετώπιση ναρκωτικών”. Αυτό θα μπορούσε να αναλυθεί καταρχήν σε τρία υποθέματα, σε τρία επιμέρους προβλήματα: (1) Πρόληψη (2) Θεραπεία (3) Επανένταξη Τα τρία αυτά επιμέρους προβλήματα πιθανό να μην είναι ιδιαίτερα λεπτομερή έτσι ώστε να επιτρέπουν την εύκολη αντιμετώπιση τους. Πρέπει λοιπόν κάθε ένα από αυτά να αναλυθεί σε ακόμα απλούστερα. Έτσι λοιπόν το επί μέρους πρόβλημα (1) Πρόληψη, μπορεί να αναλυθεί σε: (1.1) Σωστή ενημέρωση των πολιτών σχετικά με το θέμα.


Ανάλυση Προβλήματος

3

(1.2) Υποβοήθηση προς την κατεύθυνση ανάπτυξης ενδιαφερόντων, οραμάτων και στόχων εκ μέρους των εφήβων. (1.3) Υποστήριξη ομάδων αυξημένης θεωρητικά “προδιάθεσης”. Όμοια το επί μέρους πρόβλημα (2) Θεραπεία, μπορεί να αναλυθεί ως εξής: (2.1) Δημιουργία νέων κρατικών θεραπευτικών κοινοτήτων. (2.2) Ενίσχυση υπαρχόντων θεραπευτικών κοινοτήτων. (2.3) Δημιουργία κατάλληλων τμημάτων στα δημόσια νοσοκομεία. Παρόμοια μπορεί να αναλυθεί και το επιμέρους πρόβλημα (3) Επανένταξη. Στη συνέχεια και το πρόβλημα (1.1) μπορεί να αναλυθεί σε απλούστερα: (1.1.1) Ενημέρωση των εφήβων μέσα από κατάλληλα προγράμματα στα σχολεία. (1.1.2) Ενημέρωση των γονέων με προγράμματα του Δήμου. (1.1.3) Ενημέρωση κάθε άλλου ενδιαφερόμενου πολίτη με προγράμματα του Υπουργείου Υγείας. Αν η ανάλυση του αρχικού προβλήματος θεωρείται επαρκής, η διάσπαση των επιμέρους προβλημάτων σε άλλα απλούστερα μπορεί να τερματιστεί. 2. Διαγραμματική αναπαράσταση Είναι μία συχνά χρησιμοποιούμενη γραφική απεικόνιση της δομής. Σύμφωνα με αυτή:  Το αρχικό πρόβλημα αναπαρίσταται από ένα ορθογώνιο παραλληλόγραμμο.  Κάθε ένα από τα απλούστερα προβλήματα στα οποία αναλύεται ένα οποιοδήποτε πρόβλημα, αναπαρίσταται επίσης από ένα ορθογώνιο παραλληλόγραμμο.  Τα παραλληλόγραμμα που αντιστοιχούν στα απλούστερα προβλήματα στα οποία αναλύεται ένα οποιοδήποτε πρόβλημα, σχηματίζονται ένα επίπεδο χαμηλότερα. Έτσι σε κάθε κατώτερο επίπεδο, δημιουργείται η γραφική αναπαράσταση των προβλημάτων στα οποία αναλύονται τα προβλήματα του αμέσως ψηλότερου επιπέδου. Η διαγραμματική αναπαράσταση προσφέρει μια απτή απεικόνιση της δομής του προβλήματος. Η δημιουργία του σχετικού διαγράμματος βοηθάει τόσο στην καλύτερη κατανόηση του ίδιου του προβλήματος, όσο και στη σχεδίαση της λύσης του. Η διαγραμματική αναπαράσταση του προηγούμενος παραδείγματος φαίνεται στο σχήμα:


4

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

7. Τι περιλαμβάνει ο καθορισμός των απαιτήσεων ενός προβλήματος; Ο καθορισμός των απαιτήσεων του προβλήματος περιλαμβάνει τον προσδιορισμό των δεδομένων που περιέχει το πρόβλημα καθώς και την λεπτομερή καταγραφή των ζητούμενων που αναμένονται σαν αποτέλεσμα της επίλυσης του προβλήματος. Δεδομένα ονομάζονται τα στοιχεία που θεωρούνται γνωστά και απαραίτητα για να βρεθεί το ζητούμενο. Τα δεδομένα μπορούν να έχουν διαφορετικές μορφές, όπως: αριθμητικά, φυσικά, οικονομικά, λογικά κτλ. , ανάλογα με το είδος του προβλήματος, ενώ πρέπει να έχουν τρεις ιδιότητες: ορθότητα, πληρότητα και σαφήνεια. Παράδειγμα: Ας θεωρήσουμε το πρόβλημα της ταξινόμησης μιας σειράς αριθμών. Στο πρόβλημα αυτό μας δίνονται κάποιοι αριθμοί και μας ζητείται να ταξινομηθούν σε αύξουσα ή φθίνουσα σειρά. Αν οι αριθμοί που μας δίνονται είναι οι: 3, 5, 11, 12, 6, -3, 17, α Τότε τα δεδομένα είναι εσφαλμένα (εφόσον το α δεν είναι αριθμός) και δεν μπορούμε να επιλύσουμε το πρόβλημα. Ζητούμενο είναι αυτό που αναζητάμε, στο σημείο το οποίο πρέπει να φτάσουμε για να βγούμε από την «προβληματική» κατάσταση στην οποία βρισκόμαστε.

8. Ποια είναι τα στάδια αντιμετώπισης ενός προβλήματος; Τα στάδια αντιμετώπισης ενός προβλήματος είναι τρία:  Κατανόηση: Απαιτείται η σωστή και πλήρης αποσαφήνιση των δεδομένων και των ζητούμενων του προβλήματος.  Ανάλυση: Ανάλυση είναι η διαδοχική τμηματοποίηση ενός προβλήματος σε απλούστερα προβλήματα, μέχρις ότου τα επιμέρους προβλήματα που θα προκύψουν να είναι εύκολο να επιλυθούν.  Επίλυση: η λύση του προβλήματος υλοποιείτε μέσω της επίλυσης σύνθεσης των επιμέρους προβλημάτων.

και της

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

9. Σύμφωνα με ποιους παράγοντες μπορούμε να κατηγοριοποιήσουμε τα προβλήματα; Τα διάφορα προβλήματα μπορούμε να τα κατηγοριοποιήσουμε σύμφωνα με:  Τη δυνατότητα επίλυσης τους Τα προβλήματα που ανήκουν στην κατηγορία αυτή διακρίνονται σε:


8

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

Ερωτήσεις και προβλήματα για απάντηση. 1. Να χαρακτηρίσετε κάθε

μια από τις παρακάτω προτάσεις ως σωστή (Σ) η λανθασμένη (Λ).

1. Επιλύσιμο είναι ένα πρόβλημα για το οποίο ξέρουμε ότι έχει λύση, αλλά αυτή δεν έχει 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.

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


Κ ε φ άλ αι ο 2 o Β ασικές Έννο ιες Αλ γορίθ μω ν 1. Τι είναι αλγόριθμός Ορισμός: Αλγόριθμός είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Κάθε αλγόριθμός απαιτείται να ικανοποιεί τα ακόλουθα κριτήρια:  Είσοδος: Είναι το σύνολο των τιμών που δέχεται ο αλγόριθμός ως δεδομένα για την επίλυση του προβλήματος. Υπάρχει περίπτωση η είσοδος να είναι το κενό, όταν ο αλγόριθμός επεξεργάζεται δεδομένα που είτε τα παράγει ο ίδιος είτε αποτελούν γνωστές τιμές προσδιορισμένες από την διατύπωση του ίδιου του προβλήματος.  Έξοδος: Είναι το σύνολο των τιμών (δεν μπορεί να είναι το κενό) που δίνει ο αλγόριθμός ως αποτέλεσμα.  Καθοριστικότητα: Οι εντολές ενός αλγόριθμου πρέπει να είναι επακριβώς και αυστηρώς καθορισμένες, έτσι που η εκτέλεση τους να γίνεται χωρίς καμία αμφιβολία και να μην απαιτούνται πρόσθετες επεξηγήσεις.  Περατότητα: Ο αλγόριθμος να τερματίζει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του. Μια διαδικασία η οποία δεν ολοκληρώνεται μετά από συγκεκριμένο αριθμό βημάτων δεν αποτελεί αλγόριθμό, αλλά απλώς μια υπολογιστική διαδικασία.  Αποτελεσματικότητα: Κάθε μεμονωμένη εντολή ενός αλγορίθμου πρέπει να είναι απλή. Αυτό σημαίνει ότι μια εντολή δεν αρκεί να έχει ορισθεί αλλά πρέπει να είναι και εκτελέσιμη. Παράδειγμα! Έστω ότι πρέπει να δώσουμε οδηγίες σε κάποιους φίλους μας για να έρθουν στον χώρο στον οποίο κάνουμε το πάρτι μας. (Οι οδηγίες είναι ο αλγόριθμός). Θα πρέπει οι οδηγίες τις οποίες θα δώσουμε να είναι σαφείς και να επιλύουν το πρόβλημα σε κάθε περίπτωση. Οι προϋποθέσεις τις οποίες πρέπει να ικανοποιεί ο αλγόριθμός μας είναι: Είσοδος: Είσοδος στην περίπτωση αυτή θα είναι τα δεδομένα που θα χρησιμοποιήσουμε για να βρούμε το χώρο ( ονόματα δρόμων, πλατείες, πάρκα κτλ.) Έξοδος: Έξοδος (αποτέλεσμα) στην περίπτωση αυτή θα μπορούσε να είναι το χτύπημα του κουδουνιού της πόρτας, στο σημείο όπου γίνεται το πάρτι. Καθοριστικότητα: Καθοριστικότητα στην περίπτωση αυτή θα μπορούσε να είναι η μη σημείωση στις οδηγίες του ονόματος της περιοχής στην οποία γίνεται το πάρτι, αφού δρόμοι με το ίδιο όνομα μπορεί να υπάρχουν και σε άλλες περιοχές. Περατότητα: Στο παράδειγμα μας ο αλγόριθμός θα είχε πρόβλημα περατότητας αν είχε οδηγία που να έλεγε «κάνε το γύρο της πλατείας», ενώ θα ήταν σωστό αν έλεγε « Κάνε το γύρο της πλατείας μέχρι να βρεις το δρόμο ΑΑΑ και στρίψε δεξιά». Αποτελεσματικότητα: Ο αλγόριθμός μας θα είχε πρόβλημα αν είχε οδηγία που έλεγε «Πάρε το λεωφορείο 118» και δεν υπήρχε τέτοια συγκοινωνία.


Βασικές Έννοιες Αλγορίθμων Τ_Ρ(χ) ΗΜ(χ) ΣΥΝ(χ) ΕΦ(χ) ΛΟΓ(χ) Ε(χ) Α_Τ(χ) Α_Μ(χ)

19

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

Παράδειγμα: Η εντολή Ψ  Α_Μ(64,5) έχει ως αποτέλεσμα: Ψ  64. Η εντολή Ψ  Α_Τ(-64,5) έχει ως αποτέλεσμα: Ψ  64,5 Η εντολή Ψ  Τ_Ρ(64) έχει ως αποτέλεσμα: Ψ  8. Αν Α_Μ(Χ) = Χ τότε ο αριθμός Χ είναι ακέραιος, αλλιώς είναι πραγματικός .  Η συνάρτηση Τ_Ρ(Χ) εκτελείται µόνο όταν Χ >= 0.  Σημειώνεται ότι σε παράδειγμα του τετραδίου του μαθητή χρησιμοποιείται το σύμβολο Ρίζα(χ) σαν σύμβολο της τετραγωνικής ρίζας. Παράδειγμα: Η μαθηματική παράσταση x 2   ( y  3)[ z  | x  10 |] , θα εκφραστεί αλγοριθμικά ως εξής: x^2 + HM(y-3)*(z + A_T(x – 10)).

11. Εντολές Α. Η εντολή εκχώρησης Η εντολή εκχώρησης είναι μια εντολή που μας επιτρέπει να καταχωρήσουμε μια τιμή σε μια μεταβλητή. Κατά την εκχώρηση η μεταβλητή χάνει την τιμή που είχε πριν. Συντάσσεται με το σύμβολο  και διαβάζεται με το ρήμα τοποθέτησε, καταχώρησε ή εκχώρησε. Αριστερά του συμβόλου υπάρχει μόνο μια μεταβλητή ενώ δεξιά μπορεί να υπάρχει αριθμός, μεταβλητή, συμβολοσειρά ή μια ολοκληρωμένη αριθμητική/ λογική παράσταση. Σύνταξη Μεταβλητή  Έκφραση Λειτουργία Γίνονται οι πράξεις στην έκφραση και το αποτέλεσμα αποδίδεται, μεταβιβάζεται στη μεταβλητή. Προσοχή!!! Όλες οι μεταβλητές που βρίσκονται στο δεξιό μέρος της εντολής εκχώρησης πρέπει να έχουν τιμή πριν από την εντολή εκχώρησης. Καθώς επίσης η μεταβλητή και η έκφραση πρέπει να είναι ιδίου τύπου. Παραδείγματα 1. α5 βα γ  ‘Κώστας’ δα+β xcv α>β

καταχώρησε το 5 στη μεταβλητη α. καταχώρησε το περιέχόμενο της μεραβλητης α στη μεταβλητή β. καταχώρησε τη λέξη Κώστας στη μεταβλητή γ. καταχώρησε το άθροισμα των περιεχομένων των μεταβλητών α και β στη μεταβλητή δ. καταχώρησε το αποτέλεσμα της σύγκρισης στη μεταβλητή xcv.


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

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

2. Απλή Δομή Επιλογής Υπάρχει περίπτωση στις εντολές2 να μην περιέχεται καμία εντολή, οπότε έχουμε την απλή δομή επιλογής.  Η σύνταξη είναι: αν λογική συνθήκη τότε εντολές1 τέλος_αν  Λειτουργία Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται μεταξύ των λέξεων τότε και τέλος_αν και η εκτέλεση του αλγορίθμου συνεχίζεται με την εντολή που ακολουθεί τη δεσμευμένη λέξη τέλος_αν. Σε αντίθετη περίπτωση οι εντολές που βρίσκονται μεταξύ των


36

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

Λυμένα Παραδείγματα 1. Έστω ο ακόλουθος αλγόριθμος: Αλγόριθμος Παράδειγμα διάβασε χ ψχ*χ αν ψ > χ τότε ψ  ψ – 10 τέλος_αν αν ψ > χ τότε ψψ–5 αλλιώς ψψ+5 τέλος_αν γράψε ψ Τέλος Παράδειγμα Να βρείτε τι θα εμφανίσει στην έξοδο για τις τρεις διαφορετικές εκτελέσεις του αλγορίθμου με εισόδους: α) 2 β) 5 γ) 0.5. Να κατασκευάσετε το διάγραμμα ροής. Λύση α) Για είσοδο 2 έχουμε: χ ψ Συνθήκη 2 4 4>2 (Α) -6 -6>2 (Ψ) -1 Στην οθόνη εμφανίζεται -1

γ) Για είσοδο 0,5 έχουμε: χ 0,5

ψ 0,25

Συνθήκη

0,25>0,5 (Ψ) 0,25>0,5 (Ψ) 5,25 Στην οθόνη εμφανίζεται 5,25

β) Για είσοδο 5 έχουμε: χ 5

ψ 25

Συνθήκη

25>5 (Α) 15 15>5(Α) 10 Στην οθόνη εμφανίζεται 10


Δομή Επιλογής

37

2. Να

σχηματίσετε τον πίνακα τιμών του παρακάτω αλγορίθμου, αν οι τιμές που δίνει ο χρήστης είναι 17 και 4 αντίστοιχα. Τι θα εκτυπωθεί; Να κατασκευάσετε το διάγραμμα ροής. Αλγόριθμος Άσκηση Διάβασε α, γ αα+1 β  α mod γ αν β >= 1 και β <= 3 τότε γγ+2 αν γ <= α τότε αα+3 αλλιώς α  α div 2 τέλος_αν εκτύπωσε α, β, γ τέλος_αν αα+β ββ+γ εκτύπωσε α, β, γ Τέλος Άσκηση

Λύση α 17 18

β

γ 4

Συνθήκη

2 2 >= 1 και 2 <= 3 (Α) 6 6 <= 18 (Α) 21 23 8 Θα εκτυπωθούν οι τιμές 21, 2, 6 και 23, 8, 6


38

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

3. Δίνεται

ο παρακάτω αλγόριθμος διατυπωμένος σε φυσική γλώσσα κατά βήματα. Να διατυπωθεί σε κωδικοποίηση. Είσοδος: Έξοδος: Βήμα 1: Βήμα 2: Βήμα 3: Βήμα 4:

Ακέραιοι αριθμοί χ, ψ Ακέραιος αριθμός ψ Τοποθέτησε στο χ την απόλυτη τιμή της διαφοράς του από το ψ. Θέσε ψ = χ div ψ Αν χ > ψ τότε θέσε ψ = χ + ψ div2 Τύπωσε ψ

Λύση ***Παρατήρηση: Σε μια τέτοια άσκηση είναι προτιμότερο σαν ενδιάμεσο στάδιο να πραγματοποιείται το διάγραμμα ροής. Αλγόριθμος Άσκηση Δεδομένα // χ, ψ// χ  Α_Τ(ψ – χ) ψ  χ div ψ Αν χ > ψ τότε ψ  χ + ψ div 2 τέλος_αν Εκτύπωσε ψ Τέλος Άσκηση

4. Να γραφεί αλγόριθμος που να: α) διαβάζει έναν ακέραιο αριθμό β) εμφανίζει το μήνυμα ¨άρτιος¨, αν είναι άρτιος ή το μήνυμα ¨περιττός¨, αν είναι περιττός. Λύση Αλγόριθμος άρτιος_περιττός !εισαγωγή δεδομένων Διάβασε αριθμός ! έλεγχος και εμφάνιση αποτελεσμάτων Αν αριθμός mod 2= 0 τότε Γράψε ¨άρτιος¨ Αλλιώς Γράψε ¨περιττός¨ Τέλος_αν Τέλος άρτιος_περιττός


Δομή Επιλογής

39

5. Να γραφεί αλγόριθμος ο οποίος θα διαβάζει τρεις αριθμούς και θα εμφανίζει το μέγιστο. Λύση Αλγόριθμος μέγιστο ! εισαγωγή δεδομένων Διάβασε α, β, γ ! υπολογισμός και εμφάνιση μέγιστου αριθμού max  α Αν β > max τότε max  β Τέλος_αν Αν γ > max τότε max  γ Τέλος_αν Γράψε ¨Ο μέγιστος είναι ο:¨, max Τέλος μέγιστο

6. Ένας πωλητής αμείβεται με μισθό και μπόνους (ποσοστό επί των πωλήσεων) για κάθε μήνα εργασίας του. Ο μισθός του είναι 1000€ και τα ποσοστά του κλιμακώνονται ως εξής: Για πωλήσεις από 3000 έως 6000€ λαμβάνεται το 5% του ποσού που πούλησε. Για πωλήσεις από 6000 έως 10000€ λαμβάνεται 6% του ποσού που πούλησε, ενώ αν οι πωλήσεις υπερβούν τα 10000€ λαμβάνει το 7% αυτού του ποσού. Να γράψετε αλγόριθμο ο οποίος να: α) διαβάζει τις πωλήσεις ενός μήνα ενός πωλητή, β) υπολογίζει και εμφανίζει το ποσό της μηνιαίας αμοιβής του. Λύση Κλιμακωτή Χρέωση Αλγόριθμος Αμοιβή ! εισαγωγή δεδομένων Διάβασε πωλήσεις ! υπολογισμός ποσοστών Αν πωλήσεις <= 3000 τότε ποσοστά  0 Αλλιώς_αν πωλήσεις <=6000 τότε ποσοστά  3000*0+(πωλήσεις – 3000)*5/100 Αλλιώς_αν πωλήσεις <=10000 τότε ποσοστά  3000*0+3000*5/100 + (πωλήσεις – 6000)*6/100 Αλλιώς ποσοστά  3000*0+ 3000*5/100 + 4000*6/100 + & (πωλήσεις – 10000)*7/100 Τέλος_αν αμοιβή  1000 + ποσοστά Γράψε αμοιβή Τέλος Αμοιβή Κανονική Χρέωση Αλγόριθμος Αμοιβή ! εισαγωγή δεδομένων Διάβασε πωλήσεις ! υπολογισμός ποσοστών Αν πωλήσεις <= 3000 τότε


40

Ανάπτυξη Εφαρμογών Σε Προγραμματιστικό Περιβάλλον ποσοστά  0 Αλλιώς_αν πωλήσεις <=6000 τότε ποσοστά  πωλήσεις*5/100 Αλλιώς_αν πωλήσεις <=10000 τότε ποσοστά πωλήσεις*6/100 Αλλιώς ποσοστά πωλήσεις*7/100 Τέλος_αν αμοιβή  1000 + ποσοστά Γράψε αμοιβή Τέλος Αμοιβή

   

Στην κλιμακωτή χρέωση ο υπολογισμός του μπόνους δεν γίνεται με το ίδιο ποσοστό για το σύνολο των πωλήσεων. Στην κανονική χρέωση ο υπολογισμός του μπόνους γίνεται με το ίδιο ποσοστό για το σύνολο των πωλήσεων. Ο χαρακτήρας & χρησιμοποιείται στις περιπτώσεις όπου μία εντολή συνεχίζεται και στην επόμενη γραμμή σαν πρώτος χαρακτήρας αυτής της γραμμής. Ο χαρακτήρας ! χρησιμοποιείται στις περιπτώσεις που θεωρούμε ότι πρέπει να διατυπώσουμε κάποια σχόλια – επεξήγηση για το αντίστοιχο τμήμα κώδικα. Τα σχόλια δεν είναι εκτελέσιμος κώδικας και αγνοούνται από τον μεταγλωττιστή.


Δομή Επανάληψης

91

35. Να αναπαραστήσετε τον αλγόριθμο σε ψευδογλώσσα στα παρακάτω διαγράμματα ροής. α.

36. Δίνεται

β.

το παρακάτω διάγραμμα ροής. Να δοθεί η εκφώνηση του προβλήματος που εκφράζεται με το συγκεκριμένο διάγραμμα ροής. Να παρουσιαστεί η ψευδογλώσσα που αντιστοιχεί στο παρακάτω διάγραμμα ροής.


Δομή Επανάληψης

97

78. Ένας συλλέκτης γραμματοσήμων επισκέπτεται στο διαδίκτυο το αγαπημένο του ηλεκτρονικό κατάστημα φιλοτελισμού προκειμένου να αγοράσει γραμματόσημα. Προτίθεται να ξοδέψει μέχρι 1500 ευρώ. Να αναπτύξετε αλγόριθμο ο οποίος: α. Για κάθε γραμματόσημο, να διαβάζει την τιμή και την προέλευσή του (ελληνικό/ξένο) και να επιτρέπει την αγορά του, εφόσον η τιμή του δεν υπερβαίνει το διαθέσιμο υπόλοιπο χρημάτων. Διαφορετικά να τερματίζει τυπώνοντας το μήνυμα «ΤΕΛΟΣ ΑΓΟΡΩΝ». ΣΗΜΕΙΩΣΗ: Δεν απαιτείται έλεγχος εγκυρότητας για τα δεδομένα εισόδου. β. Να τυπώνει: 1. Το συνολικό ποσό που ξόδεψε ο συλλέκτης. 2. Το πλήθος των ελληνικών και το πλήθος των ξένων γραμματοσήμων που αγόρασε. 3. Το ποσό που περίσσεψε, εφόσον υπάρχει, διαφορετικά το μήνυμα «ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ».

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

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

81. Ένας

μαθητής που τελείωσε το γυμνάσιο με άριστα ζήτησε από τους γονείς του να του αγοράσουν ένα υπολογιστικό σύστημα αξίας 1.400 €. Οι γονείς του δήλωσαν ότι μπορούν να του διαθέσουν σταδιακά το ποσό, δίνοντας του κάθε εβδομάδα ποσό διπλάσιο από την προηγούμενη, αρχίζοντας από την πρώτη εβδομάδα με 30 €. Να αναπτύξετε αλγόριθμο ο οποίος: α. να υπολογίζει και να εμφανίζει μετά από πόσες εβδομάδες θα μπορέσει ο μαθητής να αγοράσει το υπολογιστικό σύστημα, β. να υπολογίζει, να ελέγχει και να εμφανίζει πιθανό περίσσευμα χρημάτων.

82. Κάποιο

σχολείο έχει 150 μαθητές. Να αναπτύξετε αλγόριθμο ο οποίος θα δέχεται την τελική βαθμολογία κάθε μαθητή και θα εμφανίζει το πλήθος αυτών που αρίστευσαν [18-20], το πλήθος αυτών που πήραν χαρακτηρισμό λίαν καλώς [15-18), το πλήθος αυτών που πήραν το χαρακτηρισμό καλώς [10-15) και το πλήθος αυτών που δεν προβιβάστηκαν [1-10). Θα πρέπει ο κάθε καινούριος βαθμός να ελέγχεται για το αν είναι μέσα σε αποδεκτά όρια (εικοσαβάθμια κλίμακα 1-20) και αν δεν είναι να ζητείται και πάλι από τον χρήστη μετά από ένα διευκρινιστικό μήνυμα.

83. Ένας πελάτης μιας τράπεζας, καταθέτει στην τράπεζα κάποιο ποσό χρημάτων. Η τράπεζα δίνει κυμαινόμενο επιτόκιο ανάλογα με την τιμή που είχε ο πληθωρισμός στο τέλος του χρόνου. Υλοποιήστε αλγόριθμο ο οποίος θα δέχεται σαν είσοδο το αρχικό ποσό του καταθέτη και τα χρόνια που θα μείνουν τα χρήματα στην τράπεζα, και θα υπολογίζει τους συνολικούς τόκους που θα πάρει ο πελάτης. Θεωρήστε ότι εφέτος το επιτόκιο είναι 5% και κάθε χρόνο μειώνεται κατά 0.22% μέχρι το επιτόκιο να πέσει κάτω από το 0.15% οπότε και σταθεροποιείται.


Δομή Επανάληψης

103

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

103.

Ένας πολίτης προκειμένου να κάνει ανακαίνιση στο σπίτι του αποφάσισε να πάρει δάνειο από κάποια τράπεζα. Η τράπεζα του ανακοίνωσε το νέο της πρόγραμμα δανείων που είναι το εξής:  Η πρώτη δόση είναι 100 €, ενώ κάθε εξάμηνο αυξάνεται κατά 50 €, μέχρι να φτάσει το ποσό των 500 €. (Η δόση δε μπορεί να είναι μεγαλύτερη των 500 €) Σημειώνεται ότι οι δόσεις καταβάλλονται κάθε μήνα.  Με τη συμπλήρωση κάθε χρόνου από τη σύναψη του δανείου το υπολειπόμενο ποσό τοκίζεται με επιτόκιο 10%. Κατά τη σύναψη του δανείου τοκίζεται το αρχικό ποσό. Να αναπτύξετε αλγόριθμο που θα διαβάζει το ποσό που σκέφτεται να δανειστεί ο πελάτης της τράπεζας και θα εμφανίζει σε πόσους μήνες θα αποπληρώσει το δάνειο.

104.

Ένα πάρκινγκ διαθέτει 120 θέσεις και χρεώνει κλιμακωτά τη στάθμευση σε αυτές σύμφωνα με τον παρακάτω πίνακα: Ώρες στάθμευσης Κόστος (€) Λιγότερες από 3 2,5 Από 3 έως λιγότερες από 6 1,5 Από 6 έως λιγότερες από 9 1 Για τις επιπλέον ώρες το κόστος είναι 10€ για όλες τις ώρες Για παράδειγμα, αν ένα αυτοκίνητο έμεινε 4 ώρες θα πληρώσει 8€, ενώ αν έμεινε 7 ώρες θα πληρώσει 11.5€, ενώ αν διέμεινε 11 ώρες θα πληρώσει 22.5€. Να γράψετε αλγόριθμο ο οποίος: α. για κάθε αυτοκίνητο που στάθμευσε στο πάρκινγκ θα διαβάζει τον αριθμό κυκλοφορίας του και τη διάρκεια στάθμευσης σε ώρες, την οποία θα δέχεται εφόσον είναι μεγαλύτερη από το 0. β. θα υπολογίζει το πόσό που πρέπει να πληρώσει ο κάτοχός του. γ. θα εμφανίζει τον αριθμό κυκλοφορίας και το ποσό που αναλογεί. δ. θα εμφανίζει τις συνολικές εισπράξεις του πάρκινγκ. ε. αν κάθε αυτοκίνητο στάθμευε στο πάρκινγκ για 3 ώρες, να εμφανίζεται μήνυμα σχετικά με το αν τα έσοδα του θα ήταν περισσότερα, λιγότερα ή ίσα με τις πραγματικές εισπράξεις που πραγματοποιήθηκαν. Σημείωση: ο αριθμός των ωρών είναι ακέραιος.

105.

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

Αριθμός επιτηρητών 1 2 3


112 

Ανάπτυξη Εφαρμογών Σε Προγραμματιστικό Περιβάλλον Ευκολότερη διόρθωση και συντήρηση.

24. Πηγαίο πρόγραμμα (source)   

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

25. Λάθη στο πηγαίο πρόγραμμα Τα λάθη σε ένα πρόγραμμα διακρίνονται σε λογικά και συντακτικά.  Λογικά λάθη.  Οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου. {πχ ΜΟχ+ψ / 3 (ήθελε παρενθέσεις) …}  Εντοπίζονται παρά μόνο κατά την εκτέλεση του προγράμματος.  Είναι τα πλέον σοβαρά και δύσκολα στην διόρθωση.  Συντακτικά λάθη.  Οφείλονται σε αναγραμματισμούς γραμμάτων εντολών, παράληψη δήλωσης δεδομένων κλπ. {πχ Γραεψ αντί για Γράψε}  Εντοπίζονται από τον μεταγλωττιστή ή τον διερμηνευτή  Πρέπει να διορθωθούν ώστε να δημιουργηθεί το εκτελέσιμο πρόγραμμα.

26. Συντάκτης 

Ο συντάκτης είναι ουσιαστικά ένας μικρός επεξεργαστής κειμένου. (Σαν το Word - Wordpad κλπ.)

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

27. Μεταγλωττιστής 

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


164

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

Γενικές ασκήσεις στους πίνακες

68. Να φτιάξετε πρόγραμμα το οποίο: Να διαβάζει τα ονόματα 20 εταιρειών και να τα καταχωρεί σε ένα μονοδιάστατο πίνακα. α. Να διαβάζει τις μηνιαίες εισπράξεις κάθε μιας από τις παραπάνω εταιρείες που πραγματοποίησε κατά την διάρκεια του περασμένου έτους και να τις καταχωρεί σε ένα πίνακα δύο διαστάσεων. β. Να βρίσκει και να εμφανίζει τις συνολικές εισπράξεις κάθε εταιρείας για όλο το χρόνο. γ. Να βρίσκει και να τυπώνει το όνομα της εταιρείας και τον μήνα όπου η μέγιστη μηνιαία είσπραξη ξεπέρασε το ποσό των 20.000 ευρώ. δ. Να εμφανίζει τον μήνα για τον οποίο είχαν συνολικά οι εταιρείες τις περισσότερες εισπράξεις. Κάθε είσπραξη δεν πρέπει να είναι λιγότερη των 10.000 ευρώ αλλά ούτε να ξεπερνά τα 60.000 ευρώ.

69. Στις

εξετάσεις του ΑΣΕΠ για 120 θέσεις παίρνουν μέρος 800 υποψήφιοι οι οποίο διαγωνίστηκαν σε 50 συνολικά ερωτήσεις τύπου «Σωστό – Λάθος». Για την απλοποίηση της διόρθωσης των γραπτών οι απαντήσεις Σ ή Λ καταχωρούνται σε ένα πίνακα Α[50]. Να γραφεί πρόγραμμα το οποίο: α. θα καταχωρεί τα ονόματα των υποψηφίων σε ένα πίνακα Ο[800] β. θα καταχωρεί τις απαντήσεις των υποψηφίων σε ένα πίνακα Β[800,50] και τις σωστές απαντήσεις σε ένα πίνακα Α[50] γ. θα βρίσκει το πλήθος των σωστών απαντήσεων κάθε υποψηφίου συγκρίνοντας τα στοιχεία των δύο πινάκων και θα τα αποθηκεύει σε ένα πίνακα Π[800] δ. θα ταξινομεί τον πίνακα Π[800] κατά φθίνουσα σειρά και θα εμφανίζει τα ονόματα των 120 επιτυχόντων. Θεωρήστε πως δεν υπάρχει περίπτωση ισοβαθμίας.

70. Ένα

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

71. Σε

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

72. Μια εταιρεία προβολής ταινιών διαχειρίζεται 10 κινηματογράφους. Να γίνει πρόγραμμα που να: α. Διαβάζει τα ονόματα των 10 κινηματογράφων τοποθετώντας τα ονόματα σε ένα πίνακα ΚΙΝ και τις ημερήσιες εισπράξεις των 10 κινηματογράφων στη διάρκεια ενός μήνα. β. Βρίσκει και εκτυπώνει ποιος κινηματογράφος έχει τις μεγαλύτερες μηνιαίες εισπράξεις.


166

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

77. Για

την επιλογή των αθλητών του μήκους που θα λάβουν μέρος στους Ολυμπιακούς Αγώνες γίνονται 5 παγκόσμιοι προκριματικοί αγώνες. Προκρίνονται τελικά οι αθλητές των οποίων ο μέσος όρος επιδόσεων στους 5 αγώνες είναι μεγαλύτερος από 8 μέτρα. Να γράψετε πρόγραμμα το οποίο: α. Θα διαβάζει τις επιδόσεις 50 αθλητών και θα τις καταχωρεί σ’ έναν δισδιάστατο πίνακα, β. Θα υπολογίζει το μέσο όρο επιδόσεων κάθε αθλητή, γ. Θα υπολογίζει και θα εμφανίζει τον αριθμό των αθλητών που προκρίθηκαν στους Ολυμπιακούς Αγώνες.

78. Μια εισαγωγική εταιρεία καταχωρεί σ’ έναν δισδιάστατο πίνακα τις πωλήσεις 20 πωλητών για κάθε μήνα του έτους και σ ‘έναν μονοδιάστατο πίνακα τα ονόματα των πωλητών. Να γράψετε πρόγραμμα το οποίο: α. θα διαβάζει το όνομα κάθε πωλητή και τις πωλήσεις του για κάθε μήνα τους έτους, β. θα υπολογίζει και θα εμφανίζει τον μέσο όρο πωλήσεων της εταιρείας για κάθε μήνα, γ. θα υπολογίζει και θα εμφανίζει τον μέσο όρο των μηνιαίων πωλήσεων κάθε πωλητή, δ. θα βρίσκει και θα εμφανίζει, για κάθε μήνα χωριστά, τα ονόματα των πωλητών που έχουν πωλήσεις μεγαλύτερες από το 0,75 του μέσου μηνιαίου όρου.

79. Με την έναρξη της νέας αγωνιστικής περιόδου ένας προπονητής του μπάσκετ χρειάζεται, για τον σχεδιασμό της τακτικής ομάδας του, τα στατιστικά των 12 βασικών παικτών του κατά την περασμένη περίοδο. Θεωρείστε ότι η ομάδα έδωσε 26 αγώνες πρωταθλήματος. Να γράψετε πρόγραμμα το οποίο: α. θα διαβάζει το όνομα κάθε παίκτη, τους πόντους που πέτυχε και τα ρημπάουντ που πήρε σε κάθε αγώνα της αγωνιστικής περιόδου, β. θα δημιουργεί και θα εμφανίζει τους πίνακες του μέσου όρου πόντων και ρημπάουντ, γ. θα εμφανίζει το όνομα κάθε παίκτη με το μεγαλύτερο μέσο όρο πόντων, δ. θα εμφανίζει το όνομα κάθε παίκτη με το μεγαλύτερο μέσο όρο ρημπάουντ.

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

81. Να γίνει αλγόριθμος ο οποίος: α. θα διαβάζει το πλήθος των πελατών μιας εταιρείας, το πλήθος αυτό δεν μπορεί να ξεπερνάει το 1000, β. θα διαβάζει το όνομα και το ποσό οφειλής κάθε πελάτη και θα τα καταχωρεί σε πίνακες, γ. θα διαβάζει το όνομα ενός πελάτη, θα βρίσκει και θα εμφανίζει το αντίστοιχο ποσό οφειλής, δ. θα επαναλαμβάνει την ανεύρεση πελατών μέχρι να δοθεί ως όνομα ο χαρακτήρας «*». Θεωρήστε πως τα ονόματα είναι μοναδικά.


Ελ. Βενιζέλου 150, 176 76 Καλλιθέα τηλ.: 210 95 92 070 fax: 210 95 65 108 e-mail: zafirop@acci.gr

Μαντζαγριωτάκη 89, 176 72 Καλλιθέα τηλ. / fax: 210 95 33 254 e-mail: ster14@otenet.gr


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.