44
Εισαγωγή στους Η/Υ Εισαγωγή στους Η/Υ Ειδικά κεφάλαια και Ειδικά κεφάλαια και εφαρμογές εφαρμογές

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

  • Upload
    kelvin

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Εισαγωγή στους Η/Υ. Ειδικά κεφάλαια και εφαρμογές. Περιεχόμενα. ΠΙΝΑΚΕΣ υπονοούμενη επανάληψη παράλληλες δομές ταξινόμηση ΑΡΧΕΙΑ Πρόσβαση σε πολλαπλά αρχεία Εύρεση πλήθους εγγραφών ενός αρχείου Αρχεία με ετικέτες Αλλαγή τύπου δεδομένων Διαδικασίες intent optional, present interface - PowerPoint PPT Presentation

Citation preview

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

Εισαγωγή στους Η/ΥΕισαγωγή στους Η/ΥΕιδικά κεφάλαια και εφαρμογέςΕιδικά κεφάλαια και εφαρμογές

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

ΠεριεχόμεναΠεριεχόμενα ΠΙΝΑΚΕΣΠΙΝΑΚΕΣ

υπονοούμενη επανάληψηυπονοούμενη επανάληψη παράλληλες δομέςπαράλληλες δομές ταξινόμησηταξινόμηση

ΑΡΧΕΙΑΑΡΧΕΙΑ Πρόσβαση σε πολλαπλά αρχείαΠρόσβαση σε πολλαπλά αρχεία Εύρεση πλήθους εγγραφών ενός αρχείουΕύρεση πλήθους εγγραφών ενός αρχείου Αρχεία με ετικέτεςΑρχεία με ετικέτες Αλλαγή τύπου δεδομένωνΑλλαγή τύπου δεδομένων

ΔιαδικασίεςΔιαδικασίες intentintent optional, presentoptional, present interfaceinterface modulemodule

22

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

ΠΙΝΑΚΕΣΠΙΝΑΚΕΣ

33

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

Υπονοούμενη επανάληψηΥπονοούμενη επανάληψη

Η υπονοούμενη επανάληψη χρησιμοποιείταιΗ υπονοούμενη επανάληψη χρησιμοποιείται Για τον καθορισμό επανάληψης σε ένα μέρος μιας λίστας Για τον καθορισμό επανάληψης σε ένα μέρος μιας λίστας

εισόδου/εξόδουεισόδου/εξόδου Για την μεταφορά μέρους ενός πίνακαΓια την μεταφορά μέρους ενός πίνακα Για την μεταφορά αντικειμένων ενός πίνακα με διαφορετική Για την μεταφορά αντικειμένων ενός πίνακα με διαφορετική

σειρά από αυτή που καταχωρούνται στη μνήμη.σειρά από αυτή που καταχωρούνται στη μνήμη.

Παραδείγματα:Παραδείγματα:

44

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

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

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

ΔΟΜΗ ΔΟΜΗ WHEREWHERE

Επηρεάζει τα στοιχεία στις θέσεις Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των πινάκων, για τις των δεικτών των πινάκων, για τις οποίες ισχύει η αντίστοιχη συνθήκηοποίες ισχύει η αντίστοιχη συνθήκη

66

Where (συνθήκη) εκφράσεις 1 Elsewhere (συνθήκη) εκφράσεις 2Elsewhere εκφράσεις 3End Where

Where (συνθήκη) έκφραση

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

77

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

ΔΟΜΗ ΔΟΜΗ FORALLFORALL

Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των πινάκων, οι οποίες προσπελαύνονται από την τριάδα της πινάκων, οι οποίες προσπελαύνονται από την τριάδα της δομήςδομής

88

FORALL(τριάδα1, τριάδα2, …) εκφράσεις

END FORALL

FORALL(τριάδα) έκφραση

Απλή μορφή Απλή μορφή

(Μονοδιάστατος πίνακας) (Μονοδιάστατος πίνακας)

Σύνθετη μορφή Σύνθετη μορφή

(Πολυδιάστατοι πίνακες) (Πολυδιάστατοι πίνακες)

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

99

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

ΔΟΜΗ ΔΟΜΗ FORALLFORALL με Συνθήκη με Συνθήκη Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των

πινάκων, οι οποίες προσπελαύνονται από την τριάδα της πινάκων, οι οποίες προσπελαύνονται από την τριάδα της δομής ΚΑΙ για τα οποία ισχύει η αντίστοιχη συνθήκηδομής ΚΑΙ για τα οποία ισχύει η αντίστοιχη συνθήκη

1010

FORALL(τριάδα1, τριάδα2,…, συνθήκη1.ΛΤ. συνθήκη2.ΛΤ. …)

έκφρασειςEND FORALL (όπου .ΛΤ. : Λογικός Τελεστής)

FORALL(τριάδα, συνθήκη) έκφραση

Απλή μορφή (Μονοδιάστατος πίνακας) Απλή μορφή (Μονοδιάστατος πίνακας)

Σύνθετη μορφή (Πολυδιάστατοι πίνακες) Σύνθετη μορφή (Πολυδιάστατοι πίνακες)

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

1111

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

Ταξινόμηση στοιχείωνΤαξινόμηση στοιχείων

Εδώ παρουσιάζονται δύο αλγόριθμοιΕδώ παρουσιάζονται δύο αλγόριθμοι διάταξη με επιλογήδιάταξη με επιλογή

θέτει το πρώτο στοιχείο σαν το μικρότεροθέτει το πρώτο στοιχείο σαν το μικρότερο εξετάζει διαδοχικά τα υπόλοιπα στοιχείαεξετάζει διαδοχικά τα υπόλοιπα στοιχεία αν βρει κάποιο μικρότερο το τοποθετεί στην 1αν βρει κάποιο μικρότερο το τοποθετεί στην 1ηη θέση θέση επαναλαμβάνει τη διαδικασία για το 2επαναλαμβάνει τη διαδικασία για το 2οο, το 3, το 3οο, κλπ., κλπ.

διάταξη με παρεμβολήδιάταξη με παρεμβολή συγκρίνει κάθε στοιχείο με τα προηγούμενα αρχίζοντας συγκρίνει κάθε στοιχείο με τα προηγούμενα αρχίζοντας

από το 2από το 2οο στοιχείο μέχρι να βρει την κατάλληλη θέση στοιχείο μέχρι να βρει την κατάλληλη θέση επαναλαμβάνει τη διαδικασία διαδοχικά για το 3επαναλαμβάνει τη διαδικασία διαδοχικά για το 3οο, το 4, το 4οο, ,

το 5το 5οο, κλπ. , κλπ.

Περισσότερα στο κεφ. 11.1Περισσότερα στο κεφ. 11.1

1212

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

1313

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

ΑΡΧΕΙΑΑΡΧΕΙΑ

1414

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

Πρόσβαση σε πολλαπλά αρχεία αγνώστου Πρόσβαση σε πολλαπλά αρχεία αγνώστου πλήθους εγγραφώνπλήθους εγγραφών

Εφαρμογή:Εφαρμογή: Συλλογές μετρήσεων σε αρχεία με Συλλογές μετρήσεων σε αρχεία με συγκεκριμένη τυποποίηση ονομασίαςσυγκεκριμένη τυποποίηση ονομασίας

Το πρόβλημα χωρίζεται σε δύο μέρηΤο πρόβλημα χωρίζεται σε δύο μέρη Πρόσβαση σε πολλαπλά αρχείαΠρόσβαση σε πολλαπλά αρχεία

τοποθεσία στον σκληρό δίσκοτοποθεσία στον σκληρό δίσκο όνομα αρχείουόνομα αρχείου τύπος αρχείουτύπος αρχείου

Ανάγνωση του αγνώστου πλήθους εγγραφώνΑνάγνωση του αγνώστου πλήθους εγγραφών Εύρεση γραμμώνΕύρεση γραμμών Εύρεση στηλώνΕύρεση στηλών Καταχώρηση σε δυναμικό πίνακαΚαταχώρηση σε δυναμικό πίνακα

1515

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

Πρόσβαση σε πολλαπλά αρχείαΠρόσβαση σε πολλαπλά αρχεία Για να αποκτήσουμε πρόσβαση σε κάποιο Για να αποκτήσουμε πρόσβαση σε κάποιο

αρχείο χρησιμοποιούμε την εντολή αρχείο χρησιμοποιούμε την εντολή openopen

Η μεταβλητή Η μεταβλητή filename filename (τύπου (τύπου character) character) είναι το είναι το όνομα του αρχείου που περιλαμβάνειόνομα του αρχείου που περιλαμβάνει Τοποθεσία στον σκληρό: π.χ. Τοποθεσία στον σκληρό: π.χ. CC:\:\inputinput\\ Όνομα αρχείου: π.χ.Όνομα αρχείου: π.χ. data1data1 Τύπος αρχείου: π.χ. Τύπος αρχείου: π.χ. txttxt Όνομα αρχείου: Όνομα αρχείου: CC:\input\data1:\input\data1..txttxt

Η τιμή της Η τιμή της filename filename δίνεται δίνεται ρητάρητά με ανάγνωση από άλλο αρχείο με ανάγνωση από άλλο αρχείο παραμετρικάπαραμετρικά

1616

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

1717

Σημείωση: Η ρητή καταχώρηση δεν ενδείκνυται αν επιθυμούμε να αποκτήσουμε πρόσβαση σε μεγάλο αριθμό αρχείων ή σε περιπτώσεις χρήσης διαφορετικών αρχείων κάθε φορά που εκτελείται το πρόγραμμα

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

Αν υπάρχουν σημαντικές διαφορές στα ονόματα των Αν υπάρχουν σημαντικές διαφορές στα ονόματα των αρχείων είναι πιο βολική η χρήση ενός βοηθητικού αρχείουαρχείων είναι πιο βολική η χρήση ενός βοηθητικού αρχείου

Για αρχεία Για αρχεία στον ίδιο φάκελοστον ίδιο φάκελο

Για αρχεία Για αρχεία σε διαφορετικούς φακέλουςσε διαφορετικούς φακέλους

1818

Aρχεία σαν το filenames.txt μπορούν να κατασκευαστούν εύκολα στο EXCEL ή με εντολές σε περιβάλλον command-prompt ή να ληφθούν σαν έξοδος από άλλα software/freeware

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

Αν υπάρχουν σημαντικές ομοιότητες στα ονόματα των Αν υπάρχουν σημαντικές ομοιότητες στα ονόματα των αρχείων είναι πιο βολική η παραμετρική κατασκευή των αρχείων είναι πιο βολική η παραμετρική κατασκευή των ονομάτων τους μέσα στο πρόγραμμαονομάτων τους μέσα στο πρόγραμμα

Για αρχεία Για αρχεία στον ίδιο φάκελο με ίδιο κυρίως όνομα και στον ίδιο φάκελο με ίδιο κυρίως όνομα και μονοψήφιο αύξοντα αριθμόμονοψήφιο αύξοντα αριθμό

Για αρχεία Για αρχεία στον ίδιο φάκελο με ίδιο κυρίως όνομα και στον ίδιο φάκελο με ίδιο κυρίως όνομα και αύξοντα αριθμό με περισσότερα του ενός ψηφίααύξοντα αριθμό με περισσότερα του ενός ψηφία χρειάζεται μια μεθοδολογία αλλαγής τύπου δεδομένωνχρειάζεται μια μεθοδολογία αλλαγής τύπου δεδομένων

1919

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

Αλλαγή τύπου δεδομένωνΑλλαγή τύπου δεδομένων Αρκετές φορές χρειάζεται να αλλάξουμε τον τύπο των δεδομένων από Αρκετές φορές χρειάζεται να αλλάξουμε τον τύπο των δεδομένων από

αλφαριθμητικά σε αριθμητικά και αντιστρόφως ώστε να εκτελέσουμε αλφαριθμητικά σε αριθμητικά και αντιστρόφως ώστε να εκτελέσουμε συγκεκριμένες εργασίεςσυγκεκριμένες εργασίες

Η αλλαγή του τύπου των δεδομένων υλοποιείται με Η αλλαγή του τύπου των δεδομένων υλοποιείται με ανάγνωση από ανάγνωση από ή ή εγγραφή σε εγγραφή σε εσωτερικές μονάδεςεσωτερικές μονάδες εισόδου ή εξόδου αντίστοιχα εισόδου ή εξόδου αντίστοιχα Οι εσωτερικές μονάδες είναι μεταβλητές του προγράματοςΟι εσωτερικές μονάδες είναι μεταβλητές του προγράματος Η ανάγνωση ή η εγγραφή γίνεται με συγκεκριμένο μορφοποιητήΗ ανάγνωση ή η εγγραφή γίνεται με συγκεκριμένο μορφοποιητή

2020

Περιορισμός: τα ψηφία του μορφοποιητή πρέπει να είναι μικρότερα από το μήκος του αλφαριθμητικού

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

ΠαράδειγμαΠαράδειγμα Θέλουμε να διαβάσουμε δεδομένα από πολλά αρχεία με Θέλουμε να διαβάσουμε δεδομένα από πολλά αρχεία με

κοινό όνομα και μη μονοψήφιο αύξοντα αριθμό (κοινό όνομα και μη μονοψήφιο αύξοντα αριθμό (datadata00001.txt, 1.txt, datadata00002.txt,…2.txt,…, , datadata999999.txt).txt)

2121

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

Ανάγνωση αρχείων με άγνωστο πλήθος εγγραφώνΑνάγνωση αρχείων με άγνωστο πλήθος εγγραφών Η ανάγνωση αρχείων με άγνωστο πλήθος εγγραφών γίνεται Η ανάγνωση αρχείων με άγνωστο πλήθος εγγραφών γίνεται

σε τρία στάδιασε τρία στάδια Εύρεση γραμμώνΕύρεση γραμμών Εύρεση στηλώνΕύρεση στηλών Καταχώρηση σε δυναμικό πίνακαΚαταχώρηση σε δυναμικό πίνακα

Για την εύρεση των γραμμών Για την εύρεση των γραμμών χρησιμοποιούμε βρόγχο επανάληψης με συνθήκη εξόδου και μετρητήχρησιμοποιούμε βρόγχο επανάληψης με συνθήκη εξόδου και μετρητή συντάσσουμε την εντολή συντάσσουμε την εντολή READREAD χρησιμοποιώντας την χρησιμοποιώντας την IOSTATIOSTAT ελέγχουμε την τιμή που επιστρέφει η παράμετρος ελέγχουμε την τιμή που επιστρέφει η παράμετρος IOSTATIOSTAT (0: κανένα (0: κανένα

λάθος, -1: τέλος αρχείου)λάθος, -1: τέλος αρχείου)

Για την εύρεση των στηλώνΓια την εύρεση των στηλών θεωρούμε ένα αρκετά μεγάλο αριθμό εγγραφών (θεωρούμε ένα αρκετά μεγάλο αριθμό εγγραφών (MAXRECS)MAXRECS) διαβάζουμε (διαβάζουμε (READREAD + + IOSTATIOSTAT) με ) με υπονοούμενη επανάληψηυπονοούμενη επανάληψη

MAXRECS MAXRECS εγγραφέςεγγραφές ελέγχουμε την τιμή που επιστρέφει η παράμετρος ελέγχουμε την τιμή που επιστρέφει η παράμετρος IOSTATIOSTAT (0: κανένα (0: κανένα

λάθος, -1: τέλος αρχείου)λάθος, -1: τέλος αρχείου)

2222

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

2323

Υπονοούμενη επανάληψη

ο αριθμός στηλών είναι ίσος με τον αριθμό των εγγραφών που αναγνώστηκαν δια τον αριθμό των γραμμών

Υποθετική τιμή μέγιστου αριθμού στοιχείων

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

Χειρισμός αρχείων με ετικέτεςΧειρισμός αρχείων με ετικέτες Πολλές φορές σε αρχεία χρησιμοποιούνται αλφαριθμητικές Πολλές φορές σε αρχεία χρησιμοποιούνται αλφαριθμητικές

ετικέτες για την περιγραφή των εγγεγραμένων δεδομένωνετικέτες για την περιγραφή των εγγεγραμένων δεδομένων Σε τέτοιου είδους αρχεία απαιτείται συγκεκριμένη διαδικασία Σε τέτοιου είδους αρχεία απαιτείται συγκεκριμένη διαδικασία

για την εξαγωγή μόνο των αριθμητικών τιμώνγια την εξαγωγή μόνο των αριθμητικών τιμών

Αν η ετικέτα βρίσκεται σε ξεχωριστή γραμμή από τα δεδομέναΑν η ετικέτα βρίσκεται σε ξεχωριστή γραμμή από τα δεδομένα χρησιμοποιούμε την εντολή χρησιμοποιούμε την εντολή read read για να παραλείψουμε την ετικέταγια να παραλείψουμε την ετικέτα

Αν η ετικέτα βρίσκεται στην ίδια γραμμή με τα δεδομένα Αν η ετικέτα βρίσκεται στην ίδια γραμμή με τα δεδομένα πρέπει να γνωρίζουμε ακριβώς τις ετικέτεςπρέπει να γνωρίζουμε ακριβώς τις ετικέτες διαβάζουμε κάθε γραμμή σαν αλφαριθμητική ακολουθίαδιαβάζουμε κάθε γραμμή σαν αλφαριθμητική ακολουθία βρίσκουμε που αρχίζει και που τελειώνει η ετικέταβρίσκουμε που αρχίζει και που τελειώνει η ετικέτα καταχωρούμε σε μια βοηθητική μεταβλητή το υπόλοιπο της καταχωρούμε σε μια βοηθητική μεταβλητή το υπόλοιπο της

αλφαριθμητικής ακολουθίαςαλφαριθμητικής ακολουθίας αλλάζουμε τον τύπο των δεδομένων της βοηθητικής μεταβλητής από αλλάζουμε τον τύπο των δεδομένων της βοηθητικής μεταβλητής από

αλφαριθμητικό σε αριθμητικόαλφαριθμητικό σε αριθμητικό

2424

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

2525

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

2626

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

ΔΙΑΔΙΚΑΣΙΕΣΔΙΑΔΙΚΑΣΙΕΣ

2727

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

Διαδικασίες – Ιδιότητα Διαδικασίες – Ιδιότητα INTENTINTENT Η ιδιότητα Η ιδιότητα INTENTINTENT επιβάλλει ρητά στη διαδικασία τη χρήση των επιβάλλει ρητά στη διαδικασία τη χρήση των

ορισμάτων εισόδου-εξόδου (εικονικές μεταβλητές)ορισμάτων εισόδου-εξόδου (εικονικές μεταβλητές) Η ιδιότητα Η ιδιότητα INTENTINTENT έχει τρία είδη για τις εικονικές μεταβλητές έχει τρία είδη για τις εικονικές μεταβλητές

εισόδου/εξόδουεισόδου/εξόδου ΙΝ : ΕΙΣΟΔΟΣ – η τιμή της ΙΝ : ΕΙΣΟΔΟΣ – η τιμή της δεν αλλάζει δεν αλλάζει στην έκταση της διαδικασίαςστην έκταση της διαδικασίας OUTOUT : ΕΞΟΔΟΣ – : ΕΞΟΔΟΣ – πρέπειπρέπει να λάβει τιμή στην έκταση της διαδικασίας να λάβει τιμή στην έκταση της διαδικασίας INOUTINOUT: ΕΙΣΟΔΟΣ/ ΕΞΟΔΟΣ – η τιμή της : ΕΙΣΟΔΟΣ/ ΕΞΟΔΟΣ – η τιμή της μπορεί να αλλάζειμπορεί να αλλάζει στην στην

έκταση της διαδικασίας (προκαθορισμένο)έκταση της διαδικασίας (προκαθορισμένο)

Με τη χρήση της ιδιότητας Με τη χρήση της ιδιότητας INTENTINTENT καθορίζουμε πιο αυστηρά καθορίζουμε πιο αυστηρά την εκτέλεση του προγράμματος προλαμβάνοντας λογικά λάθητην εκτέλεση του προγράμματος προλαμβάνοντας λογικά λάθη

2828

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

OPTIONAL OPTIONAL και και PRESENTPRESENT Η ιδιότητα Η ιδιότητα OPTIONALOPTIONAL χρησιμοποιείται για να υποδηλώσει ότι μια χρησιμοποιείται για να υποδηλώσει ότι μια

ή περισσότερες μεταβλητές μιας διαδικασίας δεν είναι αναγκαίο να ή περισσότερες μεταβλητές μιας διαδικασίας δεν είναι αναγκαίο να χρησιμοποιηθούν κατά την κλήση τηςχρησιμοποιηθούν κατά την κλήση της

Συνδυάζεται με την εγγενή συνάρτηση Συνδυάζεται με την εγγενή συνάρτηση PRESENTPRESENT, η οποία , η οποία επιστρέφει ένα λογικό αποτέλεσμα ανάλογα με το αν κάποια επιστρέφει ένα λογικό αποτέλεσμα ανάλογα με το αν κάποια μεταβλητή έχει χρησιμοποιηθεί ή όχι κατά την κλήση της μεταβλητή έχει χρησιμοποιηθεί ή όχι κατά την κλήση της διαδικασίαςδιαδικασίας

Αν χρησιμοποιείται η Αν χρησιμοποιείται η OPTIONALOPTIONAL θα πρέπει να λαμβάνονται θα πρέπει να λαμβάνονται υπόψη κατά τη σύνταξη του κώδικα όλες οι πιθανές περιπτώσεις υπόψη κατά τη σύνταξη του κώδικα όλες οι πιθανές περιπτώσεις και η θέση των ορισμάτωνκαι η θέση των ορισμάτων

Γνωστά παραδείγματαΓνωστά παραδείγματα OpenOpen MIN MIN (πίνακες)(πίνακες) ......

2929

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

ΔιαδικασίεςΔιαδικασίες - Interface - Interface Κατά την χρήση εξωτερικών διαδικασιών ο Κατά την χρήση εξωτερικών διαδικασιών ο compilercompiler

υποθέτει ότι ο προγραμματιστής έχει φροντίσει για την υποθέτει ότι ο προγραμματιστής έχει φροντίσει για την σωστή αντιστοίχιση των όρωνσωστή αντιστοίχιση των όρων

Μια ορθότερη προσέγγιση στην χρήση εξωτερικών Μια ορθότερη προσέγγιση στην χρήση εξωτερικών διαδικασιών είναι η χρήση δομών διαδικασιών είναι η χρήση δομών INTERFACE INTERFACE

Σε αυτές τις δομές δηλώνονται ρητά οι εξωτερικές Σε αυτές τις δομές δηλώνονται ρητά οι εξωτερικές διαδικασίες που πρόκειται να χρησιμοποιηθούνδιαδικασίες που πρόκειται να χρησιμοποιηθούν

Η δομή Η δομή INTERFACE INTERFACE τοποθετείται πριν τις δηλώσειςτοποθετείται πριν τις δηλώσεις

3030

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

Χρησιμοποιώντας αρθρώματα μπορούμε να Χρησιμοποιώντας αρθρώματα μπορούμε να αποφύγουμε τη δήλωση του μεγέθους ενός πίνακα στις αποφύγουμε τη δήλωση του μεγέθους ενός πίνακα στις εξωτερικές διαδικασίες (υπορουτίνες και συναρτήσεις) εξωτερικές διαδικασίες (υπορουτίνες και συναρτήσεις) κάνοντας το πρόγραμμα πιο ευέλικτοκάνοντας το πρόγραμμα πιο ευέλικτο

3131

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

Διαδικασίες - ΑρθρώματαΔιαδικασίες - Αρθρώματα ΤΤoo άρθρωμα ( άρθρωμα (MODULEMODULE)) είναι μια μη εκτελέσιμη από μόνη είναι μια μη εκτελέσιμη από μόνη

της μονάδα κώδικα που περιέχειτης μονάδα κώδικα που περιέχει ΔιαδιακασίεςΔιαδιακασίες ΜεταβλητέςΜεταβλητές

Τα αρθρώματα χρησιμοποιούνται Τα αρθρώματα χρησιμοποιούνται Που θέλουμε να φτιάξουμε μια ενιαία ενότητα με ένα ή περισσότερα Που θέλουμε να φτιάξουμε μια ενιαία ενότητα με ένα ή περισσότερα

συναφή προγράμματα και κοινές μεταβλητέςσυναφή προγράμματα και κοινές μεταβλητές Θέλουμε να ορίσουμε κοινές μεταβλητές (Θέλουμε να ορίσουμε κοινές μεταβλητές (public, global, common, ...public, global, common, ...) )

για το πρόγραμμά μαςγια το πρόγραμμά μας

Οι διαδικασίες στα αρθρώματα συμπεριλαμβάνονται σαν Οι διαδικασίες στα αρθρώματα συμπεριλαμβάνονται σαν εσωτερικές στην έκταση εσωτερικές στην έκταση CONTAINS ... ENDCONTAINS ... END

Τα αρθρώματα χρησιμοποιούνται με την εντολή Τα αρθρώματα χρησιμοποιούνται με την εντολή USEUSE πριν πριν από τις δηλώσειςαπό τις δηλώσεις

3232

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

Παράδειγμα Παράδειγμα χρήσης χρήσης

ΑρθρωμάτωνΑρθρωμάτων

3333

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

Χρήση μέρους ενός Χρήση μέρους ενός MODULEMODULE Τα αρθρώματα χρησιμοποιούνται συνήθως σαν γενικές Τα αρθρώματα χρησιμοποιούνται συνήθως σαν γενικές

βιβλιοθήκες που αποτελούνται από συναφή προγράμματαβιβλιοθήκες που αποτελούνται από συναφή προγράμματα Συχνά οι ανάγκες ενός προγράμματος χρησιμοποιούν μόνο Συχνά οι ανάγκες ενός προγράμματος χρησιμοποιούν μόνο

μέρος από τέτοια γενικά αρθρώματαμέρος από τέτοια γενικά αρθρώματα Προαιρετικά, προκειμένου να εξοικονομήσουμε πόρους του Προαιρετικά, προκειμένου να εξοικονομήσουμε πόρους του

συστήματος, μπορούμε να δηλώσουμε ρητά τη χρήση κάθε συστήματος, μπορούμε να δηλώσουμε ρητά τη χρήση κάθε υπομονάδας ενός αρθρώματοςυπομονάδας ενός αρθρώματος

Αυτό γίνεται με τις παρακάτω συντάξεις εντολέςΑυτό γίνεται με τις παρακάτω συντάξεις εντολές USEUSE όνομα αρθρώματοςόνομα αρθρώματος ONLYONLY ονόματα διαδικασιώνονόματα διαδικασιών

δήλωση τύπουδήλωση τύπου, , PRIVATEPRIVATE:: :: ονόματα μεταβλητών ονόματα μεταβλητών

δήλωση τύπουδήλωση τύπου, , PUBLICPUBLIC :: :: ονόματα μεταβλητών ονόματα μεταβλητών

INTERFACE INTERFACE

MODULE PROCEDUREMODULE PROCEDURE όνομα διαδικασίας αρθρώματοςόνομα διαδικασίας αρθρώματος

END INTERFACEEND INTERFACE

3434

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

Εναλλαγή δυναμικών δεδομένων μεταξύ Εναλλαγή δυναμικών δεδομένων μεταξύ διαδικασιών και κυρίως προγράμματοςδιαδικασιών και κυρίως προγράμματος

Η χρήση πινάκων στις διαδικασίες μέχρι τώρα επέβαλλε την Η χρήση πινάκων στις διαδικασίες μέχρι τώρα επέβαλλε την εκ των προτέρων γνώση των ακριβών διαστάσεων των εκ των προτέρων γνώση των ακριβών διαστάσεων των πινάκων.πινάκων.

Τι γίνεται στις περιπτώσεις που Τι γίνεται στις περιπτώσεις που θέλουμε να εισάγουμε δυναμικά δεσμευμένους πίνακες από το κυρίως θέλουμε να εισάγουμε δυναμικά δεσμευμένους πίνακες από το κυρίως

πρόγραμμα σαν όρισμα εισόδου της διαδικασίας;πρόγραμμα σαν όρισμα εισόδου της διαδικασίας; θέλουμε να εξάγουμε δυναμικά δεσμευμένους πίνακες εντός της θέλουμε να εξάγουμε δυναμικά δεσμευμένους πίνακες εντός της

διαδικασίας προς το κυρίως πρόγραμμα;διαδικασίας προς το κυρίως πρόγραμμα;

Ο προγραμματιστής μπορεί να χρησιμοποιήσει Ο προγραμματιστής μπορεί να χρησιμοποιήσει Υποθετικού μεγέθους πίνακες (Υποθετικού μεγέθους πίνακες (assumed shape arrays)assumed shape arrays) Αρθρώματα για χρήση κοινών μεταβλητώνΑρθρώματα για χρήση κοινών μεταβλητών

3535

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

Assumed-Shape ArraysAssumed-Shape Arrays

Τα διανύσματα αυτού του τύπου δανείζονται τη Τα διανύσματα αυτού του τύπου δανείζονται τη μορφή τους από πατρικά διανύσματα που μορφή τους από πατρικά διανύσματα που συσχετίζονται με αυτάσυσχετίζονται με αυτά

Μόνος περιορισμός είναι ότι πρέπει να είναι Μόνος περιορισμός είναι ότι πρέπει να είναι γνωστή εκ των προτέρων η τάξη τουςγνωστή εκ των προτέρων η τάξη τους

3636

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

ΠαράδειγμαΠαράδειγμα Χρήση πίνακα υποθετικού μεγέθους σαν είσοδο σε εξωτερική Χρήση πίνακα υποθετικού μεγέθους σαν είσοδο σε εξωτερική

διαδικασία και επιστροφή δυναμικού πίνακα ως όρισμα διαδικασία και επιστροφή δυναμικού πίνακα ως όρισμα εξόδου της υπορουτίναςεξόδου της υπορουτίνας

3737

PROGRAMallocatable APROGRAMallocatable A

MODULE dynamallocatable A

MODULE dynamallocatable A

MODULE utilsassumed-shape X

allocatable Y

MODULE utilsassumed-shape X

allocatable Y

Πέρασμα του μεγέθους του Χ

Χρήση ενός εικονικού

χώρου για τον Υ

Πέρασμα του Υ

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

Γενική μορφή χρήσης δυναμικού πίνακα Γενική μορφή χρήσης δυναμικού πίνακα σαν όρισμα εισόδου/εξόδου διαδικασιών σαν όρισμα εισόδου/εξόδου διαδικασιών

3838

Δέσμευση μνήμης

Χρήση σε εξ. διαδικασία

Αποδέσμευση μνήμης

Χρήση στο πρόγραμμα

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

ΕφαρμογέςΕφαρμογές

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

3939

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

Εξίσωση του Εξίσωση του ColebrookColebrook Η εξίσωση του Η εξίσωση του ColebrookColebrook χρησιμοποιείται για την εύρεση του χρησιμοποιείται για την εύρεση του

συντελεστή τριβών κατά την τυρβώδη ροή ενός ρευστού σε συντελεστή τριβών κατά την τυρβώδη ροή ενός ρευστού σε αγωγο. αγωγο.

Η επίλυση γίνεται μόνο με κάποια επαναληπτική διαδικασίαΗ επίλυση γίνεται μόνο με κάποια επαναληπτική διαδικασία(Εναλλακτικά η τιμή του Σ.Τ. μπορεί να βρεθεί από το διάγραμμα (Εναλλακτικά η τιμή του Σ.Τ. μπορεί να βρεθεί από το διάγραμμα MoodyMoody))

Τιμές για δοκιμή:Τιμές για δοκιμή:

DD == 0.315 0.315 [ [mm]]

ksks = 0.00015 = 0.00015 [[mm]]

ReRe == 125000125000 [-] [-]

λ = 0.019 [-]λ = 0.019 [-]

4040

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

Αδιάστατοι αριθμοίΑδιάστατοι αριθμοί Οι αδιάστατοι αριθμοί ποσοτικοποιούν παρόμοια φυσικά Οι αδιάστατοι αριθμοί ποσοτικοποιούν παρόμοια φυσικά

μοντέλαμοντέλα Ένας αδιάστατος αριθμός μπορεί να χρησιμοποιηθεί στην Ένας αδιάστατος αριθμός μπορεί να χρησιμοποιηθεί στην

ανάλυση πρωτότυπων μοδέλων για την πρόβλεψη ανάλυση πρωτότυπων μοδέλων για την πρόβλεψη παρόμοιων μοντέλων σε πλήρη κλίμακα.παρόμοιων μοντέλων σε πλήρη κλίμακα.

Ως συνήθως είναι ένας λόγος δύο φυσικών, γεομετρικών, Ως συνήθως είναι ένας λόγος δύο φυσικών, γεομετρικών, μηχανικών, θερμικών ή χημικών ποσοτήτωνμηχανικών, θερμικών ή χημικών ποσοτήτων

Γνωστά παραδείγματαΓνωστά παραδείγματα Αριθμός Αριθμός MACHMACH Συντελεστής οπισθέλκουσαςΣυντελεστής οπισθέλκουσας

Γράψτε ένα πρόγραμμα που να περιέχει με τη μορφή Γράψτε ένα πρόγραμμα που να περιέχει με τη μορφή συναρτήσεων ορισμένους αδιάστατους αριθμούςσυναρτήσεων ορισμένους αδιάστατους αριθμούς

4141

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

Παραγωγή τυχαίων αριθμώνΠαραγωγή τυχαίων αριθμών

Η παραγωγή τυχαίων αριθμών είναι μια διαδικασία Η παραγωγή τυχαίων αριθμών είναι μια διαδικασία που συναντάται ευρέως στον προγραμματισμόπου συναντάται ευρέως στον προγραμματισμό

Στην πραγματικότητα οι αριθμοί παράγονται βάσει Στην πραγματικότητα οι αριθμοί παράγονται βάσει κάποιου αλγορίθμου και είναι «ψευδοτυχαίοι»κάποιου αλγορίθμου και είναι «ψευδοτυχαίοι»

ΣτηΣτη Fortran Fortran η παραγωγή τυχαίων αριθμών γίνεται η παραγωγή τυχαίων αριθμών γίνεται με τις συναρτήσεις της βιβλιοθήκηςμε τις συναρτήσεις της βιβλιοθήκης CALL RANDOM_SEED() CALL RANDOM_SEED()

Αρχικοποίηση του αλγορίθμου Αρχικοποίηση του αλγορίθμου

CALL RANDOM_NUMBER()CALL RANDOM_NUMBER() Παραγωγή βαθμωτών ή πινάκων τυχαίων αριθμών Παραγωγή βαθμωτών ή πινάκων τυχαίων αριθμών

4242

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

Αμφιέρειστη δοκός Αμφιέρειστη δοκός Να γραφεί πρόγραμμα που να υπολογίζει τις δυνάμεις (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

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

Γραμμική ΠαρεμβολήΓραμμική Παρεμβολή Γράψτε ένα πρόγραμμα που να κανει γραμμική Γράψτε ένα πρόγραμμα που να κανει γραμμική

παρεμβολή στα στοιχεία ενός αρχείου με βάση τις παρεμβολή στα στοιχεία ενός αρχείου με βάση τις τιμές της πρώτης στήληςτιμές της πρώτης στήλης

Το πρόγραμμα να χρησιμοποιεί διαδικασίες Το πρόγραμμα να χρησιμοποιεί διαδικασίες Για την εύρεση της θέσης των τιμών μεταξύ των Για την εύρεση της θέσης των τιμών μεταξύ των

οποίων θα γίνει η παρεμβολήοποίων θα γίνει η παρεμβολή Για την εκτέλεση της γραμμικής παρεμβολήςΓια την εκτέλεση της γραμμικής παρεμβολής

4444