Программа 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():

>