Κεφάλαιο Τέταρτο: Η Θεωρία πριν από την Εξάσκηση

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

8 FORTRAN 77/90/95/2003

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

Κεφάλαιο 10 ο Υποπρογράµµατα

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

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

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Κεφάλαιο 5ο: Εντολές Επανάληψης

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

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

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

Διδακτική της Πληροφορικής ΙΙ

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

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

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

for for for for( . */

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

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

Εισαγωγή στην πληροφορική

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

1η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 1 (Θεωρία)

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

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

Ανάπτυξη και Σχεδίαση Λογισμικού

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Επικοινωνία:

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

Αριθμητική Ανάλυση & Εφαρμογές

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

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

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

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

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

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

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

Πρόβλημα 29 / σελίδα 28

Ψευδοκώδικας. November 7, 2011

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

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

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

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

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95

ιαφάνειες παρουσίασης #4

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

τα βιβλία των επιτυχιών

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

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

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Εισαγωγή στην Αριθμητική Ανάλυση

Τμήμα Τεχνολόγων Γεωπόνων - Φλώρινα

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

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

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

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

Προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Transcript:

Κεφάλαιο Τέταρτο: Η Θεωρία πριν από την Εξάσκηση 1. Γενικά Η εξάσκηση στο Εργαστήριο, προϋποθέτει είτε την παρακολούθηση της αντίστοιχης θεωρία του µαθήµατος, είτε την προσωπική εκπαίδευση του σπουδαστή. Η δε ύλη εξάσκησης στο Εργαστήριο θα έπεται τουλάχιστον µίας (παραπάνω) διάλεξης της Θεωρίας, ώστε να δίνεται η ευκαιρία της κατανόησης των εννοιών. Η γλώσσα προγραµµατισµού Fortran, δεν διαφέρει δραµατικά από την αντίστοιχη Basic, την οποία διδάχθηκαν οι σπουδαστές στο προηγούµενο εξάµηνο, αλλά εµπεριέχει δοµές οι οποίες τη διαφοροποιούν σηµαντικά. Η ίδια η διδασκαλία της, ακόµα, συµπεριλαµβάνει µερικές ενότητες οι οποίες δεν έχουν διδαχθεί ξανά και κρίνονται απαραίτητες ώστε να ολοκληρωθεί η εκπαίδευσή τους. Πριν από την εξάσκηση στο Εργαστήριο, τέλος, θα προηγείται η διδασκαλία των βασικών εννοιών Θεωρίας οι οποίες απαιτούνται για την επιτυχή ολοκλήρωσή της. Σε καµµία περίπτωση, όµως, δεν θα υποκαθίσταται ο ρόλος και η αξία της παρακολούθησης της Θεωρίας. Η διδασκαλία στο Εργαστήριο, οπωσδήποτε δεν αποβαίνει σε βάρος του χρόνου της εξάσκησης, αλλά δίνεται σαν επί πλέον βοήθηµα στο σπουδαστή. Η δε προετοιµασία στις ασκήσεις, είναι προαιρετική. 2. Ο Τρόπος Εργασίας στο Εργαστήριο Στο προηγούµενο εξάµηνο, το περιβάλλον της γλώσσας προγραµµατισµού Basic, επέτρεπε τη συγγραφή, την αποθήκευση, την αποσφαλµάτωση, τον έλεγχο και την εκτέλεση των εντολών ενός προγράµµατος ( πηγαίος κώδικας ), χωρίς ο χρήστης να πρέπει να χρησιµοποιεί διαφορετικά προγράµµατα ώστε να εκτελέσει τις παραπάνω ενέργειες. Η ευκολία αυτή (η εκτέλεση των παραπάνω ή περισσοτέρων ενεργειών µέσω του ιδίου περιβάλλοντος), όµως, δεν αποτελεί τον κανόνα στις γλώσσες προγραµµατισµού τις οποίες φιλοξενούν οι περισσότερο αξιόλογοι υπολογιστές (π.χ. σταθµοί εργασίας κ.τ.λ.). Συµπερασµατικά, κατά την εξάσκηση στη Fortran θα χρησιµοποιηθούν τρία (3) διαφορετικά προγράµµατα τα οποία υλοποιούν τις κάτωθι ενέργειες: - edit όνοµα αρχείου.for, για την συγγραφή/αποθήκευση του πηγαίου κώδικα, - fl όνοµα αρχείου.for, για την αποσφαλµάτωση του πηγαίου κώδικα και - όνοµα αρχείου, για την εκτέλεση του προγράµµατος το οποίο προκύπτει από τον πηγαίο κώδικα. Το όνοµα αρχείου αποτελεί την κύρια ονοµασία του αρχείου το οποίο θα περιέχει τον πηγαίο κώδικα. Η κατάληξη.for, είναι υποχρεωτική (και αποτελεί σύντµηση της λέξης, Fortran βέβαια.) Για να ορισθεί η κύρια ονοµασία ενός αρχείου, θα πρέπει να τηρηθούν οι ακόλουθοι κανόνες: - πρέπει να χρησιµοποιείται µόνο η αγγλική γραφή χαρακτήρων, - το σύνολο των χαρακτήρων δεν πρέπει να ξεπερνά τους οκτώ (8) και - µπορούν να χρησιµοποιηθούν γράµµατα και αριθµοί αλλά µε αυτή τη σειρά. Παρ ότι οι παραπάνω κανόνες δέχονται και εξαιρέσεις, η τήρησή τους εξασφαλίζει πως δεν θα δηµιουργηθεί ποτέ πρόβληµα στο χειρισµό των κυρίων ονοµασιών ενός αρχείου. Η συµβουλή µου είναι να χρησιµοποιείται σαν η κύρια ονοµασία ενός αρχείου το γράµµα a (από την ελληνική λέξη άσκηση), ένας αριθµός ο οποίος θα δηλώνει τον αύξοντα αριθµό του Εργαστηρίου (π.χ. 3 για το τρίτο) και ένας ακόµη αριθµός ο οποίος θα δηλώνει τον αύξοντα αριθµό της άσκησης (π.χ. 1 για την πρώτη), ώστε να προκύψει η (συνολική) ονοµασία a31.for στο παράδειγµα. Η (συνολική) ονοµασία του αρχείου καλό είναι να κρατείται µικρή ώστε να µικραίνει ο χρόνος πληκτρολόγησής της. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 31

3. Ο Τρόπος Συγγραφής του Πηγαίου Κώδικα Ένα πρόγραµµα, σε οποιαδήποτε γλώσσα προγραµµατισµού, αποτελείται από ένα σύνολο εντολών οι οποίες υλοποιούν το ζητούµενο (π.χ. την επίλυση ενός µαθηµατικού προβλήµατος). Οι εντολές αυτές χωρίζονται σε οµάδες ανάλογα µε την εργασία την οποία επιτελούν και διαφοροποιούνται µεταξύ τους (στην ίδια οµάδα), σε σχέση µε τη σύνταξη ή το αποτέλεσµά τους. Όπως ακριβώς ένας ποιητής ή ένας συγγραφέας διαφοροποιείται από έναν άλλο χάρη και στο ύφος του, έτσι και ένας προγραµµατιστής µπορεί να χρησιµοποιεί άλλες εντολές για να φθάσει στο ίδιο αποτέλεσµα µε κάποιον άλλο. Η διαφορά έγκειται, ίσως, στην ταχύτητα εκτέλεσης των εντολών, ή στο χρόνο συγγραφής του προγράµµατος, αλλά παράµετροι όπως η αναγνωσιµότητα (και επεξεργασία) του πηγαίου κώδικα από άλλους προγραµµατιστές θέτει και αυτή τα δικά της κριτήρια. Ο προγραµµατιστής είναι πάνω απ όλα ένα ΗΜΙΟΥΡΓΟΣ και σωστό είναι να χρησιµοποιεί εκείνες τις εντολές τις οποίες κατέχει και χρησιµοποιεί καλύτερα. Η δε βαθµολόγηση των δεξιοτήτων ενός σπουδαστή στο Εργαστήριο δεν θα λαµβάνει υπ όψη της τον καλύτερο, αλλά τον σωστό κώδικα. Το σύνολο των εντολών θα εγγράφονται σε ένα αρχείο, θα µεταφράζονται και θα αποστέλλονται προς τον επεξεργαστή του υπολογιστικού συστήµατος. Το γεγονός ότι είναι πολλές (και θα γίνονται περισσότερες όσο µεγαλύτερος ο αριθµός του Εργαστηρίου), δεν σηµαίνει ότι ο επεξεργαστής µπορεί να κορεσθεί από αυτές, ούτε πως θα αρνηθεί να εκτελέσει µερικές από αυτές λόγω µη διαθεσιµότητάς του. Ο επεξεργαστής δέχεται µία εντολή τη φορά, την εκτελεί και συνεχίζει την (επεξ)εργασία του, χωρίς να πτοείται από τα µεγέθη. Το γεγονός, όµως πως εκτελεί µόνο ΜΙΑ εντολή τη φορά, θα το εκµεταλλευθούµε στη συγγραφή του πηγαίου κώδικα. Οι κύριες κατηγορίες στις οποίες χωρίζονται οι εντολές µιας γλώσσας προγραµµατισµού και, άρα, τα τµήµατα ενός προγράµµατος, είναι οι εξής: - εντολές εισόδου στοιχείων (προς το υπολογιστικό σύστηµα), - εντολές πράξεων επί των στοιχείων και - εντολές εξόδου (εκτύπωσης) στοιχείων (κυρίως προς την οθόνη του υπολογιστικού συστήµατος). Κατά τη διάρκεια της συγγραφής του πηγαίου κώδικα θα πρέπει οι σπουδαστές να έχουν κατανοήσει τα ζητούµενα της άσκησης (καλό διάβασµα της εκφώνησης), να παρατηρήσουν τα παραπάνω τµήµατα στον κώδικα (να ξεχωρίζουν αν χρειάζεται εισαγωγή/επεξεργασία/εκτύπωση στοιχείων) και να γνωρίζουν τη σύνταξη και τα αποτελέσµατα της χρησιµοποίησης των εντολών οι οποίες διδάσκονται κατά τη θεωρία (ώστε να αξιοποιούνται οι κατάλληλες εντολές και να αποσφαλµατώνεται ο κώδικας). Πολλές από τις τεχνικές για την επίλυση των ασκήσεων τις οποίες θα χρησιµοποιηθούν, προκύπτουν από την πρότερη εξάσκηση στη γλώσσα προγραµµατισµού Basic και απλά θα επαναλαµβάνονται. Θα διδαχθούν, όµως, και αρκετές καινούργιες όπως επίσης και η χρήση (γνωστών) εντολών µε απροσδόκητα αποτελέσµατα. Οι διάφοροι αλγόριθµοι επίλυσης µαθηµατικών προβληµάτων οι οποίοι είναι γνωστοί από το Λύκειο ή το µάθηµα των Εφαρµοσµένων Μαθηµατικών θα είναι επίσης πολύ χρήσιµοι, αλλά θα πρέπει να συνδυάζονται επαγωγικά και µε τη λαµβανόµενη γνώση από όλα τα µαθήµατα. Ο προγραµµατισµός των υπολογιστών είναι ένα µάθηµα το οποίο δίνει τη δυνατότητα να εκµεταλλευθεί ένας τη γνώση πάνω σε πολλούς τοµείς και σε καµµία περίπτωση δεν περιλαµβάνεται στο εκπαιδευτικό πρόγραµµά ως αποστασιοποιηµένη ύλη. Στα επόµενα υπάρχει ην ύλη της Θεωρίας η οποία είναι απαραίτητη για την εξάσκηση στο Εργαστήριο, χωριστά από τις ίδιες τις ασκήσεις οι οποίες θα δοθούν στο επόµενο κεφάλαιο. Η Θεωρία θα καλύπτει τις εντολές, τον τρόπο σκέψης για την επίλυση της άσκησης και µερικά σηµεία όπου θα πρέπει να δίνεται ιδιαίτερη προσοχή στην επίλυση της άσκησης. Για τη χρησιµοποίηση των υπολογιστικών συστηµάτων του Εργαστηρίου θα απαιτηθεί η (ελάχιστη) γνώση της πληκτρολόγησης χαρακτήρων, αριθµητικών και µαθηµατικών συµβόλων, κίνησης ανάµεσα στις γραµµές του κώδικα, αλλά και όρεξης ενασχόλησης µε το πιο σπουδαίο εργαλείο της ανθρώπινης διάνοιας: το υπολογιστικό σύστηµα ρ. Γιώργος - Πέτρος Κ. Οικονόµου 32

4. Χωρισµός των Χαρακτηριστικών Εντολών της Fortran * - α. Εντολές Εισόδου Στοιχείων (προς το υπολογιστικό σύστηµα) Ορισµός µεταβλητών (και πινάκων) χαρακτήρων: CHARACTER µεταβλητή/πίνακας Ορισµός λογικών µεταβλητών (και πινάκων): LOGICAL µεταβλητή/πίνακας Ορισµός ακεραίων µεταβλητών (και πινάκων): INTEGER µεταβλητή/πίνακας Ορισµός πραγµατικών µεταβλητών (και πινάκων): REAL µεταβλητή/πίνακας Ανάθεση (ή αντικατάσταση): = ιάβασµα από το πληκτρολόγιο: READ *, (ένα στοιχείο) και READ (*,*)(πολλά στοιχεία) - β. Εντολές Επεξεργασίας Στοιχείων Ανάθεση (ή αντικατάσταση): Μετάβαση σε άλλες εντολές: Έλεγχος: Επανάληψη: Ορισµός Συνάρτησης: Ορισµός Υποπρογράµµατος: = (αριθµητικές πράξεις και συναρτήσεις) GOTO ονοµασία γραµµής IF ELSEIF ELSE ENDIF DO.. ENDDO ή DO ονοµασία γραµµής CONTINUE FUNCTION RETURN SUBROUTINE RETURN - γ. Εντολές Εξόδου Στοιχείων (κυρίως προς την οθόνη του υπολογιστικού συστήµατος) (Απλή) Εκτύπωση: PRINT *, (Σύνθετη) Εκτύπωση: WRITE (*,*) Μορφοποίηση Στοιχείων Εκτύπωσης: FORMAT Πέρα από αυτές τις εντολές θα χρησιµοποιηθούν και τα εξής - δ. Σύµβολα: Αριθµητικά: +, -, *, /, ** Παρενθέσεις: () Εισαγωγικό: Κόµµα:, Χαρακτήρες: a, b, c, d, e, f, g, h, i, j, k, l, m, n,o, p, q, r, s, t, u,v, w, x, y, z * Αριθµοί: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 Συναρτήσεις: SIN(), ASIN(), COS(), ACOS(), TAN() ATAN(), SQRT(), INT(), MOD(), ABS(), ALOG(), ALOG10(), EXP() Λογικοί Τελεστές:.EQ. (=),.NE. ( ),.LT. (<),.GT. (>),.LE. ( ),.GE. ( ),.TRUE.,.FALSE.,.AND.,.OR.,.NOT. - ε. Οι εντολές τερµατισµού ενός προγράµµατος STOP END * εν παίζει ρόλο αν είναι πεζά ή κεφαλαία ρ. Γιώργος - Πέτρος Κ. Οικονόµου 33

ρ. Γιώργος - Πέτρος Κ. Οικονόµου 34

5. της Θεωρίας των Ασκήσεων Άσκηση 1: Εισαγωγικές Έννοιες - Μέθοδος Εργασίας Γενικά: Σε αυτή την εισαγωγική άσκηση ο σκοπός είναι να εγκλιµατισθούν οι σπουδαστές µε τα υπολογιστικά συστήµατα του Εργαστηρίου και τον τρόπο εργασίας σε αυτό. Επιδιώκεται µια πρώτη επαφή µε τα µηνύµατα σφαλµάτων της Fortran, θα ορισθεί ο χώρος εργασίας: C:\Mech2\Group1 (ή Group2, ή Group3, ή Group4) και θα χρησιµοποιηθούν οι εντολές του MS-DOS. Ακόµα, θα δοθεί άπλετος χρόνος εξάσκησης µε το πληκτρολόγιο του υπολογιστικού συστήµατος. Να Γνωρίζετε: Στοιχεία: Οι πρώτες έξι (6) στήλες µιας γραµµής κώδικα ο οποίος γράφεται στη γλώσσα προγραµµατισµού Fortran, έχουν ιδιαίτερη σηµασία. Ένας οποιοσδήποτε χαρακτήρας αν γραφεί στην πρώτη στήλη, κάνει όλη τη γραµµή σχόλιο (συνηθίζεται το c από το αρχικό της αγγλικής λέξης comment (σχόλιο)). Μεταξύ των στηλών δύο (2) και πέντε (5) γράφονται οι ονοµασίες των γραµµών (σε συνεχόµενες στήλες!). Αν τοποθετηθεί στη στήλη έξι (6) ένας οποιοσδήποτε χαρακτήρας, κάνει όλη τη γραµµή συνέχεια της προηγούµενης (συνηθίζεται το + ). Τέλος, οι επιτρεπτές στήλες ανά γραµµή είναι εβδοµήντα (70) και δεν επιτρέπεται να ξεπερνιούνται. Αν αυτό συµβεί, είναι απαραίτητη η αλλαγή γραµµής και η συνέχιση της στην επόµενη (η επόµενη γραµµή ξεκινά µε το + στη στήλη έξι (6)). Η δεύτερη άσκηση η οποία δίνεται ως παράδειγµα, περιέχει επίτηδες µερικά σφάλµατα ώστε να δίνεται η ευκαιρία να αντιµετωπισθούν και να ξεχωρίζουν. Γενικά, τα σφάλµατα προγραµµατισµού διακρίνονται σε συντακτικά (λάθη από κακή συγγραφή εντολών ή των παραµέτρων τους) και σε λογικά (λάθη από κακή χρησιµοποίηση των εντολών). Τα πρώτα ανιχνεύονται κατά τη µετάφραση του κώδικα συνήθως, τα δεύτερα µόνο από το αποτέλεσµα των πράξεων του κώδικα. Τα σφάλµατα αναφέρονται πάντα σε αριθµό γραµµής όπου ανιχνεύθηκαν, εκτός κι αν αναφέρεται η τελευταία γραµµή του κώδικα οπότε και σηµαίνει πως κάποια µεταβλητή ή εντολή δεν βρέθηκε. Τέλος, τα σφάλµατα αναφέρονται ως error ή warning. Τα δεύτερα δεν αποτελούν ακριβώς σφάλµατα αλλά καλό είναι να αναζητείται η αιτία η οποία τα προκάλεσε καθώς η παρουσία τους υπονοεί λάθη. Η εντολή (απλής) εκτύπωσης PRINT *,. Εντολής: Η εντολή αυτή θυµίζει την αντίστοιχη της γλώσσας προγραµµατισµού Basic. Η διαφορά τους έγκειται στο ότι δεν υποστηρίζει το χαρακτήρα ; ως διαχωριστικό των πεδίων εκτύπωσης, αλλά µόνο το κόµµα,. Κατά τα γνωστά, όταν πρόκειται να τυπωθούν στην οθόνη µερικά στοιχεία, πρέπει να χωρισθούν σε σταθερά και σε µεταβαλλόµενα. Τα πρώτα τυπώνονται εντός του εισαγωγικού, τα και τα δεύτερα ως µεταβλητές. Η χρήση του χαρακτήρα * θα εξηγηθεί στην εντολή WRITE (*,*). Υπενθυµίζεται, ακόµα, πως µε τη χρήση και αυτής της εντολής µπορούν να εκτελεσθούν οι διάφορες πράξεις και οι συναρτήσεις (η άλλη είναι η ανάθεση). Προσοχή: Προσοχή χρειάζεται η εκµάθυνση των µηνυµάτων σφαλµάτων τα οποία θα εµφανισθούν, το πώς αυτά διορθώνονται και η εξάσκηση στο πληκτρολόγιο. Επίσης, οι σπουδαστές θα πρέπει να εµπεδώσουν τη σειρά: συγγραφή/διόρθωση και αποθήκευση, µετάφραση, και εκτέλεση κώδικα. Ειδικά το γεγονός της εκ νέου µετάφρασης του κώδικα έπειτα από ΚΑΘΕ αλλαγή σε αυτόν. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 35

της Άσκησης 1.1 Πρόκειται για µια απλή εξάσκηση στο πληκτρολόγιο. Οι σπουδαστές καλούνται να εντοπίσουν και να πληκτρολογήσουν τους χαρακτήρες και τα σύµβολα τα οποία ζητούνται. της Άσκησης 1.2 Πρόκειται για µια άσκηση όπου ζητείται να εντοπισθούν και να αποσφαλµατωθούν τα λανθασµένα στοιχεία στον πηγαίο κώδικα ώστε το πρόγραµµα να εκτελεσθεί απρόσκοπτα. της Άσκησης 1.3 Πρόκειται για µια άσκηση όπου οι σπουδαστές θα πρέπει να εξασκηθούν στη (σύνθετη) εκτύπωση σταθερών και µεταβαλλοµένων πολλαπλών πεδίων εκτύπωσης. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 36

Άσκηση 2: Τύποι Μεταβλητών - Συναρτήσεις Βιβλιοθήκης Γενικά: Να Γνωρίζετε: Στοιχεία: Εντολής 1 : Εντολής 2 : Εντολής 3 : Εντολής 4 : Σε αυτή την άσκηση ο σκοπός είναι να εγκλιµατισθούν οι σπουδαστές µε το πώς υλοποιούνται οι µαθηµατικές πράξεις και οι συναρτήσεις στη γλώσσα προγραµµατισµού Fortran. Οι ασκήσεις θα πρέπει να λυθούν τµηµατοποιώντας την άσκηση σε εντολές εισόδου, επεξεργασίας και εξόδου στοιχείων, όσο απλές και αν φαίνονται, ώστε να δηµιουργηθεί το κατάλληλο υπόβαθρο για τις µελλοντικές. Η γλώσσα προγραµµατισµού Fortran δίνει ιδιαίτερη σηµασία στο ποιον των αριθµών οι οποίοι υπόκεινται σε µαθηµατικές πράξεις. Αυτό ισχύει τόσο σε πράξεις µεταξύ αριθµών όσο και σε πράξεις µεταξύ µεταβλητών. Εξ ορισµού (και ελλείψει άλλης δήλωσης) όσες µεταβλητές αρχίζουν µε τους χαρακτήρες i, j, k, l, m, και n θεωρούνται να φιλοξενούν ακέραιους αριθµούς. Εξ ορισµού (και ελλείψει άλλης δήλωσης) όσες µεταβλητές αρχίζουν µε τους υπόλοιπους χαρακτήρες του αγγλικού αλφαβήτου θεωρούνται να φιλοξενούν πραγµατικούς αριθµούς (κανόνας των αρχικών). Οι µεταβλητές, όµως, µπορούν και να δηλωθούν ως προς τον τύπο τους χάρη στις εντολές INTEGER (οι ακέραιες), REAL (οι πραγµατικές), LOGICAL (οι λογικές) και CHARACTER (οι τύπου χαρακτήρα ή αλφαριθµητικές µεταβλητές). Οι ασκήσεις δίνονται ως παράδειγµα ώστε να δοθεί η ευκαιρία να αντιµετωπισθούν και να τύχουν κατάλληλου χειρισµού τα διαφορετικά είδη αριθµών και µεταβλητών. Οι πράξεις µπορεί να οδηγήσουν σε απροσδόκητα αποτελέσµατα τα οποία δικαιολογούνται µόνο αν εξετασθεί ο τύπος του αριθµού ο οποίος συµµετέχει στις πράξεις. Υπενθυµίζεται πως η ακρίβεια των ακεραίων αριθµών ανήκει στο διάστηµα [-32 768, +32767] (το µηδέν (0) συµπεριλαµβάνεται σε αυτό το διάστηµα). Η εντολή δήλωσης INTEGER όνοµα(τα) µεταβλητής(ών). ηλώνει οποια(εσ)δήποτε µεταβλητή(ές) ακολουθεί(ούν) ως ακέραια(ες). Η εντολή δήλωσης REAL όνοµα(τα) µεταβλητής(ών). ηλώνει οποια(εσ)δήποτε µεταβλητή(ές) ακολουθεί(ούν) ως πραγµατική(ές). Η εντολή δήλωσης LOGICAL όνοµα(τα) µεταβλητής(ών). ηλώνει οποια(εσ)δήποτε µεταβλητή(ές) ακολουθεί(ούν) ως λογική(ές). Η εντολή δήλωσης CHARACTER * αριθµός όνοµα(τα) µεταβλητής(ών). ηλώνει οποια(εσ)δήποτε µεταβλητή(ές) ακολουθεί(ούν) ως τύπου χαρακτήρων. Ο αριθµός µετά το * υποδηλώνει το πλήθος των προβλεπόµενων χαρακτήρων. Η εντολή ανάθεσης (αντικατάστασης) =. Εντολής 5 : Η εντολή αυτή είναι η ίδια ακριβώς µε την αντίστοιχη της γλώσσας προγραµµατισµού Basic. Υπενθυµίζεται πως σε ΚΑΜΜΙΑ περίπτωση δεν εισάγει µαθηµατική ισότητα (και τις ιδιότητές της), αλλά πρόκειται για ολοκληρωµένη εντολή. Στα αριστερά της απαγορεύεται η οποιαδήποτε πράξη, στα δεξιά της µπορεί να πράττονται αριθµοί διαφόρων τύπων, µεταβλητές διαφόρων τύπων και συναρτήσεις. Βέβαια, δεν ορίζονται όλες οι πράξεις οι οποίες µπορεί να ζητηθούν, αλλά αυτό µπορεί να αντιµετωπισθεί µόνο µε τη χρήση της εντολής ελέγχου IF. Υπενθυµίζεται, ακόµα, πως µε τη χρήση και αυτής της εντολής µπορούν να εκτελεσθούν οι διάφορες πράξεις και οι συναρτήσεις (η άλλη είναι η PRINT *,). Προσοχή: Προσοχή χρειάζεται ο ορισµός των µεταβλητών, τόσο αναφορικά στον τύπο τους όσο και στην ονοµασία τους. Ισχύουν οι ακόλουθοι κανόνες: επιτρέπεται µόνο η αγγλική γραφή χαρακτήρων, το σύνολό τους δεν πρέπει να ξεπερνά τους οκτώ (8) και µπορούν να χρησιµοποιηθούν γράµµατα και αριθµοί αλλά µε αυτή τη σειρά (όπως και στην κύρια ονοµασία των αρχείων) και δεν µπορούν να χρησιµοποιηθούν δεσµευµένες λέξεις (π.χ. οι ονοµασίες των εντολών). Αναφορικά στις λογικές µεταβλητές και τις πράξεις, προσοχή χρειάζεται ο ορισµός τους (δήλωση LOGICAL) και η εµφάνισή τους όταν τυπώνονται στην οθόνη του υπολογιστικού συστήµατος. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 37

της Άσκησης 2.1 Πρόκειται για µια άσκηση όπου ζητείται η ανάθεση τιµών σε δύο µεταβλητές ώστε να υπολογισθεί η τρίτη. Οι σπουδαστές θα έλθουν σε επαφή µε τη χρήση των ακεραίων µεταβλητών. της Άσκησης 2.2 Πρόκειται για µια άσκηση όπου ζητείται να εντοπισθεί και να αποσφαλµατωθεί το λανθασµένο στοιχείο το οποίο εµποδίζει την εκτέλεση του προγράµµατος. της Άσκησης 2.3 Πρόκειται για µια άσκηση όπου οι σπουδαστές θα πρέπει να εξασκηθούν στη χρησιµοποίηση και την εκτύπωση των λογικών µεταβλητών, πράξεων και αποτελεσµάτων. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 38

Άσκηση 3: Εντολές Εισόδου - Εξόδου Γενικά: Να Γνωρίζετε: Στοιχεία: Σε αυτή την άσκηση ο σκοπός είναι να ολοκληρωθεί η εξάσκηση των σπουδαστών µε τη χρησιµοποίηση όλων των εντολών εισόδου και εξόδου στη γλώσσα προγραµµατισµού Fortran, ιδιαίτερα σε συνδυασµό µε τη χρήση της εντολής µορφοποίησης των στοιχείων της εκτύπωσης. Πρόκειται για µια απλή εντολή µε πολύ θεαµατικά αποτελέσµατα, πολύ χρήσιµη σε περιπτώσεις καθορισµού των διαστάσεων των µεταβλητών οι οποίες τίθενται (από το πληκτρολόγιο) ή τυπώνονται. Η γλώσσα προγραµµατισµού Fortran παρέχει έναν ιδιαίτερο τρόπο εκτύπωσης των τιµών των µεταβλητών και των µηνυµάτων ενός προγράµµατος. Πιο συγκεκριµένα, επιτρέπει την πλήρη µορφοποίηση των πεδίων εκτύπωσης αναφορικά στο µέγεθος το οποίο θα καταλάβουν, τον καθορισµό της µορφής µε την οποία θα εκτυπωθούν, ακόµα και την απόσταση την οποία θα διατηρούν µεταξύ τους. Οι ασκήσεις δίνονται ώστε οι σπουδαστές να εξασκηθούν πάλι στις πράξεις µεταξύ διαφορετικών τύπων αριθµών αλλά και στις εκτυπώσεις τους. Από την άλλη µεριά, εισάγεται και η χρήση/εκτύπωση µεταβλητών τύπου χαρακτήρα προκειµένου να ολοκληρωθεί η παρουσίαση όλων των µεταβλητών. Οι ασκήσεις έχουν δηµιουργηθεί ώστε οι σπουδαστές και να πειραµατισθούν µε διαφορετικές εφαρµογές πεδίων και τρόπων εκτύπωσης αλλά και να εκτιµήσουν ή να προσδιορίσουν συγκεκριµένες απαιτήσεις στην εµφάνιση των τιµών των µεταβλητών στην οθόνη. Οι εντολές ανάγνωσης τιµών από το πληκτρολόγιο READ *, και READ (*,*). Εντολής 1 : Πρόκειται στην ουσία για την ίδια εντολή στην απλή και στη σύνθετη µορφή της. Η πρώτη επιτρέπει την ανάγνωση µιας µόνο τιµής µεταβλητής από το πληκτρολόγιο, η δεύτερη οσοδήποτε αριθµού µεταβλητών. εν εµφανίζει κάποιο διακριτικό στην οθόνη (σε αντίθεση, η εντολή INPUT στη Basic εµφάνιζε το χαρακτήρα? ) και δεν δίνει τη δυνατότητα να εµφανίσει ένα µήνυµα (επεξηγηµατικό της µεταβλητής όπου θα τοποθετηθεί η τιµή η οποία θα δοθεί από το πληκτρολόγιο). Στην περίπτωση της σύνθετης εντολής, οι πολλαπλές τιµές µπορούν να δίνονται από το πληκτρολόγιο είτε σε χωριστές γραµµές, είτε στην ίδια µε κενά ή κόµµατα ανάµεσά τους. Στην περίπτωση εισόδου µεταβλητών τύπου χαρακτήρα, χρειάζεται να δίνονται εντός του εισαγωγικού ( ) αντίστοιχα, οι λογικές µεταβλητές δίνονται είτε ως.true. και.false., είτε ως T και F, αντίστοιχα (πεζά ή κεφαλαία δεν έχει σηµασία). εν προτείνεται η χρήση της εντολής µορφοποίησης FORMAT κατά το διάβασµα τιµών αριθµητικών µεταβλητών από το πληκτρολόγιο (για ευνόητους λόγους). Ο χαρακτήρας * ο οποίος εµφανίζεται και στην απλή και στη σύνθετη µορφή της, υπονοεί την κλασσική συσκευή ανάγνωσης τιµών για τις µεταβλητές (το πληκτρολόγιο). Ο δεύτερος χαρακτήρας * ο οποίος εµφανίζεται µόνο στη σύνθετη µορφή της, υποκαθιστά την κλήση µιας εντολής µορφοποίησης FORMAT και σηµαίνει µε τον καλύτερο δυνατό τρόπο απεικόνισης. Οι εντολές εκτύπωσης στην οθόνη PRINT, και WRITE (*,*). Εντολής 2 : Πρόκειται στην ουσία για την ίδια εντολή στην απλή και στη σύνθετη µορφή της, όπως και προηγουµένως. Η δεύτερη µορφή, όµως, επιτρέπει τη συνδυαστική χρήση της εντολής µορφοποίησης FORMAT. Ο χαρακτήρας * ο οποίος εµφανίζεται και στην απλή και στη σύνθετη µορφή της, υπονοεί την κλασσική συσκευή εκτύπωσης τιµών για τις µεταβλητές (την οθόνη). Ο δεύτερος χαρακτήρας * ο οποίος εµφανίζεται µόνο στη σύνθετη µορφή της, υποκαθιστά την κλήση µιας εντολής µορφοποίησης FORMAT και σηµαίνει µε τον καλύτερο δυνατό τρόπο εκτύπωσης. Εντολής 3 : Η εντολή µορφοποίησης FORMAT. Η εντολή αυτή χρησιµοποιείται για την ανάγνωση τιµών µεταβλητών από το πληκτρολόγιο µε αυστηρά συγκεκριµένο τρόπο αλλά και την καλύτερη απεικόνιση των τιµών των µεταβλητών στην οθόνη. Αποτελείται από τα ακόλουθα πεδία: - Αποστάσεις (µεταξύ πεδίων εκτύπωσης) οι οποίες χαρακτηρίζονται από ένα αριθµό ακολουθούµενο από το χαρακτήρα x, ρ. Γιώργος - Πέτρος Κ. Οικονόµου 39

- Μηνύµατα (όπως και στην εντολή εκτύπωσης PRINT *,), - Προσδιορισµό Μεταβλητών Τύπου Χαρακτήρα (το a ακολουθούµενο από έναν αριθµό οποίος προσδιορίζει τον συνολικό αριθµό θέσεων του χαρακτήρα, π.χ. a15). Αν οι θέσεις δεν επαρκούν, κόβονται από το τέλος, - Προσδιορισµό Θέσεων για Μεταβλητές Τύπου Ακεραίων Αριθµών (το i ακολουθούµενο συνήθως από τον αριθµό έξι (6), π.χ. i6 -πρόσηµο και πέντε (5) ακέραιες θέσεις). Αν οι θέσεις δεν επαρκούν, εµφανίζονται τόσοι χαρακτήρες * όσοι είχαν προβλεφθεί να εκτυπωθούν (και δεν επάρκεσαν), - Προσδιορισµό Θέσεων Ακεραίων, εκαδικών, Προσήµου και Υποδιαστολής για µεταβλητές τύπου Πραγµατικών Αριθµών σε κλασσική µορφή εκτύπωσης (το f ακολουθούµενο από έναν αριθµό οποίος υποδηλώνει το πλήθος των θέσεων του πραγµατικού αριθµού, την υποδιαστολή, έναν αριθµό οποίος υποδηλώνει το πλήθος των δεκαδικών θέσεων του πραγµατικού αριθµού, π.χ. f15.5 -πρόσηµο (1), οκτώ (8) ακέραιες θέσεις, υποδιαστολή (1), πέντε (5) δεκαδικές θέσεις), Προσδιορισµό Θέσεων Ακεραίων, εκαδικών, Προσήµου, Υποδιαστολής, Συµβόλου Εκθετικού και ύναµης Εκθέτη για µεταβλητές τύπου Πραγµατικών Αριθµών σε εκθετική µορφή εκτύπωσης (το e ακολουθούµενο από έναν αριθµό οποίος υποδηλώνει το πλήθος των θέσεων του πραγµατικού αριθµού, την υποδιαστολή, έναν αριθµό οποίος υποδηλώνει το πλήθος των δεκαδικών θέσεων του πραγµατικού αριθµού, το e και δύο (2) θέσεις για τη δύναµη του εκθέτη, π.χ. e15.5 -πρόσηµο (1), οκτώ (8) ακέραιες θέσεις, υποδιαστολή (1), πέντε (5) δεκαδικές θέσεις, το e και δύο (2) θέσεις για τη δύναµη του εκθέτη οι θέσεις από το e και πέρα δεν προσµετρώνται στις συνολικές θέσεις στον προσδιορισµό του τρόπου εκτύπωσης του αριθµού). Αν οι θέσεις δεν επαρκούν, εµφανίζονται τόσοι χαρακτήρες * όσοι είχαν προβλεφθεί να εκτυπωθούν (και δεν επάρκεσαν), - Στην εντολή FORMAT, µε τη χρήση της / πραγµατοποιείται η αλλαγή της γραµµής εκτύπωσης (στην οθόνη, όχι στο αρχείο του πηγαίου κώδικα). Η εντολή επιτρέπει την ύπαρξη παραπάνω προσδιορισµών απ ό,τι απαιτεί η WRITE (*,*), µέσω των µεταβλητών τις οποίες δηλώνει προς εκτύπωση. Τέλος, την ίδια εντολή FORMAT είναι επιτρεπτό να την µοιράζονται διαφορετικές εντολές WRITE (*,*), αρκεί να αναφέρονται σε ίδιου τύπου µεταβλητές. Προσοχή: Η εντολή µορφοποίησης FORMAT απαιτεί την ύπαρξη της ονοµασίας της καθώς αυτή τη συνδέει µε την αντίστοιχη εντολή WRITE (*,*) η οποία και την καλεί. Οι προσδιορισµοί εκτύπωσης των µεταβλητών στην εντολή την κάνουν συχνά να ξεπερνά τη στήλη εβδοµήντα (70), οπότε θα πρέπει να συνεχίζεται στην επόµενη. Προσοχή ακόµη στην ταυτοποίηση µεταβλητών (από την εντολή WRITE (*,*)) και στους προσδιορισµούς τους (στην εντολή FORMAT). Αν δεν αντιστοιχίζονται σε σχέση µεταβλητή προς προσδιορισµό µία προς ένα, δηµιουργούνται σφάλµατα. της Άσκησης 3.1 Πρόκειται για µια άσκηση όπου ζητείται ο υπολογισµός και η σωστή εκτύπωση µερικών αριθµητικών µεταβλητών πραγµατικού τύπου. Το γεωµετρικό στερεό απαντάται συχνά σε τυλίγµατα µηχανών, οπότε και κρίθηκε σκόπιµη η παρουσία των τύπων εµβαδού και όγκου του. της Άσκησης 3.2 Πρόκειται για µια κλασσική άσκηση υπολογισµού των µέσων όρων απλών τιµών και τιµών µε διαφορετική βαρύτητα. Ο τρόπος εκτύπωσης των µεταβλητών ο οποίος ζητείται είναι συγκεκριµένος και εισάγει τον σπουδαστή σε πραγµατικές απαιτήσεις επίλυσης. της Άσκησης 3.3 Πρόκειται για µια άσκηση όπου οι σπουδαστές θα πρέπει να εξασκηθούν στη χρησιµοποίηση µεταβλητών τύπου χαρακτήρα αλλά και τύπου ακεραίων και πραγµατικών αριθµών. Η µόνη δυσκολία έγκειται στο µεγάλο πλήθος των µεταβλητών οι οποίες πρέπει να τυπωθούν. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 40

Άσκηση 4: Εντολές Ελέγχου της Ροής του Προγράµµατος Γενικά: Να Γνωρίζετε: Στοιχεία: Εντολής 1 : Εντολής 2 : Εντολής 3 : Σε αυτή την άσκηση ο σκοπός είναι να εγκλιµατισθούν οι σπουδαστές µε το πώς µπορούν να πραγµατοποιηθούν οι έλεγχοι (συγκρίσεις) στη γλώσσα προγραµµατισµού Fortran. Είναι σηµαντικό να τονισθεί πως τόσο στο φυσικό λόγο όσο και σε µια (οποιαδήποτε) γλώσσα προγραµµατισµού οι έλεγχοι γίνονται µέσω (λογικών) υποθέσεων τις οποίες έπειτα εξετάζουµε ως προς την ισχύ τους. Η γλώσσα προγραµµατισµού Fortran παρέχει τη δυνατότητα υλοποίησης των (λογικών) ελέγχων είτε µέσω του πρότερου ορισµού λογικών µεταβλητών και ανάθεσής τους των πράξεων ελέγχου, είτε απ ευθείας µέσω της εντολής ελέγχου IF. Το πλεονέκτηµα έγκειται στην απλοποίηση της γραφής των ελέγχων. Ακόµα, είναι πολύ χρήσιµο οι τιµές των µεταβλητών οι οποίες δίνονται από το πληκτρολόγιο να ελέγχονται ως προς το ποιον τους πριν χρησιµοποιηθούν, µια δικλείδα ασφαλείας η οποία θα χρησιµοποιηθεί περισσότερο στα επόµενα. Ο συνδυασµός της χρήσης της εντολής READ σε οποιαδήποτε µορφή της µε την εντολή ελέγχου, είναι ιδιαίτερα χρήσιµη ειδικά κατά την ανάγνωση τιµών ακεραίων µεταβλητών από το πληκτρολόγιο. Πιο συγκεκριµένα, αν σε µια τέτοια περίπτωση δοθεί πραγµατικός αριθµός, το πρόγραµµα κρεµά και απαντά µε µήνυµα λάθους το περιβάλλον της γλώσσας προγραµµατισµού Fortran. Πιο σωστό είναι να τίθεται ακέραιος αριθµός σε πραγµατική µεταβλητή και αυτή να ελέγχεται ως προς την ακεραιότητά της. Οι δύο (2) πρώτες ασκήσεις δίνονται ώστε ο σπουδαστής να συνηθίσει στη διαφοροποίηση µεταξύ της επιλογής των πολλαπλών ή των πολλών εντολών ελέγχου, αναφορικά στην αρχική υπόθεση. Η τελευταία άσκηση εκπροσωπεί µια κλασσική κατηγορία θεµάτων και εισάγει µια από τις πιο χρήσιµες λειτουργίες του υπολογιστικού συστήµατος, την καταµέτρηση ποσοτήτων. Η εντολή ελέγχου IF ELSEIF ELSE ENDIF. Η εντολή αυτή είναι η ίδια ακριβώς µε την αντίστοιχη της γλώσσας προγραµµατισµού Basic. Η διαφορά τους έγκειται στην ύπαρξη των λογικών συγκριτών µε τη γραφή.eq. για το =,.NE. για το,.lt. για το <,.GT. για το >,.LE. για το,.ge. για το,.true. ή T για το αληθές,.false. ή F για το ψευδές και των λογικών τελεστών µε τη γραφή.and. για το λογικό ΚΑΙ,.OR. για το λογικό Ή και.not. για τη λογική ΆΡΝΗΣΗ. Επίσης, στη σύνταξη της εντολής επιτρέπονται και οι λογικές µεταβλητές, ενώ η σύνταξη της εντολής IF (L) THEN είναι ισοδύναµη µε την σύνταξη της εντολής IF (L.EQ..TRUE.) THEN για τη λογική µεταβλητή L. Υπενθυµίζεται ακόµα πως στη γλώσσα προγραµµατισµού Fortran και στη σύνταξη της εντολής ελέγχου η χρησιµοποίηση της παρένθεσης αριστερά και δεξιά από την ελεγχόµενη (λογική) ποσότητα είναι ΥΠΟΧΡΕΩΤΙΚΗ. Οι πολλαπλές εντολές ελέγχου χρησιµοποιούνται όταν η αρχική υπόθεση διασπάται σε κλάδους (λ.χ. σε µια συνάρτηση µε κλάδους), αλλοιώς πολλές και διαφορετικές εντολές ελέγχου. Η εντολή του µετρητή Η εντολή αυτή είναι η ίδια ακριβώς µε την αντίστοιχη της γλώσσας προγραµµατισµού Basic και υποδηλώνει τη διαρκή αύξηση µιας αριθµητικής µεταβλητής οποιουδήποτε τύπου κατά ένα (1), π.χ. s = s + 1. Η εντολή αυτή χρησιµοποιείται για µια (απλή) καταµέτρηση από το υπολογιστικό σύστηµα. Η εντολή του αθροιστή / πολλαπλασιαστή. Η εντολή αυτή είναι η ίδια ακριβώς µε την αντίστοιχη της γλώσσας προγραµµατισµού Basic και υποδηλώνει τη διαρκή αύξηση µιας αριθµητικής µεταβλητής οποιουδήποτε τύπου κατά µία ποσότητα, π.χ. s = s + 1./(i + 1). Η εντολή αυτή χρησιµοποιείται για την επαναλαµβανόµενη άθροιση από το υπολογιστικό σύστηµα (π.χ. σειρές) και µπορεί να συνταχθεί και σαν πολλαπλασιαστής, π.χ. s = s * 1./(i + 1). Η µεταβλητή η οποία θα χρησιµοποιηθεί σαν πολλαπλασιαστής οφείλει να τεθεί στην τιµή της µονάδας (1) πριν από τη χρήση της εντολής. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 41

Προσοχή: Προσοχή χρειάζεται η χρήση της εντολής ελέγχου καθώς θα πρέπει να ολοκληρώνεται µε τη χρήση της εντολής ENDIF στο τέλος της. Προσοχή χρειάζεται ακόµα και η µεταβλητή του µετρητή ή του αθροιστή (άθροιση) όταν χρησιµοποιείται επαναληπτικά γιατί τότε θα πρέπει και αυτή να τίθεται στην τιµή του µηδενός (0), πριν την επόµενη αξιοποίησή της, αλλοιώς τα αποτελέσµατα είναι επισφαλή. Τέλος, καλό είναι το σώµα της εντολής (ό,τι τίθεται µετά από την εντολή THEN ή τη εντολή ELSE) να γράφεται σε πιο µέσα στήλες από ό,τι οι πιο πάνω εντολές, ώστε να γίνεται όσο το δυνατό περισσότερο ευδιάκριτος ο έλεγχος και η απόδοση του ελέγχου (και η επίδρασή τους στις επόµενες εντολές) στο χρήστη. της Άσκησης 4.1 Πρόκειται για µια άσκηση όπου ζητείται ο έλεγχος ενός έτους ως προς το αν είναι δίσεκτο ή όχι. Καθώς δίνονται οι συνθήκες κάτω από τις οποίες αυτό ισχύει ή όχι, µένει να υλοποιηθούν ως εντολές στη γλώσσα προγραµµατισµού Fortran. Η άσκηση αυτή αποτελεί ένα καλό παράδειγµα µεταφοράς του φυσικού λόγου (εδώ του ελέγχου) σε µια γλώσσα προγραµµατισµού. της Άσκησης 4.2 Πρόκειται για µια κλασσική άσκηση υπολογισµού των ριζών της δευτεροβάθµιας εξίσωσης (ακόµα και των µιγαδικών). Η άσκηση δίνεται ώστε οι σπουδαστές να εκπαιδευθούν στη διαφοροποίηση µεταξύ της επιλογής των πολλαπλών ή των πολλών εντολών ελέγχου, αναφορικά στην αρχική υπόθεση. Σε αυτή την άσκηση θα χρειασθεί η χρήση πολλαπλού ελέγχου. της Άσκησης 4.3 Πρόκειται για µια άσκηση όπου οι σπουδαστές θα πρέπει να εξασκηθούν στην επίλυση των σειρών µε τη χρήση µετρητών και αθροιστών. Γενικά, η επίλυση ασκήσεων µε σειρές περνά από τρία (3) βήµατα: στο πρώτο, ο σπουδαστής προσπαθεί να υπολογίσει τον γενικό όρο της σειράς και από τον ανεπτυγµένο τύπο της να οδηγηθεί στον συνεπτυγµένο. Στο δεύτερο, θα πρέπει να υλοποιηθεί η λογική της επαναλαµβανόµενης πράξης η οποία υποδηλώνεται από τη σειρά (π.χ. µε τη χρήση ενός µετρητή). Στο δε τρίτο βήµα, υλοποιείται η εντολή του αθροιστή όπου η ποσότητα η οποία πράττεται (συνήθως προστίθεται ή πολλαπλασιάζεται) είναι ο γενικός όρος της σειράς ο οποίος ήδη υπολογίσθηκε. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 42

Άσκηση 5: Εντολές Επανάληψης Γενικά: Να Γνωρίζετε: Στοιχεία: Εντολής 1 : Εντολής 2 : Προσοχή: Σε αυτή την άσκηση ο σκοπός είναι να εγκλιµατισθούν οι σπουδαστές µε το πώς µπορούν να υλοποιηθούν οι επαναλαµβανόµενες εντολές, πέρα από τη χρήση µετρητή (προηγούµενη άσκηση). Οι εντολές επανάληψη χρησιµοποιούνται ακόµα και στην (κατα)µέτρηση ποσοτήτων, σε επαναλαµβανόµενο κύκλο εντολών (όταν είναι γνωστές οι επαναλήψεις) και γενικά σε περιοδικό κώδικα. Η γλώσσα προγραµµατισµού Fortran παρέχει έναν κλασσικό τρόπο υλοποίησης του βρόχου επανάληψης, της εντολής δηλαδή η οποία πραγµατοποιεί την εντολή αυτή. Σε σχέση µε τη χρήση του µετρητή, συγκεντρώνει τις ίδιες εντολές σε µία (1). Όλες οι ασκήσεις υπήρξαν κάποτε θέµατα εξετάσεων στο Εργαστήριο. ίνονται ώστε ο σπουδαστής να συνηθίσει στη σύνταξη απλών και πολλαπλών βρόχων επανάληψης, στον (καθ)ορισµό των ορίων αλλά και της µεταβλητότητας του δείκτη (µεταβλητή) της επανάληψης. Είναι σηµαντική δε η χρήση ακέραιων και πραγµατικών τιµών του δείκτη του βρόχου επανάληψης. Η εντολή επανάληψης DO ENDDO. Η εντολή αυτή θυµίζει πολύ την αντίστοιχη FOR NEXT της γλώσσας προγραµµατισµού Basic, µε τη µόνη διαφορά ότι τα όρια του δείκτη επανάληψης και το βήµα µεταβολής του (καθ)ορίζονται µε ανάθεση και διαφοροποιούνται µε κόµµατα και όχι εντολές τύπου TO ή STEP. Υπενθυµίζεται πως ο δείκτης του βρόχου επανάληψης δεν είναι υποχρεωτικά ακέραιος αριθµός, αλλά µπορεί περίφηµα να είναι πραγµατικός και το βήµα µεταβολής του να είναι επίσης πραγµατικός αριθµός. Ο δε δείκτης του βρόχου επανάληψης µπορεί είτε να χρησιµοποιηθεί ώστε να δώσει τιµή σε πράξεις, είτε απλός σαν µεταβλητή καταµέτρησης της (φοράς της) επανάληψης. Απαγορεύεται, όµως, να είναι στ αριστερά µιας εντολής ανάθεσης. DO αριθµός γραµµής CONTINUE. Η εντολή αυτή είναι η ίδια µε την παραπάνω, µε τη διαφορά πως τερµατίζει διαφορετικά και πως απαιτεί τη χρήση εντολής µε µια ονοµασία (η οποία και καθορίζει σε ποια γραµµή βρίσκεται η εντολή CONTINUE). Προσοχή χρειάζεται η χρήση της εντολής στον καθορισµό του αριθµητικού τύπου του δείκτη της επανάληψης, των ορίων του και του βήµατος µεταβολής του. Υπενθυµίζεται πως όταν το πάνω όριο είναι µικρότερο από το κάτω και το βήµα µεταβολής θετικό, ή το πάνω όριο µεγαλύτερο από το κάτω και το βήµα µεταβολής αρνητικό, τότε ο βρόχος επανάληψης δεν εκτελείται ούτε µία (1) φορά. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 43

της Άσκησης 5.1 Πρόκειται για µια άσκηση όπου ζητείται ο υπολογισµός των γινοµένων ενός (οποιουδήποτε) αριθµού µε τους δέκα (10) πρώτους φυσικούς αριθµούς (πλην του µηδενός (0)) -προπαίδεια του αριθµού- σε πρώτη φάση. Έπειτα, ζητείται ο υπολογισµός των γινοµένων των δέκα (10) πρώτων φυσικών αριθµών (πλην του µηδενός (0)), µε τους δέκα (10) πρώτους φυσικούς αριθµούς (πλην του µηδενός (0)) -πυθαγόρειος πίνακας. Η άσκηση αυτή παριστάνει περίφηµα τη χρήση των βρόχων επανάληψης για καταµέτρηση, πράξεις και εκτυπώσεις τιµών, επαναληπτικά. της Άσκησης 5.2 Πρόκειται για µια άσκηση όπου εισάγεται η έννοια της επαναληπτικής φθοράς (µιας µηχανής) ως στοιχείο ελέγχου, σε συνδυασµό µε συντελεστές ασφαλείας τους οποίους θέτει η παραγωγή ενός προϊόντος. Η πρωτοτυπία της άσκησης έγκειται στο ότι θα πρέπει να εκτιµηθεί το πάνω όριο του δείκτη της επανάληψης, κάτι δύσκολο καθώς είναι το ζητούµενο της άσκησης. της Άσκησης 5.3 Πρόκειται για µια άσκηση όπου γίνεται η προσπάθεια να προσεγγισθεί µια ενσωµατωµένη συνάρτηση (συνάρτηση βιβλιοθήκης) της γλώσσας προγραµµατισµού Fortran από το σπουδαστή. Η άσκηση είναι πολύ σηµαντική καθώς εισάγει την έννοια του ελέγχου των τιµών υπολογισµού και του κατάλληλου χειρισµού τους αναλογικά µε τη ροή του προγράµµατος. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 44

Άσκηση 6: Μεταβλητές µε είκτες (1/2) Γενικά: Να Γνωρίζετε: Στοιχεία: Εντολής 1 : Εντολής 2 : Προσοχή: Σε αυτή την άσκηση ο σκοπός είναι να εγκλιµατισθούν οι σπουδαστές µε τη χρήση των πινάκων, µονοδιάστατων (διανύσµατα) και πολυδιάστατων (κυρίως δισδιάστατων). Οι πίνακες στον προγραµµατισµό των υπολογιστών αποτελούν πολύ χρήσιµες οντότητες οι οποίες υλοποιούν τη λογική των πολλαπλών µεταβλητών µε το ίδιο όνοµα αλλά οι οποίες βρίσκονται σε διαφορετική θέση (στη µνήµη). Αυτή η ιδιότητα της οµαδοποίησης των µεταβλητών απλοποιεί τόσο τον προγραµµατισµό του πηγαίου κώδικα όσο και διευκολύνει την ανάπτυξη πολύπλοκων πράξεων. Η γλώσσα προγραµµατισµού Fortran επιτρέπει τον ορισµό του πίνακα µε τρόπο παρόµοιο µε την δήλωση των µεταβλητών. Συγκεκριµένα, χρησιµοποιούνται οι ίδιες εντολές (INTEGER, REAL, LOGICAL και CHARACTER), ακολουθεί το όνοµα της µεταβλητής και σε παρένθεση, τέλος, πληκτρολογούνται οι διαστάσεις των πινάκων. Οι πίνακες στη γλώσσα προγραµµατισµού Fortran ορίζονται µε συγκεκριµένες διαστάσεις, αλλοιώς δηµιουργείται σφάλµα κατά τη µετάφραση του πηγαίου κώδικα. Η πρώτη άσκηση δίνεται για την αποσαφήνιση των ορισµών, τη σωστή διαστασιοποίηση, την τοποθέτηση των στοιχείων και την εκτύπωση µονοδιάστατου και δισδιάστατου πίνακα. πίνακα, κατά γραµµές και κατά στήλες. Οι επόµενες ασκήσεις δίνονται για την εξάσκηση στις πράξεις µε τους πίνακες. INTEGER µεταβλητή(ές) (αριθµός, αριθµός,, αριθµός). ηλώνει τις όποιες µεταβλητές την ακολουθούν ως ακέραιους πίνακες. Οι αριθµοί εντός των παρενθέσεων δηλώνουν τις διαστάσεις των πινάκων. REAL µεταβλητή(ές) (αριθµός, αριθµός,, αριθµός). ηλώνει τις όποιες µεταβλητές την ακολουθούν ως πραγµατικούς πίνακες. Οι αριθµοί εντός των παρενθέσεων δηλώνουν τις διαστάσεις των πινάκων. Προσοχή χρειάζεται η χρησιµοποίηση των πινάκων αναφορικά στο ότι συνοδεύονται πάντα από την εντολή επανάληψης. Συγκεκριµένα, κάθε διάσταση ενός πίνακα, προκειµένου να προσπελασθούν οι θέσεις τις οποίες περιγράφει, απαιτεί την παρουσία και ενός βρόχου επανάληψης, ΠΡΙΝ χρησιµοποιηθεί ο πίνακας. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 45

της Άσκησης 6.1 Πρόκειται για µια άσκηση όπου απαιτείται ο σωστός χειρισµός ενός πίνακα. Ένας πίνακας ορίζεται µε συγκεκριµένες, µεγάλες, διαστάσεις (εκατό (100) θέσεις το πολύ ανά διάσταση), κατόπιν διαβάζονται από το πληκτρολόγιο οι ενεργές του διαστάσεις (εκείνες οι θέσεις του οι οποίες θα χρησιµοποιηθούν), ελέγχονται για τις τιµές τους, ακολουθεί το διάβασµα των τιµών του πίνακα από το πληκτρολόγιο, πιθανώς πράξεις στα στοιχεία του πίνακα και, τέλος, ακολουθεί η σωστή εκτύπωσή του. της Άσκησης 6.2 Πρόκειται για µια άσκηση όπου εισάγεται η έννοια της δηµιουργίας ενός πίνακα (ή πινάκων) µε επαναληπτικό τρόπο. Μια, συνολικά, απλή άσκηση µε ιδιαίτερο ενδιαφέρον. της Άσκησης 6.3 Πρόκειται για µια άσκηση η οποία υπήρξε παλιότερο θέµα στις Εξετάσεις του Εργαστηρίου. Εισάγονται οι πράξεις µε τα στοιχεία του πίνακα, αναφορικά στις συντεταγµένες των θέσεών τους. Επαναλαµβάνονται δε και ο γνώριµος έλεγχος µονού ή ζυγού αριθµού και η εύρεση µεγαλύτερου και µικρότερου αριθµού ανάµεσα σε δύο (2) στοιχεία (από τις διαλέξεις της Θεωρίας). ρ. Γιώργος - Πέτρος Κ. Οικονόµου 46

Άσκηση 7: Μεταβλητές µε είκτες (2/2) Γενικά: Να Γνωρίζετε: Στοιχεία: Εντολής 1 : Εντολής 2 : Προσοχή: Σε αυτή την άσκηση ο σκοπός είναι να ολοκληρώσουν οι σπουδαστές την εξάσκησή τους στη χρήση των πινάκων, µονοδιάστατων (διανύσµατα) και πολυδιάστατων (κυρίως δισδιάστατων). Οι ασκήσεις είναι ειδικά σχεδιασµένες ώστε να µπορούν να χρησιµοποιηθούν και σε µαθήµατα εκτός του Προγραµµατισµού Η/Υ II Εντός των βρόχων επανάληψης, οι πίνακες αναφέρονται µε τη γενική τους µορφή (π.χ. a(i, j) για έναν δισδιάστατο πίνακα) ακριβώς επειδή οι δείκτες των βρόχων (κατα)µετρούν τις θέσεις τους (στην πλήρη τους διάσταση). Οι δείκτες αυτοί αντικαθιστώνται από σταθερές ποσότητες, µόνο όταν χρεισθεί να χαρακτηρισθεί µια συγκεκριµένη θέση, γραµµή ή στήλη ενός πίνακα (π.χ. a(i, 1) για a(3, j) κ.τ.λ.). Εφ όσον οι πίνακες έχουν ορισθεί, η χρησιµοποίηση των µεταβλητών οι οποίες έχουν ορισθεί κι αυτές ή αριθµητικών τιµών, συγκεκριµενοποιεί µια θέση σε αυτούς. Οι δύο (2) πρώτες ασκήσεις αναφέρονται σε κοινότυπες ενέργειες αναφορικά σε απλούς αριθµούς, η δε τρίτη στην περίφηµη µέθοδο εκτίµησης παραµέτρων των ελαχίστων τετραγώνων η οποία εφαρµόσθηκε µε πρότυπο model την ευθεία γραµµή και στο επίπεδο για µερικά ζεύγη αριθµών (συντεταγµένες σηµείων). LOGICAL µεταβλητή(ές) (αριθµός, αριθµός,, αριθµός). ηλώνει τις όποιες µεταβλητές την ακολουθούν ως λογικούς πίνακες. Οι αριθµοί εντός των παρενθέσεων δηλώνουν τις διαστάσεις των πινάκων. CHARACTER * αριθµός µεταβλητή(ές) (αριθµός, αριθµός,, αριθµός). ηλώνει τις όποιες µεταβλητές την ακολουθούν ως πίνακα(ες) τύπου χαρακτήρων. Ο αριθµός µετά το * υποδηλώνει το πλήθος των προβλεπόµενων χαρακτήρων και οι αριθµοί εντός των παρενθέσεων τις διαστάσεις του(ων) πίνακα(ων). Προσοχή χρειάζεται η αντιστοίχιση γραµµών και στηλών σε έναν πίνακα. Όταν ο πίνακας χρησιµοποιείται κατά γραµµές, οι στήλες της κάθε γραµµής συµπληρώνονται και, άρα, (κατα)µετρώνται πρώτες. Το αντίθετο συµβαίνει αν ο πίνακας χρησιµοποιηθεί κατά στήλες, όπου τότε η (ακτα)µέτρηση των γραµµών προηγείται. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 47

της Άσκησης 7.1 Πρόκειται για µια άσκηση όπου ένας πίνακας πολλαπλασιάζεται πολλαπλές φορές (οι οποίες ορίζονται από το πληκτρολόγιο) µε τον εαυτό του. Για την ευκολότερη επίλυση της άσκησης, δίνεται ο τύπος ο οποίος περιγράφει το γινόµενο δύο (2) πινάκων δύο (2) µεταβλητών σε µορφή σειρών: c K ( i, j) = a( i, l) b( l, j), όπου i = 1, 2,, n, j = 1, 2,, m και l = 1, 2,, k. l = 1 της Άσκησης 7.2 Πρόκειται για µια άσκηση όπου συγκρίνονται δύο (2) πίνακες µε σκοπό να φανεί αν είναι ίσοι. Η άσκηση µπορεί να λυθεί µε πληθώρα τρόπων και δίνεται για τον εντοπισµό του καλύτερου δυνατού. Ταυτόχρονα, η σύγκριση σε πολλαπλές διαστάσεις αποσαφηνίζεται πλήρως. της Άσκησης 7.3 Πρόκειται για µια άσκηση όπου χρησιµοποιείται µια µεθοδολογία προτυποποίησης µεγεθών. Πολύ χρήσιµη για το πεδίο δράσης ενός µηχανικού, οριοθετούνται ο χώρος εφαρµογής και οι περιορισµοί της. Η συγκεκριµένη άσκηση αποτελεί πάντρεµα υπολογιστών και άλλων µαθηµάτων. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 48

Άσκηση 8: Συναρτήσεις Χρήστη Γενικά: Να Γνωρίζετε: Στοιχεία: Εντολής 1 : Εντολής 2 : Εντολής 3 : Εντολής 4 : Σε αυτή την άσκηση ο σκοπός είναι να εγκλιµατισθούν οι σπουδαστές µε τη δηµιουργία των συναρτήσεων χρήστη, αυτόνοµου πηγαίου κώδικα, δηλαδή, ο οποίος (καθ)ορίζεται από τον χρήστη και καλείται ανεξάρτητα από το κυρίως πρόγραµµα. Οι συναρτήσεις χρήστη, γενικότερα, αποτελούν δυναµικό κοµµάτι του πηγαίου κώδικα καθώς του παρέχουν την ευελιξία της εξειδίκευσης των λειτουργιών τις οποίες θα πρέπει να υλοποιεί. Οι συναρτήσεις χρήστη µπορούν να κληθούν και από άλλο αρχείο λογισµικού πέρα από αυτό όπου δηµιουργούνται. Η γλώσσα προγραµµατισµού Fortran επιτρέπει τον χειρισµό των συναρτήσεων χρήστη µε παρόµοιο τρόπο αυτού µε τον οποίο ορίζονται οι µεταβλητές ή οι πίνακες. Είναι ανεξάρτητες του κυρίως προγράµµατος, τοποθετούνται έξω από αυτό και επικοινωνούν µαζί του είτε µέσω των ορισµάτων µε τα οποία καλούνται (από το κυρίως πρόγραµµα) και αποτελούν την είσοδό τους (τα στοιχεία τα οποία θα επεξεργασθούν), είτε µε την ίδια την ονοµασία τους, η οποία και αποτελεί την έξοδό τους (το αποτέλεσµα). Οι µεταβλητές εισόδου είναι δυνατόν και να παραλειφθούν αλλά η συνάρτηση θα πρέπει να παίρνει τιµή. Κατ αυτόν τον τρόπο, η τιµή την οποία επιστρέφουν στο κύριο πρόγραµµα εξαρτάται από τη δήλωσή τους (η οποία και µπορεί να είναι (INTEGER, REAL, LOGICAL και CHARACTER). Σε µια συνάρτηση χρήστη η οποία θα χειρισθεί στοιχεία πινάκων, οι πίνακες τους οποίους θα χρησιµοποιήσει έχουν ανάγκη επανορισµού στον κορµό της. Οι συναρτήσεις χρήστη καλούνται από το κυρίως πρόγραµµα όντας µέσα σε µια εντολή ανάθεσης ή εκτύπωσης (όπως και όλες οι πράξεις) και χρήσης των ονοµασιών τους και, βέβαια, των ορισµάτων τους (µεταβλητές ή τιµές). Οι τρεις (3) ασκήσεις δίνονται για την αποσαφήνιση των ορισµών των συναρτήσεων χρήστη, τη σωστή τους κλήση από το κεντρικό πρόγραµµα και την απόδοση σε αυτό του αποτελέσµατος των πράξεων τις οποίες ενσωµατώνουν και την εξάσκηση για τη δηµιουργία τους. Πρόκειται για ασκήσεις οι οποίες υπήρξαν και θέµατα εξετάσεων. INTEGER FUNCTION όνοµα συνάρτησης χρήστη (όρισµα,, όρισµα). Η όποια συνάρτηση χρήστη την ακολουθεί δηλώνεται ως επιστροφής ακέραιας τιµής. Αν δεν υπάρχει η δήλωση τιµής, ισχύει ο κανόνας των αρχικών. REAL FUNCTION όνοµα συνάρτησης χρήστη (όρισµα,, όρισµα). Η όποια συνάρτηση χρήστη την ακολουθεί δηλώνεται ως επιστροφής πραγµατικής τιµής. Αν δεν υπάρχει η δήλωση τιµής, ισχύει ο κανόνας των αρχικών. LOGICAL FUNCTION όνοµα συνάρτησης χρήστη (όρισµα,, όρισµα). Η όποια συνάρτηση χρήστη την ακολουθεί δηλώνεται ως επιστροφής λογικής τιµής. Αν δεν υπάρχει η δήλωση τιµής, ισχύει ο κανόνας των αρχικών. CHARACTER FUNCTION όνοµα συνάρτησης χρήστη (όρισµα,, όρισµα). Η όποια συνάρτηση χρήστη την ακολουθεί δηλώνεται ως επιστροφής µεταβλητής τύπου χαρακτήρα. Αν δεν υπάρχει η δήλωση τιµής, ισχύει ο κανόνας των αρχικών. Προσοχή: Η συνάρτηση χρήστη, κατά τον (καθ)ορισµό της, πρέπει να τερµατίζει µε τις δύο (2) εντολές RETURN και END (σε ξεχωριστές γραµµές). Η εντολή END µιας συνάρτησης χρήστη δεν δηµιουργεί πρόβληµα στην ίδια εντολή του κεντρικού προγράµµατος. Όπως είναι φανερό, η συνάρτηση χρήστη επιστρέφει µόνο µία (1) τιµή (µέσω της ονοµασίας της). Από την άλλη µεριά, θα πρέπει ο αριθµός και ο τύπος των µεταβλητών µε τις οποίες καλούνται να είναι και τα ίδια (και στον αριθµό και στον τύπο σε αντιστοιχία ένα προς ένα) µε εκείνα µε τα οποία ορίζονται. Οι δε ονοµασίες των µεταβλητών, µπορούν και να αλλάζουν. Τέλος, ονοµασίες εντολών οι οποίες υπάρχουν στο κεντρικό πρόγραµµα µπορούν να ξαναχρησιµοποιηθούν. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 49

της Άσκησης 8.1 Πρόκειται για µια άσκηση όπου απαιτείται η ανάλυση µιας ηµερολογιακής (αριθµητικής) ηµεροµηνίας σε ηµέρα εβδοµάδας, αριθµό ηµέρας στο µήνα και µήνα. Μέσω συναρτήσεων θα γίνεται η ανάλυση (ανάλογα µε τις ηµέρες των µηνών) των στοιχείων, θα υπολογίζεται το δίσεκτο ή µη του έτους και θα γίνεται η αντιστοίχιση των ηµερών σε ηµεροµηνία. της Άσκησης 8.2 Πρόκειται για µια άσκηση όπου επεκτείνεται ο πηγαίος κώδικας της προηγούµενης ώστε να καλύψει την (αριθµητική) διαφορά των δύο (2) ηµεροµηνιών. Για λόγους απλότητας οι δύο (2) ηµεροµηνίες ζητείται να ανήκουν στο ίδιο έτος. Με την αντίστροφη, λοιπόν, λογική της προηγούµενης άσκησης οι δύο (2) ηµεροµηνίες µετατρέπονται στην ηµερολογιακή (αριθµητική) µορφή τους και ύστερα υπολογίζεται η απόλυτη διαφορά τους. Απαιτείται πάλι ο έλεγχος του δίσεκτου ή µη έτους. της Άσκησης 8.3 Πρόκειται για µια άσκηση η οποία ανακεφαλαιώνει τις ιδιότητες των συναρτήσεων µέσω ενός καθηµερινού προβλήµατος: τον ποιοτικό έλεγχο µεταβλητών (το αν οι µεταβλητές παρουσιάζουν µια συγκεκριµένη ιδιότητα ή όχι). Οι συναρτήσεις του χρήστη θα ελέγχουν την ακρίβεια της διαίρεσης και θα συγκρίνουν τις ποσότητες των διαιρούµενων αριθµών. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 50

Άσκηση 9: Υποπρογράµµατα Χρήστη Γενικά: Να Γνωρίζετε: Στοιχεία: Εντολής: Σε αυτή την άσκηση ο σκοπός είναι να εγκλιµατισθούν οι σπουδαστές µε τη δηµιουργία των υποπρογραµµάτων χρήστη τα οποία συµπληρώνουν τις συναρτήσεις και αποτελούν αυτόνοµο πηγαίο κώδικα ο οποίος (καθ)ορίζεται από τον χρήστη και καλείται ανεξάρτητα από το κυρίως πρόγραµµα. Τα υποπρογράµµατα χρήστη, γενικότερα, αποτελούν δυναµικό κοµµάτι του πηγαίου κώδικα καθώς του παρέχουν την ευελιξία της εξειδίκευσης των λειτουργιών τις οποίες θα πρέπει να υλοποιεί. Τα υποπρογράµµατα χρήστη µπορούν να κληθούν και από άλλο αρχείο λογισµικού πέρα από αυτό όπου δηµιουργούνται, επαυξάνοντας την ισχύ τους. Η γλώσσα προγραµµατισµού Fortran επιτρέπει τον χειρισµό των υποπρογραµµάτων χρήστη µε παρόµοιο τρόπο αυτού µε τον οποίο ορίζονται οι µεταβλητές ή οι πίνακες. Είναι ανεξάρτητες του κυρίως προγράµµατος, τοποθετούνται έξω από αυτό και επικοινωνούν µαζί του είτε µέσω των ορισµάτων µε τα οποία καλούνται (από το κυρίως πρόγραµµα) και αποτελούν την είσοδό τους (τα στοιχεία τα οποία θα επεξεργασθούν), είτε µε άλλα ή και τα ίδια τα ορίσµατα εισόδου, τα οποία και αποτελεί την έξοδό τους (το αποτέλεσµα). Κατ αυτόν τον τρόπο, η τιµή την οποία επιστρέφουν στο κύριο πρόγραµµα εξαρτάται από τον τύπο των µεταβλητών οι οποίες χρησιµοποιούνται γι αυτόν τον σκοπό (INTEGER, REAL, LOGICAL και CHARACTER). εν επιτρέπεται η χρησιµοποίηση ενός υποπρογράµµατος χρήστη το οποίο δεν περιλαµβάνει µεταβλητές σαν ορίσµατά του. Σε ένα υποπρόγραµµα χρήστη το οποίο θα χειρισθεί στοιχεία πινάκων, οι πίνακες τους οποίους θα χρησιµοποιήσει έχουν ανάγκη επανορισµού στον κορµό του. Τα υποπρογράµµατα χρήστη καλούνται από το κυρίως πρόγραµµα µέσω της εντολής CALL και της ονοµασίας τους και, βέβαια, των ορισµάτων τους (µεταβλητές ή τιµές). Οι τρεις (3) ασκήσεις δίνονται για την αποσαφήνιση των ορισµών των υποπρογραµµάτων χρήστη, τη σωστή τους κλήση από το κεντρικό πρόγραµµα και την απόδοση σε αυτό του αποτελέσµατος των πράξεων τις οποίες ενσωµατώνουν και την εξάσκηση για τη δηµιουργία τους. Πρόκειται για ασκήσεις οι οποίες υπήρξαν και θέµατα εξετάσεων και η αξιοποίησή τους διευκόλυνε την τελική επίλυση. SUBROUTINE όνοµα υποπρογράµµατος χρήστη (όρισµα,, όρισµα). Το όποιο υποπρόγραµµα χρήστη την ακολουθεί δηλώνεται µε έναν αριθµό µεταβλητών (ή και πίνακες) οι οποίες χρησιµεύουν και σαν είσοδος αλλά και σαν έξοδός του. Μία µεταβλητή (ή πίνακας) µπορεί να χρησιµοποιηθεί και σαν είσοδος αλλά και σαν έξοδός του χωρίς πρόβληµα (αν προσεχθούν οι επί µέρους πράξεις). Προσοχή: Το υποπρόγραµµα χρήστη, κατά τον (καθ)ορισµό του, πρέπει να τερµατίζει µε τις δύο (2) εντολές RETURN και END (σε ξεχωριστές γραµµές). Η εντολή END ενός υποπρογράµµατος χρήστη δεν δηµιουργεί πρόβληµα στην ίδια εντολή του κεντρικού προγράµµατος. Όπως είναι φανερό, το υποπρόγραµµα χρήστη επιστρέφει πολλές τιµές (µέσω των ορισµάτων του). Από την άλλη µεριά, θα πρέπει ο αριθµός και ο τύπος των µεταβλητών µε τα οποίες καλούνται να είναι και τα ίδια (και στον αριθµό και στον τύπο σε αντιστοιχία ένα προς ένα) µε εκείνα µε τα οποία ορίζονται. Οι δε ονοµασίες των µεταβλητών, µπορούν και να αλλάζουν. Τέλος, ονοµασίες εντολών οι οποίες υπάρχουν στο κεντρικό πρόγραµµα µπορούν να ξαναχρησιµοποιηθούν. ρ. Γιώργος - Πέτρος Κ. Οικονόµου 51

της Άσκησης 9.1 Πρόκειται για µια άσκηση όπου απαιτούνται τα διαδοχικά γινόµενα τεσσάρων (4) ζευγών πινάκων (b(.,.) και c(.,.), a(.,.) και bc(.,.), a(.,.) και b(.,.) και ab(.,.) και c(.,.)), οπότε ο (καθ)ορισµός ενός (1) υποπρογράµµατος χρήστη το οποίο θα πολλαπλασιάζει πίνακες είναι εύλογος. Επίσης, θα χρειασθεί να (καθ)ορισθεί και µία (1) συνάρτηση χρήστη η οποία θα ελέγχει την ισότητα των στοιχείων των δύο (2) πινάκων οι οποίοι προκύπτουν από τα τελικά γινόµενα. της Άσκησης 9.2 Πρόκειται για µια άσκηση όπου ολοκληρώνονται οι πράξεις σε πίνακες και επιλύεται και το θέµα της εύρεσης των µέγιστων/ελάχιστων στοιχείων σε διάφορα σηµεία (γραµµές ή στήλες) του πίνακα. Ένα (1) υποπρόγραµµα χρήστη µπορεί να επιλύσει τις πράξεις και ένα (1) άλλο τα µέγιστα/ελάχιστα στοιχεία στα διάφορα σηµεία (γραµµές ή στήλες) του πίνακα. της Άσκησης 9.3 Πρόκειται για µια άσκηση η οποία ανακεφαλαιώνει τις ιδιότητες των υποπρογραµµάτων µέσω ενός ακόµα προβλήµατος χειρισµού πράξεων σε πίνακες. Η άσκηση αυτή µπορεί να χρησιµοποιηθεί στην επίλυση γραµµικών συστηµάτων εξισώσεων χρησιµοποιώντας τη µεθοδολογία των γραµµικών µετασχηµατισµών του αρχικού πίνακα στον µοναδιαίο (για τετραγωνικούς πίνακες). ρ. Γιώργος - Πέτρος Κ. Οικονόµου 52

Άσκηση 10: Γενική Επανάληψη Γενικά: Σε αυτή την άσκηση ο σκοπός είναι να ολοκληρώσουν οι σπουδαστές την εξάσκησή τους µε τη γλώσσα προγραµµατισµού Fortran. Οι ασκήσεις έχουν δηµιουργηθεί ώστε και να ανακεφαλαιώνουν το σύνολο των ασκήσεων του Εργαστηρίου µε πρωτότυπο τρόπο αλλά και να προετοιµάζουν τους σπουδαστές για τις επικείµενες εξετάσεις. Να Γνωρίζετε: Η γλώσσα προγραµµατισµού Fortran επιτρέπει την επίλυση προβληµάτων µε πολλούς τρόπους, τον συνδυασµό και τον χειρισµό εντολών ώστε το ζητούµενο να προκύπτει και µε άλλους τρόπους (µε λιγότερα ή περισσότερα βήµατα επεξεργασίας, βέβαια), τη διαφορετική σειρά εγγραφής µερικών εντολών. Με άλλα λόγια, όπως αναφέρονταν και στα εισαγωγικά εδάφια του κεφαλαίου, την ανάπτυξη ύφους στον προγραµµατισµό. Έγκειται στην πείρα η οποία µπορεί να αποκοµισθεί από την εξάσκηση µε τον προγραµµατισµό ή µε µια συγκεκριµένη γλώσσα η εύρεση της χρυσής τοµής µεταξύ της αποτελεσµατικότητας του κώδικα, της κοµψότητας της γραφής αλλά και της ταχύτητας της (σωστής) επεξεργασίας των στοιχείων. Στοιχεία: Οι τρεις (3) ασκήσεις δίνονται για λόγους επανάληψης αλλά, ταυτόχρονα, δίνουν και έναν τρόπο επίλυσης συνηθισµένων προβληµάτων τα οποία οι σπουδαστές συναντούν και στα υπόλοιπα µαθήµατά τους. Φιλοδοξία του Εργαστηρίου είναι οι σπουδαστές να θεωρήσουν το υπολογιστικό σύστηµα σαν σύµµαχο τόσο στην πορεία των σπουδών τους όσο και στην ανάπτυξη κριτικής σκέψης. Προσοχή: Οι ασκήσεις υπαινίσσονται πως µερικά στοιχεία των προβληµάτων τα οποία πρέπει να επιλυθούν, έχουν ΕΚΤΙΜΗΘΕΙ. Είναι πολύ σηµαντικό ο µέλλων µηχανικός να φθάσει σε τέτοιο επίπεδο εφαρµογής των γνώσεών του ώστε να αποκτήσει εµπειρία στο µέτρο, στις µονάδες και στο πλάτος των τιµών τα οποία χειρίζεται... ρ. Γιώργος - Πέτρος Κ. Οικονόµου 53