Re: Debugging σε Fortran

11
Δεν είναι τόσο απλά τα πράγματα :P..Debugging σημαίνει βρίσκω το νοητικό λάθος στον κώδικα το οποίο δε γίνεται με standard τρόπο. Αυτό που κάνεις συνήθως είναι να εκτυπώνεις/σταματάς το πρόγραμμα σε διάφορα σημεία του κώδικά σου και να ελέγχεις τις τιμές των μεταβλητών σου ώστε να εντοπίσεις σε ποιο σημείο γίνεται το σφάλμα. Οι debuggers είναι προγράμματα που σου επιτρέπουν να ελέγχεις ένα πρόγραμμα καθώς τρέχει (να το σταματάς όπου θες, να εκτυπώνεις τιμές όποτε θες κλπ). Ένα ωραίο άρθρο πάνω στον πιο γνωστό debugger (GDB) είναι αυτό http://www.unknownroad.com/rtfm/gdbtut/gdbtoc.html. Πάντως αν βαριέσαι όλα αυτά, μπορείς να μου στείλεις τον κώδικά σου μήπως και μπορώ να βοηθήσω.
People wishing to analyze nature without using mathematics just settle for a reduced understanding.

Re: Προβλήματα κατά τον προγραμματισμό σε Fortran

12
Δεν έχω χρησιμοποιήσει κάποιον debugger μέχρι στιγμής, αλλά ευτυχώς μια χαρά τα καταφέρνουμε και με απλές εντολές όπως print. Debugging είναι γενικώς όλη αυτή η διαδικασία του να προσπαθήσεις να βρεις και να διορθώσεις τα οποιουδήποτε είδους λάθη, με οποιονδήποτε τρόπο σε βολεύει.

Λες ότι πέφτει σε κάποια ατέρμονη επανάληψη. Τι κριτήρια εξόδου έχεις βάλει; (π.χ. "βγες από το βρόχο όταν δυο διαδοχικοί υπολογισμοί διαφέρουν λιγότερο από την επιθυμητή ακρίβεια") Αν είναι κάτι τέτοιο μήπως κάποια μεταβλητή δεν αλλάζει τιμή; Μήπως π.χ. η αλλαγή τιμής σε μεταβλητή εξαρτάται από καμιά διαίρεση ακεραίων και γίνεται μηδέν; (κλασσικό πρόβλημα) Μήπως έχεις κάποιο IF με συνθήκη τέτοια ώστε να πέφτει συνεχώς εκεί;

Εδώ θα ήταν π.χ. χρήσιμο να τυπώνεις σε κάθε βήμα τις τιμές των "κρίσιμων" μεταβλητών σου και να παρακολουθείς αν αλλάζουν. Αρκεί ένα PRINT μέσα στο βρόχο DO. Το πιθανότερο είναι ότι δεν θα αλλάζουν, ή ότι θα αλλάζουν προς λάθος κατεύθυνση ή καθόλου. Σημείωσε πως, για αυτόν τον λόγο, όταν έχεις κάποιο κριτήριο σύγκλισης που δεν ξέρεις πότε θα επιτευχθεί, βάζεις και ένα μέγιστο όριο επαναλήψεων, ώστε να ξεκολλήσει και να σου δείξει ένα μήνυμα λάθους ότι κόλλησε εκεί. Επίσης είναι καλό να εμφανίζεις στην οθόνη διάφορα μηνύματα όταν το πρόγραμμα περνάει από ένα στάδιο στο άλλο, είναι ευκολότερο να εντοπίσεις λάθη.

Re: Προβλήματα κατά τον προγραμματισμό σε Fortran

13
γιατι δεν προσθέτεις ένα breakpoint στο σημείο που πιστεύεις ότι υπάρχει πρόβλημα. αν και ουσιαστικά "κερδίζεις" ό,τι κ με το απλό print...
Hatred is Blind, Rage carries you Away...
and He who pures out Vengeance, runs the Risk of tasting a Bitter draught
...
One is All and All is One

Re: Προβλήματα κατά τον προγραμματισμό σε Fortran

14
Ευχαριστώ παιδιά!
Με τις εντολές write και print βρήκα σε πρώτη φάση πού ακριβώς υπάρχει πρόβλημα. Τώρα μένει να το λύσω...Χρησιμοποιώ έτοιμο κώδικα (από http://distart119.ing.unibo.it/alberto/ ... o=15&faq=2) και προσπαθώ να καταλάβω τα κριτήρια εξόδου που έχουν τεθεί.

Re: Προβλήματα κατά τον προγραμματισμό σε Fortran

16
Από την παραπάνω σελίδα, στη ρουτίνα Mod1.for, η υπορουτίνα Unpit.for φαίνεται ότι έχει πρόβλημα! Με λίγα λόγια, η υπορουτίνα αυτή "διορθώνει" το αρχικό Ψηφιακό Μοντέλο Εδάφους που διαθέτω, αυξάνοντας το υψόμετρο σε τυχόν βυθίσματα..Βέβαια, έχω ήδη διορθώσει με άλλη αυτόματη διαδικασία το ΨΜΕ μου, οπότε υποπτεύομαι ότι δεν ικανοποιείται κάποιο κριτήριο στην υπορουτίνα γι' αυτό και πέφτει συνεχώς σε επαναλήψεις.Τώρα σκέφτομαι με ποιον τρόπο θα μπορούσα να 'παρακάμψω' την υπορουτίνα αυτή και να συνεχίσω την υπόλοιπη διαδικασία με το αρχικό ΨΜΕ μου.(?!)

Re: Προβλήματα κατά τον προγραμματισμό σε Fortran

17
καλησπερα :sleep: και καλη χρονιαααα !!! :woot:

Φτιαχνω ενα προγραμματακι (για ενα μαθημα επιλογης) και το θεμα μου ειναι οτι θελω να υπολογισει κατι αποστασεις πόλεων (οπου τις θελει ευκλειδιες ) και οι επαναληψεις μου ειναι 52 .Το θεμα μου ειναι οτι το προγραμμα παθαίνει κοκομπλοκο στα μισα και συγκεκριμενα οταν παει στην επαναληψη 25 και μετα γινεται χαμος... :rofl: τι μπορει να φταιει ?? (επισης εκανα και μια υπορουτινα μπας και αλλα δεν) .

Re: Προβλήματα κατά τον προγραμματισμό σε Fortran

18
Μπορείς να δώσεις περισσότερες πληροφορίες; Τι εννοείς "γίνεται χαμός" πχ; Υποθέτω σου βγάζει κάτι σαν "array bounds exceeded"; Άρα κάποιος δείκτης που εσύ τον ήθελες 25, είναι στην πραγματικότητα 50; (και κυρίως αργότερα, αντί για 27 έχεις 54; )

Re: Προβλήματα κατά τον προγραμματισμό σε Fortran

19
καλησπερα :) βασικα μετα την 25η επαναληψη ειναι σαν να μου ''τρωει'' τα δεδομενα και να μην τα εμφανιζει (το μεγεθος του πινακα νομιζω ειναι μια χαρα.. :| ) συγκεκριμενα αμα το τρεξω με μικρες επανηληψεις τα αποτελεσματα βγαινουν κανονικα αμα γινουν ολες οι επανληψεις μαζι στην ουσια το αρχιζει απο τη μεση και μετα και δεν εμφανιζει τα προηγουμενα αποτελεσματα :S