Σελίδα 3 από 3
Re: Προγραμματισμός Η/Υ (2011-12)
Δημοσιεύτηκε: Πέμ, 23 Αύγ 2012 8:35 am
από MakisH
Ποιος compiler σου έβγαζε αυτό το error και ποιον χρησιμοποίησες μετά;
(υποθέτω ο άλλος σου έβγαλε κάτι σε στυλ "variable is undefined")
Είχες βάλει implicit none;
Μου είναι χρήσιμο να το ξέρω!

Re: Προγραμματισμός Η/Υ (2011-12)
Δημοσιεύτηκε: Πέμ, 23 Αύγ 2012 6:13 pm
από pokerman
Αυτο το λαθος μου το εβγαλε το cloud , χρησιμοποιω το geny.
Εχω κατεβασει ενα Force 2.0 που μου εβγαλε σαν error σε ποια ακριβως γραμμη του προγραμματος ειχα την λαθος μεταβλητη.
Απλα αυτο δεν μπορω να το χρησιμοποιω γιατι εχω ενα loop με real αριθμους που κανονικα αυτο τρεχει μονο στην 77 αλλα για καποιο λογο το cloud το τρεχει και στην 95.
Δεν εχω βαλει implicit none
Re: Προγραμματισμός Η/Υ (2011-12)
Δημοσιεύτηκε: Πέμ, 23 Αύγ 2012 7:57 pm
από MakisH
Ούτε το Geany ούτε το Force είναι compilers, αλλά περιβάλλοντα προγραμματισμού (βασικά text editors) που καλούν κάποιον compiler με κάποιες ρυθμίσεις (διαφορετικές ρυθμίσεις μπορούν να δώσουν διαφορετικά μηνύματα κατά το compilation). Αν έχεις κατεβάσει το
Force από το πρώτο link, τότε έβαλε μαζί τον GFortran. Στο Cloud βλέπω χρησιμοποιεί επίσης GFortran. Μάλλον διαφορετικές ρυθμίσεις λοιπόν...
Το
implicit none πριν τη δήλωση των μεταβλητών είναι εντολή που σώζει από ατέλειωτες ώρες debugging! Προτείνεται ανεπιφύλαχτα. Αν το έβαζες λογικά θα σου χτύπαγε κατευθείαν στο compilation μόλις έβρισκε αδήλωτη μεταβλητή (και θα σου έλεγε ότι είναι αυτό το πρόβλημα).
Πιθανόν να ανέχεται και σε νεότερο κώδικα real μετρητές (γενικώς η Fortran είναι πολύ backwards compatible) αλλά λογικά θα πρέπει να σου έχει βγάλει κάποιο Warning. Μπορείς να πετύχεις το ίδιο αποτέλεσμα με Do...enddo χωρίς μετρητή, αλλάζοντας την τιμή της μεταβλητής μέσα στο loop και βάζοντας ένα "If(συνθήκη) exit" για να το τερματίσεις. (αποφεύγω προσωπικά το Do While).