Υπολογιστές Ι. Άδειες Χρήσης. Υποπρογράμματα. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Σχετικά έγγραφα
ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια υπορουτίνα; με υπορουτίνα ΥΠΟΡΟΥΤΙΝΕΣ. Παράδειγμα #1: η πράξη SQ. Ποια η διαφορά συναρτήσεων και υπορουτίνων;

Υπολογιστές Ι. Άδειες Χρήσης. Συναρτήσεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Υπολογιστές Ι. Άδειες Χρήσης. Πολυδιάστατοι πίνακες. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια συνάρτηση; ΣΥΝΑΡΤΗΣΕΙΣ. Δήλωση συνάρτησης sq. Παράδειγμα συνάρτησης: υπολογισμός τετραγώνου

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Υπολογιστές Ι. Άδειες Χρήσης. Μεταβλητές και πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Μικροβιολογία & Υγιεινή Τροφίμων

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Γενικά Μαθηματικά Ι. Ενότητα 5: Παράγωγος Πεπλεγμένης Συνάρτησης, Κατασκευή Διαφορικής Εξίσωσης. Λουκάς Βλάχος Τμήμα Φυσικής

Μαθηματικά και Φυσική με Υπολογιστές

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Υπολογιστές Ι. Άδειες Χρήσης. Μονοδιάστατοι πίνακες. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 9: Κίνηση Σε Πολικές Συντεταγμένες. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συνδυαστική Ανάλυση Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συναρτήσεις πολλών μεταβλητών Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Βέλτιστος Έλεγχος Συστημάτων

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΦΥΣΙΚΟΧΗΜΕΙΑ ΙΙ

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Γιατί χρειαζόμαστε πίνακες; ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ. Παράδειγμα #1B (με πίνακες) Παράδειγμα #1Α (χωρίς πίνακες)

Γενικά Μαθηματικά Ι. Ενότητα 7: Σειρές Taylor, Maclaurin. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Βέλτιστος Έλεγχος Συστημάτων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Γενικά Μαθηματικά Ι. Ενότητα 13: Ακτίνα Σύγκλισης, Αριθμητική Ολοκλήρωση, Ολοκλήρωση Κατά Παράγοντες. Λουκάς Βλάχος Τμήμα Φυσικής

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ιστορία της μετάφρασης

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Μαθηματικά και Φυσική με Υπολογιστές

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Εκκλησιαστικό Δίκαιο

Φυσική (Ε) Ανοικτά Ακαδημαϊκά Μαθήματα. Ενότητα 2: Θεωρία ταλαντώσεων (Συνοπτική περιγραφή) Αικατερίνη Σκουρολιάκου. Τμήμα Ενεργειακής Τεχνολογίας

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Βέλτιστος Έλεγχος Συστημάτων

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Τίτλος Μαθήματος: Βασικές Έννοιες Φυσικής. Ενότητα: Μηχανική. Διδάσκων: Καθηγητής Κ. Κώτσης. Τμήμα: Παιδαγωγικό, Δημοτικής Εκπαίδευσης

Εφαρμοσμένη Στατιστική

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Μιγαδικός λογισμός και ολοκληρωτικοί Μετασχηματισμοί

Κλασική Ηλεκτροδυναμική Ι

Εκκλησιαστικό Δίκαιο

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

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

Εισαγωγή στους Αλγορίθμους

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Φυσική Περιβάλλοντος

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός και Εφαρμογές Υπολογιστών

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Γενικά Μαθηματικά Ι. Ενότητα 6: Ακρότατα Συνάρτησης. Λουκάς Βλάχος Τμήμα Φυσικής

Ηλεκτρισμός & Μαγνητισμός

Ενότητα 1 Διάλεξη 3. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Αξιολόγηση και ανάλυση της μυϊκής δύναμης και ισχύος

Υπολογιστές Ι. Άδειες Χρήσης. Εντολή IF. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Πληροφορική ΙΙ Ενότητα 1

Μιγαδικός λογισμός και ολοκληρωτικοί Μετασχηματισμοί

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Ενότητα: Δακτύλιοι, Ακέραιες Περιοχές, Σώματα. Διδάσκων: Καθηγητής Μαρμαρίδης Νικόλαος - Θεοδόσιος

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

Εισαγωγή στους Αλγορίθμους

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ενότητα 6: Ακρότατα συναρτησιακών διανυσματικών συναρτήσεων. Νίκος Καραμπετάκης Τμήμα Μαθηματικών

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Προηγμένος έλεγχος ηλεκτρικών μηχανών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Κβαντική Θεωρία ΙΙ. Συστήματα Πολλών Σωματίων Διδάσκων: Καθ. Λέανδρος Περιβολαρόπουλος

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ενότητα: Ο Δακτύλιος Πολυωνύμων μιας Μεταβλητής. Διδάσκων: Καθηγητής Μαρμαρίδης Νικόλαος - Θεοδόσιος

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

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Ιστορία της μετάφρασης

Μαθηματικά και Φυσική με Υπολογιστές

Οικονομία των ΜΜΕ. Ενότητα 9: Εταιρική διασπορά και στρατηγικές τιμολόγησης

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Γιατί πολυδιάστατους πίνακες; ΠΟΛΥΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ. Δήλωση πολυδιάστατων πινάκων. Δήλωση πολυδιάστατων πινάκων

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Λογισμός 3. Ενότητα 17: Απόδειξη Θεωρήματος Αντιστροφής. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης Υπολογιστές Ι Υποπρογράμματα Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

ΥΠΟΛΟΓΙΣΤΕΣ Ι Τι είναι μια υπορουτίνα; ΥΠΟΡΟΥΤΙΝΕΣ Μια ομάδα εντολών, σχεδιασμένη να εκτελεί έναν ή περισσότερους υπολογισμούς Ιδανικές για περιπτώσεις που ο υπολογισμός επαναλαμβάνεται πολλές φορές μέσα στο πρόγραμμα Συντελούν σημαντικά στην καθαρότητα ενός προγράμματος Συντελούν σημαντικά στην μεταβατικότητα ενός προγράμματος 1 2 Ποια η διαφορά συναρτήσεων και υπορουτίνων; Είναι και οι δύο υποπρογράμματα Γράφονται και οι δύο μετά το τέλος του προγράμματος Μπορούμε να χρησιμοποιήσουμε όποια από τις δύο θέλουμε για οποιαδήποτε πράξη Συναρτήσεις είσοδος: λίστα μεταβλητών έξοδος: μεταβλητή εξόδου κλήση: ανάθεση σε μεταβλητή Υπορουτίνες είσοδος: λίστα μεταβλητών έξοδος: λίστα μεταβλητών κλήση: χωρίς ανάθεση (με CALL) δεν χρειάζεται να δηλώσουμε το όνομά της 3 Παράδειγμα #1: η πράξη SQ με συνάρτηση PROGRAM TEST_SQ DOUBLE PRECISION X, SQ WRITE(*,*) ΝΟΥΜΕΡΟ; READ(*,*) X WRITE(*,*) SQ(X) REAL*8 FUNCTION SQ(X) DOUBLE PRECISION X SQ = X**2 με υπορουτίνα PROGRAM TEST_SQ DOUBLE PRECISION X WRITE(*,*) ΝΟΥΜΕΡΟ; READ(*,*) X CALL SQ(X) WRITE(*,*) X SUBROUTINE SQ(X) DOUBLE PRECISION X X = X**2 4

Παράδειγμα #1B: : η πράξη SQ με υπορουτίνα: : με ή χωρίς τροποποίηση Πότε να χρησιμοποιούμε συνάρτηση και πότε υπορουτίνα; με τροποποίηση PROGRAM TEST_SQ DOUBLE PRECISION X WRITE(*,*) ΝΟΥΜΕΡΟ; READ(*,*) X CALL SQ(X) WRITE(*,*) X SUBROUTINE SQ(X) DOUBLE PRECISION X X = X**2 χωρίς τροποποίηση PROGRAM TEST_SQ DOUBLE PRECISION X, Y WRITE(*,*) ΝΟΥΜΕΡΟ; READ(*,*) X CALL SQ(X,Y) WRITE(*,*) Y SUBROUTINE SQ(X, Y) DOUBLE PRECISION X, Y Y = X**2 5 Συνάρτηση όταν η πράξη είναι απλή με μία και μόνο έξοδο όταν δεν τροποποιούμε τις μεταβλητές εισόδου Υπορουτίνα όταν οι πράξεις είναι πολλές και οι έξοδοι επίσης πολλές όταν πρέπει να τροποποιήσουμε τις μεταβλητές εισόδου Καλές προγραμματιστικές συνήθειες: Συνάρτηση: μία πράξη, ένα αποτέλεσμα (ένα νούμερο) Υπορουτίνα: γενικευμένο σύνολο πράξεων, πολλά αποτελέσματα (π.χ. τροποποίηση ολόκληρου πίνακα) 6 Παράδειγμα #2: τροποποίηση πίνακα Παράδειγμα #2B: : τροποποίηση πίνακα Γράψτε υπορουτίνα που να δέχεται μονοδιάστατο πίνακα και να τροποποιεί το κάθε στοιχείο του στο τετράγωνό του SUBROUTINE SQΝ(X, N) DOUBLE PRECISION X(N) X(I) = X(I)**2 DO 7 Γράψτε πρόγραμμα που να διαβάζει μονοδιάστατο πίνακα και με την SQN να τροποποιεί το κάθε στοιχείο του στο τετράγωνό του PROGRAM TEST_SQN INTEGER NMAX, N, Ι PARAMETER(NMAX = 1000) DOUBLE PRECISION X(NMAX) WRITE(*,*) ΠΟΣΑ ΣΗΜΕΙΑ ΘΑ ΕΙΣΑΓΕΤΕ; READ(*,*) Ν IF (N.GT. NMAX.OR. N.LE. 0) STOP READ(*,*) (X(I), I = 1, N) CALL SQN(X, N) WRITE(*,*) ΤΑ ΝΕΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΠΙΝΑΚΑ WRITE(*,*) (Χ(Ι), Ι = 1, Ν) 8

Παράδειγμα #3: υπορουτίνα για ταξινόμηση με μέθοδο φυσαλίδας Παράδειγμα #3: υπορουτίνα SWAP SUBROUTINE BUBBLE_SORT(X, N), J DOUBLE PRECISION X(N) C...ΓΙΑ ΚΑΘΕ ΘΕΣΗ J DO J = N, 2, -1 C...ΒΡΙΣΚΟΥΜΕ ΤΟ ΑΝΤΙΣΤΟΙΧΟ ΜΕΓΙΣΤΟ DO I = 1, J-1 IF(X(I).GT. X(I+1))THEN CALL SWAP( X(I), X(I+1) ) IF DO DO SUBROUTINE SWAP (X, Y) DOUBLE PRECISION X, Y, TEMP TEMP = X X = Y Y = TEMP 9 10 Παράδειγμα #4: πολλαπλασιασμός πινάκων Γράψτε υπορουτίνα που δέχεται 3 δισδιάστατους τετραγωνικούς πίνακες και τροποποιεί τον τρίτο ώστε να είναι το γινόμενο των δύο πρώτων SUBROUTINE MATRIX_PRODUCT(A, B, C, N), J, K DOUBLE PRECISION A(N,N), B(N,N), C(N,N) DO J = 1, N C(I,J) = 0 DO K = 1, N C(I,J) = C(I,J) + A(I,K) * B(K,J) DO DO DO Παράδειγμα #5: απόσταση διανυόμενη από σώμα με μεταβλητή ταχύτητα (ή με άλλα λόγια: αριθμητική ολοκλήρωση γραμμικής διαφορικής εξίσωσης) Έστω ένα σώμα ξεκινάει από την θέση x=0, και η ταχύτητά του δίνεται από την παρακάτω σχέση, όπου ο χρόνος t μετριέται σε δευτερόλεπτα v ( t ) = 2 0.03t 0.001t 3 1+ 0.0001t Ποια απόσταση έχει διανύσει μετά από Μ δευτερόλεπτα; 11 12

Παράδειγμα #5: απόσταση διανυόμενη από σώμα με μεταβλητή ταχύτητα Μέθοδος του Euler Διαφορική εξίσωση: Διακριτοποίηση: Ολοκλήρωση στον χρόνο: Η σε μορφή αλγόριθμου (για Δt=1sec) dx ( t ) = v ( t ) dt x ( t + Δt ) x ( t ) = v ( t ) Δt x ( t + Δt ) = x ( t ) + Δt v ( t ) x = x + v i +1 i i 13 Παράδειγμα #5: απόσταση διανυόμενη από σώμα με μεταβλητή ταχύτητα (1/2) Γράψτε πρόγραμμα που υπολογίζει την 2 0.03t 0.001t απόσταση σαν συνάρτηση του χρόνου, όταν v ( t ) = 3 η ταχύτητα δίνεται από (t σε δευτερόλεπτα): 1+ 0.0001t PROGRAM DISTANCE1 INTEGER Μ, T DOUBLE PRECISION X, V, VELOCITY WRITE(*,*) ΠΟΣΑ ΒΗΜΑΤΑ ΘΕΛΕΤΕ; READ(*,*) M Χ = 0 DO T = 1, M V = VELOCITY(T) CALL DISTANCE(X, V) DO WRITE(*,*) Η ΑΠΟΣΤΑΣΗ ΕΙΝΑΙ, Χ 14 Παράδειγμα #5: απόσταση διανυόμενη από σώμα με μεταβλητή ταχύτητα (2/2) Παράδειγμα #6: απόσταση διανυόμενη από Ν σώματα με σταθερή ταχύτητα DOUBLE PRECISION FUNCTION VELOCITY ( T ) INTEGER T VELOCITY = (0.03*T - 0.001* T**2)/(1 + 0.0001* T**3) C--------------------------------------------------------- SUBROUTINE DISTANCE (X, V) DOUBLE PRECISION X, V X = X + V 15 Έστω N σώματα ξεκινάνε από την θέση x=0 με αρχική ταχύτητα (σε m/sec) που δίνεται από την σχέση (i=1, N) ( i ) v ( i ) = 100 cos 100 Εάν η κίνηση είναι με σταθερή ταχύτητα, μετά από M δευτερόλεπτα, ποιο είναι μακρύτερα και ποιο κοντύτερα στην αρχή, και ποιες θα είναι αυτές οι αποστάσεις; Τι θα χρειαστούμε; Δύο πίνακες για απόσταση και ταχύτητα Μια συνάρτηση για να δημιουργήσουμε αρχικές ταχύτητες Μια υπορουτίνα για να εκτελεί ένα βήμα Μια συνάρτηση που γυρνάει την θέση του μεγίστου ενός πίνακα Μια συνάρτηση που γυρνάει την θέση του ελαχίστου ενός πίνακα 16

Παράδειγμα #6: απόσταση διανυόμενη από Ν σώματα με σταθερή ταχύτητα (1/5) Παράδειγμα #6: απόσταση διανυόμενη από Ν σώματα με σταθερή ταχύτητα (2/5) Συνάρτηση για την δημιουργία αρχικών ταχυτήτων DOUBLE PRECISION FUNCTION VELOCITY ( I ) INTEGER I VELOCITY = 100 * ABS ( COS (100 * I) ) ) Υπορουτίνα για εκτέλεση ενός βήματος SUBROUTINE RUN_DISTANCE (X, V, N) DOUBLE PRECISION X(N), V(N) X(I) = X(I) + V(I) DO 17 18 Παράδειγμα #6: απόσταση διανυόμενη από Ν σώματα με σταθερή ταχύτητα (3/5) Παράδειγμα #6: απόσταση διανυόμενη από Ν σώματα με σταθερή ταχύτητα (4/5) Συνάρτηση για εύρεση θέσης μέγιστου πίνακα INTEGER FUNCTION IMAX (X, N) DOUBLE PRECISION X(N), XMAX XMAX = X(1) IMAX = 1 DO I = 2, N IF (X(I).GT.XMAX) THEN XMAX = X(I) IMAX = I IF DO 19 Συνολικό πρόγραμμα PROGRAM RACE INTEGER NMAX, M, N, I, IMIN, IMAX PARAMETER(NMAX=1000) DOUBLE PRECISION DIST(NMAX), VEL(NMAX), VELOCITY WRITE(*,*) ΠΟΣΑ ΣΩΜΑΤΑ ΤΡΕΧΟΥΝ ΚΑΙ ΓΙΑ ΠΟΣΑ ΒΗΜΑΤΑ; READ(*,*) Ν, Μ IF (N.GT. NMAX.OR. N.LE. 0) STOP DIST(I) = 0 VEL(I) = VELOCITY(I) DO ΣΥΝΕΧΙΖΕΤΑΙ... 20

Παράδειγμα #6: απόσταση διανυόμενη από Ν σώματα με σταθερή ταχύτητα (5/5) Συνολικό πρόγραμμα DO I = 1, Μ CALL RUN_DISTANCE(X, V, N) DO WRITE(*,*) ΠΡΩΤΟ ΤΟ, ΙΜΑΧ(DIST,N) WRITE(*,*) ΜΕ ΑΠΟΣΤΑΣΗ, DIST(IMAX(DIST,N)) WRITE(*,*) KAI TAXYTHTA, VEL(IMAX(DIST,N)) Παράδειγμα #7:# : απόσταση διανυόμενη από Ν σώματα, με κανόνες ταχύτητας Κίνηση Ν σωμάτων με κανόνες ταχύτητας: σε κάθε βήμα όποιο σώμα έχει ταχύτητα πάνω από τον μέσο όρο ταχυτήτων, πρέπει να την μειώσει κατά 10%, ενώ όποιο έχει ταχύτητα κάτω από τον μέσο όρο ταχυτήτων πρέπει να την αυξήσει κατά 10%. Τι θα χρειαστούμε; Μια συνάρτηση να υπολογίζει τον μέσο όρο Μια υπορουτίνα που να εφαρμόζει τον κανόνα 21 22 Παράδειγμα #7:# : απόσταση διανυόμενη από Ν σώματα, με κανόνες ταχύτητας (1/2) Συνάρτηση για μέσο όρο DOUBLE PRECISION FUNCTION AVERAGE (X, N) DOUBLE PRECISION X(N) AVERAGE = 0 AVERAGE = AVERAGE + X(I) DO AVERAGE = AVERAGE / N 23 Παράδειγμα #7:# : απόσταση διανυόμενη από Ν σώματα, με κανόνες ταχύτητας (2/2) Υπορουτίνα για εφαρμογή κανόνα SUBROUTINE SCALE_VELOCITY (V, N) DOUBLE PRECISION V(N), AVERAGE, VM VM = AVERAGE(V, N) IF (V(I).GT. VM) THEN V(I) = V(I) * 0.9 ELSE IF (V(I).LT. VM) THEN V(I) = V(I) * 1.1 IF DO 24

H M k Γράψτε πρόγραμμα που να λύνει την χρονική εξέλιξη του γραμμικού συστήματος Ν ελατηρίων Συνθήκες: Αρχικές θέσεις τυχαίες Αρχικές ταχύτητες μηδέν Πρώτη και τελευταία είναι ακίνητες 1 2 3 I N Κάθε σφαίρα I(εκτός πρώτης και τελευταίας), περιγράφεται από: Την θέση της Την ταχύτητά της Την δύναμη πού νοιώθει εξαιτίας των δύο ελατηρίων της 25 26 1 2 3 I N Αρχικές θέσεις: X(1) = 0 X(N) = H * (N - 1) Οι υπόλοιπες δίνονται από τον χρήστη Αρχικές ταχύτητες Όλες μηδέν 1 2 3 I N Δύναμη στη σφαίρα Ι Εάν το δεξί της ελατήριο είναι τεντωμένο, η δύναμη είναι πρός τα δεξιά (θετική): F = K * (X(I+1) X(I) H) Εάν το δεξί της ελατήριο είναι συμπιεσμένο, η δύναμη είναι προς τα αριστερά (αρνητική): F = K * (X(I+1) X(I) H) Εάν το αριστερό της ελατήριο είναι τεντωμένο, η δύναμη είναι προς τα αριστερά (αρνητική): F = K * (X(I-1) X(I) + H) Εάν το αριστερό της ελατήριο είναι συμπιεσμένο, η δύναμη είναι προς τα δεξιά (θετική): F = K * (X(I-1) X(I) + H) 27 28

1 2 3 I N Συνολική δύναμη στη σφαίρα Ι F = K * (X(I+1) X(I) H) + K * (X(I-1) X(I) + H) F = Κ * (Χ(Ι+1) + Χ(Ι-1) 2*Χ(Ι)) και η επιτάχυνση Α = Κ / Μ * (Χ(Ι+1) + Χ(Ι-1) 2*Χ(Ι)) H δύναμη στην πρώτη και τελευταία είναι μηδέν 29 Ολοκλήρωση Ανάπτυγμα Taylor για την απόσταση 1 x ( t + Δt ) = x ( t ) + v ( t ) Δt + a( t )( Δt ) 2 Ανάπτυγμα για την ταχύτητα v ( t + Δt ) = v ( t ) + a( t ) Δt ΣΗΜΕΙΩΣΗ: εφαρμόζοντας αυτούς τους τύπους επιτυγχάνουμε λύση με ακρίβεια πρώτης τάξης, όχι ικανοποιητική. Με μικρή τροποποίηση μπορούμε να επιτύχουμε ακρίβεια δεύτερης τάξης, αλλά δεν είναι επί του παρόντος. 2 30 Υπορουτίνα για υπολογισμό επιτάχυνσης SUBROUTINE ACCELERATION (X, A, N, KM) DOUBLE PRECISION X(N), A(N), KM DO I = 2, N-1 A(I) = KM * (X(I+1) + X(I-1) 2 * X(I)) DO Υπορουτίνα για υπολογισμό νέας ταχύτητας SUBROUTINE VELOCITY (V, A, N, DT) DOUBLE PRECISION V(N), A(N), DT DO I = 2, N-1 V(I) = V(I) + A(I) * DT DO 31 32

Υπορουτίνα για υπολογισμό νέας θέσης SUBROUTINE POSITION (X, V, A, N, DT) DOUBLE PRECISION Χ(Ν), V(N), A(N), DT DO I = 2, N-1 Χ(I) = Χ(Ι) + V(I) * DT + 0.5 * A(I) * DT**2 DO Πρόγραμμα PROGRAM SPRINGS INTEGER NMAX, N, I, J PARAMETER(NMAX=1000) DOUBLE PRECISION X(NMAX), V(NMAX), A(NMAX), KM, DT WRITE(*,*) ΠΟΣΑ ΣΩΜΑΤΑ ΤΡΕΧΟΥΝ ΚΑΙ ΓΙΑ ΠΟΣΑ ΒΗΜΑΤΑ; READ(*,*) Ν, Μ IF (N.GT. NMAX.OR. N.LE. 0) STOP WRITE(*,*) ΕΛΑΤΗΡΙΟ/ΜΑΖΑ, ΒΗΜΑ READ(*,*) KM, DT ΣΥΝΕΧΙΖΕΤΑΙ... 33 34 Πρόγραμμα WRITE(*,*) ΔΩΣΕ ΑΡΧΙΚΕΣ ΘΕΣΕΙΣ READ(*,*) (Χ(Ι), Ι = 1, Ν) V(I) = 0 DO DO J = 1, M CALL ACCELARATION(X, A, N, KM) CALL POSITION(X, V, A, N, DT) CALL VELOCITY(V, A, N, DT) DO WRITE(*,*) ΟΙ ΘΕΣΕΙΣ ΜΕΤΑ ΑΠΟ, Μ, ΒΗΜΑΤΑ ΕΙΝΑΙ WRITE(*,*) (X(I), I = 1, N) 35

Χρηματοδότηση Τέλος Ενότητας Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημείωμα Ιστορικού Εκδόσεων Έργου Σημειώματα Το παρόν έργο αποτελεί την έκδοση 1.0. Έχουν προηγηθεί οι κάτωθι εκδόσεις: Έκδοση 1.0 διαθέσιμη εδώ. http://ecourse.uoi.gr/course/view.php?id=1154.

Σημείωμα Αναφοράς Σημείωμα Αδειοδότησης Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης. «Υπολογιστές Ι. Υποπρογράμματα». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1154. Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.