Σελίδα 4 από 17
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Δευτ, 06 Ιούλ 2009 12:56 am
από vasilisgr7
Παιδιά παίζει κανείς να ανεβάσει εδώ τις φετινές ασκήσεις του Γιαννόπουλου που έκανε στην τάξη?(δεν εννοώ αυτές που βρίσκονται στο mycourses) μήπως κ μπούμε στο κλίμα των θεμάτων που θα πέσουν φέτος...
Βοηθείστε αν μπορείτε έναν συνάδελφο(πολύ μεγαλύτερου έτους) σχετικά ανεπίδεκτο προγραμματισμού!!!

Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Δευτ, 06 Ιούλ 2009 8:34 pm
από morisson
intelx86 έγραψε:Το
INT κάνει τους αριθμούς ακέραιους (Integer=ακέραιος).
To
REAL κάνει τους αριθμούς πραγματικούς (Real=πραγματικός).
To
FLOAT κάνει ΜΟΝΟ τους ακέραιους (integer) πραγματικούς. Αν του δώσετε μη ακέραιο όρισμα θα βγάλει λάθος.
και κατι ακομα να ρωτησω.Αν πεταξεις ακεραια τιμή σε πραγματική μεταβλητή τοτε η τιμή γίνεται αυτόματα πραγματική?
Και επισης το αντίστροφο,αν πεταξεις πραγματική τιμή σε ακέραια μεταβλητή γινεται ακέραια?
και τέλος αν είναι ετσι τις δύο αυτές(συναρτήσεις πρέπει να είναι...

)τις χρησιμοποιούμε για διευκόλυνση για να μην πήζουμε το πρόγραμμα μεταβλητές?
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Δευτ, 06 Ιούλ 2009 10:45 pm
από intelx86
Μπορείς βεβαίως να εκχωρήσεις σε μία I (Άι) μεταβλητή ένα πραγματικό αριθμό, και ο τελευταίος να γίνει ακέραιος. Η Fortran το δέχεται, ο Πλούτο never. Αλλιώς τι σας έμαθε τις συναρτήσεις; Για να τις εξετάσει φυσικά.
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Δευτ, 06 Ιούλ 2009 11:36 pm
από morisson
intelx86 έγραψε:Μπορείς βεβαίως να εκχωρήσεις σε μία I (Άι) μεταβλητή ένα πραγματικό αριθμό, και ο τελευταίος να γίνει ακέραιος. Η Fortran το δέχεται, ο Πλούτο never. Αλλιώς τι σας έμαθε τις συναρτήσεις; Για να τις εξετάσει φυσικά.
Τhanks admin.Δίκιο έχεις...Απλώς επειδή δεν θυμάμαι να χρησιμοποίησε την int.Να σου πω.Για το αντίστροφο δεν μου είπες...

(το float το έχει πεί και το χρησιμοποίησε σε πράξεις).
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Τρί, 07 Ιούλ 2009 1:31 am
από intelx86
Και το αντίστροφο ισχύει. Αν δε χρησιμοποίησε την INT, νομίζω ότι ούτε σε μας τη δίδαξε, αναγκαστικά θα παίξεις με τις μεταβλητές.
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Τρί, 07 Ιούλ 2009 5:33 pm
από akrovolistos
Το πρώτο πρόγραμμα από τα
θέματα 20.09.2006
Τρέχει κιόλας, οπότε μάλλον είναι σωστό. Δεκτές παρεμβάσεις.
Κώδικας: Επιλογή όλων
PROGRAM MYFIRST
C DIAVASMA ARITHMWN
READ(*,2000) N, M
2000 FORMAT (I4,1X,I4)
C ELEGXOS AN DEN YPARXEI I DIAIRESI N/M
IF (M.EQ.0) GO TO 500
C VRISKW TA PSIFIA TOU N
ITHOU1 = N/1000
FHUND1 = N-ITHOU1*1000
IHUND1 = FHUND1/100
FDECA1 = FHUND1-IHUND1*100
IDECA1 = FDECA1/10
FMONA1 = FDECA1-IDECA1*10
IMONA1 = FMONA1
C VRISKW TA PSIFIA TOU M
ITHOU2 = M/1000
FHUND2 = M-ITHOU2*1000
IHUND2 = FHUND2/100
FDECA2 = FHUND2-IHUND2*100
IDECA2 = FDECA2/10
FMONA2 = FDECA2-IDECA2*10
IMONA2 = FMONA2
C ELEGXOS AN I DIAIRESI N1/M1 DEN YFISTATAI
ITEMP = IHUND2+IDECA2+IMONA2
IF ((ITHOU2.EQ.4).AND.(ITEMP.EQ.0)) GO TO 500
C ELEGXOS ALLAGHS PSIFIOU TOU N
IF (ITHOU1.LE.3) GO TO 110
IF (ITHOU1.EQ.4) GO TO 120
IF (ITHOU1.GE.5) GO TO 130
110 ITHOU1=2*ITHOU1+2
GO TO 200
120 ITHOU1=0
GO TO 200
130 ITHOU1=-9+2*ITHOU1
C ELEGXOS ALLAGHS PSIFIOU TOU M
200 IF (ITHOU2.LE.3) GO TO 210
IF (ITHOU2.EQ.4) GO TO 220
IF (ITHOU2.GE.5) GO TO 230
210 ITHOU2=2*ITHOU2+2
GO TO 300
220 ITHOU2=0
GO TO 300
230 ITHOU2=-9+2*ITHOU2
C YPOLOGISMOS TWN N1,M1
300 N1=ITHOU1*1000+IHUND1*100+IDECA1*10+IMONA1
M1=ITHOU2*1000+IHUND2*100+IDECA2*10+IMONA2
WRITE(*,*) N1,M1
C DIAIRESI KAI EKTYPWSI
DIV1=FLOAT(N)/FLOAT(M)
DIV2=FLOAT(N1)/FLOAT(M1)
WRITE(*,1000) DIV1, DIV2
1000 FORMAT (F8.4,2X,F8.4)
500 STOP
END
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Τρί, 07 Ιούλ 2009 9:17 pm
από akis
Θα ηθελα να κανω μια εξειδικευμενη ερωτηση οποιος γνωριζει ας απαντησει...
Εχουμε την εντολη
READ (5,1000) A,B,C,D,E,F,G,H
και 2 FORMAT
1000 FORMAT (F8.3,3(F8.3))
και
1000 FORMAT (F8.3, (3F8.3))
Ο Γιαννοπουλος λεει στο βιβλιο του (σελ.83 για την ακριβεια) οτι και με τους δυο τροπους θα εχουμε τον ιδιο τροπο διαβασματος δλδ
1η γραμμη: A,B,C,D
2η γραμμη: E,F,G
3η γραμμη: H
Καταλαβαινω γιατι διαβαζονται ετσι στη δευτερη FORMAT ομως δεν μπορω να πω το ιδιο και για την πρωτη... Ξερω ειναι λεπτομερεια η ερωτηση αλλα με το Γιαννοπουλο ποτε δεν ξερεις!!! Οποιος μπορει ας βοηθησει...
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Τρί, 07 Ιούλ 2009 11:11 pm
από Theodore
Καλησπέρα!
Η απάντηση είναι ότι, όταν το πλήθος των δεδομένων που έχει να διαβάσει ο Η/Υ από το αρχείο εισόδου είναι μεγαλύτερο από το πλήθος που προβλέπεται από την αρμόδια εντολή FORMAT, τότε, για τα επιπλέον δεδομένα χρησιμοποιεί τον τελευταίο τύπο ανάγνωσης δεδομένων που ορίζεται στην FORMAT. Συγκεκριμένα:
-Στην πρώτη περίπτωση εντολής FORMAT, χρησιμοποιεί τον τύπο " 3(F8.3) ".
-Στην δεύτερη περίπτωση εντολής FORMAT, χρησιμοποιεί τον τύπο " (3F8.3) ".
Η κεντρική ιδέα είναι ότι, μόλις εξαντληθούν οι πρώτοι τέσσερις (δηλαδή οι πρώτοι 1+3) αριθμοί (ήτοι A,B,C,D) όπου αναμένονται να είναι γραμμένοι στην πρώτη σειρά του αρχείου εισόδου (όπως ορίζεται στην αρμόδια FORMAT), χρησιμοποιεί τον τελευταίο τύπο ανάγνωσης που προδιαγράφει η εν λόγω εντολή FORMAT, προκειμένου να διαβάσει και τους υπόλοιπους (E,F,G,H). Επομένως, αλλάζει σειρά ανάγνωσης, και περιμένει να διαβάσει 3 αριθμούς μαζεμένους στην ίδια σειρά (E,F,G), και στις δύο περιπτώσεις. Επειδή όμως υπολείπεται η ανάγνωση ενός ακόμη αριθμού (δηλαδή του H), θα αλλάξει εκ νέου σειρά, ώστε να διαβάσει και τον τελευταίο. Συνεπώς, το αρχείο εισόδου πρέπει να έχει την ακόλουθη (ενδεικτική) μορφή:
Κώδικας: Επιλογή όλων
100.000 200.000 300.000 400.000
500.000 600.000 800.000
900.000
Τέλος, παραθέτω το ακόλουθο προγραμματάκι που έγραψα ώστε να με βοηθήσει κι εμένα να ξανα-θυμηθώ την απάντηση σ' αυτό το παλιό και (ολίγον) αξιο-περίεργο ερώτημα:
Κώδικας: Επιλογή όλων
PROGRAM TEST
IMPLICIT REAL*8 (A-H,O-Z)
C
OPEN (UNIT=5,FILE='INPUT.TXT',STATUS='OLD')
C
READ (5,1000,ERR=1,END=2) A,B,C,D,E,F,G,H
C1000 FORMAT (F8.3,3(F8.3))
1000 FORMAT (F8.3, (3F8.3))
C
OPEN (UNIT=6,FILE='OUTPUT.TXT')
C
WRITE(6,2000) A,B,C,D,E,F,G,H
2000 FORMAT ((F8.3,2X))
C
CLOSE (UNIT=5)
CLOSE (UNIT=6)
C
GO TO 4
1 WRITE (*,'("ERROR IN THE INPUT FILE`S DATA")')
GO TO 3
2 WRITE (*,'("UNEXPECTED END OF INPUT FILE DURING READ")')
GO TO 3
C
3 PAUSE
C
4 STOP
END PROGRAM TEST
Με εκτίμηση,
Θοδωρής._
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Τρί, 07 Ιούλ 2009 11:22 pm
από aleka
Τωρα καταλαβα γιατι ολοι ελεγαν οτι η fortran δεν περνιεται...Αποφασισα να την διαβασω τελικα αλλα εχω ενα βασικο προβλημα: σε καμια λυμενη ασκηση δεν υπαρχει "δηλωση των μεταβλητων"(αυτο που καναμε στην γ΄λυκειου) μονο τους πινακες δηλωνει...??? Ειναι λογικο αυτο, τρεχει κανονικα το προγραμμα?? Ααααα και κατι αλλο,γνωριζει κανεις ποια ειναι τα αντιστοιχα του div και mod στην fortan(αν υπαρχουν)????
Re: Προγραμματισμός Η/Υ (2008-09)
Δημοσιεύτηκε: Τρί, 07 Ιούλ 2009 11:28 pm
από ingenieurin26
Εφόσον είσαι από τεχνολογική κακώς σου έλεγαν ότι δεν περνιέται, ο καθένας ότι θέλει λέει
1) δεν γίνεται δήλωση μεταβλητών και
2) Τα div και mod δεν υπάρχουν στην fortran