Программа 4. Растяжение бруса c.137
| > | restart; |
| > | BRUSModule:=module() |
| > | export Udlin,runBRUS: |
| > | Udlin:=proc() local P,N,l,F,DL,gmma,dl,sigma,n,i,j,E1,G,eps: |
| > | use Maplets[Tools] in |
| > | l:=Get('TL'::list); # Длины, м |
| > | F:=Get('TF'::list)/1e4;# Площади, см2 |
| > | P:=Get('TP'::list); # Силы, кН |
| > | gmma:=Get('Tgm'::integer);# Удельный вес, Н/м3 |
| > | E1:=Get('TE'::float)*1e9; # Модуль упругости 1ГПа=1e9Н/м2 |
| > | n:=nops(l): # Число нагрузок |
| > | N[0,2]:=0: |
| > | DL:=0: |
| > | for i to n do |
| > | G:=gmma*l[i]*F[i]: #Вес |
| > | N[i,1]:=N[i-1,2]+P[i]*1000:#Усилие в нижнем конце участка |
| > | N[i,2]:=N[i,1]+G: #Усилие в верхнем конце |
| > | for j to 2 do |
| > | sigma[j]:=N[i,j]/(F[i]): #Напр |
| > | eps[j]:=sigma[j]/E1: #Деформац |
| > | od; |
| > | dl[i]:=(eps[1]+eps[2])/2*l[i]:#Удлинение |
| > | DL:=DL+dl[i]: #Общее удлинение |
| > | od: |
| > | DL*1000;# Общее удлинение в мм |
| > | end use: |
| > | end proc: |
| > |
| > | runBRUS:=proc() |
| > | local a,c1,mplt; |
| > | use Maplets:-Elements in |
| > | a[1]:=["[L ]=",TextField['TL']('value'=[3,2,3],'tooltip'="Введите длины, м")]: |
| > | a[2]:=["[F ]=",TextField['TF']('value'=[24,29,31],'tooltip'="Введите площади, см2")]: |
| > | a[3]:=["[P]=",TextField['TP']('value'=[-63,108,-42],'tooltip'="Введите силы, кН")]: |
| > | a[4]:=[" g =",TextField['Tgm']('value'=78000,'tooltip'="gamma, Н/м3")]: |
| > | a[5]:=[" E =",TextField['TE']('value'=200.,'tooltip'="E, ГПа")]: |
| > | c1:=Button("Run",Evaluate(sigm=Udlin)): |
| > | mplt:= Maplet(Window('title'="РАСТЯЖЕНИЕ бруса", |
| > | ["Сопротивление материалов", |
| > | [ BoxColumn(seq(a[i],i=1..5)), |
| > | [c1,["Перемещение=",TextField['sigm']()," мм"]] |
| > | ] #BoxColumn |
| > | ] |
| > | ) #Window |
| > | ):#Maplet |
| > | Maplets:-Display(mplt): |
| > | end use; |
| > | end proc; |
| > | end module: |
| > | BRUSModule:-runBRUS(): |
| > |