2024(e)ko otsailaren 1(a), osteguna

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 }

Radian >>> Gradu-Minutu-Segundo

Lortutako rAng angelua radianetan ematen du arctan() funtzioak, graduetara bihur daiteke honela: rGraduak := rAng*180/PI; (angelua gradutan). Ondoren, minutuak eta segunduak kalkulatuko dira:

Ikusi 2. astea | radianak bihurtu gradu-minutu-segundo artikulua

 

iruzkinik ez:

Argitaratu iruzkina

Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.