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. ...) |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | 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: | + | 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: 25/11/2008. |
Para saber mais sobre Força Cortante e Momento Fletor: | Para saber mais sobre Força Cortante e Momento Fletor: | ||
Line 17: | Line 17: | ||
SELECT CASE (M) | SELECT CASE (M) | ||
CASE (1) | CASE (1) | ||
− | WRITE(*,*) "O arquivo deve conter o nome da viga (com 10 caracteres), seu comprimento(com 4 casa sendo 1 decimal)," | + | WRITE(*,*) "O arquivo deve conter o nome da viga (com 10 caracteres), & |
− | 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)" | + | &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" | WRITE(*,*) "Informe o nome do arquivo" | ||
READ(*,*) documento | READ(*,*) documento | ||
Line 54: | Line 56: | ||
END DO | END DO | ||
CASE DEFAULT | CASE DEFAULT | ||
− | WRITE(*,*)" | + | WRITE(*,*)"Opcao inválida: o programa será abortado" |
END SELECT | END SELECT | ||
Line 61: | Line 63: | ||
REAL, INTENT(IN):: Y, L2,q2 | REAL, INTENT(IN):: Y, L2,q2 | ||
IF (Y>L2) THEN | IF (Y>L2) THEN | ||
− | WRITE(*,*) "Esse ponto | + | WRITE(*,*) "Esse ponto não pertence a viga." |
ELSE | ELSE | ||
forca_cortante= (q2*L2/2 - q2*Y) | forca_cortante= (q2*L2/2 - q2*Y) | ||
Line 70: | Line 72: | ||
REAL, INTENT(IN):: Y, L2, q2 | REAL, INTENT(IN):: Y, L2, q2 | ||
IF (Y>L2) THEN | IF (Y>L2) THEN | ||
− | WRITE(*,*) "Esse ponto | + | WRITE(*,*) "Esse ponto não pertence a viga." |
ELSE | ELSE | ||
momento_fletor= (q2*L2*Y/2 - q2*Y*Y/2) | momento_fletor= (q2*L2*Y/2 - q2*Y*Y/2) |
Latest revision as of 20:42, 30 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: 25/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 não pertence a 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 não pertence a viga." ELSE momento_fletor= (q2*L2*Y/2 - q2*Y*Y/2) END IF END FUNCTION momento_fletor END PROGRAM Viga