Difference between revisions of "F90: Forca Cortante/Momento Fletor"
From AdonaiMedrado.Pro.Br
(New page: Este código foi desenvolvido pelos alunos Guilherme Piropo, Flávia Magali e Tácia Luciana durante a disciplina Processamento de Dados (UFBA 2008.2). Data da apresentação: 26/11/2008. ...) |
(No difference)
|
Revision as of 03:29, 27 November 2008
Este código foi desenvolvido pelos alunos Guilherme Piropo, Flávia Magali e Tácia Luciana durante a disciplina Processamento de Dados (UFBA 2008.2). Data da apresentação: 26/11/2008.
Para saber mais sobre Força Cortante e Momento Fletor:
- http://www.lmc.ep.usp.br/pesquisas/TecEdu/abdo/animacoes/Todosesfsol+bot+text.swf (Animação).
- http://www.cesec.ufpr.br/etools/firstapplets/faap/teoria1j.html
PROGRAM Viga REAL:: L,q,X,X1,L1,q1 INTEGER:: N, M, ERRO CHARACTER(LEN=256):: documento CHARACTER(LEN=10):: vigas WRITE(*,*) "Digite:" WRITE(*,*) "1: se deseja informar os dados através de um arquivo" WRITE(*,*) "2: se deseja digitar os dados" READ(*,*) M SELECT CASE (M) CASE (1) WRITE(*,*) "O arquivo deve conter o nome da viga (com 10 caracteres), seu comprimento(com 4 casa sendo 1 decimal)," WRITE(*,*) "a carga (com 4 casa sendo um decimal) e o ponto onde deve ser calculada a força e o momento (com 4 casa sendo um decimal)" WRITE(*,*) "Informe o nome do arquivo" READ(*,*) documento OPEN(UNIT=10, FILE= documento) OPEN(UNIT=11, FILE="saida.txt", ACCESS="APPEND") DO READ(10,"(A,F4.1,F4.1,F4.1)", IOSTAT=ERRO) vigas, L1, q1, X1 IF(ERRO/=0) EXIT WRITE(11,*) vigas, forca_cortante(X1,L1,q1), momento_fletor(X1,L1,q1) END DO CLOSE(10) CLOSE(11) CASE (2) WRITE(*,*) "Informe o comprimento da viga (em metros):" READ(*,*) L WRITE(*,*) "Informe a carga (em kN/m):" READ(*,*) q DO WRITE(*,*) "Digite:" WRITE(*,*) "1: obter a força cortante em um ponto x" WRITE(*,*) "2: obter o momento fletor em um ponto x" WRITE(*,*) "3: sair do programa" READ(*,*) N IF (N>=1 .AND. N<=2) THEN WRITE(*,*) "Informe o ponto:" READ(*,*) X IF (N==1) THEN WRITE(*,"(A,F10.3)") "A força vale:", forca_cortante(X,L,q) ELSE IF (N==2) THEN WRITE(*,"(A,F10.3)") "O momento vale:", momento_fletor(X,L,q) END IF ELSE IF (N==3) THEN EXIT END IF END DO CASE DEFAULT WRITE(*,*)"opcao inválida: o programa será abortado" END SELECT CONTAINS REAL FUNCTION forca_cortante (Y,L2,q2) REAL, INTENT(IN):: Y, L2,q2 IF (Y>L2) THEN WRITE(*,*) "Esse ponto nao pertence à viga" ELSE forca_cortante= (q2*L2/2 - q2*Y) END IF END FUNCTION forca_cortante REAL FUNCTION momento_fletor (Y,L2,q2) REAL, INTENT(IN):: Y, L2, q2 IF (Y>L2) THEN WRITE(*,*) "Esse ponto nao pertence à viga" ELSE momento_fletor= (q2*L2*Y/2 - q2*Y*Y/2) END IF END FUNCTION momento_fletor END PROGRAM Viga