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 104 105 106 | { ----------------------------------------------------------------------------- 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 (radianak) rDatuaGradutan: real ; // laguntzailea (datua gradutan) rItzuliKopurua: real ; // laguntzailea (itzuliak) rItzuliOsoak: real ; // laguntzailea (itzuli osoak ahaztu) rItzulienHondarra: real ; // laguntzailea (itzulien hondarra) rGraduMoldatuak: real ; // laguntzailea (hondarra gradutan) iKoadrantea: integer ; // emaitza rGraduEfektiboak: real ; // emaitza rSinua: real ; // laguntzailea rKosinua: real ; // laguntzailea begin writeln ; writeln ( '//////////////////////////////////////////////////////////////////////////' ); writeln ; repeat writeln ( 'Eman edozein koadranteko angelu positiboa radianetan, adibidez:' ); writeln ( ' 32.76 radian badira, angelu efektiboa 1. koadrantekoa izango da' ); writeln ( ' 34.43 radian badira, angelu efektiboa 2. koadrantekoa izango da' ); writeln ( ' 28.31 radian badira, angelu efektiboa 3. koadrantekoa izango da' ); writeln ( ' 31.24 radian badira, angelu efektiboa 4. koadrantekoa izango da' ); 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' ); rItzuliOsoak := int(rItzuliKopurua); writeln ( 'rItzuliOsoak = ' : 35 , rItzuliOsoak: 0 : 5 , ' itzuli (itzuli osoak ahaztu)' ); 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 := rGraduMoldatuak - 180 ; 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
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.