Εισαγωγή στο προγραμματισμό με τη PASCAL Οδηγός Προετοιμασίας για τη Τελική Εξέταση

Σχετικά έγγραφα
Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους Οδηγός Προετοιμασίας για τη Τελική Εξέταση

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

Σκοπός. Εργαστήριο 5 Εντολές Επιλογής

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Εργαστήριο 10 Πίνακες. Πίνακες. Η έννοια της δόμησης δεδομένων στη PASCAL. Σκοπός

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Εισαγωγή στο Προγραμματισμό με τη PASCAL & τη Matlab Εξαμηνιαία Εργασία 2014 Μετατρέποντας AC σε DC Τάση Μέρος Β : Πορεία Εργασίας

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

ΜΑΗΣ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10)

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

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

Γραπτές εξετάσεις στο μάθημα: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Θ) Εισηγητής: Γεωργίου Χρήστος ΘΕΜΑΤΑ & ΑΠΑΝΤΗΣΕΙΣ. Β. Χαρακτήρας(Αλφαριθμητικά)

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

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

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

8 FORTRAN 77/90/95/2003

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΟΜΗΜΕΝΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γ ΕΠΑΛ

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Εγκατάσταση του Lazarus

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 7 Ακούγοντας Πρώτη Ματιά στην Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

ΑΕΠΠ Ερωτήσεις θεωρίας

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος.

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

Γράψτε ένα πρόγραμμα που θα προσομοιώνει τη ρίψη ενός νομίσματος και θα εμφανίζει στην οθόνη Κορώνα» ή «Γράμματα».

Pascal - Βασικές Έννοιες

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

Pascal. 15 Νοεμβρίου 2011

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Ηλεκτρονικοί Υπολογιστές

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

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

A3. Μονάδες 5 Α4. Μονάδες 10 ΘΕΜΑ B. Β1. writeln Περιεχόμενα Εντολή Αποτελέσματα Παραμέτρων Μονάδες 20 ΘΕΜΑ Γ.

ΚΕΝΤΡΙΚΗ ΟΡΓΑΝΩΤΙΚΗ ΕΠΙΤΡΟΠΗ 8 ου ΠΑΝΕΛΛΗΝΙΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ 1996 ΠΡΟΚΑΤΑΡΚΤΙΚΗ ΦΑΣΗ ΠΑΝΕΛΛΗΝΙΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΘΕΜΑΤΑ ΓΥΜΝΑΣΙΟΥ

Pascal. 26 Οκτωβρίου 2011

Αλγόριθμοι. Βασικές έννοιες ΤΕΛΟΣ

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α A1. 2-Λάθος 3-Λάθος 4-Σωστό 5-Λάθος A2. integer. real. Boolean. char. string A3.

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

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

Ας δούμε λίγο την θεωρία με την οποία ασχοληθήκαμε μέχρι τώρα.

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

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

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. β. Οι πληροφορίες είναι δεδομένα τα οποία δεν έχουν υποστεί επεξεργασία.

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8 Επεξεργασία Σήματος με την Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

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

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

ΕΠΑ.Λ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική Προγραµµατισµός Υπολογιστών Κεφάλαιο 9 Σηµειώσεις 03. Εντολή Εκχώρησης - Αντικατάστασης

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false.

Κεφάλαιο Πέµπτο: Η Εξάσκηση

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

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

Αποτελέσματα προόδου

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

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

8.4. Δραστηριότητες - ασκήσεις

Μονάδες 4. β. x=20 και y=10

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

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

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

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

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

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Transcript:

Σκοπός Εισαγωγή στο προγραμματισμό με τη PASCAL Οδηγός Προετοιμασίας για τη Τελική Εξέταση. Επανάληψη των βασικών εννοιών της PASCAL και του προγραμματισμού οι έννοιες της μεταβλητής, του τύπου δεδομένων, των αλγεβρικών & λογικών υπολογισμών, των εντολών σ ένα πρόγραμμα. Κατανόηση της μορφής και της λειτουργίας προγραμμάτων στη PASCAL. Κατανόηση της έννοιας «Δομή Δεδομένων». Κατανόηση των βημάτων στη συστηματική α- νάπτυξη ενός προγράμματος. Κατανόηση των τεχνικών / μεθόδων στην ανάπτυξη του προγράμματος, για ένα πρόβλημα Κατανόηση της έννοιας και της λειτουργίας των Συναρτήσεων στη PASCAL και στο προγραμματισμό. Χρήση των Ολοκληρωμένων Περιβαλλόντων Α- νάπτυξης Προγραμμάτων Lazarus 1

Οδηγός Προετοιμασίας για τη Τελική Εξέταση 2013 1. ΕΠΙΔΙΩΞΗ ΤΟΥ ΟΔΗΓΟΥ Στη διάρκεια του εργαστηρίου, εξετάσαμε τις βασικές έννοιες της PASCAL και του προγραμματισμού. Ξεκινώντας από την έννοια του προγράμματος, εξετάσαμε έννοιες και στοιχεία ενός προγράμματος που περιλαμβάνουν τι έννοιες της μεταβλητής, του τύπου δεδομένων, της εισόδου δεδομένων, της εκτέλεσης υπολογισμών, και της εμφάνισης των αποτελεσμάτων στην έξοδο. Εξετάσαμε πως μπορούμε να επεκτείνουμε τη λειτουργία ενός προγράμματος, από την εκτέλεση (απλών) αλγεβρικών και λογικών υπολογισμών, σε πιο σύνθετες λειτουργίες, όπως η λήψη αποφάσεων από το πρόγραμμα και η επανάληψη μίας λειτουργίας ή μίας ενέργειας, στη βάση μίας συνθήκης. Συνδυάζοντας αυτές τις βασικές λειτουργίες, τους αριθμητικούς & λογικούς υπολογισμούς, την επιλογή και την επανάληψη, μπορούμε να γράψουμε προγράμματα, για να λύνουν πολύ σύνθετα προβλήματα και να εκτελούν πολύ σύνθετες μορφές ανάλυσης και επεξεργασίας δεδομένων. Αναπτύξαμε τη σημασία της παράστασης των δεδομένων σ ένα πρόγραμμα, σαν το δεύτερο συστατικό στοιχείο ενός προγράμματος. Εκτός από συνδυασμός εντολών που εκτελούν έναν υπολογισμό ή μία επεξεργασία σε δεδομένα, ένα πρόγραμμα πρέπει να προσδιορίζει τη παράσταση αυτών των δεδομένων, στη μνήμη του υπολογιστή. Ο τρόπος που παριστάνουμε / απεικονίζουμε τα δεδομένα στη μνήμη του υπολογιστή είναι καθοριστικός, γιατί λειτουργεί ώστε να απλοποιεί ή αντίθετα να δυσχεραίνει την ε- πεξεργασία τους από τον υπολογιστή. Η λειτουργία κάθε προγράμματος να προσδιορίζει / υποδεικνύει στον υπολογιστή να εκτελέσει έναν υπολογισμό σε δεδομένα, σε συνδυασμό με τη παράσταση / απεικόνιση αυτών των δεδομένων στη μνήμη του υπολογιστή, εκφράζεται από τη ταυτότητα που διατύπωσε ο δημιουργός της PASCAL, Niclaus Wirth, για να εκφράσει την έννοια του προγράμματος: Πρόγραμμα = Αλγόριθμος + Δομές Δεδομένων Εξετάσαμε την έννοια της δομής δεδομένων. Από τις δομές δεδομένων που διαθέτει η PASCAL, εξετάσαμε το πίνακα. Αναλύσαμε τη λειτουργία και τη χρησιμότητα της δόμησης των δεδομένων, σ ένα πρόγραμμα. Είδαμε πως χρησιμοποιούμε το πίνακα, για να παραστήσουμε και να επιτρέψουμε στο πρόγραμμα να επεξεργαστεί εύκολο μεγάλο πλήθος δεδομένων, του ίδιου τύπου. Τελευταία, εξετάσαμε την έννοια των προγραμματιστικών τεχνικών. Ποιες μεθόδους χρησιμοποιούμε για την ανάπτυξη του προγράμματος, για ένα πρόβλημα? Η βασικότερη από αυτές της μεθόδους, είναι η αρχή του κατακερματισμού. Αυτή απλά περιλαμβάνει την ανάλυση ενός προβλήματος σε πιο απλά προβλήματα, σε διαδοχικά στά- 2

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους δια ανάλυσης, μέχρι να φτάσουμε σε προβλήματα που μπορούμε σχετικά εύκολα να λύσουμε. Μετά, ακολουθούμε την αντίστροφη διαδικασία, της σύνθεσης. Συνδυάζουμε τις λύσεις των επιμέρους προβλημάτων για να συνθέσουμε / δομήσουμε τη λύση διαδοχικά πιο σύνθετων προβλημάτων, μέχρι να καταλήξουμε στη ζητούμενη λύση. Η αρχή αυτή μας οδηγεί στην ανάπτυξη ενός προγράμματος, από ένα κυρίως πρόγραμμα και πολλά υποπρογράμματα. Αναλύουμε το πρόβλημα που καλούμαστε να λύσουμε, σε επιμέρους προβλήματα. Για κάθε ένα από αυτά τα προβλήματα, γράφουμε ένα πρόγραμμα. Μετά, συνδυάζουμε αυτά τα προγράμματα, σαν υποπρογράμματα ενός προγράμματος που αποτελεί το κυρίως πρόγραμμα για να λύσουμε το ζητούμενο πρόβλημα. Στη PASCAL, τα υποπρογράμματα ονομάζονται και έχουν τη μορφή μίας συνάρτησης. Στο προγραμματισμό, η συνάρτηση έχει μία γενικότερη έννοια, από αυτή στα μαθηματικά. Στο προγραμματισμό, μία συνάρτηση μετασχηματίζει / μετατρέπει δεδομένα που λαμβάνει από το κυρίως πρόγραμμα, σ ένα αποτέλεσμα που επιστρέφει στο κυρίως πρόγραμμα. Η λειτουργία μίας συνάρτησης σαν μέθοδος, αλλά και σαν μονάδα ενός συνθετότερου προγράμματος είναι τόσο βασική, ώστε όλα τα προγράμματα για πραγματικές εφαρμογές αποτελούνται από ένα, συνήθως μικρό κυρίως πρόγραμμα και πολλές συναρτήσεις. Αυτή ήταν η ύλη και του εργαστηριακού μαθήματος που εξετάσαμε και που σ αυτό τον οδηγό επαναλαμβάνεται, μέσα από παραδείγματα που θα μας θυμίσουν ή θα μας επιτρέψουν να αποκτήσουμε τις γνώσεις και να κατανοήσουμε τις έννοιες και τις μεθόδους για την εξέταση. Ο οδηγός επιχειρεί να παρουσιάσει / εξηγήσει αυτές τις έννοιες, μέσα από παραδείγματα και συνοπτικές αναφορές στη θεωρία. Όπου χρειάζεται, θα υπάρξουν οι ακριβείς παραπομπές στα εργαστηριακά μαθήματα / ασκήσεις. Ο οδηγός αποσκοπεί να λειτουργήσει σαν ένα εντατικό σεμινάριο στη PASCAL. Αν διαθέταμε τρείς μέρες, ή ακόμα 24 ώρες για να μάθουμε τη PASAL, πως θα μπορούσαμε να προετοιμαστούμε? Έτσι, δημιουργήθηκε αυτός ο οδηγός ώστε να περιέχει όλες τις βασικές έννοιες της Pascal, όμως με τρόπο που να μπορούμε να μάθουμε να γράφουμε αρκετά σύνθετα προγράμματα στη Pascal, μέσα στις 24 ή 48 ώρες που μεσολαβούν πριν την εξέταση. Έχοντας κάνει μία πρώτη γνωριμία με τις έννοιες που περιλαμβάνει ένα μάθημα στη PASCAL, μπορούμε να τις δούμε με διαφορετική σειρά ή ακόμα, χωρίς τη σειρά που επιβάλλαμε στη πρώτη ανάπτυξή τους και μπορεί ακόμα να τις αναπτύξουμε / χρησιμοποιήσουμε παράλληλα Ξεκινάμε με κάποια απλά προγράμματα που θα μας επιτρέψουν να εξετάσουμε και να κατανοήσουμε αρκετά σύνθετες έννοιες. Μετά θα μπορούμε να χρησιμοποιήσουμε αυτές τις έννοιες, για να απλοποιήσουμε την ανάπτυξη σύνθετων προγραμμάτων. Εάν καταφέρουμε να αναπτύσσουμε σύνθετα προγράμματα, μέσα από μία συστηματική διαδικασία, θα έχουμε πραγματικά καταλάβει την έννοια του προγραμματισμού. 3

Μέρος Α : Αλγεβρικοί & Λογικοί Υπολογισμοί Μέσα από απλά και σταδιακά πιο σύνθετα προγράμματα επιχειρούμε να δούμε τις πιο βασικές λειτουργίες ενός προγράμματος, όπως η είσοδος & έξοδος δεδομένων και αποτελεσμάτων και η εκτέλεση αριθμητικών και λογικών υπολογισμών. Θέμα 1: Γράψτε ένα πρόγραμμα σε PASCAL που να διαβάζει από την οθόνη μία γωνία θ σε μοίρες, 0 θ 360. Το πρόγραμμα θα πρέπει να μετατρέπει αυτή τη γωνία σε ακτίνια και να υπολογίζει και να εκτυπώνει το ημίτονο και το συνημίτονο αυτής της γωνίας, χρησιμοποιώντας τις συναρτήσεις sin () και cos () αντίστοιχα, της μαθηματικής βιβλιοθήκης της PASCAL. ΑΠΑΝΤΗΣΗ program sin_and_cos; var theta : integer; theta_rad, hmitono, synhmitono : real; const pi = 3.141593; begin write ('Dwse mia gwnia theta, 0 <= theta <= 360:'); readln (theta); (* Μετατροπή της γωνίας θ σε ακτίνια, χρησιμοποιώντας το τύπο: * θ (σε ακτίνια) = [ θ (σε μοίρες) / 180 ] * π *) end. theta_rad := ( theta / 180. ) * pi; hmitono := sin ( theta_rad ); synhmitono := cos (theta_rad ); writeln('sin', theta:3, '=', hmitono:5:2); writeln('cos', theta:3, '=', synhmitono:5:2); readln; 4

Εικόνα 1: Η ανάπτυξη του προγράμματος, στο περιβάλλον lazarus. Για να εκτελέσουμε το πρόγραμμα, πατάμε το εικονίδιο play, στη γραμμή εντολών του περιβάλλοντος. 5

Εικόνα 2: Τα αποτελέσματα της εκτέλεσης του προγράμματος για θ = 30 (επάνω) και για θ = 45 (κάτω). Στις παραπάνω εικόνες, παριστάνονται το πρόγραμμα για τον υπολογισμό του ημιτόνου και του συνημιτόνου μίας γωνίας θ, η ανάπτυξη / εκτέλεση αυτού του προγράμματος στο ολοκληρωμένο περιβάλλον ανάπτυξης lazarus και κάποια αποτελέσματα από την εκτέλεση του προγράμματος, για διαφορετικές τιμές της γωνίας θ. Αυτό το πρόγραμμα εκτελεί έναν απλό υπολογισμό που φαινομενικά, ακόμα και η πιο απλή αριθμομηχανή θα μπορούσε να εκτελέσει. Όμως, ακόμα και αυτό το πρόγραμμα χρησιμεύει για να αναδείξει πολλά βασικά χαρακτηριστικά ενός προγράμματος 6

Εικόνα 3: Η γενική μορφή / δομή ενός προγράμματος. Κάθε πρόγραμμα στη PASCAL, ξεκινάει με μία επικεφαλίδα που ορίζει το όνομα του προγράμματος (1). Ακολουθούν οι δηλώσεις των μεταβλητών (2), οι δηλώσεις των σταθερών που χρησιμοποιούμε στο πρόγραμμα (3), η είσοδος των δεδομένων (4), οι αριθμητικοί & λογικοί υπολογισμοί (5) και η έξοδος των αποτελεσμάτων (6).. 7

Εικόνα 4: Η ανατομία του προγράμματος. Η μορφή των εντολών εισόδου & εξόδου και χαρακτηριστικοί αριθμητικοί υπολογισμοί από ένα πρόγραμμα. Η εντολή εισόδου (readln) διαβάζει δεδομένα από την οθόνη, κατά την εκτέλεση του προγράμματος, σε αντίστοιχες μεταβλητές που περιέχονται, ως ορίσματα μέσα στην readln (). H εντολή εξόδου (writeln) εκτυπώνει στην οθόνη τις τιμές των μεταβλητών που περιέχει, ως ορίσματα. Το πρόγραμμα για τον υπολογισμό του ημιτόνου / συνημιτόνου μίας γωνίας θ, αναδεικνύει τη γενική μορφή / δομή ενός προγράμματος στη PASCAL (Εικόνα 3). Σαν γενικό κανόνα, κάθε πρόγραμμα που γράφουμε στη PASCAL, θα πρέπει να ακολουθεί τη μορφή του προγράμματος που γράψαμε παραπάνω. Κάθε πρόγραμμα στη PASCAL, θα πρέπει δηλαδή να περιλαμβάνει: 8

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους Την επικεφαλίδα του κυρίως προγράμματος, δηλ. την εντολή: program όνομα προγράμματος ; Τη δήλωση μίας ή περισσοτέρων μεταβλητών. Μία ή περισσότερες εντολές readln ( ) για την εισαγωγή και αποθήκευση σε μεταβλητές των δεδομένων που απαιτούνται για τη λειτουργία του προγράμματος. Κάποιους αριθμητικούς ή/και λογικούς υπολογισμούς. Μία ή περισσότερες εντολές writeln ( ) για την εμφάνιση / εκτύπωση των αποτελεσμάτων. Την εντολή end στο τέλος του προγράμματος. Αναλυτικά, η μορφή της εντολής εισόδου (readln), τη; εντολής εξόδου (writeln), αλλά και η μορφή των αλγεβρικών υπολογισμών που μπορεί να εκτελεί ένα πρόγραμμα, παριστάνονται στην ανατομία του προγράμματος, στην Εικόνα 4. Αν και απλή, η λειτουργία του παραπάνω προγράμματος περιλαμβάνει όλα τα βασικά χαρακτηριστικά της λειτουργίας ενός προγράμματος. Αποθηκεύει δεδομένα (τη τιμή μίας γωνίας θ) στη μνήμη του υπολογιστή, αναφέρεται σ αυτά τα δεδομένα, μέσα από μεταβλητές (theta και theta_rad) και επεξεργάζεται αυτά τα δεδομένα, μέσα από εντολές που ορίζουν υπολογισμούς σε αυτά (sin() και cos()). Μέσα από αυτό το πρόγραμμα, ο υπολογιστής εκτελεί έναν υπολογισμό, δηλαδή έ- ναν συνδυασμό αλγεβρικών και λογικών πράξεων που οδηγεί από ένα σύνολο δεδομένων, σ ένα ζητούμενο αποτέλεσμα. Η δυνατότητα εκτέλεσης υπολογισμών διακρίνει τον υπολογιστή από μία αριθμομηχανή ή μία ταμειακή μηχανή. Σε αντίθεση με μία ταμειακή μηχανή που μπορεί να εκτελεί μία αριθμητική πράξη κάθε φορά, ο υπολογιστής μπορεί να υπολογίζει, δηλαδή να εκτελεί σύνθετους συνδυασμούς αλγεβρικών και λογικών πράξεων, ακολουθώντας / εκτελώντας τις εντολές ενός προγράμματος. Η έννοια του υπολογισμού ως συνδυασμού αλγεβρικών & λογικών πράξεων είναι ανάλογη με το γραπτό και προφορικό λόγο. Όπως στο γραπτό και προφορικό λόγο, συνδυάζουμε λέξεις για να περιγράψουμε σκηνές ή γεγονότα και να εκφράσουμε έννοιες, έτσι σ έναν υπολογισμό, συνδυάζουμε αλγεβρικές & λογικές πράξεις για να υπολογίσουμε τη λύση ενός προβλήματος. Συνδυάζοντας λέξεις, στη βάση των γραμματικών και των συντακτικών κανόνων μίας φυσικής γλώσσας, μπορούμε να περιγράψουμε ένα άπειρο πλήθος γεγονότων, καταστάσεων και εννοιών. Ανάλογα, συνδυάζοντας απλές αριθμητικές και λογικές πράξεις, μπορούμε να λύνουμε προβλήματα, όσο σύνθετα και εάν είναι αυτά. 9

Οδηγός Προετοιμασίας για τη Τελική Εξέταση 2013 Πρώτα, ο Άγγλος μαθηματικός Alan Turing, στα 1930, επισήμανε τη πολυπλοκότητα των υπολογισμών που μπορεί να εκτελέσει ακόμα και ένας πολύ απλός υπολογιστής. Για να αποδείξει αυτό τον ισχυρισμό, ο Turing επινόησε έναν θεωρητικό υπολογιστή, που έγινε γνωστός ως «μηχανή Turing». Αυτή η μηχανή αποτελούνταν από μία μαγνητική ταινία εγγραφής και μπορούσε να εκτελεί πολύ απλές εντολές. Η λειτουργία κάθε εντολής ήταν: να μετακινεί μία κεφαλή εγγραφής / ανάγνωσης πάνω από τη μαγνητική ταινία, δεξιά ή αριστερά, κατά μία θέση κάθε φορά, ή να γράφει τη τιμή 0 ή 1, σε κάθε θέση εγγραφής της μαγνητικής ταινίας, ή να διαβάζει τη τιμή, σε μία θέση της μαγνητικής ταινίας. Ο Turing απέδειξε ότι αυτή η μηχανή μπορούσε να λύνει κάθε πρόβλημα, όσο σύνθετο και εάν ήταν αυτό, εφόσον υπήρχε η λύση αυτού του προβλήματος. Εάν δηλαδή γνωρίζαμε ότι ένα πρόβλημα μπορούσε να λυθεί, τότε μπορούσαμε να γράψουμε ένα πρόγραμμα, συνδυάζοντας τις απλές εντολές της μηχανής Turing, για να λύνει αυτό το πρόβλημα. Ο von Neumann βασίστηκε σ αυτή την ιδέα για να σχεδιάσει, στα 1950, την αρχιτεκτονική, στη βάση της οποίας σχεδιάζονται και λειτουργούν οι υπολογιστές, μέχρι σήμερα. Αυτή η αρχιτεκτονική περιλαμβάνει / αποτελείται από τη μνήμη, τη μονάδα ελέγχου και την μονάδα αριθμητικής & λογικής επεξεργασίας (Εικόνα 5) που μπορεί να εκτελεί πολύ απλές εντολές. Στη βάση της α- πόδειξης του Turing, συνδυάζοντας αυτές τις εντολές μπορούμε να γράφουμε ένα πρόγραμμα, για να λύνει οποιοδήποτε πρόβλημα, όσο πολύπλοκο και εάν είναι αυτό. Αρκεί μόνον, αυτό το πρόβλημα να μπορεί να λυθεί. Οι σύγχρονες γλώσσες προγραμματισμού δεν διευρύνουν τα προβλήματα που μπορεί να λύνει ο υπολογιστής. Όποιο πρόβλημα μπορεί να λυθεί, γράφοντας ένα πρόγραμμα, για παράδειγμα στη Java, μπορεί να λυθεί και από ένα πρόγραμμα σε Assembly. Όμως, οι σύγχρονες γλώσσες προγραμ- Εικόνα 5: Σχηματική παράσταση της αρχιτεκτονικής Von Neumann, για τον υπολογιστή. 10

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους ματισμού, ιδιαίτερα ο αντικειμενοστραφής και ο γραφικός προγραμματισμός απλοποιούν πολύ την ανάπτυξη προγραμμάτων, για σύνθετα προβλήματα και εφαρμογές. Παρακάτω, σταδιακά εξετάζουμε συνθετότερα προβλήματα και προγράμματα. Καθώς τα προγράμματα γίνονται πιο σύνθετα, εξετάζουμε τις τεχνικές και μεθόδους που χρησιμοποιούμε, για να απλοποιούμε την ανάπτυξή τους. Λογικοί Υπολογισμοί Παραπάνω και σε εργαστηριακές ασκήσεις εξετάσαμε προγράμματα που κυρίως, εκτελούσαν αλγεβρικούς υπολογισμούς. Όμως, ένα πρόγραμμα μπορεί να εκτελεί και λογικούς υπολογισμούς. Σ αυτό και στο επόμενο παράδειγμα, εξετάζουμε προγράμματα που εκτελούν λογικούς υπολογισμούς. Θέμα 2: Γράψτε ένα πρόγραμμα σε PASCAL που να διαβάζει από την οθόνη έναν χαρακτήρα. To πρόγραμμα θα πρέπει να ελέγχει εάν αυτός ο χαρακτήρας είναι φωνήεν, εάν δηλαδή είναι ένας από τους χαρακτήρες a, e, i, o ή u. Εάν ο χαρακτήρας είναι ένα από αυτά τα φωνήεντα, το πρόγραμμα θα πρέπει να εκτυπώνει τη τιμή 1 (True). Διαφορετικά, για οποιοδήποτε άλλο χαρακτήρα, το πρόγραμμα θα πρέπει να εκτυπώνει τη τιμή 0 (False). ΑΠΑΝΤΗΣH program eleghos; var gramma : char; phonhen : boolean; begin write('dwse enan xarakthra A - Z:'); readln(gramma); (* Ελέγχουμε εάν ο χαρακτήρας που η readln διαβάζει και αποθηκεύει * * στη μεταβλητή gramma, είναι φωνήεν *) phonhen := (gramma = 'a') or (gramma = 'e') or ( gramma = 'i') or (gramma = 'o') or (gramma = 'u'); writeln('o xarakthras', gramma:2, ' enai phonhen:', phonhen); readln; end. 11

Εικόνα 6: Παράδειγμα ενός λογικού υπολογισμού. Η readln διαβάζει έναν χαρακτήρα από την οθόνη, στη μεταβλητή gramma. Στην επόμενη εντολή, η σύνθετη συνθήκη που ελέγχει εάν η τιμή της μεταβλητής gramma είναι ένα από τα φωνήεντα, εκχωρείται στη μεταβλητή phonhen. Εάν η συνθήκη ισχύει, τότε η μεταβλητή phonhen παίρνει τη τιμή 1. Διαφορετικά, η μεταβλητή phonhen θα πάρει τη τιμή 0. 12

Εικόνα 7: Ενδεικτικά αποτελέσματα από την εκτέλεση του προγράμματος του Θέματος 2. 13

Οδηγός Προετοιμασίας για τη Τελική Εξέταση 2013 Θέμα 3: Γράψτε ένα πρόγραμμα σε PASCAL που να διαβάζει από την οθόνη δύο θετικούς ακέραιους a και b. To πρόγραμμα θα πρέπει να εκτυπώνει τη τιμή 1 (True) εάν οποιοσδήποτε από τους δύο ακεραίους διαιρεί ακριβώς τον άλλο. Το πρόγραμμα θα πρέπει δηλαδή να εκτυπώνει τη τιμή 1 (True) εάν ο a διαιρεί ακριβώς τον b ή ακόμα, εάν ο b διαιρεί ακριβώς τον a. ΑΠΑΝΤΗΣΗ program diairetes; var a, b : integer; a_divides_b, b_divides_a, divides : boolean; begin writeln ('Dwse dyo (2) akeraious arithmous:'); readln(a, b); (* Ελέγχουμε εάν ο a διαιρεί ακριβώς τον b * * ή εάν ο b διαιρεί ακριβώς τον a *) a_divides_b := (b mod a) = 0 ; b_divides_a := (a mod b) = 0 ; divides := a_divides_b or b_divides_a; writeln('enas apo tous arithmous', a:5, b:5, ' diairei akrivws ton allo:', divides); end. readln; 14

Εικόνα 8: Λογικοί υπολογισμοί, με τη χρήση 15 λογικών μεταβλητών.

Εικόνα 9: Ενδεικτικά αποτελέσματα από την εκτέλεση του προγράμματος του Θέματος 3. Θέμα 4: Γράψτε ένα πρόγραμμα σε PASCAL που να διαβάζει από την οθόνη έναν ακέραιο αριθμό a. To πρόγραμμα θα πρέπει να ελέγχει εάν ο a είναι μονός αριθμός και να εκτυπώνει τη τιμή 1 (True) εάν ο a είναι μονός και τη τιμή 0 εάν είναι ζυγός. ΑΠΑΝΤΗΣΗ Παρόμοια με την απάντηση στο Θέμα 3. Για να ελέγξουμε εάν ένας αριθμός είναι μονός, εξετάζουμε εάν αυτός διαιρείται δια 2. Εάν δεν διαιρείται δια 2, τότε είναι μονός. Διαφορετικά, είναι ζυγός. 16

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους Μέρος Β : Λήψη Αποφάσεων από ένα πρόγραμμα Παραπάνω, εξετάσαμε παραδείγματα αλγεβρικών & λογικών υπολογισμών από ένα πρόγραμμα. Όλα τα παραπάνω προγράμματα εκτελούσαν υπολογισμούς και εμφάνιζαν τα αποτελέσματα αυτών των υπολογισμών, στην έξοδο. Όμως, εκτός από υπολογισμούς, προγράμματα έχουν τη δυνατότητα να παίρνουν αποφάσεις, είτε στη βάση των υπολογισμών που εκτελούν ή στη βάση των εξωτερικών δεδομένων. Αυτό σημαίνει ότι ένα πρόγραμμα μπορεί να εξετάζει τα δεδομένα ή αποτελέσματα των υπολογισμών που εκτελεί και ανάλογα με τις τιμές αυτών των αποτελεσμάτων, να επιλέγει να εκτελέσει μία από πολλές διαφορετικές ομάδες εντολών που αντιστοιχούν σε διαφορετικές λειτουργίες. Χαρακτηριστικά παραδείγματα τέτοιων προγραμμάτων, είναι τα προγράμματα applications για κινητά ή video games για laptop και προσωπικούς υπολογιστής που παίζουν σκάκι ή τάβλι, σ ένα κινητό ή σ ένα προσωπικό υπολογιστή. Ένα άλλο παράδειγμα τέτοιου προγράμματος που μπορεί να παίρνει αποφάσεις και να εμφανίζει διαφορετικά αποτελέσματα, ανάλογα με τα δεδομένα που δίνουμε σ αυτό το πρόγραμμα, είναι η μηχανή αναζήτησης, το Google. Η δυνατότητα σ ένα πρόγραμμα να παίρνει αποφάσεις, επιλέγοντας ποια από διαφορετικές λειτουργίες θα εκτελέσει, υλοποιείται με την εντολή επιλογής, δηλαδή την εντολή if. Παρακάτω, εξετάζουμε τη λειτουργία αυτής της εντολής και τον τρόπο που αυτή η εντολή επιτρέπει σ ένα πρόγραμμα να αποφασίζει ως προς το ποια από διαφορετικές λειτουργίες θα εκτελέσει. Όπως για εμάς, έτσι και για ένα πρόγραμμα, ο πιο απλός τρόπος για να πάρει μία απόφαση είναι να στρίψει ένα νόμισμα. Εξετάζουμε πως ένα πρόγραμμα μπορεί να στρίβει ένα νόμισμα και να χρησιμοποιεί το αποτέλεσμα αυτής της διαδικασίας, για να πάρει μία απόφαση. Θέμα 5: Γράψτε ένα πρόγραμμα σε PASCAL που να στρίβει ένα νόμισμα. Ανάλογα με το αποτέλεσμα, το πρόγραμμα θα πρέπει να επιλέγει να εκτελέσει μία από δύο λειτουργίες. Εάν το αποτέλεσμα είναι «κορώνα», το πρόγραμμα θα πρέπει να εκτυπώνει το μήνυμα korona, ενώ εάν το αποτέλεσμα είναι «γράμματα» το πρόγραμμα θα πρέπει να εκτυπώνει τη λέξη grammata. ΑΠΑΝΤΗΣΗ program nomisma; var tyhaios_arithmos : integer; 17

Οδηγός Προετοιμασίας για τη Τελική Εξέταση 2013 begin randomize; tyhaios_arithmos := random (100); writeln ('tyhaios_arithmos =', tyhaios_arithmos:3); if ( tyhaios_arithmos < 50 ) then writeln ('KORONA') else writeln('grammata'); readln; end. Εικόνα 10: Λήψη μίας απόφασης από ένα πρόγραμμα, στη βάση του αποτελέσματος από το στρίψιμο ενός νομίσματος. Το στρίψιμο ενός νομίσματος προσομοιώνεται, χρησιμοποιώντας τη συνάρτηση random(). 18

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους Εικόνα 11: Διαδοχικές εκτελέσεις του προγράμματος που προσομοιώνει το στρίψιμο ενός νομίσματος (Θέμα 5). 19

Οδηγός Προετοιμασίας για τη Τελική Εξέταση 2013 Θέμα 6: Γράψτε ένα πρόγραμμα σε PASCAL που να προσομοιώνει τη ρίψη δύο ζαριών. Ανάλογα με το αποτέλεσμα, το πρόγραμμα θα πρέπει να επιλέγει να εκτελέσει μία από δύο λειτουργίες. Εάν το άθροισμα των δύο ζαριών είναι 7 ή 11, το πρόγραμμα θα πρέπει να εκτυπώνει το μήνυμα κέρδισες. Για όποιο άλλο αποτέλεσμα, το πρόγραμμα θα εκτυπώνει τη λέξη «έχασες». ΑΠΑΝΤΗΣΗ Παρόμοια με την απάντηση στο Θέμα 5. Μόνον, που η συνάρτηση random () θα πρέπει να καλείται δύο φορές μία για κάθε ζάρι δημιουργώντας δύο τυχαίους αριθμούς. Κάθε ένας από αυτούς, θα πρέπει να είναι ανάμεσα στο 1 και το 6 που είναι τα δυνατά αποτελέσματα της ρίψης ενός ζαριού. Έτσι, η συνάρτηση random (), θα πρέπει να καλείται με το παρακάτω όρισμα: zari1 := random (6) + 1; zari2 := random (6) + 1; 20