2023(e)ko urtarrilaren 29(a), igandea

2. astea | kartesiar-polar (radianetan)

Zenbaki errealekin lan eginez, puntu baten koordenatu kartesiarrak ezagutzen dira eta dagozkien koordenatu polarrak lortu behar dira (alfa angeluaren balioa radianetan eskatzen da). Ariketa honetan ondoko bi funtzio estandar hauek aplikatu behar dira:


  • sqrt() funtzioak zenbaki baten erro karratua ematen du, emaitza zenbaki erreal bat izango da

  • arctan() funtzioak tangente bati dagokion angelua ematen du radianetan, emaitza zenbaki erreal bat izango da










Ariketa:


XY planoan dagoen rP puntu baten koordenatu kartesiarretan teklatutik irakurri. rP puntuari dagozkion koordenatu polarrak lortu.


rP puntuaren koordenatu polarraren angelua gradu-minutu-segundotan radianetan pantailaratu.






Hauxe izan daiteke balizko kodifikazio bat:



{-----------------------------------------------------------
Demagun P puntua lehen koadrantean dagoela, hots,
P puntuaren koordenatu biak positiboak direla.

Kontuz P puntua OY ardatzean dagoenean. Adibidez:
P(0.0, 7.2) denean Alfa angeluaren tangenteak
infinitu balioko du eta ondorioz exekuzio-denborako
errorea gertatuko da.
-----------------------------------------------------------}
PROGRAM KartesiarPolar ;

VAR
rPx, rPy, rDist, rAng : Real ;

BEGIN
WriteLn('//////////////////////////////////////') ;
WriteLn ;

Write('P puntuaren x koordenatua eman: ':40) ; { sarrera hau kontrolatu beharko litzateke ezin daitekeelako 0.0 izan }
ReadLn(rPx) ;
Write('P puntuaren y koordenatua eman: ':40) ;
ReadLn(rPy) ;

rDist := sqrt(sqr(rPx) + sqr(rPy)) ;
rAng := arctan(rPy / rPx) ;

WriteLn ;
WriteLn('OP Distantzia = ':24, rDist:0:5, ' unitate') ;
WriteLn('Alfa angelua = ':24, rAng:0:5, ' radian') ;

WriteLn ;
WriteLn('Koordenatuak: (':25, rPx:0:3, ', ', rPy:0:3, ') = [', rDist:0:3, ' | ', rAng:0:3, ']') ;

WriteLn ;
WriteLn('//////////////////////////////////////') ;
ReadLn ;
END. { PROGRAMAREN BUKAERA }





iruzkinik ez:

Argitaratu iruzkina