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