Προς το περιεχόμενο

Ergasia gia Fortran 90 HELP!!!!!!


Nitrous18

Προτεινόμενες αναρτήσεις

Δημοσ.

Loipon paidia thelo mia terastia xari thelo na meboithisete na kano mia ergasia gia ti sxoli mou alla den ksero kai para polla kai thelei na tin kano me kapoies entoles pou den ksero

an mporei kapoios na me boithisei as to pei na tou po tin askisi

 

euxaristo ek ton proteron

Δημοσ.

1)upotheste oti mia etairia fotaeriou basizei tis xreoseis tis stin katanalosi sumfona me ton pinaka:

 

ta 70 prota kubika metra--> elaxisti xreosi 5$

ta epomena 100 kubika -->5.0Cents ana kubiko

ta epomena 230 kubika--->2.5C ana kubiko

pano apo 400 kubika ---->1.5Cents ana kubiko

 

oi metriseis apoteloun tetrapsifious arithmos pou antiprosopeuoun kubika metra. Grapste ena programa sto opoio eisagontai h metrisi gia ton proigoumeno mhna kai i trexousa kai meta upologizei to posos tou logariasmou. SHMIOSH: H trexousa metrisi mporei na einai mikroteri ths proigoumenis. Gia paradeigma h proigoumeni metrisi mporei na einai 9897 kai i trexousa 0103

2) epanalavete to problima 1 alla xrhsimopoihste mia DOMHSH CASE gia na prosdiorisete thn efarmosimh xreosi

 

 

pos to blepeis to proto kati mporo na kano alla to deutero den to ksero katholou

 

Δημοσ.

Λοιπόν καταρχάς για να τα απλοποιήσουμε κάπως τα πράγματα...Οι χρεώσεις αν κατάλαβα καλά θα πάνε ως εξής:

 

Κυβικά μέτρα Κόστος

0000-0070 5 $ (που είναι και η ελάχιστη χρέωση δηλ. ασχετα αν είναι 30 ή 70 τα κυβικά μέτρα ο πελάτης θα πληρώσει και στις δύο περιπτώσεις 5$)

0071-0170 0,05 \k.m.

0171-0400 0.025\k.m.

0401-... 0.015\k.m.

 

Εκεί που μπλέχτηκα λιγάκι είναι με τις μετρήσεις..Γιατί πρέπει να παίρνουμε και τις δύο(την τρέχουσα και την προηγούμενη) μετρήσεις? Φαντάζομαι ότι θα τις προσθέτουμε.

Δημοσ.

Δεν ξερω Fortrant παρολα αυτα δεν ειναι δυσκολο:

 

Εστω Consumed τα μετρα της καταναλωσης που θα βγαινουν απο την αφαιρεση του προηγουμενου μηνα με τον τρεχωντα!

Πριν το υπολογισουμε λοιπον πρεπει να δουμε αν εχει μηδενιστει το ρολοι h oxi

>
INTEGER::LastMonth
INTEGER::CurrentMonth
INTEGER::Consumed = 0

//des pos pairneis tis times apo to keyboard h whatever

SELECT CASE (CurrentMonth) 
 CASE (CurrentMonth<LastMonth)
   Consumed = (10000-LastMonth)+CurrentMonth
 CASE DEFAULT
   Consumed =CurrentMonth-LastMonth
END SELECT

Αυτο το case θα σου δωσει το Consumed gazi...αντιστοιχα συνεχιζεις με την ιδια λογικη με ενα αλλο case πανω στην τιμη του consumed για να υπολογισεις την τιμη...

 

Ελπιζω να βοηθησα (για αρχη)

Δημοσ.

αν εχω καταλαβει καλα, και απο την εμπειρια μου με τα εδω μηχανακια του γκαζιου.

 

Ειναι

------

εστω οτι η προηγουμη ηταν 9800 και η επομενη επειδη εχει μηδενιστει το μηχανακι 0100. το συνολο τον μοναδων που εχει καταλανωσει ειναι 300

(10000-9800)+100 = 300

 

 

Ζητω συγνωμη αν λεω κατι λαθος!

η αν δεν εχω καταλαβει το spec σωστα!

Δημοσ.

H CASE(που είναι και το 2ο ερώτημα)εντολή για να υπολογίσεις το τελικό κόστος είναι η εξής:

 

SELECT CASE (consumed)

CASE (0:70)

cost=5

CASE (71:170)

cost=5+(consumed-70)*0.05

CASE (171:400)

cost=5+(100*0.05)+(consumed-170)*0.025

CASE DEFAULT

cost=5+(100*0.05)+(230*0.025)+(consumed-400)*0.015

END SELECT

PRINT*, "H teliki xrewsi einai:", cost

 

 

όπου φυσικά θα έχουν προηγηθεί δηλώσεις

INTEGER:: cost

kai ως consumed όπως την δήλωσε ο apoc (kai εγώ έτσι φαντάζομαι ότι θα υπολογίζεται )

 

Όσον αφορά το πως παίρνεις τις τιμές από το πληκτρολόγιο:

 

PRINT*, "Dwste tin trexousa metrisi:"

READ*, currentmonth

PRINT*, "Dwste tin metrisi tou proigoumenou mina:"

READ*, lastmonth

 

(Ennoeitai ότι αντίστοιχα με την CASE μπορείς να χρησιμοποιήσεις τη δομή IF..--p.x. για το πρώτο μέρος της άσκησης...)

Δημοσ.

program gkazi

implicit none

INTEGER::LastMonth,cost

INTEGER::CurrentMonth

INTEGER::Consumed = 0

 

PRINT*, "Dwste tin trexousa metrisi:"

READ*, CurrentMonth

PRINT*, "Dwste tin metrisi tou proigoumenou mina:"

READ*, LastMonth

 

SELECT CASE (CurrentMonth)

CASE (CurrentMonth<LastMonth)

Consumed = (10000-LastMonth)+CurrentMonth

CASE DEFAULT

Consumed =CurrentMonth-LastMonth

END SELECT

 

SELECT CASE (consumed)

CASE (0:70)

cost=5

CASE (71:170)

cost=5+(consumed-70)*0.05

CASE (171:400)

cost=5+(100*0.05)+(consumed-170)*0.025

CASE DEFAULT

cost=5+(100*0.05)+(230*0.025)+(consumed-400)*0.015

END SELECT

PRINT*, "H teliki xrewsi einai:", cost

 

end program gkazi

 

 

 

 

to ebala se ena compiler pou exo alla mou ebgale arketa lathi bebea den einai kai o kaliteros an mporei kapoios as me boithisei na ta diorthosoume

Δημοσ.

Λοιπόν το πρόγραμμα έχει κυρίως συντακτικά λάθη...Εγώ το έγραψα έτσι και δεν μου παρουσίασε λάθη(με τον compiler που χρησιμοποίησα τουλάχιστον) και δουλεύει μια χαρά...

 

program gkazi

implicit none

INTEGER::LastMonth,cost

INTEGER::CurrentMonth

INTEGER::Consumed = 0

 

PRINT*, "Dwste tin trexousa metrisi:"

READ*, CurrentMonth

PRINT*, "Dwste tin metrisi tou proigoumenou mina:"

READ*, LastMonth

 

IF (currentmonth .LT. lastmonth) THEN

Consumed = (10000-LastMonth)+CurrentMonth

ELSE

Consumed =CurrentMonth-LastMonth

ENDIF

 

SELECT CASE (consumed)

CASE (0:70)

cost=5

CASE (71:170)

cost=5+(consumed-70)*0.05

CASE (171:400)

cost=5+(100*0.05)+(consumed-170)*0.025

CASE DEFAULT

cost=5+(100*0.05)+(230*0.025)+(consumed-400)*0.015

END SELECT

PRINT*, "H teliki xrewsi einai:", cost , "$"

end program gkazi

 

Μην ξεχνάς ότι πρέπει να γράφεις τις εντολές από την 7η στήλη και μετά...

Για δοκίμασε το και πες μας...

 

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...