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

Σχετικά έγγραφα
Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Ημερομηνία: Πέμπτη 12 Απριλίου 2018 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

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

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

ΕΚΠΑΙΔΕΥΤΗΡΙΑ ΝΕΑ ΠΑΙΔΕΙΑ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

Προτεινόμενα Θέματα ΑΕΠΠ

ΘΕΜΑΤΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΕΠΑΝΑΛΗΠΤΙΚΟ 10/4/2016

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2006

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

Ασκήσεις στα υποπρογράμματα

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

Ημερομηνία: 1/03/15 Διάρκεια διαγωνίσματος: 180 Εξεταζόμενο μάθημα: Προγραμματισμός (Δομή Επανάληψης) Υπεύθυνος καθηγητής: Παπαδόπουλος Πέτρος

Α2. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες που εκτελεί ένας υπολογιστής (Μονάδες 3)

6. Σ 7. Λ 8. Λ 9. Λ 10. Λ

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

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

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

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

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

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

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 3 ΙΟΥΝΙΟΥ ΑΕΠΠ

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον. τελική επανάληψη /4/2015 1

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1. ΣΩΣΤΟ 2. ΛΑΘΟΣ 3. ΛΑΘΟΣ 4. ΣΩΣΤΟ 5. ΛΑΘΟΣ Α2. Α. Χ <> 0 Β. Ι <= 10 C. X D. 1 E. Γ Α. Ι <= 10 Β. Χ <> 0 C. X D. 1 E. Γ Α3.

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

Να το ξαναγράψετε χρησιμοποιώντας αντί για την εντολή Για Τέλος_επανάληψης: α. την εντολή Όσο Τέλος_επανάληψης

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

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

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

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

Θέμα Β. ΓΙΑ γ ΑΠΟ 1 ΜΕΧΡΙ 4. ΓΙΑ δ ΑΠΟ 1 ΜΕΧΡΙ 4. Α[γ,δ] 17 - (γ-1)*4 - δ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ. Πως γίνεται ο ορισμός μιας διαδικασίας; Να δοθούν σχετικά παραδείγματα. ΑΡΧΗ Εντολές ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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

ΘΕΜΑ Α. Α2. Να αναφέρετε από τι εξαρτάται η επιλογή του καλύτερου αλγορίθμου ταξινόμησης. Μονάδες 4. Σελίδα 1 από 8

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ (ΔΙΑΔΙΚΑΣΙΕΣ ΣΥΝΑΡΤΗΣΕΙΣ)

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2019 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Ημερομηνία: Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

2. Μια (1) μονάδες για την ορθή παρουσίαση της ουράς Μια (1) μονάδα για τις ορθές τιμές των δεικτών ( για κάθε δείκτη).

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

Β. Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλης Α, που αντιστοιχούν σωστά με το γράμμα της Στήλης Β. ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

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

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2008

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1 ΣΩΣΤΟ 2 ΛΑΘΟΣ 3 ΛΑΘΟΣ 4 ΛΑΘΟΣ 5 - ΣΩΣΤΟ Α5. Α3.

ΘΕΜΑ Α. Μονάδες 10 Α2.

Φάσμα προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

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

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

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

Α1. Να γράψετε τα τμήματα αλγορίθμου, που αντιστοιχούν στα τμήματα των διαγραμμάτων ροής που ακολουθούν.

Γ. ίνεται το παρακάτω πρόγραµµα και υποπρογράµµατα: ΠΡΟΓΡΑΜΜΑ Κύριο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β, Γ ΑΡΧΗ ΙΑΒΑΣΕ Α, Β, Γ ΚΑΛΕΣΕ ιαδ1(α, Β, Γ)

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

ΠΡΟΤΕΙΝΟΜΕΝΟ ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ. (Α) Να απαντήσετε στη παρακάτω ερώτηση : Τι είναι ένα υποπρόγραμμα; Τι γνωρίζετε για τα χαρακτηριστικά του; (10 Μονάδες)

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής

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

ΘΕΜΑ 1ο Α. 1-6 Σωστό Λάθος Μονάδες 12 Β. Στήλης Στήλης Β Στήλης Α Στήλης Β).

Λυµένες Ασκήσεις Μ ß Χ DIV K Ρ ß Χ MOD Κ. ΓΡΑΨΕ Μ, 'µολύβια' ΓΡΑΨΕ Ρ, ' ' ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Μ ß A_M(Χ / K) Ρ ßX M*K ΓΡΑΨΕ Ρ, ' '

Επαναληπτικό Διαγώνισμα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 10/04/2018

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΟΙΚ & ΠΛΗΡ (ΘΕΡΙΝΑ) ΗΜΕΡΟΜΗΝΙΑ: ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: I. ΜΙΧΑΛΕΑΚΟΣ- Π. ΣΙΟΤΡΟΠΟΣ- Α.

ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

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

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

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Α.Ε.Π.Π. ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

ΠΡΟΓΡΑΜΜΑ Κύριο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β, Γ ΑΡΧΗ ΙΑΒΑΣΕ Α, Β, Γ ΚΑΛΕΣΕ ιαδ1(α, Β, Γ) ΓΡΑΨΕ Α, Β, Γ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ενδεικτικές απαντήσεις ΘΕΜΑ Α

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

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

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

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

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ. ΘΕΜΑ Α Α1. 1. Λάθος 2 Λάθος 3. Σωστό 4. Λάθος 5. Σωστό Α2. ΧΑΡΑΚΤΗΡΕΣ ΑΛΗΘΗΣ ΠΡΑΓΜΑΤΙΚΕΣ ΑΚΕΡΑΙΕΣ 4

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 27 MAΪΟΥ ΑΕΠΠ

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

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

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

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

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10 EKΠΑΙΔΕΥΣΗ: Με Οράματα και Πράξεις για την Παιδεία -1-

Α2. Δίνεται το επόμενο τμήμα προγράμματος σε ΓΛΩΣΣΑ:

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ 2016 Α.Ε.Π.Π. Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ. Θέματα και Απαντήσεις

Transcript:

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

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

Περιεχόμενα Έλεγχος εισαγόμενων τιμών...4 Εύρεση μεγίστου...6 Εύρεση ελαχίστου...8 Ταξινόμηση...11 Σειριακή αναζήτηση...14 Δισδιάστατοι πίνακες...18 Υποπρογράμματα...23

Έλεγχος εισαγόμενων τιμών Ας δούμε ένα παράδειγμα όπου δεν απαιτείται έλεγχος τιμών Μωυσίδης Βασίλης Να γίνει αλγόριθμος που να διαβάζει τους βαθμούς 12 μαθητών και να υπολογίζει το μέσο όρο τους. Αλγόριθμος έλεγχος Σύνολο 0 Για i από 1 μέχρι 12 Διάβασε ΒΑΘΜΟΣ Σύνολο Σύνολο + ΒΑΘΜΟΣ ΜΟ Σύνολο / 12 Εμφάνισε Ο μέσος όρος των βαθμών είναι:, ΜΟ Τέλος έλεγχος Για τον έλεγχο των τιμών που εισάγονται χρησιμοποιούμε μία επανάληψη η οποία ξαναζητάει την εισαγωγή της τιμής όσο δεν δίνεται η σωστή. Να γίνει αλγόριθμος που να διαβάζει τους βαθμούς 12 μαθητών και να υπολογίζει το μέσο όρο τους. Η κάθε τιμή που εισάγεται να ελέγχεται αν είναι μέσα στο διάστημα από 1 μέχρι 20. Σε λανθασμένη εισαγωγή να εμφανίζεται ανάλογο μήνυμα Αλγόριθμος έλεγχος Σύνολο 0 Για i από 1 μέχρι 12 Διάβασε ΒΑΘΜΟΣ Όσο (ΒΑΘΜΟΣ < 1) ή (ΒΑΘΜΟΣ > 20) επανάλαβε Εμφάνισε Λάθος εισαγωγή, πρέπει να είναι μεταξύ 1 20 Διάβασε ΒΑΘΜΟΣ Σύνολο Σύνολο + ΒΑΘΜΟΣ ΜΟ Σύνολο / 12 Εμφάνισε Ο μέσος όρος των βαθμών είναι:, ΜΟ Τέλος έλεγχος 4

Ο ίδιος έλεγχος μπορεί να γίνει με την άλλη δομή επανάληψης Αλγόριθμος έλεγχος Σύνολο 0 Για i από 1 μέχρι 12 Αρχή_επανάληψης Διάβασε ΒΑΘΜΟΣ Αν (ΒΑΘΜΟΣ < 1) ή (ΒΑΘΜΟΣ > 20) τότε Εμφάνισε Λάθος εισαγωγή, πρέπει να είναι μεταξύ 1 20 Μέχρις_ότου (ΒΑΘΜΟΣ > 0) και (ΒΑΘΜΟΣ <21) Σύνολο Σύνολο + ΒΑΘΜΟΣ ΜΟ Σύνολο / 12 Εμφάνισε Ο μέσος όρος των βαθμών είναι:, ΜΟ Τέλος έλεγχος Είναι καλό, να μη μπερδεύουμε τον έλεγχο εισαγόμενων τιμών με οποιονδήποτε άλλον έλεγχο που απαιτεί το πρόγραμμά μας. Πρώτα θα γίνεται ο έλεγχος των εισαγόμενων τιμών και μετά οποιοσδήποτε άλλος έλεγχος σε αυτές τις τιμές, σύμφωνα με τις απαιτήσεις του προγράμματός μας. 5

Εύρεση μεγίστου Χωρίς Πίνακα Για την εύρεση μεγίστου ακολουθούμε τον παρακάτω αλγόριθμο: Θεωρούμε μία αρχική τιμή ως μέγιστη Συγκρίνουμε όλες τις υπόλοιπες τιμές με τη μέγιστη Αν βρεθεί κάποια τιμή μεγαλύτερη από τη μέγιστη τότε τίθεται αυτή ως μέγιστη Στην περίπτωση που δεν υπάρχει πίνακας, ως μέγιστη τίθεται μία τιμή που είμαστε σίγουροι ότι θα αλλάξει με την πρώτη σύγκριση. Όταν δεν υπάρχει πίνακας η όλη διαδικασία εύρεσης μεγίστου γίνεται κατά το διάβασμα των τιμών. Να γίνει αλγόριθμος που να διαβάζει τους 12 βαθμούς ενός μαθητή και να εμφανίζει το μέγιστο. Αλγόριθμος εύρεση_μεγίστου Max 0! Αυτή η τιμή σίγουρα θα αλλάξει με την πρώτη Για i από 1 μέχρι 12! σύγκριση. Θα μπορούσε να είναι -1 ή -100 Διάβασε ΒΑΘΜΟΣ Αν ΒΑΘΜΟΣ > Max τότε Max ΒΑΘΜΟΣ Εμφάνισε Ο μέγιστος βαθμός είναι:,max Τέλος εύρεση_μεγίστου Αν πέρα από τη μέγιστη τιμή μας ζητείται και σε ποια θέση βρέθηκε, τότε θα πρέπει να χρησιμοποιήσουμε μία μεταβλητή που να αποθηκεύει τη θέση αυτή. Π.χ. Να γίνει αλγόριθμος που να διαβάζει τους 12 βαθμούς ενός μαθητή και να εμφανίζει το μέγιστο βαθμό και σε ποιο μάθημα βρέθηκε. Αλγόριθμος εύρεση_μεγίστου Max 0 ΘΕΣΗ 0 Για i από 1 μέχρι 12 Διάβασε ΒΑΘΜΟΣ Αν ΒΑΘΜΟΣ > Max τότε Max ΒΑΘΜΟΣ ΘΕΣΗ i Εμφάνισε Ο μέγιστος βαθμός είναι:,max, στο μάθημα:, ΘΕΣΗ Τέλος εύρεση_μεγίστου 6

Μονοδιά -στατος Πίνακας Στην περίπτωση που υπάρχει πίνακας, ως αρχική μέγιστη τιμή θεωρείται η τιμή στην πρώτη θέση του πίνακα και η σύγκριση των υπόλοιπων τιμών ξεκινάει από τη δεύτερη θέση του πίνακα. Να γίνει αλγόριθμος που έχοντας ως δεδομένο τον πίνακα ΒΑΘΜΟΣ με τους 12 βαθμούς ενός μαθητή, να αναζητά και να εμφανίζει το μέγιστο βαθμό και σε ποιο μάθημα βρέθηκε. Αλγόριθμος εύρεση_μεγίστου Δεδομένα // ΒΑΘΜΟΣ[12] // Max ΒΑΘΜΟΣ[1] ΘΕΣΗ 1 Για i από 2 μέχρι 12 Αν ΒΑΘΜΟΣ[i] > Max τότε Max ΒΑΘΜΟΣ[i] ΘΕΣΗ i Εμφάνισε Ο μέγιστος βαθμός είναι:,max, στο μάθημα:, ΘΕΣΗ Αποτελέσματα // Max, ΘΕΣΗ // Τέλος εύρεση_μεγίστου Στην περίπτωση που έχουμε δύο παράλληλους πίνακας η ΘΕΣΗ χρησιμοποιείται και για τους δύο πίνακες Να γίνει αλγόριθμος που να διαβάζει σε αντίστοιχους πίνακες 12 θέσεων το μάθημα και το βαθμό του μαθήματος ενός μαθητή και να εμφανίζει το μέγιστο βαθμό και σε ποιο μάθημα ήταν αυτός. Αλγόριθμος εύρεση_μεγίστου Για i από 1 μέχρι 12 Εμφάνισε Δώσε μάθημα και βαθμό Διάβασε ΜΑΘΗΜΑ[i],ΒΑΘΜΟΣ[i] Max ΒΑΘΜΟΣ[1] ΘΕΣΗ 1 Για i από 2 μέχρι 12 Αν ΒΑΘΜΟΣ[i] > Max τότε Max ΒΑΘΜΟΣ[i] ΘΕΣΗ i Εμφάνισε Ο μέγιστος βαθμός είναι:,max, στο μάθημα:, ΜΑΘΗΜΑ[ΘΕΣΗ] Τέλος εύρεση_μεγίστου Εναλλακτικά θα μπορούσε να είναι: Εμφάνισε Ο μέγιστος βαθμός είναι:, ΒΑΘΜΟΣ[ΘΕΣΗ], στο μάθημα:, ΜΑΘΗΜΑ[ΘΕΣΗ] 7

Εύρεση ελαχίστου Για την εύρεση ελαχίστου ακολουθούμε την ίδια ακριβώς λογική με τη μόνη διαφορά στη σύγκριση των τιμών: Θεωρούμε μία αρχική τιμή ως ελάχιστη Συγκρίνουμε όλες τις υπόλοιπες τιμές με την ελάχιστη Αν βρεθεί κάποια τιμή μικρότερη από την ελάχιστη τότε τίθεται αυτή ως ελάχιστη Δισδιάστατος Πίνακας Σε περίπτωση δισδιάστατου πίνακα θεωρείται ελάχιστη τιμή η θέση [1,1] του πίνακα και σαρώνεται ο υπόλοιπος πίνακας. Σε αυτήν την περίπτωση όμως δεν μπορούμε να ξεκινήσουμε από τη δεύτερη θέση γιατί έτσι θα χαθεί μία ολόκληρη γραμμή ή στήλη. Να γίνει αλγόριθμος που να διαβάζει τους βαθμούς 8 μαθητών σε 12 μαθήματα και να εμφανίζει ποιος είναι ο ελάχιστος βαθμός από όλους. Αλγόριθμος εύρεση_ελαχίστου Για j από 1 μέχρι 12 Εμφάνισε Δώσε βαθμό του μαθητή,i, στο μάθημα, j Διάβασε ΒΑΘΜΟΛΟΓΙΑ[i,j] Min ΒΑΘΜΟΛΟΓΙΑ[1,1] Για j από 1 μέχρι 12 Αν ΒΑΘΜΟΛΟΓΙΑ[i,j] < Min τότε Min ΒΑΘΜΟΛΟΓΙΑ[i,j] Εμφάνισε Ο ελάχιστος βαθμός είναι:,min Τέλος εύρεση_ελαχίστου 8

Αυτή είναι η πιο απλή περίπτωση εύρεσης ελαχίστου σε δισδιάστατο πίνακα. Συνήθως έχει νόημα η παραπάνω εύρεση όταν ζητείται και αυτός που έχει αυτήν την τιμή. Στην περίπτωση βέβαια ενός δισδιάστατου πίνακα όπως στο προηγούμενο παράδειγμα μπορούμε να ζητήσουμε όχι μόνο ποιος είχε τον ελάχιστο βαθμό αλλά και σε ποιο μάθημα: Να γίνει αλγόριθμος που να διαβάζει τους βαθμούς 8 μαθητών σε 12 μαθήματα και να εμφανίζει ποιος είναι ο ελάχιστος βαθμός από όλους, ποιος μαθητής τον έχει και σε ποιο μάθημα. Αλγόριθμος εύρεση_ελαχίστου Για j από 1 μέχρι 12 Εμφάνισε Δώσε βαθμό του μαθητή,i, στο μάθημα, j Διάβασε ΒΑΘΜΟΛΟΓΙΑ[i,j] Min ΒΑΘΜΟΛΟΓΙΑ[1,1] ΘΕΣΗ_ΜΑΘΗΤΗ 1 ΘΕΣΗ_ΜΑΘΗΜΑΤΟΣ 1 Για j από 1 μέχρι 12 Αν ΒΑΘΜΟΛΟΓΙΑ[i,j] < Min τότε Min ΒΑΘΜΟΛΟΓΙΑ[i,j] ΘΕΣΗ_ΜΑΘΗΤΗ i ΘΕΣΗ_ΜΑΘΗΜΑΤΟΣ j Εμφάνισε Ο ελάχιστος βαθμός είναι:,min Εμφάνισε Τον είχε ο μαθητής,θεση_μαθητη, στο μάθημα,θεση_μαθηματοσ Τέλος εύρεση_ελαχίστου Αυτό το παράδειγμα βέβαια θα ήταν πιο κοντά στην πραγματικότητα εάν αντί για αριθμούς χρησιμοποιούσαμε ονόματα μαθητών και την ονομασία των μαθημάτων, κάτι βέβαια που προϋποθέτει την ύπαρξη πινάκων για κάθε μία από τις παραπάνω περιπτώσεις 9

Να γίνει αλγόριθμος που να διαβάζει τα ονόματα 8 μαθητών, σε μονοδιάστατο πίνακα 8 θέσεων τα 12 μαθήματά τους, σε μονοδιάστατο πίνακα 12 θέσεων τους βαθμούς των παραπάνω μαθητών σε κάθε ένα μάθημα σε δισδιάστατο πίνακα 8 Χ 12 Ο αλγόριθμος να εμφανίζει ποιος μαθητής και σε ποιο μάθημα είχε τον χαμηλότερο βαθμό Αλγόριθμος εύρεση_ελαχίστου Εμφάνισε Δώσε το όνομα του μαθητή Διάβασε ΟΝΟΜΑ[i] Για i από 1 μέχρι 12 Εμφάνισε Δώσε το μαθημα Διάβασε ΜΑΘΗΜΑ[i] Εμφάνισε Βαθμολογία μαθητή,ονομα[i] Για j από 1 μέχρι 12 Εμφάνισε Δώσε βαθμό στο μάθημα, ΜΑΘΗΜΑ[j] Διάβασε ΒΑΘΜΟΛΟΓΙΑ[i,j] Min ΒΑΘΜΟΛΟΓΙΑ[1,1] ΘΕΣΗ_ΜΑΘΗΤΗ 1 ΘΕΣΗ_ΜΑΘΗΜΑΤΟΣ 1 Για j από 1 μέχρι 12 Αν Min < ΒΑΘΜΟΛΟΓΙΑ[i,j] τότε Min ΒΑΘΜΟΛΟΓΙΑ[i,j] ΘΕΣΗ_ΜΑΘΗΤΗ i ΘΕΣΗ_ΜΑΘΗΜΑΤΟΣ j Εμφάνισε Ο ελάχιστος βαθμός είναι:,min Εμφάνισε Τον είχε ο μαθητής, ΟΝΟΜΑ[ΘΕΣΗ_ΜΑΘΗΤΗ], & στο μάθημα,μαθημα[θεση_μαθηματοσ] Τέλος εύρεση_ελαχίστου 10

Ταξινόμηση Για την ταξινόμηση ενός πίνακα χρησιμοποιούμε δύο επαναλήψεις, την μία μέσα στην άλλη. Μέσα στις δύο αυτές επαναλήψεις συγκρίνουμε δύο διαδοχικές θέσεις του πίνακα και ανάλογα με το είδος της ταξινόμησης (αύξουσα ή φθίνουσα) τις αντιμεταθέτουμε. Ένας Πίνακας Να γίνει πρόγραμμα που να καταχωρεί τους βαθμούς δέκα μαθητών και να κάνει αύξουσα ταξινόμηση Αλγόριθμος ταξινόμηση Για i από 1 μέχρι 10 Εμφάνισε Δώσε βαθμό του μαθητή Διάβασε ΒΑΘΜΟΣ[i] Για i από 2 μέχρι 10 Για j από 10 μέχρι i με_βήμα -1 Αν ΒΑΘΜΟΣ[j-1]> ΒΑΘΜΟΣ[j] τότε temp ΒΑΘΜΟΣ[j-1] ΒΑΘΜΟΣ[j-1] ΒΑΘΜΟΣ[j] ΒΑΘΜΟΣ[j] temp Τέλος ταξινόμηση Να θυμάσαι ότι το i ξεκινάει πάντα από 2 όλες οι συγκρίσεις και οι αλλαγές των θέσεων του πίνακα γίνονται με δείκτη το j αν θέλουμε αύξουσα ταξινόμηση, η σύγκριση θα είναι Αν ΒΑΘΜΟΣ[j-1] > ΒΑΘΜΟΣ[j] τότε αν θέλουμε φθίνουσα ταξινόμηση, η σύγκριση θα είναι Αν ΒΑΘΜΟΣ[j-1] < ΒΑΘΜΟΣ[j] τότε 11

Δύο Πίνακες Μωυσίδης Βασίλης Μία συνηθισμένη περίπτωση ταξινόμησης είναι αυτή όπου πρέπει να ταξινομήσουμε δύο πίνακες ταυτόχρονα, πρόκειται δηλαδή για παράλληλη ταξινόμηση δύο πινάκων που σχετίζονται μεταξύ τους. Να γίνει πρόγραμμα που να καταχωρεί τους βαθμούς δέκα μαθητών και τα ονόματά τους και να κάνει αύξουσα ταξινόμηση ως προς τους βαθμούς Αλγόριθμος ταξινόμηση Για i από 1 μέχρι 10 Εμφάνισε Δώσε το όνομα του μαθητή Διάβασε ΟΝΟΜΑ[i] Εμφάνισε Δώσε βαθμό του μαθητή Διάβασε ΒΑΘΜΟΣ[i] Για i από 2 μέχρι 10 Για j από 10 μέχρι i με_βήμα -1 Αν ΒΑΘΜΟΣ[j-1]> ΒΑΘΜΟΣ[j] τότε temp ΒΑΘΜΟΣ[j-1] ΒΑΘΜΟΣ[j-1] ΒΑΘΜΟΣ[j] ΒΑΘΜΟΣ[j] temp temp2 ΟΝΟΜΑ[j-1] ΟΝΟΜΑ[j-1] ΟΝΟΜΑ[j] ΟΝΟΜΑ[j] temp2 Τέλος ταξινόμηση Αν θέλουμε η ταξινόμηση να γίνει ως προς το όνομα τότε η εντολή σύγκρισης θα έπρεπε να είναι: Αν ΟΝΟΜΑ[j-1]> ΟΝΟΜΑ[j] τότε Για την αντιμετάθεση του δεύτερου πίνακα δεν χρησιμοποιείται η μεταβλητή temp αλλά η μεταβλητή temp2. Πρέπει να είναι διαφορετική, γιατί συνήθως οι πίνακες που ταξινομούμε έχουν διαφορετικού τύπου δεδομένα (χαρακτήρες, πραγματικοί) οπότε δεν μπορούμε να τα αποθηκεύσουμε στην ίδια μεταβλητή. 12

Σε πιο πολύπλοκες περιπτώσεις μπορεί να έχουμε ταξινόμηση ως προς και τους δύο πίνακες: Να γίνει πρόγραμμα που να καταχωρεί τους βαθμούς δέκα μαθητών και τα ονόματά τους και να κάνει φθίνουσα ταξινόμηση ως προς τους βαθμούς. Αν δύο μαθητές έχουν τον ίδιο βαθμό τότε η ταξινόμηση να γίνεται αλφαβητικά (αύξουσα) Αλγόριθμος ταξινόμηση Για i από 1 μέχρι 10 Εμφάνισε Δώσε το όνομα του μαθητή Διάβασε ΟΝΟΜΑ[i] Εμφάνισε Δώσε βαθμό του μαθητή Διάβασε ΒΑΘΜΟΣ[i] Για i από 2 μέχρι 10 Για j από 10 μέχρι i με_βήμα -1 Αν (ΒΑΘΜΟΣ[j-1]<ΒΑΘΜΟΣ[j]) ή ((ΒΑΘΜΟΣ[j-1]=ΒΑΘΜΟΣ[j]) και (ΟΝΟΜΑ[j-1]>ΟΝΟΜΑ[j])) τότε temp ΒΑΘΜΟΣ[j-1] ΒΑΘΜΟΣ[j-1] ΒΑΘΜΟΣ[j] ΒΑΘΜΟΣ[j] temp temp2 ΟΝΟΜΑ[j-1] ΟΝΟΜΑ[j-1] ΟΝΟΜΑ[j] ΟΝΟΜΑ[j] temp2 Τέλος ταξινόμηση 13

Σειριακή αναζήτηση Στη σειριακή αναζήτηση σαρώνουμε έναν πίνακα μέχρι να βρούμε αυτό που ψάχνουμε ή μέχρι να φτάσουμε στο τέλος του πίνακα. Αν δηλαδή βρούμε αυτό που ψάχνουμε σταματάει και η αναζήτηση. Σειριακή αναζήτηση χρησιμοποιούμε όταν μας ζητούν να απαντήσουμε στο ερώτημα αν υπάρχει έστω μία τιμή από αυτό που ψάχνουμε. Για το σκοπό αυτό χρησιμοποιούμε μία λογική μεταβλητή η οποία έχει αρχική τιμή ΨΕΥΔΗΣ και αν βρούμε αυτό που ψάχνουμε την θέτουμε ΑΛΗΘΗΣ. Να γίνει αλγόριθμος που να διαβάζει δέκα ονόματα σε έναν πίνακα και να αναζητά αν υπάρχει το όνομα Μαρία ανάμεσά σε αυτά. Αλγόριθμος σειριακή_αναζήτηση Για i από 1 μέχρι 10 Εμφάνισε Δώσε το όνομα Διάβασε ΟΝΟΜΑ[i] ΒΡΕΘΗΚΕ ψευδής i 1 οσο (ΒΡΕΘΗΚΕ = ψευδής) και (i 10) επανάλαβε αν ΟΝΟΜΑ[i] = Μαρία τότε ΒΡΕΘΗΚΕ αληθής Αλλιώς i i + 1 Αν ΒΡΕΘΗΚΕ = αληθής τότε Εμφάνισε Υπάρχει το όνομα «Μαρία» μέσα στον πίνακα αλλιώς Εμφάνισε Δεν υπάρχει το όνομα «Μαρία» μέσα στον πίνακα Τέλος σεριακή_αναζήτηση 14

Η σειριακή αναζήτηση δεν είναι κατάλληλη όταν το ερώτημα που τίθεται αφορά το πόσες φορές υπάρχει μία τιμή σε έναν πίνακα. Να γίνει αλγόριθμος που να διαβάζει δέκα ονόματα σε έναν πίνακα και να αναζητά πόσες φορές υπάρχει το όνομα Μαρία ανάμεσά σε αυτά. Στην περίπτωση αυτή είμαστε εκ των πραγμάτων αναγκασμένοι να σαρώσουμε τον πίνακά μας από την αρχή μέχρι το τέλος Αλγόριθμος ολική_σάρωση Για i από 1 μέχρι 10 Εμφάνισε Δώσε το όνομα Διάβασε ΟΝΟΜΑ[i] k 0 Για i από 1 μέχρι 10 αν ΟΝΟΜΑ[i] = Μαρία τότε k k + 1 Αν k 0 τότε Εμφάνισε Υπάρχει το όνομα «Μαρία» μέσα στον πίνακα,k, φορές αλλιώς Εμφάνισε Δεν υπάρχει το όνομα «Μαρία» μέσα στον πίνακα Τέλος ολική_σάρωση 15

Το πρώτο παράδειγμα είναι η πιο απλή μορφή σειριακής αναζήτησης όπου δεν μας ζητούν σε ποια θέση βρήκαμε αυτό που ψάχναμε. Αν μας ζητούν και τη θέση τότε θα πρέπει να κάνουμε την παρακάτω τροποποίηση. Μία ακόμα διαφορά στον επόμενο παράδειγμα είναι επίσης ότι ο αλγόριθμος ζητάει από τον ίδιο το χρήστη να δώσει το όνομα προς αναζήτηση. Να γίνει αλγόριθμος που να διαβάζει δέκα ονόματα σε έναν πίνακα, να διαβάζει ένα όνομα προς αναζήτηση και να αναζητά αν υπάρχει το όνομα αυτό ανάμεσά στα ονόματα του πίνακα. Αν υπάρχει να εμφανίζει και τη θέση του στον πίνακα Αλγόριθμος σειριακή_αναζήτηση Για i από 1 μέχρι 10 Εμφάνισε Δώσε το όνομα Διάβασε ΟΝΟΜΑ[i] Εμφάνισε Δώσε το όνομα προς αναζήτηση Διάβασε ΝΑΜΕ ΒΡΕΘΗΚΕ ψευδής ΘΕΣΗ 0 i 1 οσο (ΒΡΕΘΗΚΕ = ψευδής) και (i 10) επανάλαβε αν ΟΝΟΜΑ[i] = ΝΑΜΕ τότε ΒΡΕΘΗΚΕ αληθής ΘΕΣΗ i Αλλιώς i i + 1 Αν ΒΡΕΘΗΚΕ = αληθής τότε Εμφάνισε Υπάρχει το όνομα,name, στη θέση, ΘΕΣΗ αλλιώς Εμφάνισε Δεν υπάρχει το όνομα,name, μέσα στον πίνακα Τέλος σεριακή_αναζήτηση 16

Για να δώσουμε ένα παράδειγμα πιο κοντά στην πραγματικότητα μπορούμε να το συνδυάσουμε το προηγούμενο παράδειγμα με έναν αντίστοιχο πίνακα τηλεφώνων. Να γίνει αλγόριθμος που να διαβάζει δέκα ονόματα και τα αντίστοιχα τηλέφωνά τους σε δύο μονοδιάστατους πίνακες. Μετά να διαβάζει ένα όνομα προς αναζήτηση, να το αναζητά αν υπάρχει το όνομα αυτό να το εμφανίζει με το αντίστοιχο τηλέφωνο. Αν όχι να εμφανίζει ανάλογο μήνυμα. Αλγόριθμος σειριακή_αναζήτηση Για i από 1 μέχρι 10 Εμφάνισε Δώσε το όνομα και το τηλέφωνο Διάβασε ΟΝΟΜΑ[i], ΤΗΛΕΦΩΝΟ[i] Εμφάνισε Δώσε το όνομα προς αναζήτηση Διάβασε ΝΑΜΕ ΒΡΕΘΗΚΕ ψευδής ΘΕΣΗ 0 i 1 οσο (ΒΡΕΘΗΚΕ = ψευδής) και (i 10) επανάλαβε αν ΟΝΟΜΑ[i] = ΝΑΜΕ τότε ΒΡΕΘΗΚΕ αληθής ΘΕΣΗ i Αλλιώς i i + 1 Αν ΒΡΕΘΗΚΕ = αληθής τότε Εμφάνισε Tο όνομα,name, έχει τηλέφωνο, ΤΗΛΕΦΩΝΟ[ΘΕΣΗ] αλλιώς Εμφάνισε Δεν υπάρχει το όνομα,name, μέσα στον πίνακα Τέλος σεριακή_αναζήτηση 17

Δισδιάστατοι πίνακες Για οποιαδήποτε επεξεργασία δισδιάστατων πινάκων χρειαζόμαστε δύο επαναλήψεις, τη μία μέσα στην άλλη προκειμένου να τους σαρώσουμε και να επεξεργαστούμε τα στοιχεία τους. Σε έναν πίνακα καταχωρούνται οι εισπράξεις μιας αλυσίδας 8 καταστημάτων τα τελευταία 6 χρόνια. Να γίνει αλγόριθμος που να καταχωρεί τα παραπάνω στοιχεία σε δισδιάστατο πίνακα και να εμφανίζει τα σύνολα του κάθε καταστήματος σε όλα τα χρόνια. Αλγόριθμος δισδιάστατος Για j από 1 μέχρι 6 Εμφάνισε Δώσε τις εισπράξεις του,i, καταστήματος στο έτος, j Διάβασε ΕΙΣΠΡΑΞΗ[i,j] Σ 0 Για j από 1 μέχρι 6 Σ Σ + ΕΙΣΠΡΑΞΗ[i,j] Εμφάνισε Οι εισπράξεις του,i, ου καταστήματος είναι, Σ Τέλος δισδιάστατος Για την καταχώρηση των στοιχείων χρησιμοποιήθηκε πίνακας 8 Χ 6 ο οποίος σαρώθηκε με τη βοήθεια δύο επαναλήψεων, η εξωτερική επανάληψη για της γραμμές και η εσωτερική επανάληψη για τις στήλες. Υπολογισμός των εσόδων του κάθε καταστήματος σημαίνει ότι πρέπει να υπολογίσουμε και να εμφανίσουμε το σύνολο της κάθε γραμμής. Για να υπολογίσουμε τα σύνολα για κάθε γραμμή χρησιμοποιούμε τη μεταβλητή Σ την οποία μηδενίζουμε πριν από την εσωτερική επανάληψη προκειμένου να υπολογίσουμε ξανά το σύνολο για κάθε νέα γραμμή. Μετά το τέλος της εσωτερικής επανάληψης έχουμε υπολογίσει το σύνολο μιας ολόκληρης γραμμής οπότε και εμφανίζουμε το αποτέλεσμα. Αν η εμφάνιση του Σ δεν γίνει εκείνη τη στιγμή, το σύνολο θα χαθεί γιατί στην επόμενη επανάληψη του i θα μηδενιστεί. 18

Στο προηγούμενο παράδειγμα η σάρωση γίνεται κατά γραμμή. Αν θέλουμε η σάρωση να γίνει κατά στήλη τότε στην εξωτερική επανάληψη θα είναι οι στήλες (j) και στην εσωτερική επανάληψη οι γραμμές (i). Σε έναν πίνακα καταχωρούνται οι εισπράξεις μιας αλυσίδας 8 καταστημάτων τα τελευταία 6 χρόνια. Να γίνει αλγόριθμος που να καταχωρεί τα παραπάνω στοιχεία σε δισδιάστατο πίνακα και να εμφανίζει τα σύνολα της κάθε χρονιάς για όλα τα καταστήματα Αλγόριθμος δισδιάστατος Για j από 1 μέχρι 6 Εμφάνισε Δώσε τις εισπράξεις του,i, καταστήματος στο έτος, j Διάβασε ΕΙΣΠΡΑΞΗ[i,j] Για j από 1 μέχρι 6 Σ 0 Σ Σ + ΕΙΣΠΡΑΞΗ[i,j] Εμφάνισε Οι εισπράξεις της,j, ης χρονιάς είναι, Σ Τέλος δισδιάστατος Εδώ το σύνολο που μας ζητάει η άσκηση αφορά μία ολόκληρη χρονιά για όλα τα υποκαταστήματα, άρα το σύνολο της κάθε στήλης. Για το σκοπό αυτό πρέπει η εξωτερική επανάληψη να αφορά της στήλες και η εσωτερική επανάληψη τις γραμμές. Αυτή είναι και η μόνη διαφορά από το προηγούμενο παράδειγμα. Η λογική κατά τα άλλα είναι ακριβώς η ίδια. Όταν το αποτέλεσμα της επεξεργασίας του πίνακα δεν χρειάζεται περαιτέρω επεξεργασία τότε απλώς το εμφανίζουμε. Διαφορετικά, το αποθηκεύουμε σε έναν μονοδιάστατο πίνακα προκειμένου να το επεξεργαστούμε αργότερα. Αν για παράδειγμα στην προηγούμενη άσκηση μας ζητήσουν να ταξινομήσουμε τα σύνολα, τότε πρέπει αυτά πρώτα να αποθηκευτούν σε πίνακα και μετά να γίνει η ταξινόμηση. 19

Σε έναν πίνακα καταχωρούνται οι εισπράξεις μιας αλυσίδας 8 καταστημάτων τα τελευταία 6 χρόνια. Να γίνει αλγόριθμος που να καταχωρεί τα παραπάνω στοιχεία σε δισδιάστατο πίνακα και να υπολογίζει τα σύνολα του κάθε καταστήματος σε όλα τα χρόνια. Τα σύνολα να εμφανίζονται ταξινομημένα κατά αύξουσα σειρά. Αλγόριθμος δισδιάστατος Για j από 1 μέχρι 6 Εμφάνισε Δώσε τις εισπράξεις του,i, καταστήματος στο έτος, j Διάβασε ΕΙΣΠΡΑΞΗ[i,j] Εναλλακτικά Σ 0 Για j από 1 μέχρι 6 Σ Σ + ΕΙΣΠΡΑΞΗ[i,j] ΣΥΝΟΛΟ[i] Σ ΣΥΝΟΛΟ[i] 0 Για j από 1 μέχρι 6 ΣΥΝΟΛΟ[i] ΣΥΝΟΛΟ[i]+ ΕΙΣΠΡΑΞΗ[i,j] Για i από 2 μέχρι 8 Για j από 8 μέχρι i με_βήμα -1 Αν ΣΥΝΟΛΟ[j-1] > ΣΥΝΟΛΟ[j] τότε temp ΣΥΝΟΛΟ[j-1] ΣΥΝΟΛΟ[j-1] ΣΥΝΟΛΟ[j] ΣΥΝΟΛΟ[j] temp Εμφάνισε Οι εισπράξεις των καταστημάτων ταξινομημένες Εμφάνισε ΣΥΝΟΛΟ[i] Τέλος δισδιάστατος Το προηγούμενο παράδειγμα μπορούμε να το εμπλουτίσουμε και να το κάνουμε λίγο πιο ενδιαφέρον 20

Προκειμένου να γίνουν κάποιες στατιστικές μετρήσεις σε μία αλυσίδα 8 καταστημάτων για τις εισπράξεις 6 ετών, να γίνει αλγόριθμος που να: καταχωρεί τα ονόματα των διευθυντών του κάθε καταστήματος σε πίνακα 8 θέσεων καταχωρεί τη χρονιά (π.χ. 2002) σε έναν πίνακα 8 θέσεων καταχωρεί τις εισπράξεις του κάθε καταστήματος για κάθε χρονιά σε έναν δισδιάστατο πίνακα 8 Χ 6 υπολογίζει και να εμφανίζει ποιο υποκατάστημα (όνομα διευθυντή) και σε ποια χρονιά έκανε την μεγαλύτερη είσπραξη υπολογίζει και να εμφανίζει το μέσο όρο εισπράξεων κάθε χρονιάς υπολογίζει την ελάχιστη είσπραξη σε όλες τις χρονιές του κάθε υποκαταστήματος. εμφανίζει τους ιδιοκτήτες και τις παραπάνω μέγιστες εισπράξεις ταξινομημένα ως προς τις εισπράξεις κατά φθίνουσα σειρά Αλγόριθμος δισδιάστατος Εμφάνισε Δώσε το όνομα του διευθυντή του,i, καταστήματος Διάβασε ΔΙΕΥΘΥΝΤΗΣ[i] Για i από 1 μέχρι 6 Εμφάνισε Δώσε το έτος Διάβασε ΕΤΟΣ[i] Εμφάνισε Υποκατάστημα του, ΔΙΕΥΘΥΝΤΗΣ[i] Για j από 1 μέχρι 6 Εμφάνισε Δώσε τις εισπράξεις για το έτος, ΕΤΟΣ[j] Διάβασε ΕΙΣΠΡΑΞΗ[i,j] ΜΑΧ ΕΙΣΠΡΑΞΗ[1,1] ΘΕΣΗΔ 1 ΘΕΣΗΕ 1 Για j από 1 μέχρι 6 Αν ΕΙΣΠΡΑΞΗ[i,j] > MAX τότε ΜΑΧ ΕΙΣΠΡΑΞΗ[i,j] ΘΕΣΗΔ i ΘΕΣΗΕ j 21

Εμφάνισε Το υποκατάστημα του, ΔΙΕΥΘΥΝΤΗΣ[ΘΕΣΗΔ], τη χρονιά, & ΕΤΟΣ[ΘΕΣΗΕ], είχε τις μεγαλύτερες εισπράξεις, MAX Για j από 1 μέχρι 6 Σ 0 Σ Σ + ΕΙΣΠΡΑΞΗ[i,j] MO Σ/8 Εμφάνισε O μέσος όρος εισπράξεων για το έτος, ΕΤΟΣ[j], είναι, ΜΟ ΜΙΝ [i,1] Για j από 2 μέχρι 6 Αν MIN < ΕΙΣΠΡΑΞΗ[i,j] τότε MIN ΕΙΣΠΡΑΞΗ[i,j] ΕΛΑΧΙΣΤΟ[i] MIN Για i από 2 μέχρι 8 Για j από 8 μέχρι i με_βήμα -1 Αν ΕΛΑΧΙΣΤΟ[j-1] < ΕΛΑΧΙΣΤΟ[j] τότε temp ΕΛΑΧΙΣΤΟ[j-1] ΕΛΑΧΙΣΤΟ[j-1] ΕΛΑΧΙΣΤΟ[j] ΕΛΑΧΙΣΤΟ[j] temp temp2 ΔΙΕΥΘΥΝΤΗΣ[j-1] ΔΙΕΥΘΥΝΤΗΣ[j-1] ΔΙΕΥΘΥΝΤΗΣ[j] ΔΙΕΥΘΥΝΤΗΣ[j] temp Εμφάνισε Κατάσταση διευθυντών υποκαταστημάτων και ελάχιστων ετήσιων εισπράξεων Εμφάνισε ΔΙΕΥΘΥΝΤΗΣ[i], ΕΛΑΧΙΣΤΟ [j] Τέλος δισδιάστατος 22

Υποπρογράμματα Τα υποπρογράμματα υλοποιούν τον τμηματικό προγραμματισμό. Είναι αυτόνομα κομμάτια αλγορίθμου που γράφονται μία φορά και μπορούν να χρησιμοποιηθούν μία ή περισσότερες φορές. Για να εκτελεσθεί ο αλγόριθμος ενός υποπρογράμματος, πρέπει να το καλέσουμε (το υποπρόγραμμα) μέσα από το κύριο πρόγραμμα. Τα υποπρογράμματα ανταλλάσσουν δεδομένα με το κύριο πρόγραμμα μέσω των παραμέτρων. Τα υποπρογράμματα χωρίζονται σε διαδικασίες και συναρτήσεις. Το επόμενο παράδειγμα είναι με διαδικασία. Να γίνει πρόγραμμα που να διαβάζει 10 βαθμούς μαθητών να καλεί μία διαδικασία που να υπολογίζει και να επιστρέφει το μέγιστο βαθμό να εμφανίζει το μέγιστο βαθμό Πρώτο μας βήμα είναι η δημιουργία του κύριου προγράμματος. Σε αυτή τη φάση είναι πολύ σημαντικό να ορίσουμε ποια δεδομένα θα ανταλλάσσονται μεταξύ του κύριου προγράμματος και του υποπρογράμματος. Στη συγκεκριμένη περίπτωση προκειμένου το υποπρόγραμμα να επιστρέφει το μέγιστο βαθμό, θα πρέπει να δέχεται έναν πίνακα με βαθμούς. ΠΡΟΓΡΑΜΜΑ ΜΕΓΙΣΤΟ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι ΠΡΑΓΜΑΤΙΚΕΣ: ΒΑΘΜΟΣ[10], ΜΑΧ ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΡΑΨΕ Δώσε το βαθμό του μαθητή ΔΙΑΒΑΣΕ ΒΑΘΜΟΣ[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΚΑΛΕΣΕ ΒΡΕΣ_ΜΕΓΙΣΤΟ(ΒΑΘΜΟΣ, ΜΑΧ) ΓΡΑΨΕ Ο μέγιστος βαθμός είναι,μαχ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Αφού έχουμε διαβάσει τους βαθμούς των μαθητών στον πίνακα ΒΑΘΜΟΣ καλούμε τη διαδικασία ΒΡΕΣ_ΜΕΓΙΣΤΟ με παραμέτρους τον πίνακα 23

ΒΑΘΜΟΣ και την μεταβλητή ΜΑΧ. Η διαδικασία δέχεται τα δεδομένα μέσω του πίνακα ΒΑΘΜΟΣ και επιστρέφει το μέγιστο βαθμό μέσω της μεταβλητής ΜΑΧ. Το επόμενο βήμα είναι η δημιουργία της διαδικασίας. Είναι πολύ σημαντικό να χρησιμοποιούμε διαφορετικά ονόματα πινάκων και μεταβλητών ως παραμέτρους από αυτά που χρησιμοποιήσαμε στο κύριο πρόγραμμα. ΔΙΑΔΙΚΑΣΙΑ ΒΡΕΣ_ΜΕΓΙΣΤΟ(Β,Μ) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι ΠΡΑΓΜΑΤΙΚΕΣ: Β[10], Μ ΑΡΧΗ Μ Β[1] ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 10 ΑΝ Β[Ι] > Μ ΤΟΤΕ Μ Β[Ι] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Ακόμα και στην περίπτωση που χρησιμοποιήσουμε το ίδιο όνομα παραμέτρου στο κύριο πρόγραμμα και στο υποπρόγραμμα που καλούμε, πρέπει να γνωρίζουμε ότι πρόκειται για δύο διαφορετικές μεταβλητές. Καλό είναι όμως να αποφεύγεται για να μη δημιουργείται σύγχυση. Με το τέλος της διαδικασίας οι τιμές με τις οποίες κλήθηκε η διαδικασία (μέσω των παραμέτρων) επιστρέφονται στο κύριο πρόγραμμα. Οποιεσδήποτε αλλαγές στις τιμές των παραμέτρων μέσα στη διαδικασία θα ισχύσουν και για το κύριο πρόγραμμα. Στην προκειμένη περίπτωση αυτή που αλλάζει είναι η μεταβλητή Μ της οποίας η τιμή επιστρέφεται στην μεταβλητή ΜΑΧ στο κύριο πρόγραμμα. Η υλοποίηση θα μπορούσε να γίνει και με μία συνάρτηση. Η βασική διαφορά μεταξύ της συνάρτησης και της διαδικασίας είναι ότι στη συνάρτηση επιστρέφεται μόνο μία τιμή ενώ στη διαδικασία μπορούν να επιστραφούν περισσότερες από μία τιμές. Ο τρόπος κλήσης της συνάρτησης είναι επίσης διαφορετικός. Το παραπάνω παράδειγμα με συνάρτηση υλοποιείται ως εξής: ΠΡΟΓΡΑΜΜΑ ΜΕΓΙΣΤΟ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι ΠΡΑΓΜΑΤΙΚΕΣ: ΒΑΘΜΟΣ[10], ΜΑΧ ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΡΑΨΕ Δώσε το βαθμό του μαθητή ΔΙΑΒΑΣΕ ΒΑΘΜΟΣ[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΑΧ ΒΡΕΣ_ΜΕΓΙΣΤΟ(ΒΑΘΜΟΣ) 24

ΓΡΑΨΕ Ο μέγιστος βαθμός είναι,μαχ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Εδώ βλέπουμε ότι η συνάρτηση χρησιμοποιεί μία παράμετρο αντί για δύο. Αυτό συμβαίνει γιατί η επιστροφή της τιμής στη συνάρτηση γίνεται με το όνομά της και όχι μέσω παραμέτρου, όπως συνέβη στη διαδικασία. ΣΥΝΑΡΤΗΣΗ ΒΡΕΣ_ΜΕΓΙΣΤΟ(Β): ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι ΠΡΑΓΜΑΤΙΚΕΣ: Β[10], Μ ΑΡΧΗ Μ Β[1] ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 10 ΑΝ Β[Ι] > Μ ΤΟΤΕ Μ Β[Ι] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΒΡΕΣ_ΜΕΓΙΣΤΟ Μ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Στον ορισμό της συνάρτησης πρέπει να αναφέρουμε τον τύπο των δεδομένων που επιστρέφεται από τη συνάρτηση. Στην συγκεκριμένη περίπτωση ορίσαμε τη συνάρτηση ως ΠΡΑΓΜΑΤΙΚΗ. Πριν το τέλος της συνάρτησης επιστρέφεται η τιμή της με το όνομά της: ΒΡΕΣ_ΜΕΓΙΣΤΟ Μ Στο παραπάνω παράδειγμα, θα μπορούσαμε να εισάγουμε τις τιμές μέσω μίας διαδικασίας. Σε αυτήν την περίπτωση το κύριο πρόγραμμα θα ήταν ως εξής: ΠΡΟΓΡΑΜΜΑ ΜΕΓΙΣΤΟ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: ΒΑΘΜΟΣ[10], ΜΑΧ ΑΡΧΗ ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΤΙΜΩΝ(ΒΑΘΜΟΣ) ΜΑΧ ΒΡΕΣ_ΜΕΓΙΣΤΟ(ΒΑΘΜΟΣ) ΓΡΑΨΕ Ο μέγιστος βαθμός είναι,μαχ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Εδώ καλείται πρώτα η διαδικασία ΕΙΣΑΓΩΓΗ_ΤΙΜΩΝ με παράμετρο τον πίνακα ΒΑΘΜΟΣ. Ο πίνακας αυτός επιστρέφεται γεμάτος τιμές και έπειτα συνεχίζεται η ροή του προγράμματος όπως και πριν. Αυτό βέβαια σημαίνει ότι τώρα πρέπει να ορίσουμε τη διαδικασία όπου θα γίνεται πλέον η εισαγωγή των τιμών. 25

ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ_ΤΙΜΩΝ(Β) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι ΠΡΑΓΜΑΤΙΚΕΣ: Β[10] ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΡΑΨΕ Δώσε το βαθμό του μαθητή ΔΙΑΒΑΣΕ Β[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Ας δούμε τώρα μία πιο ενδιαφέρουσα παραλλαγή του προηγούμενου παραδείγματος όπου θα δούμε πως «επαναχρησιμοποιείται» ο αλγόριθμος που βρίσκεται σε ένα υποπρόγραμμα. Στο επόμενο παράδειγμα η συνάρτηση θα κληθεί δύο φορές. Να γίνει πρόγραμμα που να καλεί μία διαδικασία που να διαβάζει 10 βαθμούς μαθητών να καλεί μία συνάρτηση που να υπολογίζει και να επιστρέφει το μέγιστο βαθμό να καλεί την ίδια συνάρτηση που να υπολογίζει και να επιστρέφει τον ελάχιστο βαθμό να εμφανίζει το μέγιστο και ελάχιστο βαθμό Η διαδικασία θα δέχεται έναν πίνακα 10 θέσεων στον οποίο θα διαβάζει τους βαθμούς 10 μαθητών Η συνάρτηση θα δέχεται ως παραμέτρους έναν πίνακα 10 θέσεων με τους βαθμούς των μαθητών και μία δεύτερη παράμετρο, έναν ακέραιο που όταν η τιμή του είναι «1» θα γίνεται εύρεση μεγίστου, ενώ όταν η τιμή του είναι «2» θα γίνεται εύρεση ελαχίστου. ΠΡΟΓΡΑΜΜΑ ΜΕΓΙΣΤΟ_ΚΑΙ_ΕΛΑΧΙΣΤΟ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: ΒΑΘΜΟΣ[10], ΜΑΧ, ΜΙΝ ΑΡΧΗ ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ_ΤΙΜΩΝ(ΒΑΘΜΟΣ) ΜΑΧ ΒΡΕΣ_ΜΕΓΙΣΤΟ_ΕΛΑΧΙΣΤΟ(ΒΑΘΜΟΣ,1) ΜΙΝ ΒΡΕΣ_ΜΕΓΙΣΤΟ_ΕΛΑΧΙΣΤΟ (ΒΑΘΜΟΣ,2) ΓΡΑΨΕ Ο μέγιστος βαθμός είναι,μαχ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Εδώ βλέπουμε ότι ως παράμετροι πέρα από πίνακες ή μεταβλητές μπορεί να είναι ακόμα και σταθερές τιμές (1 ή 2). 26

ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ_ΤΙΜΩΝ(Β) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι ΠΡΑΓΜΑΤΙΚΕΣ: Β[10] ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΡΑΨΕ Δώσε το βαθμό του μαθητή, Ι ΔΙΑΒΑΣΕ Β[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΣΥΝΑΡΤΗΣΗ ΒΡΕΣ_ΜΕΓΙΣΤΟ_ΕΛΑΧΙΣΤΟ(Β, ΕΙΔΟΣ): ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι, ΕΙΔΟΣ ΠΡΑΓΜΑΤΙΚΕΣ: Β[10], Μ Εναλλακτικά ΑΡΧΗ Μ Β[1] ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 10 ΕΠΙΛΕΞΕ ΕΙΔΟΣ ΠΕΡΙΠΤΩΣΗ 1 ΑΝ Β[Ι] > Μ ΤΟΤΕ Μ Β[Ι] ΤΕΛΟΣ_ΑΝ ΠΕΡΙΠΤΩΣΗ 2 ΑΝ Β[Ι] < Μ ΤΟΤΕ Μ Β[Ι] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΝ ΕΙΔΟΣ = 1 ΤΟΤΕ ΑΝ Β[Ι] > Μ ΤΟΤΕ Μ Β[Ι] ΤΕΛΟΣ_ΑΝ ΑΛΛΙΩΣ_ΑΝ ΕΙΔΟΣ = 2 ΑΝ Β[Ι] < Μ ΤΟΤΕ Μ Β[Ι] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΒΡΕΣ_ΜΕΓΙΣΤΟ_ΕΛΑΧΙΣΤΟ Μ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ 27