2024(e)ko abenduaren 1(a), igandea

Ariketa 9 | Kartesiar-Polar

ZER DAKIDAN:
Badakit sqrt(), pow() eta fabs() funtzio estandarrak erabiltzeko math.h fitxategiaren sartzea egingo dugula programaren hasieran #include <math.h> idatziz.



ZER IKASIKO DUDAN:
Teklatuz irakurritako aldagaiaren egokitasuna ziurtatzen ikasiko dut do-while agindu errepikakoraren bitartez. Bide batez, atan() funtzio estandarra ikasiko dut.


Ikasi beharreko hitzak
  Hitza  Deskribapena  edo/eta  adibidea
  Konpiladore Programa bat da. Labur esanda, programa honen bitartez iturburu-fitxategitik (guk idatzi eta irakur dezakegun testu-fitxategitik) dagokion programa exekutagarriaren fitxategi bitarra lortzen da.
  Ihes-sekuentzia Ihes-sekuentzia (edo karaktere berezi) teklatuaren bitartez ezin daitekeen eman karakterea da, adibidez \n karakterea.
  Formatu-
  zehaztatzaile
Aldagai baten edukia pantailan idaztean nola aurkeztu nahi den aukeratzeko balio du; esate baterako %d bitartez zenbaki osoa ikusiko da pantailan, baina %c bitartez karaktere bat ikusiko da.
  Aurreprozesadore Programa hau konpiladorea baino lehen jarduten da, bere lana kodea prestatzea da (#include eta #define guztiak burutu, iruzkinak kendu, e.a.).
  Sartzea Fitxategia sartzea. #include FitxategiIzen aurre-prozesadorearen jarraibideari esker FitxategiIzen fitxategiaren edukia gure programara gehitzen zaio.
  Definitzea Konstantea definitzea. #define Identifikadore BalioKonstantea bitartez konstanteak defini daitezke.
  Funtzio Kode zati bat da helburu jakin bat betetzen duena. Emaitza itzul dezake eta behar dituen datuei parametro esaten zaie.
  Parametro
  (argumentu)
Funtzio bati ematen zaion datua. Parametroren bat funtzioari pasatzean bi modutan egin daiteke: balioz ala erreferentziaz.
  Datu-mota Programa batean erabiliko ditugun magnitudeak izaera bat daukate: zenbaki osoa, zenbaki erreala, karakterea, e.a. Horiek adierazteko datu-motak erabiltzen dira.
  Iruzkin Programa azaltzen duen testua.
  Esleipen-
  operadorea
C-rako, esleipena operadore bat da, esleipen-operadorea deritzona (=), eta operadore guztien artean lehentasun txikiena du.
  Operadore
  aritmetiko
Operadore edo eragile aritmetikoen adibideak hauek dira: + batuketa-operadorea, - kenketa operadorea, * biderkatzeko operadorea, / zatitzeko operadorea, % zatiketa osoaren hondarra lortzeko operadorea, ...
  Operadore logiko Operadore edo eragile logikoak hiru dira: ! ukapen logikoa (ez/not), && konjuntzioa edo biderketa logikoa (eta/and), || disjuntzioa edo batuketa logikoa (edo/or).
  Operadore
  erlazional
Operadore erlazionalak edo erlaziozko eragileak sei dira: > handiago, >= handiago edo berdin, < txikiago, <= txikiago edo berdin, == berdin, != desberdin.





ESKATZEN DEN PROGRAMA

Zenbaki errealekin lan eginez, puntu baten koordenatu kartesiarrak ezagutzen dira eta dagozkien koordenatu polarrak lortu behar dira.

Ariketa:
Lehen koadrantean dagoen P puntu baten koordenatu kartesiarretan teklatutik irakurri eta P puntuari dagozkion koordenatu polarrak lortu (distantzia metrotan eta angelua radianetan).

Adi!!! P puntuaren Px koordenatua ezin daiteke 0 izan, bestela α angeluaren tangenteak infinitu balioko du.

P puntuaren koordenatu polarraren angelua gradu-minutu-segundotan pantailaratzen laster ikasiko dugu.


Hauxe izan daiteke Ariketa-09_KartesiarPolar.cbp proiektua exekutatzean lortzen den irteeraren bat:

Ariketa honetan sqrt(), pow() eta atan() funtzio estandarrak erabiltzen dira



Hona hemen Ariketa-09_KartesiarPolar.cbp proiektuaren main() funtzioa gordetzen duen main.c fitxategiaren edukia:

/* Ariketa-09_KartesiarPolar: erabakiak hartzen */

// fabs(), sqrt() eta pow()  funtzio matematikoak ikasiko ditugu,
// horiek erabiltzeko "math.h" fitxategia derrigorrezkoa da.
// if agindua ikasiko dugu.
// do-while agindua ikasiko dugu
// Programa honetan '\a' karaktere berezia erabiliko dugu.

// XY planoan dagoen P puntu baten koordenatu kartesiarretan (fPx, fPy) teklatutik
// irakurri eta P puntuari dagozkion koordenatu polarrak lortu (distantzia, angelua).
// Tangentea fPy/fPx denez, abzisa den fPx koordenaturako zero balioa ez da onartuko.
// P puntuaren koordenatu polarraren angelua radianetan pantailaratu.
// P puntuaren koordenatu polarraren angelua gradu-minutu-segundotan pantailaratzea
// aurrerago ikusiko dugun ariketa baten helburua izango da.

#include <stdio.h>
#include <math.h>

int main()
{
   float fPx, fPy, fDist, fAng;

   printf("\n\nZenbaki errealekin lan eginez...\n\n");

   do
   {
      printf("\"P\" puntuaren x koordenatua eman: ");
      scanf("%f", &fPx);
      if (fPx == 0.0)
         printf("\a\"P\" puntuaren abzisa ezin daiteke 0.0  izan\n");
   } while (fPx == 0.0);

   printf("\"P\" puntuaren y koordenatua eman: ");
   scanf("%f", &fPy);

   fDist = sqrt(pow(fPx, 2) + pow(fPy, 2));
   fAng = atan(fPy/fPx);

   printf("\nOP Distantzia = %f unitate", fDist);
   printf("\nAlfa angelua  = %f radian", fAng);
   printf("\n\nKoordenatuak:   (%.3f, %.3f) = [%.3f | %.3f]", fPx, fPy, fDist, fAng);
   printf("\n\n");

   return 0;
}


  • Ariketa-09_KartesiarPolar.cbp | main.c  

 

iruzkinik ez:

Argitaratu iruzkina