Εισαγωγή στους Η/Υ

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