Εργαστηριακή άσκηση 2

Διδάσκοντες: Α. Καράκος, Αν. Καθηγητής

Εργαστηριακή άσκηση 2

Δημοσίευσηαπό raskolnikov » 12 Νοέμ 2008, 21:41

Παιδιά να ρωτήσω κάτι επειδή δεν παρακολουθώ τα εργαστήρια. Στην εργαστηριακή άσκηση 2 θέμα 4 πώς μπορείς να προβλέψεις την περίπτωση ένας αριθμός να είναι ακέραιος εκτός από το να ορίσεις τις μεταβλητές ως integer;
Τελευταία επεξεργασία από JimMichael και 16 Νοέμ 2008, 00:21, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: Διόρθωση ορθογραφικών λαθών στον τίτλο
Άβαταρ μέλους
raskolnikov
Full Member
 
Δημοσιεύσεις: 144
Εγγραφή: 26 Μαρ 2008, 14:49

Re: Εργαστήριακη άσκηση 2

Δημοσίευσηαπό Stokos » 12 Νοέμ 2008, 22:39

εφόσον δηλώσεις τη μεταβλητή σου ως integer αυτό δε θα πρέπει να σε απασχολεί καθόλου

1ος τρόπος

implicit none;
integer input;
write(*,*) "Dwse enan ari8mo";
read(*,*) input;

Αν δώσεις π.χ. 7,9568 η μεταβλητή input θα έχει τιμή 7.

2ος τρόπος
Να χρησιμοποιήσεις την input ως real αλλά να βάλεις στη read κατάλληλο format ώστε να διαβάζει μόνο το ακέραιο μέρος π.χ. format(Ι5).

3ος τρόπος
Nα διαβάσεις τη μεταβλητή σου με format * και να τη κάνεις cast σε integer, π.χ. για C είναι input = (int) input, στη fortran θα είναι κάτι παρόμοιο το οποίο δε το έχω ψάξει...

Έχει και άλλους πολλούς τρόπους. Ο καλύτερος για μένα είναι ο πρώτος.
Stokos
 

Re: Εργαστήριακη άσκηση 2

Δημοσίευσηαπό raskolnikov » 13 Νοέμ 2008, 00:07

Ναι και γω ο πρώτος πιστεύω πως είναι απλά αναρωτιόμουν αν γινόταν σε περίπτωση που του δίναμε δεκαδικό αριθμό να μας εμφάνιζε μήνυμα "Θέλουμε ακέραιο"
Άβαταρ μέλους
raskolnikov
Full Member
 
Δημοσιεύσεις: 144
Εγγραφή: 26 Μαρ 2008, 14:49

Re: Εργαστήριακη άσκηση 2

Δημοσίευσηαπό mpougatsas » 13 Νοέμ 2008, 00:20

Λοιπόν, ένας κλασσικός τρόπος να κάνεις αυτό που μόλις ζήτησες είναι ο εξής:
Κώδικας: Επιλογή όλων
real arithmos
read(*,*) arithmos
IF int(arithmos)==arithmos THEN
     write(*,*) "O arithmos einai akeraios"
ELSE
     write(*,*) "O arithmos einai pragmatikos"
ENDIF


Δεν ξέρω τί λέει η άσκηση, πάντως η συνθήκη για να δείς αν ένας αριθμός είναι ακέραιος, είναι η: (arithmos div 1)==arithmos, αντίστοιχα δηλαδή σε FORTRAN η: int(arithmos)==arithmos

Ελπίζω αυτό να βοήθησε... ;)
Άβαταρ μέλους
mpougatsas
Full Member
 
Δημοσιεύσεις: 224
Εγγραφή: 21 Μαρ 2008, 12:58
Φοιτητής ΗΜΜΥ: Ναι

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης

cron