Σελίδα 5 από 17

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 12:00 am
από Theodore
Ένας τρόπος δήλωσης μεταβλητών στην FORTRAN είναι η ακόλουθη εντολή (την οποία είχα γράψει και παραπάνω):

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

IMPLICIT REAL*8 (A-H,O-Z)
Αυτή η εντολή σημαίνει:

1) Όλες οι μεταβλητές είναι διπλής ακρίβειας (=DOUBLE PRECISION), δηλαδή αποθηκεύονται σε καταχωρητές 8 δυαδικών ψηφίων.
2) Όλες οι μεταβλητές των οποίων τα ονόματα ξεκινούν από τους (λατινικούς) χαρακτήρες A έως H και O έως Z είναι πραγματικές (REAL). Αφήνεις τις (I,J,K,L,M,N) εκτός, διότι, από παλιά, οι μεταβλητές των οποίων τα ονόματα ξεκινούσαν από (I,J,K,L,M,N) αναγνωρίζονταν αυτόματα (και υποχρεωτικά) από τον μεταγλωττιστή ως ακέραιες.

Έτσι, σε οποιοδήποτε σημείο του κώδικά σου χρειάζεσαι μια νέα μεταβλητή, μπορείς να την ορίσεις, π.χ.:

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

A=0.0
Ο μεταγλωττιστής θα καταλάβει ότι πρόκειται για πραγματικό αριθμό, αφού ξεκινά από το γράμμα "Α".

Ισοδύναμη της "IMPLICIT REAL*8 (A-H, O-Z)" είναι η ακόλουθη:

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

IMPLICIT DOUBLEPRECISION (A-H,O-Z)
Κάποιοι τύποι μεταβλητών της FORTRAN που μου έρχονται αυτή τη στιμή στο μυαλό είναι οι ακόλουθοι (δεν θυμάμαι να ξέρω και άλλους...! :roll: ):

REAL*4 (SINGLE PRECISION)
REAL*8 (DOUBLE PRECISION)
INTEGER (ΑΚΕΡΑΙΟΣ, ΒΛΕΠΕ Π.Χ. ΜΕΤΑΒΛΗΤΗ "ICOUNT" ΠΑΡΑΚΑΤΩ)
CHARACTER (ΧΑΡΑΚΤΗΡΑΣ, ΒΛΕΠΕ Π.Χ. ΜΕΤΑΒΛΗΤΗ "CHΝΑΜΕ" ΠΑΡΑΚΑΤΩ)
LOGICAL (ΛΟΓΙΚΗ - ΛΑΜΒΑΝΕΙ ΤΙΣ ΤΙΜΕΣ TRUE/FALSE, ΒΛΕΠΕ Π.Χ. ΜΕΤΑΒΛΗΤΗ "ANSWER" ΠΑΡΑΚΑΤΩ)

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

A=0.0
ICOUNT=10
ANSWER=.TRUE.
CHNAME='LOULIS_KOUKLENTES'
Με εκτίμηση,
Θοδωρής._

_________________________
Υ.Γ.: Από ποιά γλώσσα προγραμματισμού προέρχονται οι λέξεις "div" και "mod" ; :?: :think: :?:

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 12:03 am
από merde_conserve
Ο Θοδωρής από του χρόνου θα κάνει και ενισχυτικά μαθήματα FORTRAN. :lol: :mrgreen:

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 12:05 am
από Theodore
merde_conserve έγραψε:Ο Θοδωρής από του χρόνου θα κάνει και ενισχυτικά μαθήματα FORTRAN. :lol: :mrgreen:
:oops: (=embarrassed)

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 1:17 am
από aleka
Ευχαριστω πολυ...!!!!

Οσο για τα "div" και "mod":προερχονται απο την γλωσσα προγραμματισμου "ΓΛΩΣΣΑ"(κοιτα ονομα ομως,πρωτοτυπο??) η οποια δημιουργηθηκε στα πλαισια της εξετασης των πανελλαδικων!!!! Βρισκουν το πηλικο(div) και το υπολοιπο(mod) διαιρεσης ακεραιων αριθμων!!!!
Ρωτησα και μ ειπαν οτι το mod υπαρχει στη fortan και συμβολιζεται με τον ιδιο τροπο, κανοντας την ιδια δουλεια αλλα δεν θυμαμαι σε ποια fortan και δεν ξερω ποια κανουμε εμεις!!!
Ολα αυτα τα ρωταω γιατι με διευκολυνει να λυνω τα προγραμματα στην "ΓΛΩΣΣΑ" και να αντιστοιχιζω τις εντολες σε fortan.
Χρονοβορο......Φτανει ο χρονος για κατι τετοιο στην εξεταστικη????

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 1:26 am
από ingenieurin26
Διδασκόμαστε fortran 77 , τις εντολές div και mod τις γνωρίζω κι εγώ από το λύκειο και θυμάμαι ότι στη σχολή δεν τις είχαμε διδαχτεί . Πρέπει να σκεφτείς πως να υπολογίζεις το ακέραιο υπόλοιπο και το ακέραιο πηλίκο χωρίς αυτές τις εντολές. Ο χρόνος της εξέτασης προσωπικά μου φάνηκε λίγος.

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 1:36 am
από aleka
Καταλαβα... :(
Πρεπει να χρησιμοποιειται σε καποια νεοτερη(του '98-αν δεν κανω λαθος). Για να ειμαι σιγουρη θα ακολουθησω αυτο που μου ειπες!!!!
Ευχαριστω και παλι..

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 1:32 pm
από Lost.in.Athens
Καλά αυτό το βιβλίο με έχει μπερδέψει εντελώς... :?
Στο κεφάλαιο 11 λέει πως αν στα δεδομένα δεν υπάρχει δεκαδικό σημείο, τότε αυτόματα ο υπολογιστής υποθέτει ότι ο αριθμός που διαβάζει έχει d δεκαδικά ψηφία (αν στο format έχει τη μορφή Fw.d). Όμως με αυτή τη λογική, στη σελ. 28 στην άσκηση 5.2, οι μεγαλύτεροι αριθμοί που μπορούν να διαβαστούν για τις AB,S12 δεν είναι 99999.99 και 9999.9999 αντίστοιχα αν τα δεδομένα έχουν τη μορφή 999999 και 99999999;
Ακόμα, λέει πως αν υπάρχει ήδη δεκαδικό σημείο στα δεδομένα, τότε αγνοείται το πλήθος των δεκαδικών σημείων στο format, αν δεν συμφωνούν. Ενώ λοιπόν το εφαρμόζει αυτό στη σελ. 35 στην άσκηση 6.2, στη σελ. 36 υπερισχύει το format στα δύο πρώτα παραδείγματα. Και αν δεν χωράει όλος ο αριθμός, γίνεται στρογγυλοποίηση; (παράδειγμα α)
Τελικά γνωρίζει κανείς τι από αυτά ισχύει; :think:
Όσο για το format που επαναλαμβάνεται όταν τελειώσει χωρίς να έχουν τελειώσει οι μεταβλητές στις οποίες θα καταχωρηθούν τα δεδομένα, αυτός μας έχει πει ότι το τμήμα του format που επαναλαμβάνεται είναι αυτό που περιέχεται ανάμεσα στην τελευταία αριστερή παρένθεση και την πρώτη δεξιά παρένθεση, η οποία όμως δεν πρέπει να έχει συντελεστή, ενώ σε αυτήν την περίπτωση βρίσκει την αμέσως εξωτερική παρένθεση που δεν έχει συντελεστή. Φαίνεται όμως ότι ούτε στην πράξη ισχύει αυτό ούτε στις ασκήσεις του το εφαρμόζει... :crazy:

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 1:41 pm
από airetikos
Εμάς ο Στάμου μας είπε να κάνουμε 1-1 αντιστοιχία των Formatκαι μεταβλητών(όπως read και σειρών) και να εχουμε το κεφάλι μας ήσυχο από όλα αυτά ΄
αλλά γενικά ισχύει
1 η υποδιαστολή του χρήστη πάντα υπερισχυει αυτής του Format
2 ξεκινάει το format όταν αλλάζει γραμμή από την πλησιέστερη αριστερά παρένθεση)
ελπίζω να φάνηκα χρήσιμος

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 2:02 pm
από Lost.in.Athens
Ευχαριστώ! Ελπίζω πάντως να μη βάλει καμιά τέτοια παγίδα...

Re: Προγραμματισμός Η/Υ (2008-09)

Δημοσιεύτηκε: Τετ, 08 Ιούλ 2009 2:41 pm
από Lost.in.Athens
Α, επίσης τώρα που το είδα (και δεν μπορώ να κάνω edit το προηγούμενο post μου), η εντολή DIV υπάρχει στη μορφή I/J, αφού όταν η διαίρεση πραγματοποιείται μεταξύ δύο ακεραίων, τότε το αποτέλεσμα θα είναι ακέραιος, ο οποίος είναι το ακέραιο μέρος του πηλίκου αν γίνει η διαίρεση με το γνωστό τρόπο (βλ. σελ 57). Δηλ. 3/2=1
Τώρα για το MOD, πρέπει να χρησιμοποιήσεις μια άλλη έκφραση, όπως πχ. I-I/J*J