2) Aν δανειστούμε ένα ποσό Α με επιτόκιο Τ=Ε% και υποχρεωθούμε να το ξεχρεώσουμε σε Ν χρόνια, τότε το ποσό της μηνιαίας δόσης Μ θα δίνεται από τον τύπο : α) Να γραφεί ένα πρόγραμμα υπολογισμού της μηνιαίας δόσης για διάφορες τιμές των Α, Ε και Ν. β) Εφαρμογή για A= Ευρώ, E=10% και Ν=20.
PROGRAM EXAMPLE3 IMPLICIT NONE INTEGER N REAL E,T,A,M PRINT*,'INITIAL VALUE =' READ*,A PRINT*,'INTEREST RATE =' READ*,E T=E/100 PRINT*,'YEARS =' READ*,N M=(A*T/12)*((1+T)**N)/((1+T)**N-1) WRITE(6,10) A,E,N,M 10FORMAT(1X,'INITIAL VALUE=', & & F12.2,5X,'INTEREST RATE =',F7.2, & & 5X, 'YEARS =',I5 /1X, 'MONTHLY & & PAYMENT =',F12.4) END PROGRAM EXAMPLE3
3) Έστω οι διάμετροι στη βάση και στο σημείο αποκορύφωσης ενός δέντρου. Αν το συνολικό μήκος του δέντρου είναι, τότε ο όγκος V του δέντρου δίνεται από τον τύπο : Να γραφεί πρόγραμμα που να υπολογίζει τον όγκο του δέντρου.
Εντολές συνθήκης και διακλάδωσης Πρόβλημα: Να γραφεί πρόγραμμα που να υπολογίζει την λύση της εξίσωσης: ax 2 +bx+c=0 Η εντολή GOTO Η εντολή GOTO χωρίς συνθήκη Σκοπός: Μεταφέρει τον έλεγχο του προγράμματος σε συγκεκριμένο label. Σύνταξη GOTO label
Παράδειγμα 10READ*,X,Y,Z AV=(X+Y+Z)/3.0 PRINT*,AV GOTO 10 Το παραπάνω πρόγραμμα θα ανακυκλώνεται συνέχεια. Παρατηρούμε λοιπόν ότι η χρήση της GOTO θέλει ιδιαίτερη προσοχή διότι μπορεί να οδηγήσει σε απρόσμενα αποτελέσματα.
Η εντολή GOTO με συνθήκη Σκοπός: Μεταφέρει τον έλεγχο του προγράμματος σε συγκεκριμένα labels υπό όρους. Σύνταξη GOTO (labels) [, ] n Όπου: το n είναι ακέραια μεταβλητή της οποίας η τιμή καθορίζει το label στο οποίο θα μεταφερθεί ο έλεγχος του προγράμματος, π.χ. αν το n πάρει την τιμή 3, τότε ο έλεγχος θα μεταφερθεί στο label 3.
Η εντολή IF-THEN-ELSE Η αριθμητική IF Σκοπός: Κατευθύνει την εκτέλεση του προγράμματος ανάλογα με το πρόσημο μιας έκφρασης. Σύνταξη : IF (έκφραση) label 1,label 2,label 3 όπου αν η τιμή της έκφρασης είναι αρνητική, μηδέν ή θετική, τότε η εκτέλεση του προγράμματος θα συνεχίσει από την εντολή στην οποία βρίσκεται το label 1, label 2 ή label 3 αντίστοιχα.
Παράδειγμα Να γραφεί πρόγραμμα που υπολογίζει τη τιμή της συνάρτησης: Το αντίστοιχο μέρος του προγράμματος θα ήταν το εξής : IF (X) 10,20,10 10Y=1/X GOTO 30 20Y=0 30PRINT*,X,Y
Άσκηση Να γραφεί πρόγραμμα που θα υπολογίζει τις τιμές της συνάρτησης:
PROGRAM FUNCTION IMPLICIT NONE REAL X,Y PRINT*, “DOSE TIMH TOY X” READ*, X IF (X-1) 10,20,30 10Y=-1 GOTO 40 20Y=0 GOTO 40 30Y=1 40PRINT*, “X=“,X, “Y=“,Y END PROGRAM FUNCTION
Η λογική IF Σκοπός: Εκτέλεση μιας πρότασης ανάλογα με την τιμή μιας λογικής έκφρασης. Σύνταξη : IF (λογική έκφραση) πρόταση Αν η τιμή της λογικής έκφρασης είναι αληθής, τότε εκτελείται η πρόταση που συνοδεύει την IF, διαφορετικά ο έλεγχος του προγράμματος μεταφέρεται στην επόμενη πρόταση. Παράδειγμα IF (A.NE.0.0) Y=-B/A
Η block if Σκοπός: Η εκτέλεση ενός συνόλου προτάσεων αν μια συνθήκη είναι αληθής. Η πρώτη μορφή Σύνταξη: IF (συνθήκη) THEN πρόταση 1 [ELSE πρόταση 2] Αν η συνθήκη είναι αληθής, τότε εκτελείται η πρόταση 1, διαφορετικά εκτελείται η πρόταση 2. Σε περίπτωση που δεν υπάρχει η ELSE, τότε, αν η συνθήκη είναι ψευδής, εκτελείται η επόμενη πρόταση.
Παράδειγμα Να γραφεί πρόγραμμα που υπολογίζει τη τιμή της συνάρτησης:
PROGRAM FUNCTION1 IMPLICIT NONE REAL X,Y PRINT*, ‘GIVE VALUE FOR X’ READ*, X IF (X==0) THEN Y=1 ELSE Y=1/X PRINT*, ‘X=‘, X PRINT*, ‘Y=‘,Y END PROGRAM FUNCTION1
Η δεύτερη μορφή Σύνταξη: IF (συνθήκη) ΤΗΕΝ σύνολο προτάσεων 1 [ELSE σύνολο προτάσεων 2] END IF Εάν η συνθήκη είναι αληθής, τότε εκτελείται το σύνολο προτάσεων 1, διαφορετικά εκτελείται το σύνολο προτάσεων 2. Σε περίπτωση που δεν υπάρχει η ELSE, τότε, αν η συνθήκη είναι ψευδής, εκτελείται η πρόταση που ακολουθεί την END IF.
Η γενική μορφή Σύνταξη: IF (συνθήκη 1) ΤΗΕΝ σύνολο προτάσεων 1 [ELSE IF (συνθήκη 2) ΤΗΕN σύνολο προτάσεων 2] [ELSE IF (συνθήκη 3) ΤΗΕΝ σύνολο προτάσεων 2] …….. [ELSE σύνολο προτάσεων k+1] END IF
Παράδειγμα: Να γραφεί πρόγραμμα που να επιλύει την εξίσωση: ax+b=0 PROGRAM PROTOBATHMIA IMPLICIT NONE REAL A,B,X PRINT*, ‘DOSE SYNTELESTES’ PRINT*, ‘A=‘ READ*, A PRINT*, ‘B=‘ READ*, B IF (A/=0) THEN X=-B/A PRINT*, ‘MONADIKI LYSH X=‘,X ELSE IF (B==0) THEN PRINT*, ‘ADYNATH’ ELSE PRINT*, ‘AORISTH’ END IF END PROGRAM PROTOBATHMIA
Άσκηση Να γράψετε πρόγραμμα που να υπολογίζει τις λύσεις της δευτεροβάθμιας εξίσωσης.