Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εισαγωγή στους Η/Υ Ειδικά κεφάλαια και εφαρμογές."— Μεταγράφημα παρουσίασης:

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

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

3 ΠΙΝΑΚΕΣ 3

4 Υπονοούμενη επανάληψη  Η υπονοούμενη επανάληψη χρησιμοποιείται  Για τον καθορισμό επανάληψης σε ένα μέρος μιας λίστας εισόδου/εξόδου  Για την μεταφορά μέρους ενός πίνακα  Για την μεταφορά αντικειμένων ενός πίνακα με διαφορετική σειρά από αυτή που καταχωρούνται στη μνήμη. Παραδείγματα: 4

5 5 Παράλληλες δομές  Όπως η δομή IF  Where (συνθήκη) έκφραση  Where … Elsewhere … End Where  Όπως η δομή DO  Forall (τριάδα[,τριάδα]...); έκφραση; end forall  Όπως η δομή DO WHILE  Forall (τριάδα[,τριάδα]..., συνθήκη); έκφραση; end forall  Ισοδύναμο του forall (…); where(…) έκφραση; end forall

6 ΔΟΜΗ WHERE  Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των πινάκων, για τις οποίες ισχύει η αντίστοιχη συνθήκη 6 Where (συνθήκη) εκφράσεις 1 Elsewhere (συνθήκη) εκφράσεις 2 Elsewhere εκφράσεις 3 End Where Where (συνθήκη) έκφραση

7 7

8 ΔΟΜΗ FORALL  Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των πινάκων, οι οποίες προσπελαύνονται από την τριάδα της δομής 8 FORALL(τριάδα1, τριάδα2, …) εκφράσεις END FORALL FORALL(τριάδα) έκφραση  Απλή μορφή (Μονοδιάστατος πίνακας) (Μονοδιάστατος πίνακας)  Σύνθετη μορφή (Πολυδιάστατοι πίνακες) (Πολυδιάστατοι πίνακες)

9 9

10 ΔΟΜΗ FORALL με Συνθήκη  Επηρεάζει τα στοιχεία στις θέσεις των δεικτών των πινάκων, οι οποίες προσπελαύνονται από την τριάδα της δομής ΚΑΙ για τα οποία ισχύει η αντίστοιχη συνθήκη 10 FORALL(τριάδα1, τριάδα2,…, συνθήκη1.ΛΤ. συνθήκη2.ΛΤ. …) έκφρασεις END FORALL ( όπου.ΛΤ. : Λογικός Τελεστής) FORALL(τριάδα, συνθήκη) έκφραση  Απλή μορφή (Μονοδιάστατος πίνακας)  Σύνθετη μορφή (Πολυδιάστατοι πίνακες)

11 11

12 Ταξινόμηση στοιχείων  Εδώ παρουσιάζονται δύο αλγόριθμοι  διάταξη με επιλογή  θέτει το πρώτο στοιχείο σαν το μικρότερο  εξετάζει διαδοχικά τα υπόλοιπα στοιχεία  αν βρει κάποιο μικρότερο το τοποθετεί στην 1 η θέση  επαναλαμβάνει τη διαδικασία για το 2 ο, το 3 ο, κλπ.  διάταξη με παρεμβολή  συγκρίνει κάθε στοιχείο με τα προηγούμενα αρχίζοντας από το 2 ο στοιχείο μέχρι να βρει την κατάλληλη θέση  επαναλαμβάνει τη διαδικασία διαδοχικά για το 3 ο, το 4 ο, το 5 ο, κλπ.  Περισσότερα στο κεφ

13 13

14 ΑΡΧΕΙΑ 14

15 Πρόσβαση σε πολλαπλά αρχεία αγνώστου πλήθους εγγραφών  Εφαρμογή: Συλλογές μετρήσεων σε αρχεία με συγκεκριμένη τυποποίηση ονομασίας  Το πρόβλημα χωρίζεται σε δύο μέρη  Πρόσβαση σε πολλαπλά αρχεία  τοποθεσία στον σκληρό δίσκο  όνομα αρχείου  τύπος αρχείου  Ανάγνωση του αγνώστου πλήθους εγγραφών  Εύρεση γραμμών  Εύρεση στηλών  Καταχώρηση σε δυναμικό πίνακα 15

16 Πρόσβαση σε πολλαπλά αρχεία  Για να αποκτήσουμε πρόσβαση σε κάποιο αρχείο χρησιμοποιούμε την εντολή open  Η μεταβλητή filename (τύπου character) είναι το όνομα του αρχείου που περιλαμβάνει  Τοποθεσία στον σκληρό: π.χ. C:\input\  Όνομα αρχείου: π.χ. data1  Τύπος αρχείου: π.χ. txt  Όνομα αρχείου: C:\input\data1.txt  Η τιμή της filename δίνεται  ρητά  με ανάγνωση από άλλο αρχείο  παραμετρικά 16

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

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

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

20 Αλλαγή τύπου δεδομένων  Αρκετές φορές χρειάζεται να αλλάξουμε τον τύπο των δεδομένων από αλφαριθμητικά σε αριθμητικά και αντιστρόφως ώστε να εκτελέσουμε συγκεκριμένες εργασίες  Η αλλαγή του τύπου των δεδομένων υλοποιείται με ανάγνωση από ή εγγραφή σε εσωτερικές μονάδες εισόδου ή εξόδου αντίστοιχα  Οι εσωτερικές μονάδες είναι μεταβλητές του προγράματος  Η ανάγνωση ή η εγγραφή γίνεται με συγκεκριμένο μορφοποιητή 20 Περιορισμός: τα ψηφία του μορφοποιητή πρέπει να είναι μικρότερα από το μήκος του αλφαριθμητικού

21 Παράδειγμα  Θέλουμε να διαβάσουμε δεδομένα από πολλά αρχεία με κοινό όνομα και μη μονοψήφιο αύξοντα αριθμό (data001.txt, data002.txt,…, data999.txt) 21

22 Ανάγνωση αρχείων με άγνωστο πλήθος εγγραφών  Η ανάγνωση αρχείων με άγνωστο πλήθος εγγραφών γίνεται σε τρία στάδια  Εύρεση γραμμών  Εύρεση στηλών  Καταχώρηση σε δυναμικό πίνακα  Για την εύρεση των γραμμών  χρησιμοποιούμε βρόγχο επανάληψης με συνθήκη εξόδου και μετρητή  συντάσσουμε την εντολή READ χρησιμοποιώντας την IOSTAT  ελέγχουμε την τιμή που επιστρέφει η παράμετρος IOSTAT (0: κανένα λάθος, -1: τέλος αρχείου)  Για την εύρεση των στηλών  θεωρούμε ένα αρκετά μεγάλο αριθμό εγγραφών (MAXRECS)  διαβάζουμε (READ + IOSTAT) με υπονοούμενη επανάληψη MAXRECS εγγραφές  ελέγχουμε την τιμή που επιστρέφει η παράμετρος IOSTAT (0: κανένα λάθος, -1: τέλος αρχείου) 22

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

24 Χειρισμός αρχείων με ετικέτες  Πολλές φορές σε αρχεία χρησιμοποιούνται αλφαριθμητικές ετικέτες για την περιγραφή των εγγεγραμένων δεδομένων  Σε τέτοιου είδους αρχεία απαιτείται συγκεκριμένη διαδικασία για την εξαγωγή μόνο των αριθμητικών τιμών  Αν η ετικέτα βρίσκεται σε ξεχωριστή γραμμή από τα δεδομένα  χρησιμοποιούμε την εντολή read για να παραλείψουμε την ετικέτα  Αν η ετικέτα βρίσκεται στην ίδια γραμμή με τα δεδομένα  πρέπει να γνωρίζουμε ακριβώς τις ετικέτες  διαβάζουμε κάθε γραμμή σαν αλφαριθμητική ακολουθία  βρίσκουμε που αρχίζει και που τελειώνει η ετικέτα  καταχωρούμε σε μια βοηθητική μεταβλητή το υπόλοιπο της αλφαριθμητικής ακολουθίας  αλλάζουμε τον τύπο των δεδομένων της βοηθητικής μεταβλητής από αλφαριθμητικό σε αριθμητικό 24

25 25

26 26

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

28 Διαδικασίες – Ιδιότητα INTENT  Η ιδιότητα INTENT επιβάλλει ρητά στη διαδικασία τη χρήση των ορισμάτων εισόδου-εξόδου (εικονικές μεταβλητές)  Η ιδιότητα INTENT έχει τρία είδη για τις εικονικές μεταβλητές εισόδου/εξόδου  ΙΝ : ΕΙΣΟΔΟΣ – η τιμή της δεν αλλάζει στην έκταση της διαδικασίας  OUT : ΕΞΟΔΟΣ – πρέπει να λάβει τιμή στην έκταση της διαδικασίας  INOUT: ΕΙΣΟΔΟΣ/ ΕΞΟΔΟΣ – η τιμή της μπορεί να αλλάζει στην έκταση της διαδικασίας (προκαθορισμένο)  Με τη χρήση της ιδιότητας INTENT καθορίζουμε πιο αυστηρά την εκτέλεση του προγράμματος προλαμβάνοντας λογικά λάθη 28

29 OPTIONAL και PRESENT  Η ιδιότητα OPTIONAL χρησιμοποιείται για να υποδηλώσει ότι μια ή περισσότερες μεταβλητές μιας διαδικασίας δεν είναι αναγκαίο να χρησιμοποιηθούν κατά την κλήση της  Συνδυάζεται με την εγγενή συνάρτηση PRESENT, η οποία επιστρέφει ένα λογικό αποτέλεσμα ανάλογα με το αν κάποια μεταβλητή έχει χρησιμοποιηθεί ή όχι κατά την κλήση της διαδικασίας  Αν χρησιμοποιείται η OPTIONAL θα πρέπει να λαμβάνονται υπόψη κατά τη σύνταξη του κώδικα όλες οι πιθανές περιπτώσεις και η θέση των ορισμάτων  Γνωστά παραδείγματα  Open  MIN (πίνακες) ... 29

30 Διαδικασίες - Interface  Κατά την χρήση εξωτερικών διαδικασιών ο compiler υποθέτει ότι ο προγραμματιστής έχει φροντίσει για την σωστή αντιστοίχιση των όρων  Μια ορθότερη προσέγγιση στην χρήση εξωτερικών διαδικασιών είναι η χρήση δομών INTERFACE  Σε αυτές τις δομές δηλώνονται ρητά οι εξωτερικές διαδικασίες που πρόκειται να χρησιμοποιηθούν  Η δομή INTERFACE τοποθετείται πριν τις δηλώσεις 30

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

32 Διαδικασίες - Αρθρώματα  Τo άρθρωμα (MODULE) είναι μια μη εκτελέσιμη από μόνη της μονάδα κώδικα που περιέχει  Διαδιακασίες  Μεταβλητές  Τα αρθρώματα χρησιμοποιούνται  Που θέλουμε να φτιάξουμε μια ενιαία ενότητα με ένα ή περισσότερα συναφή προγράμματα και κοινές μεταβλητές  Θέλουμε να ορίσουμε κοινές μεταβλητές (public, global, common,...) για το πρόγραμμά μας  Οι διαδικασίες στα αρθρώματα συμπεριλαμβάνονται σαν εσωτερικές στην έκταση CONTAINS... END  Τα αρθρώματα χρησιμοποιούνται με την εντολή USE πριν από τις δηλώσεις 32

33 Παράδειγμα χρήσης Αρθρωμάτων 33

34 Χρήση μέρους ενός MODULE  Τα αρθρώματα χρησιμοποιούνται συνήθως σαν γενικές βιβλιοθήκες που αποτελούνται από συναφή προγράμματα  Συχνά οι ανάγκες ενός προγράμματος χρησιμοποιούν μόνο μέρος από τέτοια γενικά αρθρώματα  Προαιρετικά, προκειμένου να εξοικονομήσουμε πόρους του συστήματος, μπορούμε να δηλώσουμε ρητά τη χρήση κάθε υπομονάδας ενός αρθρώματος  Αυτό γίνεται με τις παρακάτω συντάξεις εντολές  USE όνομα αρθρώματος ONLY ονόματα διαδικασιών δήλωση τύπου, PRIVATE:: ονόματα μεταβλητών δήλωση τύπου, PRIVATE:: ονόματα μεταβλητών δήλωση τύπου, PUBLIC :: ονόματα μεταβλητών δήλωση τύπου, PUBLIC :: ονόματα μεταβλητών  INTERFACE MODULE PROCEDURE όνομα διαδικασίας αρθρώματος MODULE PROCEDURE όνομα διαδικασίας αρθρώματος END INTERFACE END INTERFACE 34

35 Εναλλαγή δυναμικών δεδομένων μεταξύ διαδικασιών και κυρίως προγράμματος  Η χρήση πινάκων στις διαδικασίες μέχρι τώρα επέβαλλε την εκ των προτέρων γνώση των ακριβών διαστάσεων των πινάκων.  Τι γίνεται στις περιπτώσεις που  θέλουμε να εισάγουμε δυναμικά δεσμευμένους πίνακες από το κυρίως πρόγραμμα σαν όρισμα εισόδου της διαδικασίας;  θέλουμε να εξάγουμε δυναμικά δεσμευμένους πίνακες εντός της διαδικασίας προς το κυρίως πρόγραμμα;  Ο προγραμματιστής μπορεί να χρησιμοποιήσει  Υποθετικού μεγέθους πίνακες (assumed shape arrays)  Αρθρώματα για χρήση κοινών μεταβλητών 35

36 Assumed-Shape Arrays  Τα διανύσματα αυτού του τύπου δανείζονται τη μορφή τους από πατρικά διανύσματα που συσχετίζονται με αυτά  Μόνος περιορισμός είναι ότι πρέπει να είναι γνωστή εκ των προτέρων η τάξη τους 36

37 Παράδειγμα  Χρήση πίνακα υποθετικού μεγέθους σαν είσοδο σε εξωτερική διαδικασία και επιστροφή δυναμικού πίνακα ως όρισμα εξόδου της υπορουτίνας 37 PROGRAM allocatable A PROGRAM allocatable A MODULE dynam allocatable A MODULE dynam allocatable A MODULE utils assumed-shape X allocatable Y MODULE utils assumed-shape X allocatable Y Πέρασμα του μεγέθους του Χ Χρήση ενός εικονικού χώρου για τον Υ Πέρασμα του Υ

38 Γενική μορφή χρήσης δυναμικού πίνακα σαν όρισμα εισόδου/εξόδου διαδικασιών 38 Δέσμευση μνήμης Χρήση σε εξ. διαδικασία Αποδέσμευση μνήμης Χρήση στο πρόγραμμα

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

40 Εξίσωση του Colebrook  Η εξίσωση του Colebrook χρησιμοποιείται για την εύρεση του συντελεστή τριβών κατά την τυρβώδη ροή ενός ρευστού σε αγωγο.  Η επίλυση γίνεται μόνο με κάποια επαναληπτική διαδικασία (Εναλλακτικά η τιμή του Σ.Τ. μπορεί να βρεθεί από το διάγραμμα Moody) Τιμές για δοκιμή: D = [m] ks = [m] Re = [-] λ = [-] 40

41 Αδιάστατοι αριθμοί  Οι αδιάστατοι αριθμοί ποσοτικοποιούν παρόμοια φυσικά μοντέλα  Ένας αδιάστατος αριθμός μπορεί να χρησιμοποιηθεί στην ανάλυση πρωτότυπων μοδέλων για την πρόβλεψη παρόμοιων μοντέλων σε πλήρη κλίμακα.  Ως συνήθως είναι ένας λόγος δύο φυσικών, γεομετρικών, μηχανικών, θερμικών ή χημικών ποσοτήτων  Γνωστά παραδείγματα  Αριθμός MACH  Συντελεστής οπισθέλκουσας  Γράψτε ένα πρόγραμμα που να περιέχει με τη μορφή συναρτήσεων ορισμένους αδιάστατους αριθμούς 41

42 Παραγωγή τυχαίων αριθμών  Η παραγωγή τυχαίων αριθμών είναι μια διαδικασία που συναντάται ευρέως στον προγραμματισμό  Στην πραγματικότητα οι αριθμοί παράγονται βάσει κάποιου αλγορίθμου και είναι «ψευδοτυχαίοι»  Στη Fortran η παραγωγή τυχαίων αριθμών γίνεται με τις συναρτήσεις της βιβλιοθήκης  CALL RANDOM_SEED()  Αρχικοποίηση του αλγορίθμου  CALL RANDOM_NUMBER()  Παραγωγή βαθμωτών ή πινάκων τυχαίων αριθμών 42

43 Αμφιέρειστη δοκός  Να γραφεί πρόγραμμα που να υπολογίζει τις δυνάμεις (F) και τις ροπές (BΜ) κατά μήκος μίας αμφιέρειστης δοκού. Το τεχνικό πρόβλημα που θέλουμε να λύσουμε παρουσιάζεται στο παρακάτω σχήμα: Οι τύποι που μας δίνουν τις δυνάμεις F(x) και τις ροπές BM(x) είναι: Ο υπολογισμός της ροπής πραγματοποιείται βήμα-βήμα κατά μήκος της δοκού. Όσο περισσότερα είναι τα διαστήματα υπολογισμού (N), τόσο μικρότερο είναι το βήμα (dL) και τόσο μεγαλύτερη η ακρίβεια των αποτελεσμάτων. Το πλήθος των διαστημάτων υπολογισμού (Ν) ορίζει και τον αριθμό των επαναλήψεων που χρειάζονται για να υπολογιστεί όλη η δοκός. Τιμές: SL=5m, Q=20kN/m 2, N=4 Απ.: για x=1.25, F(x)=25, M(x)=

44 Γραμμική Παρεμβολή  Γράψτε ένα πρόγραμμα που να κανει γραμμική παρεμβολή στα στοιχεία ενός αρχείου με βάση τις τιμές της πρώτης στήλης  Το πρόγραμμα να χρησιμοποιεί διαδικασίες  Για την εύρεση της θέσης των τιμών μεταξύ των οποίων θα γίνει η παρεμβολή  Για την εκτέλεση της γραμμικής παρεμβολής 44


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google