Προς το περιεχόμενο

Απορία σε Fortran


Blue1

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω ξεκινήσει εκμάθηση της γλώσσας Fortran 90/95 με ένα βιβλίο.

Προσπαθώντας να δοκιμάσω ένα απο τα πολλά παραδείγματα που περιέχει,ενώ δεν βγάζει σφάλμα δεν τυπώνει το αποτέλεσμα που πρέπει αλλα βγάζει ενα μακροσκελές μήνυμα.Το δε txt αρχείο που δημιουργείται είναι κενό.

Δεν ξέρω αν ευθύνεται η έκδοση που έχω,αν μπορεί κάποιος που έχει Forτran ας τρέξει τον παρακάτω κώδικα.

 

>
IMPLICIT NONE
REAL::MESOS_OROS_FOITHTH,MESOS_OROS_TAXHS,S,A,B,C,D
INTEGER::I,N
OPEN(9,FILE='INPUT.TXT')
READ(9,*) A,B,C,D
S=0.
DO I=1,N
READ(9,*) A,B,C,D
MESOS_OROS_FOITHTH=(A+B+C+D)/4.
WRITE(*,*) 'MESOS_OROS_FOITHTH',I,' ',MESOS_OROS_FOITHTH
S=S+MESOS_OROS_FOITHTH
END DO
MESOS_OROS_TAXHS=S/N
WRITE(*,*) 'MESOS_OROS_TAXHS=',MESOS_OROS_TAXHS
STOP
END

 

Δοκίμασα και άλλα δύο παρόμοια παραδείγματα και πάλι τζίφος.

Δημοσ.
Απο καθαρή περίεργια, για πιο λογο θες να μάθεις Fortran;

 

Γιατί είναι παγκόσμιο πρότυπο, καί έχει όλα τα σύγχρονα στοιχεία μιας 3ης γενιάς γλώσσας + το ότι είναι πολυ πιο εύχρηστη για τις θετικές επιστήμες λόγω των τεράστιων βιβλιοθηκών που υπάρχουν για το αντικείμενο. Αν θελει να γραψει drivers ας μαθει c++ .

 

Δεν έχεις συντάξει σωστά το read από το αρχείο txt. Το πρόγραμμα δεν ξέρει πόσες τιμές θα διαβάσει και πότε να σταματήσει να διαβαζει... Επίσης καλύτερα θα ήταν να έχεις το αρχείο με τα στοιχεία σου σε μορφή .dat

Δημοσ.

Το Matlab έχει πιο πολλά πράγματα για τις θετικές επιστήμες και Fortran γράφουν οι μαθηματικοί γιατί ... αυτή τους μάθανε άλλοι μαθηματικοί στο πανεπιστήμιο, που την έμαθαν άλλες εποχές όπου ήταν πραγματικά χρήσιμη και δεν έκαναν τον κόπο να μάθουν τίποτα άλλο. :-)

Είναι απλά μια προσωπική άποψη!

Δημοσ.
Το Matlab έχει πιο πολλά πράγματα για τις θετικές επιστήμες και Fortran γράφουν οι μαθηματικοί γιατί ... αυτή τους μάθανε άλλοι μαθηματικοί στο πανεπιστήμιο, που την έμαθαν άλλες εποχές όπου ήταν πραγματικά χρήσιμη και δεν έκαναν τον κόπο να μάθουν τίποτα άλλο. :-)

Είναι απλά μια προσωπική άποψη!

 

H MATLAB δεν είναι τζάμπα, το πρόγραμμα στην matlab δεν θα τρέξει αν δεν έχεις Matlab.

 

Η Fortran υπάρχει ακόμα και χρησιμοποιείται γιατί απλά είναι η πιο γρήγορη στους επιστημονικούς υπολογισμούς που περιλαμβάνουν τεράστιους αριθμούς πράξεων.

Κάθε γλώσσα υπάρχει για κάποιο λόγο.

Δημοσ.
Το Matlab έχει πιο πολλά πράγματα για τις θετικές επιστήμες και Fortran γράφουν οι μαθηματικοί γιατί ... αυτή τους μάθανε άλλοι μαθηματικοί στο πανεπιστήμιο, που την έμαθαν άλλες εποχές όπου ήταν πραγματικά χρήσιμη και δεν έκαναν τον κόπο να μάθουν τίποτα άλλο. :-)

Είναι απλά μια προσωπική άποψη!

 

Και από multithreading ας πούμε σε 1000επεξεργαστές πώς τα πάει η matlab? Μήπως πάτος? Ασε που αν αυριο το πρωί κλείσει η εταιρεία μένεις με ένα σωρό κώδικα άχρηστο.

Αντίθετα η fortran αποτελεί παγκόσμιο standard όπως άλλωστε η C,C++ κ.ο.κ. και σου διασφαλίζει ότι δεν θα σου αχρηστευθεί ο κώδικας. (τελευταία έκδοση της fortran είναι η 2003 ενώ ήδη σχεδιάζεται η επόμενη )

Δημοσ.

Μάλιστα...η Mathworks λίγο δύσκολο να κλείσει αλλά και ν κλείσει υπάρχουν ένα σωρό open source matlab likes (scilab etc.)...λέμε τώρα!

 

H Fortran είναι μια obsolete γλώσσα και ο μόνος λόγος που διδάσκεται ακόμα στο Ελλαδιστάν (πουθενά αλλού, παντού κάνουν MATLAB!) είναι γιατί δυστυχώς κάποιοι καθηγητές που έγραψαν τα βιβλία τους το '80 απλά δεν θέλουν ή σιγά μην μπουν στον κόπο να τα ανανεώσουν ή να τα ξαναγράψουν με κάποιο πιο σύγχρονο standard (α ρε καταραμένη αξιολόγηση...)!

 

:-)

Δημοσ.

Ποιό περιβάλλον ανάπτυξης χρησιμοποιείς;Ίσως φταίει κάτι με τον compiler σου.Δε βλέπω κάποιο λάθος με το κωδικά σου.

 

Ρε παιδιά πως καταφέρνεται να βγαίνεται εκτός θέματος.Ας βγω και εγώ λίγο...χαχα...Και ναι το matlab δε κάνει για τα πάντα,είναι πολλές φορές πάρα πολύ αργό για επιλύσεις κάποιων προβλημάτων.Υπάρχουν πάρα πολλά έτοιμα κομμάτια κώδικα για Fortran και δεν είναι παρωχημένη γλώσσα για αυτά που κάνει.Ειδικά σε εξηδεικευμένα προγράμματα όπως επίλυση δικτύων μεταφοράς ηλεκτρικής ενέργειας,ακόμη και τα προγράμματα εξομοίωσης αυτών τρέχουν από πίσω fortran.

 

Ok,δε κάνει για να γράψεις κώδικα για drivers αλλά για γράψε εξειδικευμένα προγράμματα επίλυσης διαφορικών θες χιλίαδες γραμμές κώδικα.

 

Η κάθε γλώσσα λοιπόν είναι για συγκεκριμένα πράγματα.Τέλος το καθηγητικό κατεστημένο(το οποίο και αντιπαλεύω) επειδή δεν έχει στο μυαλό του να μάθει στο κόσμο προγραμματιστική λόγική είναι για φτήσιμο και ας κάνουν και την ποιό προχωρημένη γλώσσα που υπάρχει.

 

Καλύτερα να σκέφτεσαι με αλγόριθμους και να τους γράφεις σε ψευδογλώσσα παρά να μάθεις την B,C,D κτλ

Δημοσ.
Και ναι το matlab δε κάνει για τα πάντα,είναι πολλές φορές πάρα πολύ αργό για επιλύσεις κάποιων προβλημάτων.Υπάρχουν πάρα πολλά έτοιμα κομμάτια κώδικα για Fortran και δεν είναι παρωχημένη γλώσσα για αυτά που κάνει.Ειδικά σε εξηδεικευμένα προγράμματα όπως επίλυση δικτύων μεταφοράς ηλεκτρικής ενέργειας,ακόμη και τα προγράμματα εξομοίωσης αυτών τρέχουν από πίσω fortran.

 

Ok,δε κάνει για να γράψεις κώδικα για drivers αλλά για γράψε εξειδικευμένα προγράμματα επίλυσης διαφορικών θες χιλίαδες γραμμές κώδικα.

 

Κάνεις μεγάλο λάθος! Το MATLAB δεν είναι καθόλου αργό αν γράφεις σωστό κώδικα (preallocate τις μεταβλητές, δεν χρησιμοποιείς for loops, clear τις μεταβλητές κλπ κλπ). Σε μερικές περιπτώσεις είναι πιο γρήγορο από C++ και Fortran (http://www.stats.uwo.ca/faculty/aim/epubs/MatrixInverseTiming/default.htm )

 

:-)

Δημοσ.
Έχω ξεκινήσει εκμάθηση της γλώσσας Fortran 90/95 με ένα βιβλίο.

Προσπαθώντας να δοκιμάσω ένα απο τα πολλά παραδείγματα που περιέχει,ενώ δεν βγάζει σφάλμα δεν τυπώνει το αποτέλεσμα που πρέπει αλλα βγάζει ενα μακροσκελές μήνυμα.Το δε txt αρχείο που δημιουργείται είναι κενό.

Δεν ξέρω αν ευθύνεται η έκδοση που έχω,αν μπορεί κάποιος που έχει Forτran ας τρέξει τον παρακάτω κώδικα.

 

>
IMPLICIT NONE
REAL::MESOS_OROS_FOITHTH,MESOS_OROS_TAXHS,S,A,B,C,D
INTEGER::I,N
OPEN(9,FILE='INPUT.TXT')
READ(9,*) A,B,C,D
S=0.
DO I=1,N
READ(9,*) A,B,C,D
MESOS_OROS_FOITHTH=(A+B+C+D)/4.
WRITE(*,*) 'MESOS_OROS_FOITHTH',I,' ',MESOS_OROS_FOITHTH
S=S+MESOS_OROS_FOITHTH
END DO
MESOS_OROS_TAXHS=S/N
WRITE(*,*) 'MESOS_OROS_TAXHS=',MESOS_OROS_TAXHS
STOP
END

 

Δοκίμασα και άλλα δύο παρόμοια παραδείγματα και πάλι τζίφος.

 

 

Καλησπέρα,

 

Χωρίς να θυμάμαι πολλά από fortran... το Ν που είναι ορισμένο ή που διαβάζεται/δίνεται???

Δημοσ.
H Fortran είναι μια obsolete γλώσσα και ο μόνος λόγος που διδάσκεται ακόμα στο Ελλαδιστάν (πουθενά αλλού, παντού κάνουν MATLAB!) είναι γιατί δυστυχώς κάποιοι καθηγητές που έγραψαν τα βιβλία τους το '80 απλά δεν θέλουν ή σιγά μην μπουν στον κόπο να τα ανανεώσουν ή να τα ξαναγράψουν με κάποιο πιο σύγχρονο standard (α ρε καταραμένη αξιολόγηση...)!

 

xaaxaxaxaxax. Η Fortran διδάσκεται μόνο την Ελλάδα. Καλό!

 

Οι καθηγητές που είχα εγώ, γνώριζαν άριστα εκτός από fortran και C και C++ και Java. Αλλά χρησιμοποιούσαν την κάθε μία εκεί που έπρεπε.

Δημοσ.
Ποιό περιβάλλον ανάπτυξης χρησιμοποιείς;Ίσως φταίει κάτι με τον compiler σου.Δε βλέπω κάποιο λάθος με το κωδικά σου.

Visual Fortran 6.0,την ίδια χρησιμοποιεί και ο συγγραφέας του βιβλίου.

 

---------- Το μήνυμα προστέθηκε στις 15:19 ----------

 

Το μήνυμα που βγάζει κατα την εκτέλεση του προγράμματος.

 

forrtl: severe (24): end-of-file during read, unit 9, file C:\Program Files\Micr

osoft Visual Studio\Common\MSDEV98\My Projects\Celsus2\INPUT.TXT

Image PC Routine Line Source

a8roisma.exe 0040B399 Unknown Unknown Unknown

a8roisma.exe 0040B193 Unknown Unknown Unknown

a8roisma.exe 0040A324 Unknown Unknown Unknown

a8roisma.exe 0040A59E Unknown Unknown Unknown

a8roisma.exe 00403F7E Unknown Unknown Unknown

a8roisma.exe 004010B8 Unknown Unknown Unknown

a8roisma.exe 00433079 Unknown Unknown Unknown

a8roisma.exe 00426E94 Unknown Unknown Unknown

kernel32.dll 7C816FD7 Unknown Unknown Unknown

 

Incrementally linked image--PC correlation disabled.

Press any key to continue

Δημοσ.

Το μήνυμα αυτό είναι εκτός topic :)

 

Και από multithreading ας πούμε σε 1000επεξεργαστές πώς τα πάει η matlab? Μήπως πάτος?

 

Φαντάζομαι ότι αναφέρεσαι στο parallel processing και όχι στο multi threading συγκεκριμένα. Επίσης συμπεραίνω ότι ποτέ δεν έχεις γράψει λογισμικό που να εκτελείται παράλληλα και απλά το αναφέρεις επειδή κάπου το άκουσες.

Στην Fortran χρησιμοποιούν το OpenMP το οποίο είναι API για parallel computing για C, C++, Fortran και πολλές άλλες γλώσσες. Κάποτε η Fortran είχε τις πιο γρήγορες βιβλιοθήκες για floating point operations και έχει πλέον τεράστια κληρονομιά από το community. Παρόλα αυτά είναι μια ξεπερασμένη γλώσσα που την χρησιμοποιούν οι κολλημένοι ... αυτοί που λένε ατάκες του τύπου "αν θέλεις να γράψεις drivers μάθε C++".

 

Δημοσ.

άμα σπουδάζεις γεωπόνος

και "κρέμεσαι" σε μιά mosanto

 

τότε λειτουργείς ως "πλασιέ"

όχι ως επιστήμονας

 

βέβαια είναι τίμια εργασία

αλλά "εμπορικού" χαρακτήρα

κυρίως

.

Δημοσ.

Προσωπικά το Matlab το έφερα σαν παράδειγμα. Για μένα μπορείς κάλλιστα να γράψεις σε javascript, vb, c, c++ και ότι άλλο αυτό που θα έγραφες σε Fortran ενδεχομένως με αρκετά πλεονεκτήματα σήμερα. Τώρα το ότι μερικοί φέρνεται σαν μειονέκτημα ότι π.χ. το Matlab δεν είναι δωρεάν, η κουβέντα αυτή είναι πολύ μεγάλη. Ο εξοπλισμός ενός εργαστηρίου είναι δωρεάν; Τα PC είναι δωρεάν; Οι γραμμές είναι δωρεάν; Ρωτάει κάποιος τι θα γίνει όταν κλείσει η Mathworks, και ρωτάω τι θα γίνει όταν ένα group παρατήσει το open source project που φτιάχνει; Θα το συνεχίσει κανένας; Πότε θα γίνει αυτό; Θα υπάρχει support? Θα θα θα;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...