Program na vřpoŔet ˙nosnosti zßkladovej p˘dy podÁa STN 731001 a ENV 1997-1

Delphi & Pascal (Ŕeskß wiki)
P°ejÝt na: navigace, hledßnÝ
Kategˇria: Programy v Pascale

Autor: Miroslav ╚ernř
Program: Geo5.pas
S˙bor exe: Geo5.exe
S˙bor ubuntu: Geo5
PotrebnÚ: Vypocet.txt

Program na vřpoŔet ˙nosnosti zßkladovej p˘dy podÁa STN 731001 a ENV 1997-1. Vhodnř len pre użÝvateÁov poznaj˙cich vstupnÚ parametre.
{ GEO5.PAS                                                          }
{ Program na vypocet unosnosti zakladovej pody podla STN 731001     }
{ a ENV 1997-1.                                                     }
{ Vhodny len pre uzivatelov poznajucich vstupne parametre.          }
{                                                                   }
{ Author: Miroslav Cerny                                            }
{ Datum: 18.07.2006                           http://www.trsek.com  }
 
program Unosnost_zakladovej_pody;
var nd1:real;
  R,idel,ibel,icel,gd,gb,gc,Hb,Hl,Nbe,sce,Reb,Rel,pomo,pomo1,ggg:real;
  a:integer;
  Nc,Nd,Nb,c,l,b,d,g1,g2,Sc,Sd,Sb,dc,db,dd,ic,id,ib,dt,f,H,V,Be,ideb,ibeb,iceb:real;
  nazov:string;
  Ff:text;
 
 
begin
  Assign(Ff,'vypocet.txt');  { Standard output }
  append(Ff);
 
  writeln;writeln(Ff);
  for a:=1 to 68 do write('-'); writeln;
  for a:=1 to 68 do write(Ff,'-');  writeln(Ff);
  writeln ('  Únosnosť základovej pôdy podľa STN 731001 a ENV 1997-1');
  writeln (Ff,'  Unosnost zakladovej pody podla STN 731001 a ENV 1997-1');
  for a:=1 to 68 do write('-');
  for a:=1 to 68 do write(Ff,'-');
  writeln;
  writeln(Ff);
  writeln('POKYNY:');
 
  writeln;
  writeln('- pri výpočte zadávajte vstupné parametre v uvedených jednotkách');
  writeln('- desatinné miesta oddeľujte bodkou');
  writeln('- na prechod k ďalšiemu kroku výpočtu stlačte klávesu " ENTER "');
  writeln('- ak chcete získať výpočtovú únosnosť zeminy zadajte');
  writeln('  výpočtové parametre šmykovej pevnosti zeminy');
  writeln('- v prípade vstupov pre Eurokód zadávajte extrémne zložky zaťaženia');
  writeln;
  writeln;
  write('VSTUPY:'); 
  writeln('  (Pre spustenie výpočtu stlačte klávesu " ENTER")');
 
  writeln(Ff,'VSTUPY:');
  writeln(Ff);
  readln;
  write('Zadajte nazov vypoctu:'); readln(nazov);
  writeln(Ff,'Nazov vypoctu je ',nazov);
  writeln(Ff);
 
  repeat
    write ('Zadajte hodnotu súdržnosti zeminy (kPa) c='); read(c);
    if c < 0 then 
       writeln('Pozor súdržnosť zeminy nemôže byť záporná!');
  until  c>=0;
 
  writeln (Ff,'Sudrznost zeminy  c=',c:4:2,'kPa');
  repeat
    write ('Zadajte uhol vnútorného trenia zeminy (v stupňoch) f='); read(f);
    if f<0 then 
       writeln('Pozor uhol vnútorného trenia zeminy nemôže byť záporný!');
  until  f>=0;writeln (Ff,'Uhol vnutorneho trenia zeminy  f=',f:4:2,'stupnov');
 
  f:=f*3.14159265359/180 ;
  repeat
    write('Zadajte objemovú tiaž zeminy nad základovou škárou (kN/m3) ');read(g1);
    if g1<=0 then 
       writeln('Hodnota nemôže byť záporná!');
  until  g1>=0;
 
  writeln (Ff,'Objemova tiaz zeminy nad zakladovou skarou  =',g1:4:2,'kN/m3');
  repeat
  write('Zadajte objemovú tiaž zeminy pod základovou škárou (kN/m3) ');read(g2);
  if g2<=0 then 
     writeln('Hodnota nemôže byť záporná!');
  until  g2>=0;
 
  writeln (Ff,'Objemova tiaz zeminy pod zakladovou skarou  =',g2:4:2,'kN/m3');
  repeat
    write('Zadajte efektívnu šírku základu (m) b='); read(b);
    if b<=0 then 
       writeln('Hodnota nemôže byť záporná!');
  until  b>=0;
 
  writeln (Ff,'Efektivna sirka zakladu  b=',b:4:2,'m');
  repeat
    write('Zadajte efektívnu dĺžku základu (m) l='); read(l);
    if l<=0 then 
       writeln('Hodnota nemôže byť záporná!');
  until  l>=0;
 
  writeln (Ff,'Efektivna dlzka zakladu  l=',l:4:2,'m');
  repeat
    write('Zadajte hĺbku založenia základu (m) d='); read(d);
    if d<=0 then 
       writeln('Hodnota nemôže byť záporná!');
  until  d>=0;
 
  writeln (Ff,'Hlbka zalozenia zakladu  d=',d:4:2,'m');
  write('Zadajte odklon zaťaženia od zvislice (v stupňoch) dt='); read(dt);
  writeln (Ff,'Odklon zatazenia od zvislice  dt=',dt:4:2,'stupnov');
  dt:=dt*3.14159265359/180 ;
  writeln;
  writeln('Dodatočné vstupy pre výpočet podľa návrhu európskej normy ENV 1997-1');
  writeln;
 
  repeat
    write('Zadajte horizontálne zaťaženie základu rovnobežné s jeho šírkou (kN) Hb='); read(Hb);
    if Hb<=0 then 
       writeln('Hodnota je predpokladaná ako kladná!');
  until  Hb>=0;
 
  writeln (Ff,'Horizontalne zatazenie zakladu rovnobezne s jeho sirkou  Hb=',Hb:4:2,'kN');
  repeat
    write('Zadajte horizontálne zaťaženie základu rovnobežné s jeho dĺžkou (kN) Hl='); read(Hl);
    if Hl<=0 then 
       writeln('Hodnota je predpokladaná ako kladná!');
  until  Hl>=0;
 
  writeln (Ff,'Horizontalne zatazenie zakladu rovnobezne s jeho dlzkou  Hl=',Hl:4:2,'kN');
  repeat
    write('Zadajte vertikálne zaťaženie základu (kN) V='); read(V);
    if V<=0 then 
       writeln('Hodnota nemôže byť záporná!');
  until  V>=0;
 
  writeln (Ff,'Vertikalne zatazenie zakladu   V=',V:4:2,'kN');
  repeat
    write('Zadajte sklon terénu (v stupňoch) Be='); read(Be);
    if Be<=0 then 
       writeln('Hodnota je predpokladaná ako kladná!');
  until  Be>=0; writeln (Ff,'Sklon terenu  Be=',Be:4:2,'stupnov');
 
  Be:=Be*3.14159265359/180 ;
 
 
  writeln; writeln(Ff);
 
  writeln('MEDZIVÝSLEDKY - STN 731001 (ENV 1997-1):');
  writeln(Ff,'MEDZIVYSLEDKY - STN 731001 (ENV 1997-1):');
  for a:=1 to 68 do write('-'); writeln;
 
  writeln;writeln(Ff);
  writeln('Hodnoty súčiniteľov únosnosti:');
  writeln(Ff,'Hodnoty sucinitelov unosnosti:');
  writeln;writeln(Ff);
 
  nd1:=sin(45*3.14159265359/180+f/2)/cos(45*3.14159265359/180+f/2);
  Nc:=(exp(3.14159265359*(sin(f)/cos(f)))*sqr(nd1)-1)*(cos(f)/sin(f));
  writeln('Nc=',Nc:4:3);
  writeln(Ff,'Nc=',Nc:4:3);
 
  Nd:=exp(3.14159265359*(sin(f)/cos(f)))*sqr(nd1);
  writeln('Nd=',Nd:4:3);
  writeln(Ff,'Nd=',Nd:4:3);
 
  Nb:=1.5*(exp(3.14159265359*(sin(f)/cos(f)))*sqr(nd1)-1)*(sin(f)/cos(f));
  Nbe:=2*(exp(3.14159265359*(sin(f)/cos(f)))*sqr(nd1)-1)*(sin(f)/cos(f));
  write('Nb=',Nb:4:3);writeln(',    (podľa ENV 1997-1) Nb=',Nbe:4:3);
  write(Ff,'Nb=',Nb:4:3);writeln(Ff,',    (podla ENV 1997-1) Nb=',Nbe:4:3);
  writeln; writeln(Ff);
  writeln('Hodnoty súčiniteľov tvaru základu:');
  writeln(Ff,'Hodnoty sucinitelov tvaru zakladu:');
  writeln; writeln(Ff);
 
  Sd:=1+((b/l)*sin(f));
  writeln('Sd=',Sd:4:3);
  writeln(Ff,'Sd=',Sd:4:3);
 
  Sb:=1-(0.3*b/l);
  writeln('Sb=',Sb:4:3);
  writeln(Ff,'Sb=',Sb:4:3);
 
  Sc:=1+(0.2*b/l);
  Sce:=((Sd*Nd)-1)/(Nd-1);
  write('Sc=',Sc:4:3);writeln(',    (podľa ENV 1997-1) Sc=',Sce:4:3);
  write(Ff,'Sc=',Sc:4:3);writeln(Ff,',    (podla ENV 1997-1) Sc=',Sce:4:3);
  writeln; writeln(Ff);
  writeln('Hodnoty súčiniteľov vplyvu hĺbky založenia:');
  writeln;
  writeln(Ff,'Hodnoty sucinitelov vplyvu hlbky zalozenia:');
  writeln(Ff);
 
  dc:=1+0.1*sqrt(d/b);
  writeln('dc=',dc:4:3);
  writeln(Ff,'dc=',dc:4:3);
  dd:=1+0.1*sqrt(d*sin(2*f)/b);
  writeln('dd=',dd:4:3);
  writeln(Ff,'dd=',dd:4:3);
  db:=1;
  writeln('db=',db:4:3);
  writeln(Ff,'db=',db:4:3);
  writeln; writeln(Ff);
  writeln('Hodnoty súčiniteľov vplyvu šikmého zaťaženia:');
  writeln(Ff,'Hodnoty sucinitelov vplyvu sikmeho zatazenia:');
  writeln;writeln(Ff);
 
  id:=(1-(sin(dt)/cos(dt)))*(1-(sin(dt)/cos(dt)));
  writeln('id=ib=ic=',id:4:3);
  writeln(Ff,'id=ib=ic=',id:4:3);
 
  idel:=1- (Hl/(V+(b*l*c*(cos(f)/sin(f)))));
  icel:=(idel*Nd-1)/(Nd-1);
  pomo:=(1-((0.7*Hb)/(V+(b*l*c*(cos(f)/sin(f))))));
  ideb:=pomo*pomo*pomo;
  pomo1:=(1-((Hb)/(V+(b*l*c*(cos(f)/sin(f))))));
  ibeb:=pomo1*pomo1*pomo1;
  iceb:=((ideb*Nd)-1)/(Nd-1);
  writeln;
  writeln('(podľa ENV 1997-1)');
  writeln(Ff,'(podla ENV 1997-1)');
  writeln('(pre horizontálne zaťaženie rovnobežné s dĺžkou základu)');
  write('id=',Idel:4:3);write(',ib=',Idel:4:3); writeln(',ic=',Icel:4:3);
  writeln(Ff,'(pre horizontalne zatazenie rovnobezne s dlzkou zakladu)');
  write(Ff,'id=',Idel:4:3);write(Ff,',ib=',Idel:4:3); writeln(Ff,',ic=',Icel:4:3);
  writeln('(pre horizontálne zaťaženie rovnobežné so šírkou základu)');
  write('id=',Ideb:4:3);write(',ib=',Ibeb:4:3); writeln(',ic=',Iceb:4:3);
  writeln(Ff,'(pre horizontalne zatazenie rovnobezne so sirkou zakladu)');
  write(Ff,'id=',Ideb:4:3);write(Ff,',ib=',Ibeb:4:3); writeln(Ff,',ic=',Iceb:4:3);
  writeln;writeln(Ff);
  writeln('Hodnoty súčiniteľov vplyvu šikmého terénu:');
  writeln(Ff,'Hodnoty sucinitelov vplyvu sikmeho terenu:');
  writeln;writeln(Ff);
 
  ggg:=(1-(0.5*((sin(Be/180)/cos(Be/180)))));
  gd:=ggg*ggg*ggg*ggg*ggg;
  gc:=1-((2*Be)/(3.14159265359+2));
  write('gd=gb=',gd:4:3); writeln(',gc=',gc:4:3);
  write(Ff,'gd=gb=',gd:4:3); writeln(Ff,',gc=',gc:4:3);
 
  writeln;writeln(Ff);
  writeln;writeln(Ff);
  writeln('VÝSLEDKY:');
  writeln(Ff,'VYSLEDKY:');
 
  for a:=1 to 68 do write('-'); writeln;
  writeln;writeln(Ff);
  writeln;writeln(Ff);
 
  R:=(c*Nc*Sc*dc*id)+(g1*d*Nd*Sd*dd*id)+(g2*0.5*b*Nb*Sb*db*id);
  Reb:=(c*Nc*Sce*dc*iceb*gc)+(g1*d*Nd*Sd*dd*ideb*gd)+(g2*0.5*b*Nbe*Sb*db*ibeb*gd);
  Rel:=(c*Nc*Sce*dc*icel*gc)+(g1*d*Nd*Sd*dd*idel*gd)+(g2*0.5*b*Nbe*Sb*db*idel*gd);
  writeln('Únosnosť podložia vypočítaná podľa STN 731001 je R = ',R:4:1,'kPa');
  writeln('Únosnosť podložia vypočítaná podľa ENV 1997-1 je R = ',Reb:4:1,'kPa');
  writeln('(horizontálne zaťaženie pôsobí v smere rovnobežnom so šírkou základu)');
  writeln('Únosnosť podložia vypočítaná podľa ENV 1997-1 je R = ',Rel:4:1,'kPa');
  writeln('(horizontálne zaťaženie pôsobí v smere rovnobežnom s dĺžkou základu)');
  writeln(Ff,'Unosnost podlozia vypocitana podla STN 731001 je R = ',R:4:1,'kPa');
  writeln(Ff,'Unosnost podlozia vypocitana podla ENV 1997-1 je R = ',Reb:4:1,'kPa');
  writeln(Ff,'(horizontalne zatazenie posobi v smere rovnobeznom so sirkou zakladu)');
  writeln(Ff,'Unosnost podlozia vypocitana podla ENV 1997-1 je R = ',Rel:4:1,'kPa');
  writeln(Ff,'(horizontalne zatazenie posobi v smere rovnobeznom s dlzkou zakladu)');
  readln;writeln(Ff);
 
  writeln;
  writeln('Celý výpočet je uložený v textovom súbore vypocet.txt !');
  for a:=1 to 68 do write('-'); writeln;
 
  writeln('Naprogramoval Miroslav Černý');
  writeln(Ff,'Tento program bol vytvoreny hlavne z dovodu precvicenia si programovania.');
  writeln('Pripomienky a dotazy mi môžete napísať na email: cerny@orangemail.sk');
  writeln(Ff,'Pripomienky a dotazy mi mozete napisat na email: cerny@orangemail.sk');
  writeln('Ďakujem Vám!');
  writeln(Ff,'Dakujem Vam!');
  writeln;
 
  Close(Ff);
 
  writeln(' (Program ukončíte stlačenim klávesy "ENTER")');
  readln;
end.