Re: [1ο] Προγραμματισμός & Χρήση Η/Υ (2013-14)

22
Τελευταία ευκαιρία για απορίες σε fortran και matlab, η εξέταση σχεδόν έφτασε!

Σκέφτηκα και μια άσκηση σήμερα: φτιάξτε έναν κώδικα fortran που να κανει πολλαπλασιασμό πινάκων, δώστε του δύο μεγάλους πίνακες και μετρήστε τον χρόνο εκτέλεσής του (υπορουτίνα cpu_time). Έπειτα, τρέξτε το σε κάθε υπολογιστή στον οποίο έχετε πρόσβαση και συγκρίνετε τα αποτελέσματα. Θα έχετε το δικό σας benchmark!

Μοιραστείτε κώδικα, δεδομένα και αποτελέσματα για να συγκρίνετε και με άλλους.

Re: [1ο] Προγραμματισμός & Χρήση Η/Υ (2013-14)

23
Δεν ειναι η ασκηση που ειπες απλα θελω να δω αν χρησιμοποιω σωστα το cpu_time

Κώδικας: Επιλογή όλων

program cputime
IMPLICIT NONE
real x,y,count1,count2
integer i,k
integer, parameter :: N=100

real, allocatable, dimension(:) :: A,B
allocate(B(N), A(N))
call cpu_time(count1)
k=0
do i=1,N
print *, 'Give a real value'
read *, x
if((x<0.).OR.(x==2)) then
print *, 'Error'
else
y=5*sqrt(x)/(x-2)+3./5
k=k+1
A(k)=x
B(k)=y
endif
enddo
do i=1,k
print *, A(i),B(i)
enddo
call cpu_time(count2)
print*, count2-count1
deallocate(B,A)
end
“Before you criticize someone, you should walk a mile in their shoes. That way when you criticize them, you are a mile away from them and you have their shoes.”

Re: [1ο] Προγραμματισμός & Χρήση Η/Υ (2013-14)

25
@papajim202: Αυτός είναι ο τρόπος χρήσης, αλλά όταν μετράς χρόνο είναι καλό να μην βάζεις ανάμεσα εντολές read και write/print, καθώς αυτό που σε νοιάζει (συνήθως) είναι ο ίδιος ο υπολογισμός. Μάλιστα, το print/write μπορεί να καθυστερήσει πάρα πολύ το πρόγραμμα όταν έχεις να τυπώσεις πολλά πράγματα. Ή τουλάχιστον αυτό έχω παρατηρήσει.

Επίσης, αντί για read *, x για 100 τιμές του x, θα μπορούσες να κατασκευάζεις το x αυτόματα.

Τέλος, προσωπικά αν διόρθωνα κώδικες θα εκτιμούσα πάρα πολύ έναν ευανάγνωστο κώδικα, με indentation (δηλαδή ό,τι περιέχεται πχ μέσα σε ένα do...enddo να βρίσκεται δεξιότερα κατά ένα tab) και κενές γραμμές και σχόλια που να βοηθάνε στη διάκριση ξεχωριστών κομματιών κώδικα (πχ "εδώ γίνεται το input, εδώ υπολογίζεται το ένα, εδώ υπολογίζεται το άλλο, εδώ γίνεται το output").

@ggianniko: Νομίζω ότι το επίπεδο δυσκολίας τα τελευταία 2-3 χρόνια είναι πάνω-κάτω σταθερό. Μη βασίζεσαι όμως ότι αν βρεις παλιά θέματα και τα "μάθεις" θα βρεις ίδια άσκηση που θα τη γράψεις. Αν μπορείς να λύνεις άνετα τις ασκήσεις που κάναμε στο μάθημα δεν θα έχεις πρόβλημα. :)

Re: [1ο] Προγραμματισμός & Χρήση Η/Υ (2013-14)

27
Σωστά παρατηρείς! ;)
Αν καταλαβαίνεις τι κάνεις, το μάθημα θα το περάσεις. Βαθμό μπορεί να μην πάρεις απαραίτητα, αλλά θα το περάσεις.
Αυτό βέβαια είναι η προσωπική μου άποψη, κάποιος που έχει εξεταστεί με αυτό το σύστημα ίσως να διαφωνεί.

Re: [1ο] Προγραμματισμός & Χρήση Η/Υ (2013-14)

28
Μια απορία σε μια άσκηση που βρήκα στο google αν είναι εύκολο. Θέλει να υπολογίζεις το ημίτονο με τη δυναμοσειρά και με τον τύπο της fortran...Προσεγγιστηκά ας πουμε οτι με τον τύπο της fortran βγαίνει αλλά με τη δυναμοσειρά αποκλείνει πολύ.... Στη δυναμοσειρά ξέρει κανείς το χ πως πρέπει να το ορίσω στον τύπο της fortran το έβαλα π/2 = 1.57 και βγήκε ενώ εδω δεν κοντεύει καν ;
Δεν έχετε τα απαραίτητα δικαιώματα για να δείτε τα συνημμένα αρχεία σε αυτή τη δημοσίευση.

Re: [1ο] Προγραμματισμός & Χρήση Η/Υ (2013-14)

29
Νικόλα τα αποτελέσματα που έχεις τυπώσει στις δύο στήλες δεν είναι τελείως άσχετα μεταξύ τους. Αν τα δεις προσεκτικά θα παρατηρήσεις ότι η μία στήλη έχει τις τιμές της άλλης διπλασιασμένες. Αυτό οδηγεί στο να ψάξεις κάποιο λάθος στους τύπους. Παρατηρώ λοιπόν ότι στο kati έχεις γράψει 2**i αντί για 2*i που λέει ο τύπος. Δοκίμασε να το διορθώσεις και πες αν βγήκε εντάξει.

Re: [1ο] Προγραμματισμός & Χρήση Η/Υ (2013-14)

30
Ναι έχεις δίκαιο!! Ευχαριστώ!!..Έφτιαξε κάπως η κατάσταση τα υπολογίζει σχετικά οκ μέχρι 40-50 μοίρες αλλά μετά αποκλίνει πάλι ...
Δεν έχετε τα απαραίτητα δικαιώματα για να δείτε τα συνημμένα αρχεία σε αυτή τη δημοσίευση.
cron