Fortran και Αντικειμενοστραφής προγραμματισμός.
|
|
- Κλωθώ Αντωνόπουλος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Fortran και Αντικειμενοστραφής προγραμματισμός Δδάσκοντες: Άρης Παγουρτζής (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr) (ΕΔΙΠ ΣΗΜΜΥ) 6η ενότητα Υπορουτίνες Συναρτήσεις Πέρασμα παραμέτρων Αναδρομικά υποπρογράμματα Hanoi, Mergesort, Quicksort Αρχικές Διαφάνειες σε Pascal: Ε. Ζάχος, Ν. Παπασπύρου Προσαρμογή σε Fortran - συμπληρώσεις: Α. Παγουρτζής, Δ. Σούλιου 1
2 Συναρτήσεις και Υπορουτίνες (i) Ομάδες εντολών που εκτελούν μια συγκεκριμένη εργασία (μια σειρά υπολογισμών) ή που επαναλαμβάνονται συχνά και αποτελούν ανεξάρτητες προγραμματιστικές οντότητες μπορούν να μετακινηθούν έξω από το κυρίως σώμα του προγράμματος σε υποπρογράμματα. Έτσι απλοποιείται το κυρίως πρόγραμμα και τα υποπρογράμματα μπορούν να διορθωθούν ή τροποποιηθούν πιο εύκολα. 2 Κατηγορίες υποπρογραμμάτων: υπορουτίνες και συναρτήσεις 2
3 Συναρτήσεις και Υπορουτίνες (i) Οι συναρτήσεις δηλώνονται με την εντολή FUNCTION και οι υπορουτίνες με την εντολή SUBROUTINE. Η βασική διαφορά τους είναι πως οι συναρτήσεις επιστρέφουν τουλάχιστον μια τιμή στο πρόγραμμα που τις καλεί ενώ οι υπορουτίνες μπορεί και να μην επιστρέφουν. Συντακτικά, οι συναρτήσεις έχουν ρόλο παραστάσεων (εκφράσεων), ενώ οι υπορουτίνες έχουν ρόλο εντολών. 3
4 Συναρτήσεις και Υπορουτίνες (ii) Η δομή ενός προγράμματος με υποπρογράμματα έχει ως εξής: Κύριο Πρόγραμμα Εσωτερικά Υποπρογράμματα Τέλος κύριου Προγράμματος Έχουμε ένα κυρίως πρόγραμμα που καλεί εσωτερικά τα υποπρογράμματά του (συναρτήσεις και υπορουτίνες). Τα εσωτερικά προγράμματα μπορούν να χρησιμοποιηθούν μόνο από το κυρίως πρόγραμμα που τα περιλαμβάνει. Τα υποπρογράμματα δεν μπορούν να περιλαμβάνουν άλλα προγράμματα αλλά μπορούν να καλούν το ένα το άλλο αν βρίσκονται εντός του ιδίου κυρίως προγράμματος. Υπάρχουν και τα εξωτερικά υποπρογράμματα που ουσιαστικά είναι ανεξάρτητα προγράμματα αποθηκευμένα σε διαφορετικά αρχεία και μπορούν να χρησιμοποιηθούν από οποιοδήποτε άλλο πρόγραμμα και μπορεί να περιέχουν εσωτερικά υποπρογράμματα αλλά και να καλούν άλλα εξωτερικά. Στη FORTRAN μπορούμε να συμπεριλάβουμε, σε οποιοδήποτε σημείο του κώδικα του κυρίως προγράμματος ή του υποπρογράμματος, κώδικα που είναι γραμμένος σε άλλο αρχείο χρησιμοποιώντας την εντολή INCLUDE όνομα αρχείου. Το νέο αρχείο μπορεί επίσης να έχει εντολές INCLUDE 4
5 Συναρτήσεις (i) επιστρεφόμενος τύπος FUNCTION όνομα (όρισμα Α, όρισμα Β, ) τύπος ορίσματος Α :: όρισμα Α τύπος ορίσματος Β :: όρισμα Β... τύπος :: τοπική μεταβλητή... κώδικας... FUNCTION όνομα συνάρτησης Παράδειγμα: REAL FUNCTION emvado_trigwnou(a,b,c) REAL :: a,b,c,temp temp=(a+b+c)/2.0 emvado_trigwnou=sqrt(temp*(temp-a)*(temp-b)*(temp-c)) 5
6 Συναρτήσεις (ii) Ο επιστρεφόμενος τύπος μπορεί να είναι μια δήλωση τύπου όπως real, integer, κ.λπ. ή μία από τις εντολές recursive, pure, elemental. Το όνομα της συνάρτησης θα πρέπει να δηλωθεί και στο κυρίως πρόγραμμα στις δηλώσεις μεταβλητών και ο τύπος να είναι ο ίδιος. Το όνομα είναι υποχρεωτικό και με αυτό καλείται η συνάρτηση. Ακολουθεί τους κανόνες ονοματολογίας. Ορίσματα είναι η λίστα των παραμέτρων με τις οποίες καλείται η συνάρτηση και τα οποία θα πρέπει να δηλωθούν σαν μεταβλητές αντίστοιχου τύπου. Αν δεν υπάρχουν ορίσματα βάζουμε απλά τις παρανθέσεις. Ορίζονται οι τοπικές μεταβλητές της συνάρτησης Προαιρετικά μπορεί να υπάρχει η εντολή RESULT (αποτέλεσμα). Στην παρένθεση υπάρχει το όνομα της μεταβλητής που επιστρέφει η συνάρτηση. Αν δεν υπάρχει αυτή η εντολή το όνομα της συνάρτησης είναι αυτή η μεταβλητή. Αν υπάρχει εντολή RETURN διακόπτεται η εκτέλεση της συνάρτησης και συνεχίζεται η εκτέλεση του κυρίως προγράμματος. 6
7 Συναρτήσεις (iii) PROGRAM ypologismos_emvadou REAL::x,y,z,emv,emvado_trigwnou READ(*,*) x,y,z emv = emvado_trigwnou(x,y,z) WRITE(*,*) emv REAL FUNCTION emvado_trigwnou(a,b,c) REAL :: a,b,c,temp temp=(a+b+c)/2.0 emvado_trigwnou=sqrt(temp*(temp-a)*(temp-b)*(temp-c)) 7
8 Συναρτήσεις (iv) PROGRAM ypologismos_paragontikou_1 INTEGER:: x, paragontiko READ(*,*) x WRITE(*,*) "To paragontiko einai", paragontiko(x) INTEGER FUNCTION paragontiko(a) INTEGER :: a,i,p=1 DO i=1,a p=p*i DO paragontiko = p 8
9 Συναρτήσεις (v) 2 ος τρόπος δήλωσης με την εντολή CONTAINS PROGRAM όνομα προγράμματος Δηλώσεις μεταβλητών Κλήση συναρτήσεων με ορίσματα CONTAINS FUNCTION όνομα 1 ης συνάρτησης(όρισμα Α, όρισμα Β, ) Δηλώσεις μεταβλητών καθώς και του τύπου επιστροφής της συνάρτησης Υπολογισμός τιμής της συνάρτησης FUNCTION FUNCTION όνομα 2 ης συνάρτησης(όρισμα Α, όρισμα Β, ) Δηλώσεις μεταβλητών καθώς και του τύπου επιστροφής της συνάρτησης Υπολογισμός τιμής της συνάρτησης FUNCTION PROGRAM 9
10 Συναρτήσεις (vi) 2 ος τρόπος δήλωσης με την εντολή CONTAINS PROGRAM Synarthseis INTEGER:: x=12,y=10 WRITE(*,*) athroisma(x,y); WRITE(*,*) diafora(x,y) CONTAINS FUNCTION athroisma(a,b) INTEGER:: athroisma, a,b athroisma=a+b FUNCTION athroisma FUNCTION diafora(c,d) INTEGER:: diafora,c,d diafora=c-d FUNCTION diafora PROGRAM 10
11 Συναρτήσεις: πέρασμα παραμέτρων PROGRAM perasma_timi_anafora INTEGER:: x=5,y=10,k,l,syn1,syn2 WRITE(*,*) x,y k=syn1(x) l=syn2(y) WRITE(*,*) x,y INTEGER FUNCTION syn1(a) INTEGER,INTENT(in):: a! Πέρασμα κατά τιμή a=a*10! Compilation error syn1=5 FUNCTION syn1 INTEGER FUNCTION syn2(b) INTEGER,INTENT(inout):: b! Πέρασμα κατ αναφορά b=b*10 syn2=30 FUNCTION syn2 11
12 Συναρτήσεις: πέρασμα παραμέτρων PROGRAM perasma_anafora_synartisi INTEGER::x,y,w,allagi READ(*,*) x,y WRITE(*,*) arxika x kai y: ", x, y w=allagi(x,y) WRITE(*,*) telika x kai y: ", x, y INTEGER FUNCTION allagi(a,b) INTEGER :: a,b,temp temp=a a=b! Συμπεραίνεται: a κατ αναφορά b=temp! Συμπεραίνεται: b κατ αναφορά allagi=temp Πληκτρολογήστε το πρόγραμμα και δείτε ποιές είναι οι τιμές των x, y πρίν και μετά την κλήση της συνάρτησης 12
13 Υπορουτίνες PROGRAM perasma_anafora_diadikasia INTEGER::x,y READ(*,*) x,y WRITE(*,*) arxika x kai y: ", x, y CALL allagi(x,y) WRITE(*,*) telika x kai y: ", x, y SUBROUTINE allagi(a,b) INTEGER :: a,b,temp temp=a a=b! Συμπεραίνεται: a κατ αναφορά b=temp! Συμπεραίνεται: b κατ αναφορά Πληκτρολογήστε το πρόγραμμα και δείτε ποιές είναι οι τιμές των x, y πρίν και μετά την κλήση της συνάρτησης 13
14 Συναρτήσεις με αναδρομή PROGRAM ypologismos_paragontikou_2 INTEGER:: x, paragontiko READ(*,*) x WRITE(*,*) "To paragontiko einai", paragontiko(x) INTEGER RECURSIVE FUNCTION paragontiko(a) result (parag_result) INTEGER :: a IF (a==0) THEN parag_result=1 ELSE parag_result=a*paragontiko(a-1) IF 14
15 Υπορουτίνες με αναδρομή PROGRAM hanoitowers INTEGER::n READ(*,*) n CALL hanoi(n,'a', b', c') RECURSIVE SUBROUTINE hanoi(n,frompeg,auxpeg,topeg) INTEGER:: n CHARACTER:: frompeg,auxpeg,topeg IF (n == 1) THEN WRITE(*,101) 1, frompeg, topeg ELSE CALL hanoi(n-1,frompeg,topeg,auxpeg) WRITE(*,101) n, frompeg,topeg CALL hanoi(n-1,auxpeg,frompeg,topeg) IF 101 FORMAT(1x,"Move disk ",i1," from peg ", A1, " to peg ", A1) 15
16 Υπορουτίνες με αναδρομή PROGRAM hanoitowers INTEGER::n READ(*,*) n CALL hanoi(n,'a', b', c') RECURSIVE SUBROUTINE hanoi(n,frompeg,auxpeg,topeg) INTEGER:: n CHARACTER:: frompeg,auxpeg,topeg IF (n == 1) THEN WRITE(*,101) 1, frompeg, topeg ELSE CALL hanoi(n-1,frompeg,topeg,auxpeg) WRITE(*,101) n, frompeg,topeg CALL hanoi(n-1,auxpeg,frompeg,topeg) IF 101 FORMAT(1x,"Move disk ",i1," from peg ", A1, " to peg ", A1) Έξοδος στην οθόνη Move disk 1 from peg a to peg b Move disk 2 from peg a to peg c Move disk 1 from peg b to peg c Move disk 3 from peg a to peg b Move disk 1 from peg c to peg a Move disk 2 from peg c to peg b Move disk 1 from peg a to peg b Move disk 4 from peg a to peg c Move disk 1 from peg b to peg c Move disk 2 from peg b to peg a Move disk 1 from peg c to peg a Move disk 3 from peg b to peg c Move disk 1 from peg a to peg b Move disk 2 from peg a to peg c Move disk 1 from peg b to peg c 16
17 Merge Sort (i) Ταξινόμηση με συγχώνευση (Ταξινόμηση με συγχώνευση (MergeSort) Διαιρώ την ακολουθία των αριθμών σε δύο μέρη Με αναδρομικές κλήσεις, ταξινομώ τα δύο μέρη ανεξάρτητα Συγχωνεύω τα δύο ταξινομημένα μέρη Στη χειρότερη περίπτωση απαιτούνται O(n log n) συγκρίσεις) 17
18 Merge Sort (ii) program MergeSortAlgorithm integer, parameter :: N = 20 integer, dimension(n) :: & A=(/85,46,39,81,72,24,105,210,133,22,27,78,28,98,12,34,48,64,23,45/) integer, dimension ((N+1)/2) :: T write(*,'(a,/,10i4,/,10i4)') 'ΜΗ Ταξινομημένος Πίνακας :',A call MergeSort(A,N) write(*,'(a,/,10i4,/,10i4)') 'Ταξινομημένος Πίνακας :',A end 18
19 Merge Sort: η βασική υπορουτίνα (iii) recursive subroutine MergeSort(A,N) integer, intent(in) :: N integer, dimension(n), intent(in out) :: A integer, dimension((n+1)/2):: T1,T2 integer :: mid,rest,s if (N < 2) return if (N == 2) then if (A(1) > A(2)) then S = A(1) A(1) = A(2) A(2) = S endif return endif mid=(n+1)/2 rest=n-mid call MergeSort(A,mid) call MergeSort(A(mid+1),rest) if (A(mid) > A(mid+1)) then T1(1:mid)=A(1:mid) T2(1:rest)=A(mid+1:N) call Merge(T1,mid,T2,rest,A,N) endif return end subroutine MergeSort 19
20 Merge Sort: υπορουτίνα Merge (iv) subroutine Merge (A,NA,B,NB,C,NC) integer :: NA,NB,NC integer :: A(NA),B(NB),C(NC) integer :: I,J,K I = 1; J = 1; K = 1; do while(i <= NA.and. J <= NB) if (A(I) <= B(J)) then C(K) = A(I); I = I+1 else C(K) = B(J); J = J+1 endif K = K + 1 enddo do while (I <= NA) C(K) = A(I) I = I + 1 K = K + 1 enddo do while (J <= NB) C(K) = B(J) J = J + 1 K = K + 1 enddo end subroutine merge 20
21 Quicksort (i) PROGRAM Quicksort USE Qsort_Module INTEGER, PARAMETER :: Ν = 20 INTEGER :: Α(n) INTEGER :: Ι write(*,*)"dwse times ston pinaka" DO Ι = 1,N read(*,*) Α(Ι) DO WRITE (*, "(A)") "Ο πίνακας πριν την ταξινόμηση" WRITE (*, "(10I5)") A CALL Qsort(Α) WRITE (*,*) WRITE (*, "(A)") "Ο πίνακας μετά την ταξινόμηση" WRITE (*,"(10I5)") Α PROGRAM Quicksort 21
22 Quicksort: ιδέα (ii) Σε κάθε βήμα της διαμέρισης x x swap(a[left],a[right]) 1 left right N Μετά τη διαμέριση x x x 1 left right N μέρος 1 μέρος 2 x x x 22
23 Quicksort: βασική υπορουτίνα (iii) MODULE Qsort_Module CONTAINS RECURSIVE SUBROUTINE Qsort(Α) INTEGER, INTENT(IN OUT) :: Α(:) INTEGER :: split IF(size(Α) > 1) THEN CALL Partition(Α, split) CALL Qsort(Α(:split-1)) CALL Qsort(Α(split:)) IF SUBROUTINE Qsort 23
24 Quicksort: υπορουτίνα Partition (iv) SUBROUTINE Partition(Α, marker) INTEGER, INTENT(IN OUT) :: Α(:) INTEGER, INTENT(OUT) :: marker INTEGER :: left, right, pivot, temp pivot = (Α(1) + Α(size(Α))) / 2 left = 0 right = size(α) + 1 DO WHILE (left < right) right = right - 1 DO WHILE (Α(right) > pivot) right = right-1 DO left = left + 1 DO WHILE (Α(left) < pivot) left = left + 1 DO IF (left < right) THEN temp = Α(left) Α(left) = Α(right) Α(right) = temp IF DO IF (left == right) THEN marker = left + 1 ELSE marker = left IF SUBROUTINE Partition MODULE Qsort_Module 24
Συναρτήσεις και Υπορουτίνες
Συναρτήσεις και Υπορουτίνες (i) Ομάδες εντολών που εκτελούν μια συγκεκριμένη εργασία (μια σειρά υπολογισμών) ή που επαναλαμβάνονται συχνά και αποτελούν ανεξάρτητες προγραμματιστικές οντότητες μπορούν να
Διαβάστε περισσότεραFortran και Αντικειμενοστραφής προγραμματισμός.
Fortran και Αντικειμενοστραφής προγραμματισμός www.corelab.ntua.gr/courses/fortran_naval/naval Διδάσκοντες: Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr)
Διαβάστε περισσότεραΔιαφάνειες παρουσιάσεων Αρχικές Διαφάνειες σε Pascal: Σ.Ζάχος, Ν.Παπασπύρου Προσαρμογή σε Fortran: Α.Παγουρτζής, Δ.Σούλιου
Fortran και Αντικειμενοστραφής προγραμματισμός Διδάσκοντες: www.corelab.ntua.gr/courses/fortran_naval/naval Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr)
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015. Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Τι είναι τα υποπρογράμματα Αυτόνομες μονάδες κώδικα Γραμμένα από τον χρήστη Η δομή
Διαβάστε περισσότεραFortran και Αντικειμενοστραφής προγραμματισμός. www.corelab.ntua.gr/courses/fortran_naval/naval
Fortran και Αντικειμενοστραφής προγραμματισμός Διδάσκοντες: www.corelab.ntua.gr/courses/fortran_naval/naval Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr)
Διαβάστε περισσότεραFortran και Αντικειμενοστραφής προγραμματισμός.
Fortran και Αντικειμενοστραφής προγραμματισμός www.corelab.ntua.gr/courses/fortran_naval/naval Δδάσκοντες: Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr)
Διαβάστε περισσότεραFORTRAN και Αντικειμενοστραφής Προγραμματισμός
FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών
Διαβάστε περισσότεραFORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 Μ4. Συναρτήσεις, Υπορουτίνες, Ενότητες - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr
Διαβάστε περισσότεραFORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M7 Δομές δεδομένων: Πίνακες - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ
Διαβάστε περισσότεραιαφάνειες παρουσίασης #7
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΠροχωρημένες έννοιες προγραμματισμού σε C
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού Strange
Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει
Διαβάστε περισσότεραΚεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών
Κεφάλαιο 7: Υποπρογράμματα Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υποπρογραμμάτων (subprogram abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων
Διαβάστε περισσότεραTO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ
Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση
Διαβάστε περισσότεραΚεφάλαιο 7: Υπορουτίνες
Κεφάλαιο 7: Υπορουτίνες Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων που μπορεί
Διαβάστε περισσότεραΠίνακες. FORTRAN και Αντικειμενοστραφής Προγραμματισμός
Πίνακες (i) Δομημένη μεταβλητή: αποθηκεύει μια συλλογή από τιμές δεδομένων Πίνακας (array): δομημένη μεταβλητή που αποθηκεύει πολλές τιμές του ίδιου τύπου INTEGER:: pinakas(100)ή INTEGER, DIMENSION(100)::pinakas
Διαβάστε περισσότεραΕργαστηριακή Άσκηση 1
Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε
Διαβάστε περισσότεραΜορφοποίηση της εξόδου
Μορφοποίηση της εξόδου (i) Όταν θέλουμε τα αποτελέσματα μιάς εντολής WRITE(*, *) να εμφανίζονται με συγκεκριμένο τρόπο τροποποιούμε τον δεύτερο αστερίσκο. 2 τρόποι μορφοποίησης WRITE(*, '(format εξόδου)')
Διαβάστε περισσότεραΥπο-προγράμματα στη Fortran
ΦΥΣ 145 - Διαλ.05 1 Υπο-προγράμματα στη Fortran q Mέχρι τώρα τα προβλήματα και τα προγράμματα που έχουμε δεί ήταν αρκετά απλά και επομένως ένα και μόνο πρόγραμμα ήταν αρκετό για να τα λύσουμε q Όταν τα
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια υπορουτίνα; με υπορουτίνα ΥΠΟΡΟΥΤΙΝΕΣ. Παράδειγμα #1: η πράξη SQ. Ποια η διαφορά συναρτήσεων και υπορουτίνων;
ΥΠΟΛΟΓΙΣΤΕΣ Ι Τι είναι μια υπορουτίνα; ΥΠΟΡΟΥΤΙΝΕΣ Μια ομάδα εντολών, σχεδιασμένη να εκτελεί έναν ή περισσότερους υπολογισμούς Ιδανικές για περιπτώσεις που ο υπολογισμός επαναλαμβάνεται πολλές φορές μέσα
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού EEL
Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού EEL Η EEL (Early Experimental Language) είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική
Διαβάστε περισσότερα8 FORTRAN 77/90/95/2003
ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή... 17 1.1. Ανασκόπηση της ιστορίας των υπολογιστών... 18 1.2. Πληροφορία και δεδομένα... 24 1.3. Ο Υπολογιστής... 26 1.4. Δομή και λειτουργία του υπολογιστή... 28 1.5.
Διαβάστε περισσότεραauth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/courses/algorithms/ auth 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο του προβλήματος
Διαβάστε περισσότεραPascal. 15 Νοεμβρίου 2011
Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε
Διαβάστε περισσότεραQuicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι
Πρόβλημα Ταξινόμησης Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Είσοδος : ακολουθία n αριθμών (α 1, α 2,..., α n
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς
για Χημικούς Μηχανικούς Παρουσίαση Διαλέξεων: 9. Δυναμικά Δεδομένα Καθηγητής Δημήτρης Ματαράς Copyright 2014 by Prof. D. S. Mataras (mataras@upatras.gr). This work is made available under the terms of
Διαβάστε περισσότεραΤαξινόμηση με συγχώνευση Merge Sort
Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων
Διαβάστε περισσότεραΠρογραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α Σπυρόπουλος Α Μπουντουβής Αθήνα, 2015 v13_061015 Στον οδηγό αυτό θα χρησιμοποιηθούν
Διαβάστε περισσότεραιαφάνειες παρουσίασης #3
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΠίνακες. (i) FORTRAN και Αντικειµενοστραφής Προγραµµατισµός
Πίνακες (i) οµηµένη µεταβλητή: αποθηκεύει µια συλλογή από τιµές δεδοµένων Πίνακας (array): δοµηµένη µεταβλητή που αποθηκεύει πολλές τιµές του ίδιου τύπου INTEGER:: pinakas(100)ή INTEGER, DIMENSION(100)::pinakas
Διαβάστε περισσότεραΑλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012
Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση
Διαβάστε περισσότεραQuicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Quicksort Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Quicksort [Hoare, 6] Στοιχείο διαχωρισμού (pivot),
Διαβάστε περισσότεραΑλγόριθμοι Ταξινόμησης Μέρος 2
Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2
Διαβάστε περισσότεραΥπολογιστές Ι. Άδειες Χρήσης. Υποπρογράμματα. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης Υπολογιστές Ι Υποπρογράμματα Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΣχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/~gounaris/courses/ad auth gounaris/courses/ad 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο
Διαβάστε περισσότεραΑλγόριθμοι ταξινόμησης
Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης BuubleSort, SelectionSort, InsertionSort, Merger Sort, Quick Soft ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι
Διαβάστε περισσότεραΣυναρτήσεις. Υποπρόγραμμα
Συναρτήσεις Υποπρόγραμμα Ένα σύνολο από εντολές που κάνουν κάτι συγκεκριμένο, έχουν στενή σχέση/εξάρτηση μεταξύ τους, έχουν «χαλαρή» σύνδεση με τον υπόλοιπο κώδικα, μπορεί να εξαχθεί από το πρόγραμμά μας
Διαβάστε περισσότεραΜεταγλωττιστές Βελτιστοποίηση
Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780
Διαβάστε περισσότεραΑρχές Γλωσσών Προγραμματισμού και Μεταφραστών
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)
Διαβάστε περισσότεραFortran και Αντικειμενοστραφής προγραμματισμός.
Fortran και Αντικειμενοστραφής προγραμματισμός www.corelab.ntua.gr/courses/fortran_naval/naval Δδάσκοντες: Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr)
Διαβάστε περισσότεραΕνότητα 1 Διάλεξη 3. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος
Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού Ενότητα 1 Διάλεξη 3 Σιέττος Κωνσταντίνος Άδεια Χρήσης Το παρόν
Διαβάστε περισσότεραΔιάλεξη 09: Αλγόριθμοι Ταξινόμησης I
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή
Διαβάστε περισσότεραΔείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8
Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 1000 1001 1002 1003 1004 1005 12 9.8 9976 3 1010 26 1006 1007 1008 1009 1010 1011 16 125 1299 a 13 1298 Δήλωση Δήλωση Τύπος
Διαβάστε περισσότεραΚεφάλαιο 7ο: Συναρτήσεις και Υπορουτίνες
Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 7ο: Συναρτήσεις και Υπορουτίνες 7.1 Ο Τµηµατικός Προγραµµατισµός Η επίλυση ενός προβλήµατος πολλές φορές ανάγεται στην επίλυση
Διαβάστε περισσότεραΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 4: Διαίρει και Βασίλευε Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΔομή προγράμματος στη Fortran
Δομή προγράμματος στη Fortran Ένα πρόγραμμα γραμμένο σε Fortran αποτελείται από: Την επικεφαλίδα του προγράμματος. Το τμήμα των δηλώσεων. Το τμήμα των προτάσεων (εντολών). Το τμήμα των υποπρογραμμάτων.
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III
Διαβάστε περισσότεραΠρογραμματισμός Αναδρομή
Προγραμματισμός Αναδρομή Προγραμματισμός Προγραμματισμός Κλήσεις Συναρτήσεων Όταν καλείται μια συνάρτηση, πρέπει Να θυμάται σε ποιο σημείο του προγράμματος θα επιστρέψει Να δεσμεύσει χώρο για την τιμή
Διαβάστε περισσότεραιαφάνειες παρουσίασης #4
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραIMPLICIT NONE INTEGER :: a, b, c
Βρόχοι Επανάληψης (i) Εντολή DO DO Εντολή 1 Εντολή 2... Εντολή n υνητικά ατέρµονος βρόχος, απαραίτητη η χρήση EXIT 1 Εντολές ΕΧΙΤ και CYCLE Με την εντολή ΕΧΙΤδιακόπτεται η εκτέλεση του βρόχου και η εκτέλεση
Διαβάστε περισσότεραΚεφάλαιο 12 : ΕΡΓΑΣΤΗΡΙΑΚΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑ 03 Συναρτήσεις
Κεφάλαιο 12 : ΕΡΓΑΣΤΗΡΙΑΚΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑ 03 Συναρτήσεις 1. Προετοιµασία Από την ιστοσελίδα του µαθήµατος () επιλέξτε Έγγραφα και µεταβείτε στο φάκελο Κεφάλαιο 12» ραστηριότητες» Εργαστηριακή ραστηριότητα
Διαβάστε περισσότεραΚεφάλαιο 5ο: Εντολές Επανάληψης
Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες
Διαβάστε περισσότεραιαφάνειες παρουσίασης #4
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης #4!Λοιπές εντολές!
Διαβάστε περισσότεραιαφάνειες παρουσίασης #4
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΤμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016. ΦΥΣ145 Υπολογιστικές Μέθοδοι στην Φυσική
Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016 Διδάσκoντες: Χαράλαμπος Παναγόπουλος, Μάριος Κώστα Βαθμός: Όνομα: Α.Δ.Τ.:... ΕΝΔΙΑΜΕΣΗ ΕΞΕΤΑΣΗ 24/03/2016 Άσκηση 1 (1 μονάδα) Ποιο είναι το αποτέλεσμα
Διαβάστε περισσότεραΔομή προγράμματος στη Fortran
Δομή προγράμματος στη Fortran Ένα πρόγραμμα γραμμένο σε Fortran αποτελείται από: Την επικεφαλίδα του προγράμματος. Το τμήμα των δηλώσεων. Το τμήμα των προτάσεων (εντολών). Το τμήμα των υποπρογραμμάτων.
Διαβάστε περισσότεραΤμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΙΝΑΚΕΣ. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΙΝΑΚΕΣ Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD ΕΙΣΑΓΩΓΗ Οι πίνακες είναι συλλογές δεδομένων που μοιράζονται τα ίδια χαρακτηριστικά.
Διαβάστε περισσότεραΚεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς
για Χημικούς Μηχανικούς Παρουσίαση Διαλέξεων: 8. Διαδικασίες Καθηγητής Δημήτρης Ματαράς Copyright 2014 by Prof. D. S. Mataras (mataras@upatras.gr). This work is made available under the terms of the Creative
Διαβάστε περισσότεραΆσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:
Άσκηση 1 Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του J στα παρακάτω κομμάτια κώδικα FORTRAN: INTEGER J J = 5 J = J + 1 J = J + 1 INTEGER X, Y, J X = 2 Y =
Διαβάστε περισσότεραOι εντολές COMMON και PARAMETER
ΦΥΣ 145 - Διαλ.06 1 Oι εντολές COMMON και PARAMETER q Oι εντολές αυτές είναι μή εκτελέσιμες και δεν είναι απαραίτητες σε διάφορα προγράμματα. q Η ανάγκη τους όμως παρουσιάζεται σε μεγάλα και πολύπλοκα
Διαβάστε περισσότεραΜέρος 2 Κατασκευή Συντακτικού Αναλυτή
Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο
Διαβάστε περισσότεραΑναδρομή (Recursion) Η Δίδυμη Αδελφή της Επανάληψης. Διαφάνειες από τους Robert Sedgewick και Kevin Wayne Ι-1
Αναδρομή (Recursion) Η Δίδυμη Αδελφή της Επανάληψης Ι-1 Αναδρομή Τι είναι η αναδρομή; Όταν μία συνάρτηση καλεί τον εαυτό της άμεσα ή έμμεσα. Γιατί να μάθουμε αναδρομή; Νέος τρόπος σκέψης. Ισχυρό παράδειγμα
Διαβάστε περισσότεραΤμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επιλογής Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επιλογής (Απόφασης) Εκτέλεση υπό συνθήκη IF THEN IF THEN ELSE IF THEN
Διαβάστε περισσότεραΚεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Συναρτήσεις ΣΥΝΑΡΤΗΣΕΙΣ 1.1. Ο λόγος ύπαρξης των συναρτήσεων Όπως είδαµε µία διαδικασία µπορεί να υπολογίζει περισσότερα από ένα αποτελέσµατα τα
Διαβάστε περισσότεραp
ΑΝΑ ΡΟΜΙΚΗ ΤΑΞΙΝΟΜΗΣΗ- ΑΣΚΗΣΕΙΣ Οι μέθοδοι ταξινόμησης QUICK SORT και MERGE SORT κωδικοποιούνται εύκολα αναδρομικά Oι δυο αναδροµικοί µέθοδοι δέχονται 1ο όρισµα τον πίνακα, και δεν επιστρέφουν τίποτα.
Διαβάστε περισσότεραΕισαγωγή στις Συναρτήσεις
Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά
Διαβάστε περισσότεραΑναδρομή Ανάλυση Αλγορίθμων
Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).
Διαβάστε περισσότεραΠρογραμματισμός Αναδρομή
Αναδρομή Κλήσεις Συναρτήσεων Όταν καλείται μια συνάρτηση, πρέπει Να θυμάται σε ποιο σημείο του προγράμματος θα επιστρέψει Να δεσμεύσει χώρο για την τιμή που θα επιστρέψει Να δεσμεύσει χώρο για τα ορίσματα
Διαβάστε περισσότεραΜεταγλωττιστές Βελτιστοποίηση
Βελτιστοποίηση (i) Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη,
Διαβάστε περισσότεραΕντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888
ΕΡΩΤΗΣΕΙΣ 1. Να αναφέρετε μερικά από τα ιδιαίτερα χαρακτηριστικά της Pascal. 2. Ποιο είναι το αλφάβητο της Pascal; 3. Ποια είναι τα ονόματα-ταυτότητες και σε τι χρησιμεύουν; 4. Σε τι χρησιμεύει το συντακτικό
Διαβάστε περισσότεραΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ
Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ Εμβέλεια Μεταβλητών Εμβέλεια Μεταβλητής Οι μεταβλητές που έχουμε δει μέχρι τώρα είναι
Διαβάστε περισσότεραΤαξινόμηση. Σαλτογιάννη Αθανασία
Ταξινόμηση Σαλτογιάννη Αθανασία Ταξινόμηση Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Ταξινόμηση Τι εννοούμε όταν
Διαβάστε περισσότεραΣτόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων
Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:
Διαβάστε περισσότεραQuicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1
Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Στοιχείο διαχωρισµού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση εισόδου σε δύο υπο-ακολουθίες:
Διαβάστε περισσότεραιαφάνειες παρουσίασης #5
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης #5!Παρουσίαση
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Προτάσεις,
Διαβάστε περισσότερα3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις
3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα
Διαβάστε περισσότεραFORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 M7 Δομές δεδομένων: Πίνακες Δρ. Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ
Διαβάστε περισσότεραΕπιλογή. Επιμέλεια διαφανειών: Δ. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο
Επιλογή Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Πρόβλημα Επιλογής Πίνακας Α[ ] με n στοιχεία (όχι ταξινομημένος). Αριθμός k,
Διαβάστε περισσότεραΔιάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Γ. MergeSort Ταξινόμηση με Συγχώνευση Δ. BucketSort Ταξινόμηση με Κάδους Διδάσκων:
Διαβάστε περισσότεραQuicksort. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Quicksort ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 9 ο Ταξινόµηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ταξινόµηση Εισαγωγή Selection sort Insertion sort Bubble sort
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1
Διαβάστε περισσότεραΤμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΙΝΑΚΕΣ. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΙΝΑΚΕΣ Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD ΕΙΣΑΓΩΓΗ Οι πίνακες είναι συλλογές δεδομένων που μοιράζονται τα ίδια χαρακτηριστικά.
Διαβάστε περισσότεραΤαξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1
Ταξινόμηση Παύλος Εφραιμίδης Δομές Δεδομένων Ταξινόμηση 1 Το πρόβλημα της ταξινόμησης Δομές Δεδομένων Ταξινόμηση 2 Ταξινόμηση Δίνεται πολυ-σύνολο Σ με στοιχεία από κάποιο σύμπαν U (πχ. U = το σύνολο των
Διαβάστε περισσότεραΕισαγωγή στη Fortran. Μάθημα 3 ο. Ελευθερία Λιούκα
Εισαγωγή στη Fortran Μάθημα 3 ο Ελευθερία Λιούκα liouka.eleftheria@gmail.com Περιεχόμενα Loops External Functions Subroutines Arrays Common mistakes Loops Ανάγκη να εκτελέσουμε τις ίδιες εντολές πολλές
Διαβάστε περισσότεραΣυνάρτηση Διαδικασία
Συνάρτηση Διαδικασία Συνάρτηση (function) : είναι ένα υποπρόγραμμα που στόχο του έχει να υπολογίζει και να επιστρέφει μόνο μια τιμή με το όνομά της όπως οι γνωστές μαθηματικές συναρτήσεις, πρδ. SIN(X),
Διαβάστε περισσότεραPascal. 26 Οκτωβρίου 2011
Pascal 6 Οκτωβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε
Διαβάστε περισσότεραΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Quicksort Κεφάλαιο 7. Ε. Μαρκάκης Επίκουρος Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ταξινόµηση Quicksort Κεφάλαιο 7 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Quicksort Ο βασικός αλγόριθµος Χαρακτηριστικά επιδόσεων Μικροί υποπίνακες Μη αναδροµική υλοποίηση Δοµές Δεδοµένων
Διαβάστε περισσότεραΑντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»
Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Η εργασία έχει ως στόχο τον σχεδιασμό και την υλοποίηση ενός μεταγλωττιστή για την γλώσσα Ciscal, χρησιμοποιώντας
Διαβάστε περισσότεραΤαξινόμηση. 1. Στατιστικά Διάταξης 2. Στατιστικά σε Μέσο Γραμμικό Χρόνο. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη
Ταξινόμηση. Στατιστικά Διάταξης. Στατιστικά σε Μέσο Γραμμικό Χρόνο Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Στατιστικά Διάταξης Με τον όρο στατιστικά διάταξης (order statistics) εννοούμε την περίπτωση
Διαβάστε περισσότεραΕνότητα 3: «Εισαγωγή στην Αλγοριθμική και στον Προγραμματισμό: loops, subroutines, tables»
ενισχυτική διδασκαλία Ενότητα 3: «Εισαγωγή στην Αλγοριθμική και στον Προγραμματισμό: loops, subroutines, tables» Χ. Σκουρλάς cskourlas@teiath.gr 2015-16 Επαναλήψεις - Loops, Διαδικασίες - procedures, Συναρτήσεις
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς
για Χημικούς Μηχανικούς Παρουσίαση Διαλέξεων: 6. Πίνακες Καθηγητής Δημήτρης Ματαράς Copyright 2014 by Prof. D. S. Mataras (mataras@upatras.gr). This work is made available under the terms of the Creative
Διαβάστε περισσότεραΣε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.
58 Δομή ενός προγράμματος C Συναρτήσεις Μία συνάρτηση C είναι ένα αυτόνομο, πακεταρισμένο τμήμα προγράμματος που ϕέρει σε πέρας μία διαδικασία η οποία έχει σαϕείς προδιαγραϕές εισόδου και εξόδου και συγκεκριμένο
Διαβάστε περισσότεραΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1
Εφαρμογές στοιβών Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων Αντίστροφος Πολωνικός Συμβολισμός ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι
Διαβάστε περισσότεραΣΧΟΛΙΑ 1 ΗΣ ΕΡΓΑΣΙΑΣ. 15 Μαΐου 2013
ΣΧΟΛΙΑ 1 ΗΣ ΕΡΓΑΣΙΑΣ Σχεδίαση Αλγορίθμων 15 Μαΐου 2013 Ζητούμενα Υλοποίηση Ταξινόμησης με Συγχώνευση (Mergesort) Αναδρομική (Recursive) εκδοχή Επαναληπτική (Iterative) εκδοχή Καταμέτρηση αντιστροφών Για
Διαβάστε περισσότεραΣυναρτήσεις και Πίνακες
Συναρτήσεις και Πίνακες Συναρτήσεις καθιερωμένης βιβλιοθήκης της C++ Συναρτήσεις οριζόμενες από τον χρήστη Μεταβίβαση κατ αξία Συναρτήσεις void και λογικές συναρτήσεις Μεταβίβαση κατ αναφορά Επιστροφή
Διαβάστε περισσότερα