Sunteți pe pagina 1din 6

Tematica edinei de laborator nr.

10 PROGRAME TURBO PASCAL


1. Calculul distanei cumulate i a cotei picheilor prin nivelment trigonometric S presupunem c pe profilul longitudinal al unui tronson de drum sunt amplasai n pichei. Pentru fiecare dintre pichei ne propunem s determinm distana orizontal cumulat pn la acesta precum i cota fiecrui pichet pornind de la cota cunoscut a primului pichet. Datele de teren necesare rezolvrii problemei sunt distanele !nclinate "dii# dintre doi pichei$ msurate cu teodolitul pe stadie% unghiurile verticale "uvi#$ reprezentnd !nclinarea terenului !ntre doi pichei. Pe teren s&au msurat unghiuri zenitale !n gradaie centesimal. De aceea$ unghiul vertical citit se corecteaz cu formula "'.'.#$ dup care se transform !n radiani cu relaia "'.(.#. uvi ) * uvi + ,-- * & 1-uvi )
uvi . ,--

"'.'# "'.(#

Distana cumulat "dc# se obine prin !nsumarea distanelor dintre doi pichei "distane reduse la orizont + oi#$ care$ la rndul su$ se calculeaz !n funcie de distana !nclinat "di i# + relaiile "'./.# i "'.0.# oi ) dii 1 cos, 1 uvi dc )
o
i= 1 n 1 i

"'./# "'.0#

2semntor$ cota cumulat "cc# se obine prin !nsumarea diferenelor de cot "difc i#$ care se calculeaz tot !n funcie de distana !nclinat + relaiile "'.3.# i "'.4.#. sin"uvi # difci ) o 1 "'.3# cos"uvi # cc )

difc
i= 1

n 1

"'.4#

Programul 5nivelment6trigonometric7 debuteaz cu citirea numrului de pichei "n# i a cotei iniiale "ci#$ apoi$ !ntr&un ciclu realizat cu instruciunea For$ citete pentru fiecare pichet "i#$ de la pichetul 1 pn la pichetul "n&1#$ unghiurile verticale "uv# i distanele !nclinate "di#. 8ntr&un al doilea ciclu For se calculeaz distana i cota cumulat$ afindu&le pentru fiecare pichet. Pro ram ni!elment"tri onometric# 9 Calculul distantei cumulate si a cotei prin metoda nivelmentului trigonometric : t;pe date)arra;<b;te= of real% var uv$di date% ci$o$dc$difc$cc real% i$n b;te % begin >rite"?@umar de picheti ) ?#% readln"n#% >rite"?Cota initiala ) ?#% readln"ci#% for i )1 to "n&1# do

begin >riteln"?Pichetul ?$i#% >rite"?Anghi vert.) ?#% readln"uv<i=#% >rite"?Dist. Bncl.) ?#% readln"di<i=#% end% dc )-% cc )ci% for i )1 to "n&1# do begin uv<i= )abs"uv<i=&,--#&1--% uv<i= )uv<i=.piC,--% o )di<i=.sDr"cos"uv<i=##% difc )o.sin"uv<i=#Ccos"uv<i=#% dc )dcEo% cc )ccEdifc% >riteln"?Pichet ?$iE1$F dist.cumul.)F$dc 1 ,$ ? cota)F$cc 1 ,#% end% end. Datele primare i rezultatele pentru programul nivelment6trigonometric Tabel 3.2. Pichet Anghi Distan Distan Cot vertical !nclinat cumulat cumulat 1 '',./( 4(.,' , ''(.03 40.(1 0(.-3 03-.G( ' ''/.,/ 44.,3 1,3.,G 3-G.,' ( ''1.4/ 4,.0( 1G1.1/ 3(4.31 / ''0.1( 4G.,/ ,/(.34 34'.(G 0 '',.3, 4,.3( '14.,' 4,'.G/ 3 ''(.(/ 30.,4 '4-.G3 4/G.'3 4 '',.,1 G,.4/ ('3.-1 4G'.-/ G /-4.-/ G',.(1 Numar de picheti = 9 Cota initiala = 635 Pichetul 1 n!hi vert.= 332.5" #i$t. %ncl.= &".23 Pichetul 2 n!hi vert.= 33".6' #i$t. %ncl.= &6."1 Pichetul 3 n!hi vert.= 335.25 #i$t. %ncl.= &&.2' Pichetul " n!hi vert.= 331.&5 #i$t. %ncl.= &2.6" Pichetul 5 n!hi vert.= 336.1" #i$t. %ncl.= &9.25 Pichetul 6 n!hi vert.= 332.'2

#i$t. %ncl.= &2.'" Pichetul ' n!hi vert.= 33"."5 #i$t. %ncl.= '6.2& Pichetul & n!hi vert.= 332.21 #i$t. %ncl.= 92.&5 Pichet 2 di$t.cumul.=6".(' Pichet 3 di$t.cumul.=12'.29 Pichet " di$t.cumul.=191.15 Pichet 5 di$t.cumul.=25".'& Pichet 6 di$t.cumul.=31&.23 Pichet ' di$t.cumul.=3&(.9' Pichet & di$t.cumul.="3'.(1 Pichet 9 di$t.cumul.=5(&.(5

cota=6'(.9" cota='(9.23 cota='"&.'1 cota='&3."9 cota=&23.95 cota=&59.3' cota=&93.(5 cota=932."1

,. Calculul suprafeei unui poligon pe cale analitic Helaia de calcul utilizat pentru determinarea suprafeei unui poligon pe cale analitic$ pornind de la coordonatele vrfurilor sale este S, ) unde S, reprezint suprafaa dubl a poligonului$ @I este numrul vrfurilor sale$ Ki i Ji sunt coordonatele fiecrui vrf B. Deoarece relaia de calcul este circular$ se impun urmtoarele precizri pentru B ) 1$ B 1 este @I "nu -#$ iar pentru B ) @I$ B + 1 este 1 "nu @I + 1#. 2lgoritmul care trebuie parcurs pentru rezolvarea problemei conine urmtorii pai 1. Citirea numrului de vrfuri @I i a coordonatelor fiecrui vrf% ,. Calculul valorii S, cu relaia "/.G.#$ punnd condiiile logice menionate pentru B ) 1 i B ) @I% '. Lbinerea suprafeei poligonului$ S$ cu semnul plus "poate iei negativ din cauza Mocului de coordonate i al sensului de parcurgere a poligonului#% (. 2fiarea rezultatului obinut. Programul 5suprafata6poligon7 este limitat la poligoane cu 1 la ,// de vrfuri "cei doi vectori K i J au cte ,/0 poziii$ de la - la ,//#. Ialorile B + 1 i B 1 au fost !nlocuite cu variabilele N i O. Pro ram $%&ra'ata"&oli on# 9 Calculul suprafetei unui poligon prin metoda analitica : t;pe coord ) arra;<b;te= of real% var n$i$M$P b;te% Q$; coord% s real% begin s )-%

K
i= 1

@I

"Ji+1 Ji1 #

"'.G#

>rite"R@umar de varfuri poligon)R#% read"n#% for i )1 to n do begin >rite"RQ"R$i$R#)R#% read"Q<i=#% >rite"R;"R$i$R#)R#% read";<i=#% end% for i )1 to n do begin M )i&1% if i)1 then M )n% P )iE1% if PSn then P )1% s )sEQ<i=.";<P=&;<M=#% end% s )abs"sC,#% >riteln"RSuprafata poligonului ) R$s$R mp.R#% end. Pentru eQecuia programului !n regim de trasare "F'# sugerm introducerea coordonatelor pentru un poligon cu trei vrfuri. Suprafaa calculat este afiat !n formatul numit 5virgul mobil7 S ) (.----------TE-( mp$ echivalnd cu (--- mp "(.---------- 1-(#. Scrierea cu acest format este indicat atunci cnd din calcule rezult valori mari i se dorete o !ncadrare a datelor fr efort de programare. Numar de varfuri poli!on=3 )*1+=23(( ,*1+=23(( )*2+=26(( ,*2+=2'(( )*3+=31(( ,*3+=31(( -uprafata poli!onului = ".((((((((((((((./(((" mp. '. Calculul orientrilor din coordonate S admitem c$ pornind de la coordonatele cunoscute ale unui numr de @P puncte$ ne propunem s determinm orientarea P&B dintre oricare dou puncte din cele date$ P "K P $JP# i B "KB $JB#. Dup cum se cunoate$ relaiile de calcul sunt difereniate pe cadrane conform precizrilor din tabelul '.'. Pentru a utiliza !ntotdeauna relaia de calcul corespunztoare cadranului !n care se gsete orientarea$ trebuie precizat cadranul prin compararea coordonatelor punctului B cu cele ale punctului P conform tabelului '.(. Helaiile pentru stabilirea formulei de calcul al orientrilor pe cadrane Tabel 3.3. Cadran%l (%ncia tri onometric) Orientarea B arctg

BB BBB BI

& arcctg arctg & arcctg

+ 1--g + ,--g + '--g

Cadran%l B BB BBB BI

Condiii de stabilire a cadranului Tabel 3.". Relaia dintre coordonate * + KB S KP JB U JP JB S JP KB KP KB V KP JB W JP KB U KP JB V JP

2lgoritmul pe care trebuie s&l parcurgem pentru rezolvarea problemei conine urmtorii pai 1. Citirea numrului de puncte @P i a coordonatelor celor @P puncte% ,. Bntroducerea numerelor de identificare a dou puncte B i P$ i calculul orientrii direciei formate de acestea% '. 2fiarea orientrii calculate% (. Tventuala reluare a eQecuiei pentru alte dou puncte. Programul 5orientari7 folosete variabila 5n7 pentru numrul de puncte @P$ iar pentru notaiile B i P folosete variabilele 5P7 i 5M7. Pentru calculul funciei arcctg"JCK#$ programul utilizeaz apelul funciei arctan"KCJ#. Ciclul care calculeaz i afieaz orientarea unei direcii este realizat cu instruciunile 0epeat i ntil$ iar oprirea eQecuiei este determinat de rspunsul 5@7 sau 5n7 la !ntrebarea 5Calculezi o noua orientareX "DC@# 7. Yaptul c tipul literei introduse "mare sau mic# este indiferent se datoreaz instruciunii pca$e "cont#$ care convertete coninutul variabilei 5cont7 !n liter mare. Yolosirea instruciunii 0ead1e, oblig introducerea declaraiei $e$ Crt la !nceputul programului. Pro ram orientari# 2 Calculul orientarilor din coordonate 3 u$e$ crt4 t;pe coord) arra;<b;te= of real% var n$i$M$P b;te% Q$; coord% teta real% cont char% begin >rite"R@umar de puncte)R#% read"n#% >riteln"RCoordonatele punctelorR#% for i )1 to n do begin >rite"RQ"R$i$R#)R#% read"Q<i=#% >rite"R;"R$i$R#)R#% read";<i=#% end% repeat >rite "RBntrodu simbolurile a doua puncteR#% >riteln"R pt.a calcula orientareaR#%

>rite"RPrimul punct )R#% read"M#% >rite"R2l doilea punct)R#% read"P#% if "Q<P=SQ<M=# and ";<P=S);<M=# then teta )arctan"";<P=&;<M=#C"Q<P=&Q<M=##.,--Cpi else if "Q<P=V)Q<M=# and ";<P=S;<M=# then teta )&arctan""Q<P=&Q<M=#C";<P=&;<M=##.,--CpiE1-else if "Q<P=VQ<M=# and ";<P=V);<M=# then teta )arctan"";<P=&;<M=#C"Q<P=&Q<M=##.,--CpiE,-else teta )&arctan""Q<P=&Q<M=#C";<P=&;<M=##.,--CpiE'--% >rite"RCalculezi o noua orientareX "DC@# R#% cont )readPe;% until upcase"cont#)R@R% end. Numar de puncte=5 Coordonatele punctelor )*1+=19(( ,*1+=23(( )*2+=2(5( ,*2+=255( )*3+=19(( ,*3+=265( )*"+=15(( ,*"+=2'(( )*5+=155( ,*5+=2"(( %ntrodu $imbolurile a doua puncte pt.a calcula orientarea Primul punct =2 5l doilea punct=" 6rientarea 27" e$te 1&3.("99 Calcule8i o noua orientare9 *#:N+;%ntrodu $imbolurile a doua puncte pt.a calcula orientarea Primul punct =5 5l doilea punct=3 6rientarea 573 e$te 39."&63 Calcule8i o noua orientare9 *#:N+;

S-ar putea să vă placă și