View
42
Download
0
Category
Preview:
DESCRIPTION
Εισαγωγή στους Η/Υ. Ειδικά κεφάλαια και εφαρμογές. Περιεχόμενα. ΠΙΝΑΚΕΣ υπονοούμενη επανάληψη παράλληλες δομές ταξινόμηση ΑΡΧΕΙΑ Πρόσβαση σε πολλαπλά αρχεία Εύρεση πλήθους εγγραφών ενός αρχείου Αρχεία με ετικέτες Αλλαγή τύπου δεδομένων Διαδικασίες intent optional, present interface - PowerPoint PPT Presentation
Citation preview
Εισαγωγή στους Η/ΥΕισαγωγή στους Η/ΥΕιδικά κεφάλαια και εφαρμογέςΕιδικά κεφάλαια και εφαρμογές
ΠεριεχόμεναΠεριεχόμενα ΠΙΝΑΚΕΣΠΙΝΑΚΕΣ
υπονοούμενη επανάληψηυπονοούμενη επανάληψη παράλληλες δομέςπαράλληλες δομές ταξινόμησηταξινόμηση
ΑΡΧΕΙΑΑΡΧΕΙΑ Πρόσβαση σε πολλαπλά αρχείαΠρόσβαση σε πολλαπλά αρχεία Εύρεση πλήθους εγγραφών ενός αρχείουΕύρεση πλήθους εγγραφών ενός αρχείου Αρχεία με ετικέτεςΑρχεία με ετικέτες Αλλαγή τύπου δεδομένωνΑλλαγή τύπου δεδομένων
ΔιαδικασίεςΔιαδικασίες intentintent optional, presentoptional, present interfaceinterface modulemodule
22
ΠΙΝΑΚΕΣΠΙΝΑΚΕΣ
33
Υπονοούμενη επανάληψηΥπονοούμενη επανάληψη
Η υπονοούμενη επανάληψη χρησιμοποιείταιΗ υπονοούμενη επανάληψη χρησιμοποιείται Για τον καθορισμό επανάληψης σε ένα μέρος μιας λίστας Για τον καθορισμό επανάληψης σε ένα μέρος μιας λίστας
εισόδου/εξόδουεισόδου/εξόδου Για την μεταφορά μέρους ενός πίνακαΓια την μεταφορά μέρους ενός πίνακα Για την μεταφορά αντικειμένων ενός πίνακα με διαφορετική Για την μεταφορά αντικειμένων ενός πίνακα με διαφορετική
σειρά από αυτή που καταχωρούνται στη μνήμη.σειρά από αυτή που καταχωρούνται στη μνήμη.
Παραδείγματα:Παραδείγματα:
44
55
Παράλληλες δομέςΠαράλληλες δομές
Όπως η δομή Όπως η δομή IFIF WhereWhere ((συνθήκησυνθήκη) ) έκφρασηέκφραση WhereWhere … … ElsewhereElsewhere … … End WhereEnd Where
Όπως η δομή Όπως η δομή DODO ForallForall ( (τριάδα[,τριάδα]...); έκφραση; τριάδα[,τριάδα]...); έκφραση; end forallend forall
Όπως η δομή Όπως η δομή DO WHILEDO WHILE ForallForall ( (τριάδα[,τριάδα]...τριάδα[,τριάδα]..., , συνθήκησυνθήκη); έκφραση; ); έκφραση; end end
forallforall Ισοδύναμο του Ισοδύναμο του forallforall (…); (…); wherewhere(…)(…) έκφραση έκφραση; ; end end
forallforall
ΔΟΜΗ ΔΟΜΗ WHEREWHERE
Επηρεάζει τα στοιχεία στις θέσεις Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των πινάκων, για τις των δεικτών των πινάκων, για τις οποίες ισχύει η αντίστοιχη συνθήκηοποίες ισχύει η αντίστοιχη συνθήκη
66
Where (συνθήκη) εκφράσεις 1 Elsewhere (συνθήκη) εκφράσεις 2Elsewhere εκφράσεις 3End Where
Where (συνθήκη) έκφραση
77
ΔΟΜΗ ΔΟΜΗ FORALLFORALL
Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των πινάκων, οι οποίες προσπελαύνονται από την τριάδα της πινάκων, οι οποίες προσπελαύνονται από την τριάδα της δομήςδομής
88
FORALL(τριάδα1, τριάδα2, …) εκφράσεις
END FORALL
FORALL(τριάδα) έκφραση
Απλή μορφή Απλή μορφή
(Μονοδιάστατος πίνακας) (Μονοδιάστατος πίνακας)
Σύνθετη μορφή Σύνθετη μορφή
(Πολυδιάστατοι πίνακες) (Πολυδιάστατοι πίνακες)
99
ΔΟΜΗ ΔΟΜΗ FORALLFORALL με Συνθήκη με Συνθήκη Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των
πινάκων, οι οποίες προσπελαύνονται από την τριάδα της πινάκων, οι οποίες προσπελαύνονται από την τριάδα της δομής ΚΑΙ για τα οποία ισχύει η αντίστοιχη συνθήκηδομής ΚΑΙ για τα οποία ισχύει η αντίστοιχη συνθήκη
1010
FORALL(τριάδα1, τριάδα2,…, συνθήκη1.ΛΤ. συνθήκη2.ΛΤ. …)
έκφρασειςEND FORALL (όπου .ΛΤ. : Λογικός Τελεστής)
FORALL(τριάδα, συνθήκη) έκφραση
Απλή μορφή (Μονοδιάστατος πίνακας) Απλή μορφή (Μονοδιάστατος πίνακας)
Σύνθετη μορφή (Πολυδιάστατοι πίνακες) Σύνθετη μορφή (Πολυδιάστατοι πίνακες)
1111
Ταξινόμηση στοιχείωνΤαξινόμηση στοιχείων
Εδώ παρουσιάζονται δύο αλγόριθμοιΕδώ παρουσιάζονται δύο αλγόριθμοι διάταξη με επιλογήδιάταξη με επιλογή
θέτει το πρώτο στοιχείο σαν το μικρότεροθέτει το πρώτο στοιχείο σαν το μικρότερο εξετάζει διαδοχικά τα υπόλοιπα στοιχείαεξετάζει διαδοχικά τα υπόλοιπα στοιχεία αν βρει κάποιο μικρότερο το τοποθετεί στην 1αν βρει κάποιο μικρότερο το τοποθετεί στην 1ηη θέση θέση επαναλαμβάνει τη διαδικασία για το 2επαναλαμβάνει τη διαδικασία για το 2οο, το 3, το 3οο, κλπ., κλπ.
διάταξη με παρεμβολήδιάταξη με παρεμβολή συγκρίνει κάθε στοιχείο με τα προηγούμενα αρχίζοντας συγκρίνει κάθε στοιχείο με τα προηγούμενα αρχίζοντας
από το 2από το 2οο στοιχείο μέχρι να βρει την κατάλληλη θέση στοιχείο μέχρι να βρει την κατάλληλη θέση επαναλαμβάνει τη διαδικασία διαδοχικά για το 3επαναλαμβάνει τη διαδικασία διαδοχικά για το 3οο, το 4, το 4οο, ,
το 5το 5οο, κλπ. , κλπ.
Περισσότερα στο κεφ. 11.1Περισσότερα στο κεφ. 11.1
1212
1313
ΑΡΧΕΙΑΑΡΧΕΙΑ
1414
Πρόσβαση σε πολλαπλά αρχεία αγνώστου Πρόσβαση σε πολλαπλά αρχεία αγνώστου πλήθους εγγραφώνπλήθους εγγραφών
Εφαρμογή:Εφαρμογή: Συλλογές μετρήσεων σε αρχεία με Συλλογές μετρήσεων σε αρχεία με συγκεκριμένη τυποποίηση ονομασίαςσυγκεκριμένη τυποποίηση ονομασίας
Το πρόβλημα χωρίζεται σε δύο μέρηΤο πρόβλημα χωρίζεται σε δύο μέρη Πρόσβαση σε πολλαπλά αρχείαΠρόσβαση σε πολλαπλά αρχεία
τοποθεσία στον σκληρό δίσκοτοποθεσία στον σκληρό δίσκο όνομα αρχείουόνομα αρχείου τύπος αρχείουτύπος αρχείου
Ανάγνωση του αγνώστου πλήθους εγγραφώνΑνάγνωση του αγνώστου πλήθους εγγραφών Εύρεση γραμμώνΕύρεση γραμμών Εύρεση στηλώνΕύρεση στηλών Καταχώρηση σε δυναμικό πίνακαΚαταχώρηση σε δυναμικό πίνακα
1515
Πρόσβαση σε πολλαπλά αρχείαΠρόσβαση σε πολλαπλά αρχεία Για να αποκτήσουμε πρόσβαση σε κάποιο Για να αποκτήσουμε πρόσβαση σε κάποιο
αρχείο χρησιμοποιούμε την εντολή αρχείο χρησιμοποιούμε την εντολή openopen
Η μεταβλητή Η μεταβλητή filename filename (τύπου (τύπου character) character) είναι το είναι το όνομα του αρχείου που περιλαμβάνειόνομα του αρχείου που περιλαμβάνει Τοποθεσία στον σκληρό: π.χ. Τοποθεσία στον σκληρό: π.χ. CC:\:\inputinput\\ Όνομα αρχείου: π.χ.Όνομα αρχείου: π.χ. data1data1 Τύπος αρχείου: π.χ. Τύπος αρχείου: π.χ. txttxt Όνομα αρχείου: Όνομα αρχείου: CC:\input\data1:\input\data1..txttxt
Η τιμή της Η τιμή της filename filename δίνεται δίνεται ρητάρητά με ανάγνωση από άλλο αρχείο με ανάγνωση από άλλο αρχείο παραμετρικάπαραμετρικά
1616
1717
Σημείωση: Η ρητή καταχώρηση δεν ενδείκνυται αν επιθυμούμε να αποκτήσουμε πρόσβαση σε μεγάλο αριθμό αρχείων ή σε περιπτώσεις χρήσης διαφορετικών αρχείων κάθε φορά που εκτελείται το πρόγραμμα
Αν υπάρχουν σημαντικές διαφορές στα ονόματα των Αν υπάρχουν σημαντικές διαφορές στα ονόματα των αρχείων είναι πιο βολική η χρήση ενός βοηθητικού αρχείουαρχείων είναι πιο βολική η χρήση ενός βοηθητικού αρχείου
Για αρχεία Για αρχεία στον ίδιο φάκελοστον ίδιο φάκελο
Για αρχεία Για αρχεία σε διαφορετικούς φακέλουςσε διαφορετικούς φακέλους
1818
Aρχεία σαν το filenames.txt μπορούν να κατασκευαστούν εύκολα στο EXCEL ή με εντολές σε περιβάλλον command-prompt ή να ληφθούν σαν έξοδος από άλλα software/freeware
Αν υπάρχουν σημαντικές ομοιότητες στα ονόματα των Αν υπάρχουν σημαντικές ομοιότητες στα ονόματα των αρχείων είναι πιο βολική η παραμετρική κατασκευή των αρχείων είναι πιο βολική η παραμετρική κατασκευή των ονομάτων τους μέσα στο πρόγραμμαονομάτων τους μέσα στο πρόγραμμα
Για αρχεία Για αρχεία στον ίδιο φάκελο με ίδιο κυρίως όνομα και στον ίδιο φάκελο με ίδιο κυρίως όνομα και μονοψήφιο αύξοντα αριθμόμονοψήφιο αύξοντα αριθμό
Για αρχεία Για αρχεία στον ίδιο φάκελο με ίδιο κυρίως όνομα και στον ίδιο φάκελο με ίδιο κυρίως όνομα και αύξοντα αριθμό με περισσότερα του ενός ψηφίααύξοντα αριθμό με περισσότερα του ενός ψηφία χρειάζεται μια μεθοδολογία αλλαγής τύπου δεδομένωνχρειάζεται μια μεθοδολογία αλλαγής τύπου δεδομένων
1919
Αλλαγή τύπου δεδομένωνΑλλαγή τύπου δεδομένων Αρκετές φορές χρειάζεται να αλλάξουμε τον τύπο των δεδομένων από Αρκετές φορές χρειάζεται να αλλάξουμε τον τύπο των δεδομένων από
αλφαριθμητικά σε αριθμητικά και αντιστρόφως ώστε να εκτελέσουμε αλφαριθμητικά σε αριθμητικά και αντιστρόφως ώστε να εκτελέσουμε συγκεκριμένες εργασίεςσυγκεκριμένες εργασίες
Η αλλαγή του τύπου των δεδομένων υλοποιείται με Η αλλαγή του τύπου των δεδομένων υλοποιείται με ανάγνωση από ανάγνωση από ή ή εγγραφή σε εγγραφή σε εσωτερικές μονάδεςεσωτερικές μονάδες εισόδου ή εξόδου αντίστοιχα εισόδου ή εξόδου αντίστοιχα Οι εσωτερικές μονάδες είναι μεταβλητές του προγράματοςΟι εσωτερικές μονάδες είναι μεταβλητές του προγράματος Η ανάγνωση ή η εγγραφή γίνεται με συγκεκριμένο μορφοποιητήΗ ανάγνωση ή η εγγραφή γίνεται με συγκεκριμένο μορφοποιητή
2020
Περιορισμός: τα ψηφία του μορφοποιητή πρέπει να είναι μικρότερα από το μήκος του αλφαριθμητικού
ΠαράδειγμαΠαράδειγμα Θέλουμε να διαβάσουμε δεδομένα από πολλά αρχεία με Θέλουμε να διαβάσουμε δεδομένα από πολλά αρχεία με
κοινό όνομα και μη μονοψήφιο αύξοντα αριθμό (κοινό όνομα και μη μονοψήφιο αύξοντα αριθμό (datadata00001.txt, 1.txt, datadata00002.txt,…2.txt,…, , datadata999999.txt).txt)
2121
Ανάγνωση αρχείων με άγνωστο πλήθος εγγραφώνΑνάγνωση αρχείων με άγνωστο πλήθος εγγραφών Η ανάγνωση αρχείων με άγνωστο πλήθος εγγραφών γίνεται Η ανάγνωση αρχείων με άγνωστο πλήθος εγγραφών γίνεται
σε τρία στάδιασε τρία στάδια Εύρεση γραμμώνΕύρεση γραμμών Εύρεση στηλώνΕύρεση στηλών Καταχώρηση σε δυναμικό πίνακαΚαταχώρηση σε δυναμικό πίνακα
Για την εύρεση των γραμμών Για την εύρεση των γραμμών χρησιμοποιούμε βρόγχο επανάληψης με συνθήκη εξόδου και μετρητήχρησιμοποιούμε βρόγχο επανάληψης με συνθήκη εξόδου και μετρητή συντάσσουμε την εντολή συντάσσουμε την εντολή READREAD χρησιμοποιώντας την χρησιμοποιώντας την IOSTATIOSTAT ελέγχουμε την τιμή που επιστρέφει η παράμετρος ελέγχουμε την τιμή που επιστρέφει η παράμετρος IOSTATIOSTAT (0: κανένα (0: κανένα
λάθος, -1: τέλος αρχείου)λάθος, -1: τέλος αρχείου)
Για την εύρεση των στηλώνΓια την εύρεση των στηλών θεωρούμε ένα αρκετά μεγάλο αριθμό εγγραφών (θεωρούμε ένα αρκετά μεγάλο αριθμό εγγραφών (MAXRECS)MAXRECS) διαβάζουμε (διαβάζουμε (READREAD + + IOSTATIOSTAT) με ) με υπονοούμενη επανάληψηυπονοούμενη επανάληψη
MAXRECS MAXRECS εγγραφέςεγγραφές ελέγχουμε την τιμή που επιστρέφει η παράμετρος ελέγχουμε την τιμή που επιστρέφει η παράμετρος IOSTATIOSTAT (0: κανένα (0: κανένα
λάθος, -1: τέλος αρχείου)λάθος, -1: τέλος αρχείου)
2222
2323
Υπονοούμενη επανάληψη
ο αριθμός στηλών είναι ίσος με τον αριθμό των εγγραφών που αναγνώστηκαν δια τον αριθμό των γραμμών
Υποθετική τιμή μέγιστου αριθμού στοιχείων
Χειρισμός αρχείων με ετικέτεςΧειρισμός αρχείων με ετικέτες Πολλές φορές σε αρχεία χρησιμοποιούνται αλφαριθμητικές Πολλές φορές σε αρχεία χρησιμοποιούνται αλφαριθμητικές
ετικέτες για την περιγραφή των εγγεγραμένων δεδομένωνετικέτες για την περιγραφή των εγγεγραμένων δεδομένων Σε τέτοιου είδους αρχεία απαιτείται συγκεκριμένη διαδικασία Σε τέτοιου είδους αρχεία απαιτείται συγκεκριμένη διαδικασία
για την εξαγωγή μόνο των αριθμητικών τιμώνγια την εξαγωγή μόνο των αριθμητικών τιμών
Αν η ετικέτα βρίσκεται σε ξεχωριστή γραμμή από τα δεδομέναΑν η ετικέτα βρίσκεται σε ξεχωριστή γραμμή από τα δεδομένα χρησιμοποιούμε την εντολή χρησιμοποιούμε την εντολή read read για να παραλείψουμε την ετικέταγια να παραλείψουμε την ετικέτα
Αν η ετικέτα βρίσκεται στην ίδια γραμμή με τα δεδομένα Αν η ετικέτα βρίσκεται στην ίδια γραμμή με τα δεδομένα πρέπει να γνωρίζουμε ακριβώς τις ετικέτεςπρέπει να γνωρίζουμε ακριβώς τις ετικέτες διαβάζουμε κάθε γραμμή σαν αλφαριθμητική ακολουθίαδιαβάζουμε κάθε γραμμή σαν αλφαριθμητική ακολουθία βρίσκουμε που αρχίζει και που τελειώνει η ετικέταβρίσκουμε που αρχίζει και που τελειώνει η ετικέτα καταχωρούμε σε μια βοηθητική μεταβλητή το υπόλοιπο της καταχωρούμε σε μια βοηθητική μεταβλητή το υπόλοιπο της
αλφαριθμητικής ακολουθίαςαλφαριθμητικής ακολουθίας αλλάζουμε τον τύπο των δεδομένων της βοηθητικής μεταβλητής από αλλάζουμε τον τύπο των δεδομένων της βοηθητικής μεταβλητής από
αλφαριθμητικό σε αριθμητικόαλφαριθμητικό σε αριθμητικό
2424
2525
2626
ΔΙΑΔΙΚΑΣΙΕΣΔΙΑΔΙΚΑΣΙΕΣ
2727
Διαδικασίες – Ιδιότητα Διαδικασίες – Ιδιότητα INTENTINTENT Η ιδιότητα Η ιδιότητα INTENTINTENT επιβάλλει ρητά στη διαδικασία τη χρήση των επιβάλλει ρητά στη διαδικασία τη χρήση των
ορισμάτων εισόδου-εξόδου (εικονικές μεταβλητές)ορισμάτων εισόδου-εξόδου (εικονικές μεταβλητές) Η ιδιότητα Η ιδιότητα INTENTINTENT έχει τρία είδη για τις εικονικές μεταβλητές έχει τρία είδη για τις εικονικές μεταβλητές
εισόδου/εξόδουεισόδου/εξόδου ΙΝ : ΕΙΣΟΔΟΣ – η τιμή της ΙΝ : ΕΙΣΟΔΟΣ – η τιμή της δεν αλλάζει δεν αλλάζει στην έκταση της διαδικασίαςστην έκταση της διαδικασίας OUTOUT : ΕΞΟΔΟΣ – : ΕΞΟΔΟΣ – πρέπειπρέπει να λάβει τιμή στην έκταση της διαδικασίας να λάβει τιμή στην έκταση της διαδικασίας INOUTINOUT: ΕΙΣΟΔΟΣ/ ΕΞΟΔΟΣ – η τιμή της : ΕΙΣΟΔΟΣ/ ΕΞΟΔΟΣ – η τιμή της μπορεί να αλλάζειμπορεί να αλλάζει στην στην
έκταση της διαδικασίας (προκαθορισμένο)έκταση της διαδικασίας (προκαθορισμένο)
Με τη χρήση της ιδιότητας Με τη χρήση της ιδιότητας INTENTINTENT καθορίζουμε πιο αυστηρά καθορίζουμε πιο αυστηρά την εκτέλεση του προγράμματος προλαμβάνοντας λογικά λάθητην εκτέλεση του προγράμματος προλαμβάνοντας λογικά λάθη
2828
OPTIONAL OPTIONAL και και PRESENTPRESENT Η ιδιότητα Η ιδιότητα OPTIONALOPTIONAL χρησιμοποιείται για να υποδηλώσει ότι μια χρησιμοποιείται για να υποδηλώσει ότι μια
ή περισσότερες μεταβλητές μιας διαδικασίας δεν είναι αναγκαίο να ή περισσότερες μεταβλητές μιας διαδικασίας δεν είναι αναγκαίο να χρησιμοποιηθούν κατά την κλήση τηςχρησιμοποιηθούν κατά την κλήση της
Συνδυάζεται με την εγγενή συνάρτηση Συνδυάζεται με την εγγενή συνάρτηση PRESENTPRESENT, η οποία , η οποία επιστρέφει ένα λογικό αποτέλεσμα ανάλογα με το αν κάποια επιστρέφει ένα λογικό αποτέλεσμα ανάλογα με το αν κάποια μεταβλητή έχει χρησιμοποιηθεί ή όχι κατά την κλήση της μεταβλητή έχει χρησιμοποιηθεί ή όχι κατά την κλήση της διαδικασίαςδιαδικασίας
Αν χρησιμοποιείται η Αν χρησιμοποιείται η OPTIONALOPTIONAL θα πρέπει να λαμβάνονται θα πρέπει να λαμβάνονται υπόψη κατά τη σύνταξη του κώδικα όλες οι πιθανές περιπτώσεις υπόψη κατά τη σύνταξη του κώδικα όλες οι πιθανές περιπτώσεις και η θέση των ορισμάτωνκαι η θέση των ορισμάτων
Γνωστά παραδείγματαΓνωστά παραδείγματα OpenOpen MIN MIN (πίνακες)(πίνακες) ......
2929
ΔιαδικασίεςΔιαδικασίες - Interface - Interface Κατά την χρήση εξωτερικών διαδικασιών ο Κατά την χρήση εξωτερικών διαδικασιών ο compilercompiler
υποθέτει ότι ο προγραμματιστής έχει φροντίσει για την υποθέτει ότι ο προγραμματιστής έχει φροντίσει για την σωστή αντιστοίχιση των όρωνσωστή αντιστοίχιση των όρων
Μια ορθότερη προσέγγιση στην χρήση εξωτερικών Μια ορθότερη προσέγγιση στην χρήση εξωτερικών διαδικασιών είναι η χρήση δομών διαδικασιών είναι η χρήση δομών INTERFACE INTERFACE
Σε αυτές τις δομές δηλώνονται ρητά οι εξωτερικές Σε αυτές τις δομές δηλώνονται ρητά οι εξωτερικές διαδικασίες που πρόκειται να χρησιμοποιηθούνδιαδικασίες που πρόκειται να χρησιμοποιηθούν
Η δομή Η δομή INTERFACE INTERFACE τοποθετείται πριν τις δηλώσειςτοποθετείται πριν τις δηλώσεις
3030
Χρησιμοποιώντας αρθρώματα μπορούμε να Χρησιμοποιώντας αρθρώματα μπορούμε να αποφύγουμε τη δήλωση του μεγέθους ενός πίνακα στις αποφύγουμε τη δήλωση του μεγέθους ενός πίνακα στις εξωτερικές διαδικασίες (υπορουτίνες και συναρτήσεις) εξωτερικές διαδικασίες (υπορουτίνες και συναρτήσεις) κάνοντας το πρόγραμμα πιο ευέλικτοκάνοντας το πρόγραμμα πιο ευέλικτο
3131
Διαδικασίες - ΑρθρώματαΔιαδικασίες - Αρθρώματα ΤΤoo άρθρωμα ( άρθρωμα (MODULEMODULE)) είναι μια μη εκτελέσιμη από μόνη είναι μια μη εκτελέσιμη από μόνη
της μονάδα κώδικα που περιέχειτης μονάδα κώδικα που περιέχει ΔιαδιακασίεςΔιαδιακασίες ΜεταβλητέςΜεταβλητές
Τα αρθρώματα χρησιμοποιούνται Τα αρθρώματα χρησιμοποιούνται Που θέλουμε να φτιάξουμε μια ενιαία ενότητα με ένα ή περισσότερα Που θέλουμε να φτιάξουμε μια ενιαία ενότητα με ένα ή περισσότερα
συναφή προγράμματα και κοινές μεταβλητέςσυναφή προγράμματα και κοινές μεταβλητές Θέλουμε να ορίσουμε κοινές μεταβλητές (Θέλουμε να ορίσουμε κοινές μεταβλητές (public, global, common, ...public, global, common, ...) )
για το πρόγραμμά μαςγια το πρόγραμμά μας
Οι διαδικασίες στα αρθρώματα συμπεριλαμβάνονται σαν Οι διαδικασίες στα αρθρώματα συμπεριλαμβάνονται σαν εσωτερικές στην έκταση εσωτερικές στην έκταση CONTAINS ... ENDCONTAINS ... END
Τα αρθρώματα χρησιμοποιούνται με την εντολή Τα αρθρώματα χρησιμοποιούνται με την εντολή USEUSE πριν πριν από τις δηλώσειςαπό τις δηλώσεις
3232
Παράδειγμα Παράδειγμα χρήσης χρήσης
ΑρθρωμάτωνΑρθρωμάτων
3333
Χρήση μέρους ενός Χρήση μέρους ενός MODULEMODULE Τα αρθρώματα χρησιμοποιούνται συνήθως σαν γενικές Τα αρθρώματα χρησιμοποιούνται συνήθως σαν γενικές
βιβλιοθήκες που αποτελούνται από συναφή προγράμματαβιβλιοθήκες που αποτελούνται από συναφή προγράμματα Συχνά οι ανάγκες ενός προγράμματος χρησιμοποιούν μόνο Συχνά οι ανάγκες ενός προγράμματος χρησιμοποιούν μόνο
μέρος από τέτοια γενικά αρθρώματαμέρος από τέτοια γενικά αρθρώματα Προαιρετικά, προκειμένου να εξοικονομήσουμε πόρους του Προαιρετικά, προκειμένου να εξοικονομήσουμε πόρους του
συστήματος, μπορούμε να δηλώσουμε ρητά τη χρήση κάθε συστήματος, μπορούμε να δηλώσουμε ρητά τη χρήση κάθε υπομονάδας ενός αρθρώματοςυπομονάδας ενός αρθρώματος
Αυτό γίνεται με τις παρακάτω συντάξεις εντολέςΑυτό γίνεται με τις παρακάτω συντάξεις εντολές USEUSE όνομα αρθρώματοςόνομα αρθρώματος ONLYONLY ονόματα διαδικασιώνονόματα διαδικασιών
δήλωση τύπουδήλωση τύπου, , PRIVATEPRIVATE:: :: ονόματα μεταβλητών ονόματα μεταβλητών
δήλωση τύπουδήλωση τύπου, , PUBLICPUBLIC :: :: ονόματα μεταβλητών ονόματα μεταβλητών
INTERFACE INTERFACE
MODULE PROCEDUREMODULE PROCEDURE όνομα διαδικασίας αρθρώματοςόνομα διαδικασίας αρθρώματος
END INTERFACEEND INTERFACE
3434
Εναλλαγή δυναμικών δεδομένων μεταξύ Εναλλαγή δυναμικών δεδομένων μεταξύ διαδικασιών και κυρίως προγράμματοςδιαδικασιών και κυρίως προγράμματος
Η χρήση πινάκων στις διαδικασίες μέχρι τώρα επέβαλλε την Η χρήση πινάκων στις διαδικασίες μέχρι τώρα επέβαλλε την εκ των προτέρων γνώση των ακριβών διαστάσεων των εκ των προτέρων γνώση των ακριβών διαστάσεων των πινάκων.πινάκων.
Τι γίνεται στις περιπτώσεις που Τι γίνεται στις περιπτώσεις που θέλουμε να εισάγουμε δυναμικά δεσμευμένους πίνακες από το κυρίως θέλουμε να εισάγουμε δυναμικά δεσμευμένους πίνακες από το κυρίως
πρόγραμμα σαν όρισμα εισόδου της διαδικασίας;πρόγραμμα σαν όρισμα εισόδου της διαδικασίας; θέλουμε να εξάγουμε δυναμικά δεσμευμένους πίνακες εντός της θέλουμε να εξάγουμε δυναμικά δεσμευμένους πίνακες εντός της
διαδικασίας προς το κυρίως πρόγραμμα;διαδικασίας προς το κυρίως πρόγραμμα;
Ο προγραμματιστής μπορεί να χρησιμοποιήσει Ο προγραμματιστής μπορεί να χρησιμοποιήσει Υποθετικού μεγέθους πίνακες (Υποθετικού μεγέθους πίνακες (assumed shape arrays)assumed shape arrays) Αρθρώματα για χρήση κοινών μεταβλητώνΑρθρώματα για χρήση κοινών μεταβλητών
3535
Assumed-Shape ArraysAssumed-Shape Arrays
Τα διανύσματα αυτού του τύπου δανείζονται τη Τα διανύσματα αυτού του τύπου δανείζονται τη μορφή τους από πατρικά διανύσματα που μορφή τους από πατρικά διανύσματα που συσχετίζονται με αυτάσυσχετίζονται με αυτά
Μόνος περιορισμός είναι ότι πρέπει να είναι Μόνος περιορισμός είναι ότι πρέπει να είναι γνωστή εκ των προτέρων η τάξη τουςγνωστή εκ των προτέρων η τάξη τους
3636
ΠαράδειγμαΠαράδειγμα Χρήση πίνακα υποθετικού μεγέθους σαν είσοδο σε εξωτερική Χρήση πίνακα υποθετικού μεγέθους σαν είσοδο σε εξωτερική
διαδικασία και επιστροφή δυναμικού πίνακα ως όρισμα διαδικασία και επιστροφή δυναμικού πίνακα ως όρισμα εξόδου της υπορουτίναςεξόδου της υπορουτίνας
3737
PROGRAMallocatable APROGRAMallocatable A
MODULE dynamallocatable A
MODULE dynamallocatable A
MODULE utilsassumed-shape X
allocatable Y
MODULE utilsassumed-shape X
allocatable Y
Πέρασμα του μεγέθους του Χ
Χρήση ενός εικονικού
χώρου για τον Υ
Πέρασμα του Υ
Γενική μορφή χρήσης δυναμικού πίνακα Γενική μορφή χρήσης δυναμικού πίνακα σαν όρισμα εισόδου/εξόδου διαδικασιών σαν όρισμα εισόδου/εξόδου διαδικασιών
3838
Δέσμευση μνήμης
Χρήση σε εξ. διαδικασία
Αποδέσμευση μνήμης
Χρήση στο πρόγραμμα
ΕφαρμογέςΕφαρμογές
Εξίσωση του Εξίσωση του ColebrookColebrook Αδιάστατοι αριθμοίΑδιάστατοι αριθμοί Παραγωγή τυχαίων αριθμώνΠαραγωγή τυχαίων αριθμών Αμφιέρειστη δοκός με κατανεμημένο φορτίοΑμφιέρειστη δοκός με κατανεμημένο φορτίο Γραμμική ΠαρεμβολήΓραμμική Παρεμβολή
3939
Εξίσωση του Εξίσωση του ColebrookColebrook Η εξίσωση του Η εξίσωση του ColebrookColebrook χρησιμοποιείται για την εύρεση του χρησιμοποιείται για την εύρεση του
συντελεστή τριβών κατά την τυρβώδη ροή ενός ρευστού σε συντελεστή τριβών κατά την τυρβώδη ροή ενός ρευστού σε αγωγο. αγωγο.
Η επίλυση γίνεται μόνο με κάποια επαναληπτική διαδικασίαΗ επίλυση γίνεται μόνο με κάποια επαναληπτική διαδικασία(Εναλλακτικά η τιμή του Σ.Τ. μπορεί να βρεθεί από το διάγραμμα (Εναλλακτικά η τιμή του Σ.Τ. μπορεί να βρεθεί από το διάγραμμα MoodyMoody))
Τιμές για δοκιμή:Τιμές για δοκιμή:
DD == 0.315 0.315 [ [mm]]
ksks = 0.00015 = 0.00015 [[mm]]
ReRe == 125000125000 [-] [-]
λ = 0.019 [-]λ = 0.019 [-]
4040
Αδιάστατοι αριθμοίΑδιάστατοι αριθμοί Οι αδιάστατοι αριθμοί ποσοτικοποιούν παρόμοια φυσικά Οι αδιάστατοι αριθμοί ποσοτικοποιούν παρόμοια φυσικά
μοντέλαμοντέλα Ένας αδιάστατος αριθμός μπορεί να χρησιμοποιηθεί στην Ένας αδιάστατος αριθμός μπορεί να χρησιμοποιηθεί στην
ανάλυση πρωτότυπων μοδέλων για την πρόβλεψη ανάλυση πρωτότυπων μοδέλων για την πρόβλεψη παρόμοιων μοντέλων σε πλήρη κλίμακα.παρόμοιων μοντέλων σε πλήρη κλίμακα.
Ως συνήθως είναι ένας λόγος δύο φυσικών, γεομετρικών, Ως συνήθως είναι ένας λόγος δύο φυσικών, γεομετρικών, μηχανικών, θερμικών ή χημικών ποσοτήτωνμηχανικών, θερμικών ή χημικών ποσοτήτων
Γνωστά παραδείγματαΓνωστά παραδείγματα Αριθμός Αριθμός MACHMACH Συντελεστής οπισθέλκουσαςΣυντελεστής οπισθέλκουσας
Γράψτε ένα πρόγραμμα που να περιέχει με τη μορφή Γράψτε ένα πρόγραμμα που να περιέχει με τη μορφή συναρτήσεων ορισμένους αδιάστατους αριθμούςσυναρτήσεων ορισμένους αδιάστατους αριθμούς
4141
Παραγωγή τυχαίων αριθμώνΠαραγωγή τυχαίων αριθμών
Η παραγωγή τυχαίων αριθμών είναι μια διαδικασία Η παραγωγή τυχαίων αριθμών είναι μια διαδικασία που συναντάται ευρέως στον προγραμματισμόπου συναντάται ευρέως στον προγραμματισμό
Στην πραγματικότητα οι αριθμοί παράγονται βάσει Στην πραγματικότητα οι αριθμοί παράγονται βάσει κάποιου αλγορίθμου και είναι «ψευδοτυχαίοι»κάποιου αλγορίθμου και είναι «ψευδοτυχαίοι»
ΣτηΣτη Fortran Fortran η παραγωγή τυχαίων αριθμών γίνεται η παραγωγή τυχαίων αριθμών γίνεται με τις συναρτήσεις της βιβλιοθήκηςμε τις συναρτήσεις της βιβλιοθήκης CALL RANDOM_SEED() CALL RANDOM_SEED()
Αρχικοποίηση του αλγορίθμου Αρχικοποίηση του αλγορίθμου
CALL RANDOM_NUMBER()CALL RANDOM_NUMBER() Παραγωγή βαθμωτών ή πινάκων τυχαίων αριθμών Παραγωγή βαθμωτών ή πινάκων τυχαίων αριθμών
4242
Αμφιέρειστη δοκός Αμφιέρειστη δοκός Να γραφεί πρόγραμμα που να υπολογίζει τις δυνάμεις (F) και τις ροπές Να γραφεί πρόγραμμα που να υπολογίζει τις δυνάμεις (F) και τις ροπές
(BΜ) κατά μήκος μίας αμφιέρειστης δοκού. Το τεχνικό πρόβλημα που (BΜ) κατά μήκος μίας αμφιέρειστης δοκού. Το τεχνικό πρόβλημα που θέλουμε να λύσουμε παρουσιάζεται στο παρακάτω σχήμα:θέλουμε να λύσουμε παρουσιάζεται στο παρακάτω σχήμα:
Οι τύποι που μας δίνουν τις δυνάμεις F(x) και τις ροπές BM(x) είναι:Οι τύποι που μας δίνουν τις δυνάμεις F(x) και τις ροπές BM(x) είναι:
Ο υπολογισμός της ροπής πραγματοποιείται βήμα-βήμα κατά μήκος της Ο υπολογισμός της ροπής πραγματοποιείται βήμα-βήμα κατά μήκος της δοκού. Όσο περισσότερα είναι τα διαστήματα υπολογισμού (N), τόσο δοκού. Όσο περισσότερα είναι τα διαστήματα υπολογισμού (N), τόσο μικρότερο είναι το βήμα (dL) και τόσο μεγαλύτερη η ακρίβεια των μικρότερο είναι το βήμα (dL) και τόσο μεγαλύτερη η ακρίβεια των αποτελεσμάτων. Το πλήθος των διαστημάτων υπολογισμού (Ν) ορίζει αποτελεσμάτων. Το πλήθος των διαστημάτων υπολογισμού (Ν) ορίζει και τον αριθμό των επαναλήψεων που χρειάζονται για να υπολογιστεί και τον αριθμό των επαναλήψεων που χρειάζονται για να υπολογιστεί όλη η δοκόςόλη η δοκός. .
Τιμές: Τιμές: SLSL=5m, Q=20kN/m=5m, Q=20kN/m22, N=4 , N=4 Απ.:Απ.: για για xx==1.25, F(x)=25, M(x)=46.871.25, F(x)=25, M(x)=46.87
4343
Γραμμική ΠαρεμβολήΓραμμική Παρεμβολή Γράψτε ένα πρόγραμμα που να κανει γραμμική Γράψτε ένα πρόγραμμα που να κανει γραμμική
παρεμβολή στα στοιχεία ενός αρχείου με βάση τις παρεμβολή στα στοιχεία ενός αρχείου με βάση τις τιμές της πρώτης στήληςτιμές της πρώτης στήλης
Το πρόγραμμα να χρησιμοποιεί διαδικασίες Το πρόγραμμα να χρησιμοποιεί διαδικασίες Για την εύρεση της θέσης των τιμών μεταξύ των Για την εύρεση της θέσης των τιμών μεταξύ των
οποίων θα γίνει η παρεμβολήοποίων θα γίνει η παρεμβολή Για την εκτέλεση της γραμμικής παρεμβολήςΓια την εκτέλεση της γραμμικής παρεμβολής
4444
Recommended