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: 



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
{ -----------------------------------------------------------------------------
   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