programare avansata pe calculator in constructii

9
Universitatea Tehnică “Gheorghe Asachi” Iaşi Facultatea de Construcţii şi Instalaţii Masterand: Lupu Razvan INGINERIA CLADIRILOR TEMA NR. 3

Upload: dumea-liviu

Post on 16-Sep-2015

217 views

Category:

Documents


2 download

DESCRIPTION

cxcsd

TRANSCRIPT

Universitatea Tehnic Gheorghe Asachi IaiFacultatea de Construcii i Instalaii

TEMA NR. 3

Masterand: Lupu Razvan INGINERIA CLADIRILORNR. ORD. 28

GRINDA SIMPLU REZEMAT1.Enunul problemeiS se calculeze lungimea grinzii,reaciunile i s se traseze diagramele de for tietoare i de moment pentru grinda simplu rezemat de mai jos:

Fig.1 2.Analiza problemeiDate de intrare: a,b,c,d,e,f ,M1, q1, P1,q2, P2,mx;Date de ieire: L;VA;VB; diagrama de for tietoare i de momentMetoda de rezolvare: L=a+b+c+d+e+fVA=(M1+P1*(b+c+d+e+f)+M2-q1*d/2*(f+e+d/3)+q2*e*(f+e/2))/LVB=(-M1+P1*a-M2-q1*d/2*(a+b+c+2*d/3)+q2*e*(a+b+c+d+e/2))/Lverif=VA+VB-P1+q1*d/2-q2*eunde:L-lungimea total a grinziiVA-reaciunea n reazemul AVB-reaciunea n reazemul Bpx(i)=(i-1)*L/(mx-1)py(i)- graficul pentru diagrama forei tietoarepz(i)-graficul pentru diagrama de momenti=1,mxi- pasul problemei3.Programarea problemeiPentru rezolvarea problemei sa folosit limbajul de programare Fortran 90 n cadrul mediului de programare Microsoft Visual Studio 2008,iar afiarea graficului s-a fcut n Array Visualizer. !Masterand Lupu Razvanprogram Tema3! Acest program traseaza graficele T si M pentru o grinda s.r.use iflogmimplicit noneinclude 'resource.fd'type(dialog) numintinteger rezcharacter*20 sirexternal cheama,graficeinteger daterreal a,b,c,d,e,f,q1,q2,P1,M1,M2,L,VA,VB,verifcommon a,b,c,d,e,f,q1,q2,P1,M1,M2,L,VA,VB,verif,dater

dater=1 !date eronate

rez=dlginit(fereastra,numint)rez=dlgsetsub(numint,txta,cheama)rez=dlgsetsub(numint,txtb,cheama)rez=dlgsetsub(numint,txtc,cheama)rez=dlgsetsub(numint,txtd,cheama)rez=dlgsetsub(numint,txte,cheama)rez=dlgsetsub(numint,txtf,cheama)rez=dlgsetsub(numint,txtM1,cheama)rez=dlgsetsub(numint,txtM2,cheama)rez=dlgsetsub(numint,txtq1,cheama)rez=dlgsetsub(numint,txtq2,cheama)rez=dlgsetsub(numint,txtP1,cheama)rez=dlgsetsub(numint,tras,grafice)rez=dlgmodal(numint)

print *, 'Sfarsitul programului' read * end program Tema3

subroutine cheama(numint,ctrl,ce)use iflogmimplicit noneinclude 'resource.fd'type(dialog) numintinteger rez,ctrl,ce,er1,er2,er3,er4,er5,er6,er7,er8,er9,er10,er11character*20 sirinteger daterreal a,b,c,d,e,f,q1,q2,P1,M1,M2,L,VA,VB,verifcommon a,b,c,d,e,f,q1,q2,P1,M1,M2,L,VA,VB,verif,dater

rez=dlgget(numint,txta,sir)read(sir,1,iostat=er1) a1 format(f15.0)rez=dlgget(numint,txtb,sir)read(sir,1,iostat=er2) brez=dlgget(numint,txtc,sir)read(sir,1,iostat=er3) crez=dlgget(numint,txtd,sir)read(sir,1,iostat=er4) drez=dlgget(numint,txte,sir)read(sir,1,iostat=er5) erez=dlgget(numint,txtf,sir)read(sir,1,iostat=er6) frez=dlgget(numint,txtM1,sir)read(sir,1,iostat=er7) M1rez=dlgget(numint,txtP1,sir)read(sir,1,iostat=er8)P1rez=dlgget(numint,txtM2,sir)read(sir,1,iostat=er9) M2rez=dlgget(numint,txtq1,sir)read(sir,1,iostat=er10) q1rez=dlgget(numint,txtq2,sir)read(sir,1,iostat=er11) q2if ((er1==0).and.(er2==0).and.(a>0.).and.(b>0.)& .and.(er3==0).and.(er4==0).and.(c>0.).and.(d>0.)& .and.(er5==0).and.(er6==0).and.(e>0.).and.(f>0.)& .and.(er7==0).and.(er8==0).and.(er9==0)& .and.(er10==0).and.(er11==0))then rez=dlgset(numint,txtmesaj,'date corecte') dater=0 !date corecte L=a+b+c+d+e+f VA=(M1+P1*(b+c+d+e+f)+M2-q1*d/2*(f+e+d/3)+q2*e*(f+e/2))/L VB=(-M1+P1*a-M2-q1*d/2*(a+b+c+2*d/3)+q2*e*(a+b+c+d+e/2))/L verif=VA+VB-P1+q1*d/2-q2*e write(sir,2)L 2 format(f5.2) rez=dlgset(numint,txtL,sir) write(sir,3)VA 3 format(f8.3) rez=dlgset(numint,txtVA,sir) write(sir,3)VB rez=dlgset(numint,txtVB,sir) write(sir,3)verif rez=dlgset(numint,txtverif,sir) else rez=dlgset(numint,txtmesaj,'eroare') dater=1 !date incorecte rez=dlgset(numint,txtL,'') rez=dlgset(numint,txtVA,'') rez=dlgset(numint,txtVB,'') rez=dlgset(numint,txtverif,'')endif

end subroutine cheama

subroutine grafice()use iflogmuse avfrtuse avobjmodimplicit noneinclude 'resource.fd'type(dialog) numint

integer rezinteger daterreal a,b,c,d,e,f,q1,q2,P1,M1,M2,L,VA,VB,verifcommon a,b,c,d,e,f,q1,q2,P1,M1,M2,L,VA,VB,verif,dater integer,parameter::mx=1001 real px(mx),py(mx),pz(mx) !px=x,py=forta taietoare,pz=moment incovoietor integer i,st,vid,hroot,hg if(dater==0)then write(*,*)'Se traseaza diagramele' do i=1,mx px(i)=(i-1)*L/(mx-1) if(px(i)