Προγραμματισμός FORTRAN > Παραδείγματα > Δοκός με Διάφορα Φορτία

Αρχική-HomeΠαραδείγματαΕντολές-ΣυναρτήσειςΟδηγίες-FAQsΣυνδέσεις-Links

ΠΑΡΑΔΕΙΓΜΑ: ΔΟΚΟΣ ΜΕ ΔΙΑΦΟΡΑ ΦΟΡΤΙΑ

Να γραφεί πρόγραμμα που να υπολογίζει τις ροπές (BΜ) κατά μήκος μίας αμφιέρειστης δοκού. Το τεχνικό πρόβλημα που θέλουμε να λύσουμε παρουσιάζεται στο παρακάτω σχήμα:

        

Ο υπολογισμός της ροπής πραγματοποιείται βήμα-βήμα κατά μήκος της δοκού. Όσο περισσότερα είναι τα διαστήματα υπολογισμού (N), τόσο μικρότερο είναι το βήμα (dL) και τόσο μεγαλύτερη η ακρίβεια των αποτελεσμάτων. Το πλήθος των διαστημάτων υπολογισμού (Ν) ορίζει και τον αριθμό των επαναλήψεων που χρειάζονται για να υπολογιστεί όλη η δοκός. Επιπλέον, σε κάθε βήμα θα πρέπει να ελέγχεται η σχετική θέση των φορτίων, ώστε να χρησιμοποιείται ο κατάλληλος τύπος υπολογισμού. (Για κάθε φορτίο θα χρειαζόμαστε και μια ξεχωριστή εντολή IF).


Κώδικας:

PROGRAM dokos2
IMPLICIT NONE
  INTEGER:: N, i
  REAL:: SL, Q, QL, P, PL,
  REAL:: FaQ, FaP, Fa, dL, x, BMx_Fa, BMx_Q, BMx_P, BMx
! - Ypologismos Ropwn Amfiereistis Dokou Me Polla Fortia.
  WRITE(*,10) ' Mikos Amfieristis Dokou (m) :'; read(*,*) SL
  WRITE(*,10) ' Katanemimeno Fortio (kN/m) :'; read(*,*) Q
  WRITE(*,10) ' Mikos Katanemimenou Fortiou (m) :'; read(*,*) QL
  WRITE(*,10) ' Sygkentrwmeno Fortio P (kN) :'; read(*,*) P
  WRITE(*,10) ' Thesi Efarmogis Sygk.Fortiou P (m):'; read(*,*) PL
  WRITE(*,10) ' Plithos Diastimatwn Ypologismou :'; read(*,*) N
! - Antidrasi sto Stirigma A
  FaQ = Q*QL * (SL - QL/2.0)/SL
  FaP = P * (SL - PL)/SL
  Fa = FaQ + FaP
! - Mikos kathe Ypodiastimatos (= Synoliko Mikos / Plithos)
  dL = SL / N
  WRITE(*,20) 'x', 'M(x)'
  DO i = 0,N
    x = dL * i ! - H thesi X anamesa sta A & B
! - Kamptiki Ropi sto X, Logw tis Antidrasis Fa
    BMx_Fa = Fa*x
! - Kamptiki Ropi sto X, Logw tou Katan. Fortiou Q
    IF (x>=0.0 .and. x<=QL) THEN
      BMx_Q = - Q*x * x/2.0
    ELSE
      BMx_Q = - Q*QL * (x-QL/2.0)
    END IF
! - Kamptiki Ropi sto X, Logw tou Sygk. Fortiou P
    IF (x>=PL) BMx_P = - P * (x-PL)
! - Synoliki Kamptiki Ropi sto X
    BMx = BMx_Fa + BMx_Q + BMx_P
    WRITE(*,21) x, Bmx
  END DO
  WRITE(*,22)
STOP
10 FORMAT(1X,A\)
20 FORMAT(//7X,A,7X,A/2X,20(1H-))
21 FORMAT(1X,2(F9.2))
22 FORMAT(2X,20(1H-)/)
END


Εκτέλεση:

Mhkos Amfierisths Dokou (m) :10 ENTER
Katanemhmeno Fortio (kN/m) :20 ENTER
Mhkos Katanemhmenou Fortiou (m) :5 ENTER
Sygkentromeno Fortio P (kN) :60 ENTER
Thesi Efarmoghs Sygk.Fortiou P (m):6 ENTER
Plh8os Diasthmatwn Ypologismou :20 ENTER

    x    M(x)
--------------------
  0.00   0.00
  0.50  47.00
  1.00  89.00
  1.50 126.00
  2.00 158.00
  2.50 185.00
  3.00 207.00
  3.50 224.00
  4.00 236.00
  4.50 243.00
  5.00 245.00
  5.50 244.50
  6.00 244.00
  6.50 213.50
  7.00 183.00
  7.50 152.50
  8.00 122.00
  8.50  91.50
  9.00  61.00
  9.50  30.50
 10.00   0.00
--------------------


Σχόλια ή Επεκτάσεις

 


©2006 Δρ. Β. Χ. Μούσας, Επικ. Καθ., e-mail Τ.Ε.Ι. ΑθήναςΤμήμα Πολιτικών Έργων Υποδομής