Εισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς

Σχετικά έγγραφα
Εισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς

Εισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς

Εισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς

Εισαγωγή στους Υπολογιστές

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

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

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

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

Διοικητική Λογιστική

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

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

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

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

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

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

Κβαντική Επεξεργασία Πληροφορίας

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Κβαντική Επεξεργασία Πληροφορίας

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

ΘΕΡΜΟΔΥΝΑΜΙΚΗ Ι. Ενότητα 2: Θερμοδυναμικές συναρτήσεις. Σογομών Μπογοσιάν Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

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

Εισαγωγή στους Υπολογιστές

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

Βάσεις Περιβαλλοντικών Δεδομένων

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Μάρκετινγκ Αγροτικών Προϊόντων

Πληροφορική ΙΙ Θεματική Ενότητα 5

Διοικητική Λογιστική

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Δομημένος Προγραμματισμός

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

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

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.3: Μεθοδολογία εφαρμογής προγράμματος Ολικής Ποιότητας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Ενδεικτικές λύσεις ασκήσεων

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Κβαντική Φυσική Ι. Ενότητα 12: Ασκήσεις. Ανδρέας Τερζής Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Δομημένος Προγραμματισμός

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

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 9: Σχέση Ηθικής και Δικαιοσύνης. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

Τίτλος Μαθήματος. Ενότητα 1η: Εισαγωγή. Δημήτριος Σκούρας Σχολή Διοίκησης Επιχειρήσεων Τμήμα Οικονομικών Επιστημών

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

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Κβαντική Φυσική Ι. Ενότητα 19: Εισαγωγή στα τετραγωνικά δυναμικά. Ανδρέας Τερζής Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 6: Συμπίεση Έργου

ΦΥΣΙΚΟΧΗΜΕΙΑ I Ασκήσεις

Εισαγωγή στους Υπολογιστές

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

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

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.2: Παραδοσιακή VS νέα προσέγγιση της ΔΟΠ

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

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

Τεχνικό Σχέδιο - CAD

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 10: Διαχείριση Έργων (2ο Μέρος)

2 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

6 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

Διαχείριση Έργων. Ενότητα 10: Χρονοπρογραμματισμός έργων (υπό συνθήκες αβεβαιότητας)

Κβαντική Επεξεργασία Πληροφορίας

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνικό Σχέδιο - CAD

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στην Πληροφορική

Διδακτική των εικαστικών τεχνών Ενότητα 1

Διδακτική των εικαστικών τεχνών Ενότητα 3

Εισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς

Φυσική ΙΙΙ. Ενότητα 4: Ηλεκτρικά Κυκλώματα. Γεώργιος Βούλγαρης Σχολή Θετικών Επιστημών Τμήμα Φυσικής

ΗΛΕΚΤΡΟΝΙΚΗ Ι Ενότητα 5

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

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

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

Transcript:

για Χημικούς Μηχανικούς Παρουσίαση Διαλέξεων: 6. Πίνακες Καθηγητής Δημήτρης Ματαράς Copyright 2014 by Prof. D. S. Mataras (mataras@upatras.gr). This work is made available under the terms of the Creative Commons Attribution-Noncommercial- NoDerivs 3.0 license, http://creativecommons.org/licenses/by-nc-nd/3.0/

Τι είναι οι πίνακες, ορισμοί ΠΙΝΑΚΑΣ : Συλλογή δεδομένων (μεταβλητών ή σταθερών) του ίδιου τύπου, που εμφανίζονται με κοινό όνομα το οποίο πρέπει να δηλωθεί υποχρεωτικά ΟΝΟΜΑ : Το κοινό όνομα υπό το οποίο δηλώνεται η συλλογή των δεδομένων ΣΤΟΙΧΕΙΟ ΠΙΝΑΚΑ : Ένα από τα δεδομένα (μεταβλητή ή σταθερά) που περιέχονται στον πίνακα ΕΝΔΕΙΚΤΗΣ ΣΤΟΙΧΕΙΟΥ : Ακέραιος αριθμός που δείχνει την θέση του στοιχείου στον πίνακα ΤΙΜΗ ΣΤΟΙΧΕΙΟΥ : Η τιμή που περιέχει το στοιχείο του πίνακα ΙΔΙΟΤΗΤΕΣ ΠΙΝΑΚΑ : Τάξη : το πλήθος των διαστάσεων του Μέγεθος : το πλήθος των στοιχείων του δηλ. το γινόμενο των εκτάσεων του Μορφή : ο τρόπος διάταξης των στοιχείων του

Τι είναι οι πίνακες, παραδείγματα real::a(6),x(2,3)!δήλωση a(1) = 3.5; x(1,1) = 2.5 έκταση 1 έκταση 2 ΠΙΝΑΚΑΣ a(6) x(2,3) ΟΝΟΜΑ A X ΣΤΟΙΧΕΙΟ a(1) x(1,1) ΕΝΔΕΙΚΤΗΣ ΣΤΟΙΧΕΙΟΥ 1 1, 1 ΤΙΜΗ ΣΤΟΙΧΕΙΟΥ 3.5 2.5 Τάξη 1 2 Μέγεθος 6 6 Μορφή 1x6 2x3

Μεγέθη και εκτάσεις Μέγεθος = έκταση a a(1) a(2) a(3) a(4) a(5) a(6) 3.500000 x Μέγεθος = έκταση 1 x έκταση 2 έκταση 2 x(1,1) x(1,2) x(1,3) 2.500000 x(2,1) x(2,2) x(2,3) έκταση 1

Δήλωση πινάκων δήλωση τύπου[,ιδιότητες::]όνομα 1 (έκταση 1 [,έκταση 2,..])& [,όνομα 2 (έκταση 1 [,έκταση 2,..]),..! ή δήλωση τύπoυ,dimension(έκταση 1 [,έκταση 2,..])::όνομα 1 [,όνομα 2,..] REAL::a(10), x(10), y(3,2) INTEGER::r(5), w(5), g(6)! ή το ίδιο REAL, DIMENSION(10) ::a, x, y(3,2) INTEGER,DIMENSION(5)::r, w, g(6) real::a(5) ενδείκτης a(5) = 4.5; a(2) = 2.5; a(3) = 1. a(1) = a(5) + 2 * a(3) a(4) = a(5) - a(2) print*, a έκταση ; end 6.500000 2.500000 1.000000 2.000000 4.500000

$ Ότι αναφέρεται σε αυτή την παρουσίαση αφορά στατικούς πίνακες δηλ. πίνακες των οποίων η μορφή και συνεπώς το μέγεθος και η τάξη είναι γνωστά από την δήλωση τους και δεν αλλάζουν κατά την διάρκεια της εκτέλεσης του προγράμματος. $ Όπως βλέπετε και από το παράδειγμα τα στοιχεία των πινάκων δεν είναι διαφορετικά από τις κοινές μεταβλητές, απλά συμβολίζονται διαφορετικά. Προσέξτε: Άλλο η έκταση μιας διάστασης ενός πίνακα και άλλο ο ενδείκτης ενός στοιχείου του πίνακα. Η έκταση εμφανίζεται συνήθως μόνο στις δηλώσεις ενώ ο ενδείκτης οπουδήποτε εκτός από τις δηλώσεις Το μέγεθος μονοδιάστατου (ή αλλιώς τάξης 1) πίνακα είναι ίσο με την έκταση Η μέγιστη τιμή του ενδείκτη δεν πρέπει να ξεπερνά την έκταση της διάστασης του πίνακα δηλ. για μονοδιάστατο πίνακα δεν μπορεί να ξεπερνά το μέγεθος του Το μέγεθος πολυδιάστατου πίνακα είναι ίσο με το γινόμενο των εκτάσεων του Ο πίνακας μπορεί να έχει μέχρι 7 διαστάσεις! (δηλ. τάξη 7) Συνήθως όμως χρησιμοποιούνται πίνακες τάξης 1 και 2 ή το πολύ 3.

Δίνουμε τιμές σε όλο τον πίνακα ή σε στοιχεία του real::a(6) = 1.0!όλες οι τιμές 1.000000 do i = 1, 6!με do a(i) = i!τιμές ίδιες με τον ενδείκτη end do a = sqrt(a)!αντικατάσταση όλων των τιμών με sqrt(a) end a a a a(1) a(2) a(3) a(4) a(5) a(6) 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 a(1) a(2) a(3) a(4) a(5) a(6) 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 a(1) a(2) a(3) a(4) a(5) a(6) 1.000000 1.414213 1.732051 2.000000 2.236068 2.449490

Δίνουμε τιμές από τον χρήστη με READ real::a(6) = 1.0!όλες οι τιμές 0.0 do i = 1, 6 print'(a15, i2)', 'δώσε την τιμή', i read*, a(i) end do print'(6f5.2)', a end δώσε την τιμή 1 6 δώσε την τιμή 2 5.5 δώσε την τιμή 3 5 δώσε την τιμή 4 4.5 δώσε την τιμή 5 4 δώσε την τιμή 6 3.5 6.00 5.50 5.00 4.50 4.00 3.50 a a a(1) a(2) a(3) a(4) a(5) a(6) 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 a(1) a(2) a(3) a(4) a(5) a(6) 6.000000 5.500000 5.000000 4.500000 4.000000 3.500000

Δίνουμε τιμές με κατασκευαστή $μόνο σε μονοδιάστατους πίνακες real::a(5) = (/1.,3.,5.,7.,9./) print 8, a 8 format(5f5.2)!κατασκευαστής a = (/2.,4.,6.,8.,10/)!κατασκευαστής print 8, a a = [1.5,3.,6.,8.,9.5]!κατασκευαστής fortran 2003 print 8, a end a =(/(i, i = 1,5)/)!κατασκευαστής με υπονοούμενη επανάληψη print 8, a a =[(i, i = 1,5)]!το ίδιο στη fortran 2003 print 8, a 1.00 3.00 5.00 7.00 9.00 2.00 4.00 6.00 8.00 10.00 1.50 3.00 6.00 8.00 9.50 1.00 2.00 3.00 4.00 5.00 1.00 2.00 3.00 4.00 5.00

Περισσότερη υπονοούμενη επανάληψη real :: pi = 4. * atan(1.) real, dimension(5) :: x = 0, y = 0 5 format(a4,5f9.5,/) x=[(pi * i, i = 1, 5)]!κατασκευαστής με υπον. επανάληψη A print 5, 'A)', x!εκτύπωση του πίνακα B D print 5,'B)', (pi * i, i = 1, 5)!εκτύπωση με υπον. επανάληψη C y=[(sqrt(1. * j), j = 1, 5)]; print 5, 'C)', y print 5,'D)', (sqrt(1. * j), j = 1, 5) end A) 3.14159 6.28319 9.42478 12.56637 15.70796 B) 3.14159 6.28319 9.42478 12.56637 15.70796 C) 1.00000 1.41421 1.73205 2.00000 2.23607 D) 1.00000 1.41421 1.73205 2.00000 2.23607

Η εγγενής συνάρτηση size $ σε δηλώσεις, κατασκευαστές, επαναλήψεις character(50)::string1 real::x(5,5) = 0, a(size(x, 1)) a=[(i, i = 1, size(x,1))]!δήλωση με size!κατασκευαστής με size Εσωτερικό Αρχείο write(string1,*)'(/,2x',size(a),'f4.1,/)' write(*,'(a,i2,a)')string1!τυπώνω το format για να το δω write(*, string1) a!τυπώνω τον πίνακα με αυτό το format do i = 1, size(a)!επανάληψη με size x(i,i) = i!δίνει τιμές στη διαγώνιο write(6,'(2x, f4.1)', advance='no') x(i, i) end do print string1,(x(i,i), i=1,size(x,1))!υπονοούμενη επανάληψη end (/, 2x, 5f4.1,/) 1.0 2.0 3.0 4.0 5.0 1.0 2.0 3.0 4.0 5.0 1.0 2.0 3.0 4.0 5.0

ΠΑΡΑΔΕΙΓΜΑ: Έστω δύο μονοδιάστατοι πίνακες μεγέθους 5 και 10 στοιχείων αντίστοιχα που αντιπροσωπεύουν δύο σύνολα ακέραιων αριθμών. α) Δώστε τιμές στους δύο πίνακες χρησιμοποιώντας κατασκευαστή και τυπώστε την τομή των δύο συνόλων. β) Καταχωρίστε σε αρχείο διαδοχικής πρόσβασης την ένωση των δύο συνόλων. program sets!εξετάσεις Φεβ. 2011 Υ&Α άσκηση 3 implicit none integer::a(5)=[1,5,2,8,15],i,j integer::b(10)=[7,20,4,2,1,9,6,8,13,17]; logical::set call execute_command_line('chcp 1253') open(9,file = 'union.dat') print'($, a28)', 'η τομή των 2 συνόλων είναι:' ier:do i = 1, size(a) set =.false. jer:do j = 1, size(b) if(a(i) == b(j))then!κοινά στοιχεία print'($,i3)',a(i); set =.true.; exit jer endif enddo jer if(.not.set)write(9,'(i3)') a(i)!μη κοινά στοιχεία enddo ier write(9,'(i3)')(b(i),i = 1, size(b)) close(9) end program sets

Αθροίσματα και Γινόμενα οι εγγενείς συναρτήσεις SUM και PRODUCT real::a(5) = [1.,2.,3.,4.,5.], s = 0. print*, sum(a)!με εγγενή συνάρτηση do i = 1, size(a)!χωρίς εγγενή συνάρτηση s = s + a(i) end do print*, s end $ ΠΡΟΣΕΞΤΕ: η εγγενής συνάρτηση SUM κάνει αθροίσματα πινάκων όχι αθροίσματα γενικώς! real :: a(5) = [1.,2.,3.,4.,5.], p = 1. print*, product(a)!με εγγενή συνάρτηση do i = 1, size(a) p = p * a(i) end do print*, p end!χωρίς εγγενή συνάρτηση $ ΠΡΟΣΕΞΤΕ: η εγγενής συνάρτηση PRODUCT κάνει γινόμενα πινάκων όχι γινόμενα γενικώς!

Τιμές σε πίνακα τάξης 2 end integer::x(2,3) do i = 1, 2 do j = 1, 3 x(i,j) = i * 10 + j!print'($,2x,i2)',x(i,j) write (*, '(2x, i2)', advance='no') x(i,j) enddo print* enddo print'(/, 6i4)',x 11 12 13 21 22 23 11 21 12 22 13 23 $ Όπως βλέπετε στο παράδειγμα τα στοιχεία του πίνακα καταχωρίζονται στη μνήμη με προτεραιότητα στήλης και όχι γραμμής. Αυτό φαίνεται καθαρά στην τελευταία πρόταση εκτύπωσης.

Ελάχιστος και Μέγιστος program extremes implicit none 1! δηλώσεις: integer, parameter:: max_size = 10! μέγιστο πλήθος τιμών integer, dimension(max_size):: x! τιμές integer :: imax! ενδείκτης μέγιστης τιμής integer :: imin! ενδείκτης ελάχιστης τιμής integer :: i! αριθμητής do integer :: n! πλήθος τημών integer :: tmax, tmin! προσωρινή μνήμη! αρχή: call execute_command_line('chcp 1253')

Ελάχιστος και Μέγιστος ask: do write (*,*) 'πλήθος τιμών;' read (*,*) n 2 check:if (n == 0) then print *, 'χαιρετίσματα' exit ask elseif (n <= max_size) then check in: do i = 1, n write (*,10) 'δώσε την τιμή ', i 10 format (' ',a,i3,': ') read (*,*) x(i) end do in tmax = x(1); imax = 1 tmin = x(1); imin = 1

Ελάχιστος και Μέγιστος comp: do i = 2, n if (x(i) > tmax) then tmax = x(i); imax = i elseif (x(i) < tmin) then tmin = x(i); imin = i end if end do comp 3 write (*,11) 11 format (' ','οι τιμές είναι:') out: do i = 1, n if (i == imax) then write (*,'(1x,i6,2x,a)') x(i), 'Μέγιστος' elseif(i == imin) then write (*,'(1x,i6,2x,a)') x(i), 'Ελάχιστος' else write (*,'(1x,i6)') x(i) endif end do out

Ελάχιστος και Μέγιστος else check write (*,12) max_size 12 format (1x,'δώσε αριθμό < ', i3, ' ή 0 για έξοδο') endif check enddo ask end program extremes πλήθος τιμών; 5 δώσε την τιμή 1: -3 δώσε την τιμή 2: 4 δώσε την τιμή 3: 5 δώσε την τιμή 4: 7 δώσε την τιμή 5: -2 οι τιμές είναι: -3 Ελάχιστος 4 5 7 Μέγιστος -2 πλήθος τιμών; 4 πλήθος τιμών; 12 δώσε αριθμό < 10 ή 0 για έξοδο πλήθος τιμών; 0 χαιρετίσματα

Διάταξη επιλογής (selection sort) program selection! διάταξη σε αύξουσα σειρά implicit none! δηλώσεις: integer :: ipos! ενδείκτης της θέσης του ελάχιστου integer :: temp, i, j real :: x(5) = [3, 5, -7, 6, 10]! αρχή: call execute_command_line('chcp 1253') scan: do i = 1, size(x) - 1 ipos = i in: do j = i + 1, size(x) if (x(j) < x(ipos)) ipos = j enddo in swap: if (i /= ipos) then temp = x(i); x(i) = x(ipos); x(ipos) = temp endif swap print '(a, i2, a, 5f5.1)', ' επανάληψη', i,') ', x end do scan end program selection επανάληψη 1) -7.0 5.0 3.0 6.0 10.0 επανάληψη 2) -7.0 3.0 5.0 6.0 10.0 επανάληψη 3) -7.0 3.0 5.0 6.0 10.0 επανάληψη 4) -7.0 3.0 5.0 6.0 10.0

Η μέθοδος του τραπεζίου υπολογισμός του ορισμένου ολοκληρώματος πινακοποιημένων τιμών program trapezoid implicit none integer, parameter:: n = 1000 integer :: i real(8) :: h, s, area, x(n), y(n) open (10, file = 'function.txt', status = 'old') read (10, *)(x(i), y(i), i = 1, n) h = (y(n) - y(1))/n; s = (y(1) + y(n))/2 open (11, file = 'results.txt') do i = 2, n s = s + (y(i)); area = h * s * n write (11,*) x(i), y(i), area enddo close(10); close(11) print *,'the integral of the function is:', area end program trapezoid

Η μέθοδος του τραπεζίου υπολογισμός του ορισμένου ολοκληρώματος πινακοποιημένων τιμών 2.00 1.80 διαβάζουμε το αρχείο 'results.txt' στο Excel 1.60 1.40 1.20 1.00 0.80 0.60 0.40 0.20 0.00 0 20 40 60 80 100 120 140 160 180

Διάταξη αντιμετάθεσης (bubble sort) program bubble! διάταξη σε αύξουσα σειρά implicit none! δηλώσεις: logical :: changes!.true. οταν γίνει αντιμετάθεση integer :: temp, i, n = 0 real :: x(5) = [3, 5, -7, 6, -10]! αρχή: call execute_command_line('chcp 1253') out:do changes =.false. in:do i = size(x), 2, -1 if (x(i-1) > x(i)) then temp = x(i-1); x(i-1) = x(i); x(i) = temp changes =.true. endif n=n+1; print'(a,i3,a,5f5.1)',' επανάληψη',n,') ',x enddo in if(.not.changes) exit out enddo out end Εισαγωγή program στον Προγραμματισμό bubble Η/Υ

Διάταξη αντιμετάθεσης (bubble sort) program bubble! διάταξη σε αύξουσα σειρά implicit none! δηλώσεις: logical :: changes!.true. οταν γίνει αντιμετάθεση integer :: temp, i, n = 0 real :: x(5) = [3, 5, -7, 6, -10]! αρχή: επανάληψη 1) 3.0 5.0-7.0-10.0 6.0 call execute_command_line('chcp επανάληψη 2) 1253') 3.0 5.0-10.0-7.0 6.0 out:do επανάληψη 3) 3.0-10.0 5.0-7.0 6.0 changes =.false. επανάληψη 4) -10.0 3.0 5.0-7.0 6.0 in:do i = size(x), επανάληψη 2, -1 5) -10.0 3.0 5.0-7.0 6.0 if (x(i-1) > x(i)) επανάληψη then 6) -10.0 3.0-7.0 5.0 6.0 temp = x(i-1); επανάληψη x(i-1) = 7) x(i); -10.0 x(i) -7.0 = 3.0 temp5.0 6.0 changes =.true. επανάληψη 8) -10.0-7.0 3.0 5.0 6.0 endif επανάληψη 9) -10.0-7.0 3.0 5.0 6.0 n=n+1; print'(a,i2,a,5f5.1)',' επανάληψη 10) -10.0 επανάληψη',n,') -7.0 3.0 5.0 ',x 6.0 enddo in επανάληψη 11) -10.0-7.0 3.0 5.0 6.0 if(.not.changes) exit επανάληψη out 12) -10.0-7.0 3.0 5.0 6.0 enddo out end Εισαγωγή program στον Προγραμματισμό bubble Η/Υ

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Όνομα μέλους ή μελών ΔΕΠ 2014: Δημήτριος Ματαράς.. Έκδοση: 1.0. Πάτρα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/cmng2178.

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

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.