2023(e)ko otsailaren 4(a), larunbata

3. astea | angelua 1. koadrantera eraman

Demagun angelu bat irakurriko dugula teklatuaren bitartez, bere balioa aldagai erreal batean gordez. Berdintsu litzateke angelua radianetan zein graduetan ematea, edozein modutan honelako lau egoera batean egongo ginateke:


































Goiko irudi horietan erakusten den bezala, datua den angelua handia denean, hainbat bira eman ondoren koadranteren batean eroriko da. Datua den angeluaren baliokidea kalkulatzea helburutzat harturik, emaitza bi hauek zehaztu behar ditugu:


  • Teklatuz eman den angeluaren koadrantea

  • 1. koadranteko angelu efektiboa



Emaitza horiek lortzeko bidean, sarrerako datuak izan ditzakeen soberazko birak kentzea da lehen lana. Soberazko birak kendu ondoren jarraian erakusten diren egoerak izango genitzake. Non, sarrerako angeluaren koadrantea ezaguna delarik, helburuko angelu efektiboa kenketa batez kalkulatzen den:



































Hona hemen balizko programaren irteera bat:






Eta hemen programaren kodea: 



{ -----------------------------------------------------------------------------
Edozeien koadranteko angelua eman radianetan eta 1. koadranteko
angelu baliokidea kalkulatu graduetan. Horrek esan nahi du emaitzak
bi izango direla:
- jatorrizko angeluaren koadrantea
- 1. koadranteko angelu efektiboa
-----------------------------------------------------------------------------}

program Radianak_1_KoadranteraEraman;
var
rDatuaRadianetan: real; // datua
rDatuaGradutan: real; // laguntzailea
rItzuliKopurua: real; // laguntzailea
rItzulienHondarra: real; // laguntzailea
rGraduMoldatuak: real; // laguntzailea
iKoadrantea: integer; // emaitza
rGraduEfektiboak: real; // emaitza
rSinua: real; // laguntzailea
rKosinua: real; // laguntzailea
begin
writeln;
writeln('//////////////////////////////////////////////////////////////////////////');
writeln;

repeat
writeln('Edozein koadranteko angelu positiboa eman radianetan, adibidez:');
writeln(' 32.76 radian 1. koadranteko angelua izan dadin');
writeln(' 34.43 radian 2. koadranteko angelua izan dadin');
writeln(' 28.31 radian 3. koadranteko angelua izan dadin');
writeln(' 31.24 radian 4. koadranteko angelua izan dadin');
write('Radianak eman: ');
readln(rDatuaRadianetan);
until rDatuaRadianetan >= 0.0;

writeln;
writeln('-----Gradu Moldatuak kalkulatu-------------------------------------');

writeln('rDatuaRadianetan = ':35, rDatuaRadianetan:0:5, ' radian');

rDatuaGradutan := (rDatuaRadianetan*360)/(2*PI);
writeln('rDatuaGradutan = ':35, rDatuaGradutan:0:5, ' gradu');

rItzuliKopurua := rDatuaGradutan/360;
writeln('rItzuliKopurua = ':35, rItzuliKopurua:0:5, ' itzuli');

rItzulienHondarra := frac(rItzuliKopurua);
writeln('rItzulienHondarra = ':35, rItzulienHondarra:0:5, ' itzuli');

rGraduMoldatuak := rItzulienHondarra*360;
writeln('rGraduMoldatuak = ':35, rGraduMoldatuak:0:5, ' gradu');

writeln;
writeln('-----Koadrantea eta gradu efektiboak kalkulatu---------------------');

if (rGraduMoldatuak < 90.0) and (rGraduMoldatuak >= 0.0) then
begin
iKoadrantea := 1;
rGraduEfektiboak := rGraduMoldatuak;
end;

if (rGraduMoldatuak < 180.0) and (rGraduMoldatuak >= 90.0) then
begin
iKoadrantea := 2;
rGraduEfektiboak := 180 - rGraduMoldatuak;
end;

if (rGraduMoldatuak < 270.0) and (rGraduMoldatuak >= 180.0) then
begin
iKoadrantea := 3;
rGraduEfektiboak := 270 - rGraduMoldatuak;
end;

if (rGraduMoldatuak < 360.0) and (rGraduMoldatuak >= 270.0) then
begin
iKoadrantea := 4;
rGraduEfektiboak := 360 - rGraduMoldatuak;
end;

writeln('Koadrantea = ':35, iKoadrantea, '. koadrantea');
writeln('rGraduEfektiboak = ':35, rGraduEfektiboak:0:5, ' gradu');

writeln;
writeln('-----Emaitzak konprobatu sin() eta cos() funtzioak aplikatuz-------');

writeln('Datua den angeluaren sinua = ':35, sin(rDatuaRadianetan):8:5);
rSinua := sin(rGraduEfektiboak*(2*PI)/360);
if (iKoadrantea = 3) or (iKoadrantea = 4) then
rSinua := -rSinua;
writeln('Angelu efektiboaren sinua = ':35, rSinua:8:5);

writeln('Datua den angeluaren kosinua = ':35, cos(rDatuaRadianetan):8:5);
rKosinua := cos(rGraduEfektiboak*(2*PI)/360);
if (iKoadrantea = 2) or (iKoadrantea = 3) then
rKosinua := -rKosinua;
writeln('Angelu efektiboaren kosinua = ':35, rKosinua:8:5);

writeln;
writeln('//////////////////////////////////////////////////////////////////////////');

writeln; writeln; writeln; writeln;
readln;
end.



 


iruzkinik ez:

Argitaratu iruzkina