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

Ariketa 6 | Hiru mendietatik zeruertza kilometroetan

ZER DAKIDAN:
Badakit testuak eta konstanteen balioak pantailan idazten.



ZER IKASIKO DUDAN:
scanf() funtzioarari esker, teklatuaren bitartez, balio bat baino gehiago hartuz aldagai desberdinetan gorde daitekeela ikusiko dut (aldagai bakoitzari dagokion formatu-zehaztatzaileak modu egokian banatu beharko dira). Baina ikasiko dut irakurketa bakoitzeko scanf() funtzio bakarra erabili behar dudala.




Demagun itsasoaren ondoan gaudela eta urrunera, zeruertzera, begiratzen dugula. Zenbat kilometrotara batzen dira zerua eta itsasoa?

Beste modu batez galdetuta: Zenbat kilometrotara dago ostertza edo zeruertza?

Irudia handiago ikusteko bere gainean klik egin

Datuak:

  • fAltuera aldagaia, metrotan emandako altuera
  • R konstantea, Lurraren erradioa 6370 Km

Ezezaguna:

  • fDistantzia aldagaia, lortu nahi den distantzia kilometroetan

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

/* Ariketa-05_ZeruertzarenUrruntasuna: datuak teklatutik hartzen */
// sqrt() eta pow() funtzioa matematikoak ikasiko ditugu,
// horiek erabiltzeko "math.h" fitxategia derrigorrezkoa da.
// Programa honetan parentesien beharra berretsiko dugu.

/*
   Demagun itsasoaren ondoan gaudela eta urrunera, zeruertzera, begiratzen dugula.
   Zenbat kilometrotara batzen dira zerua eta itsasoa?
   Beste modu batez galdetuta: Zenbat kilometrotara dago ostertza edo zeruertza?

   Datuak:
        fAltuera aldagaia, metrotan emandako altuera
        R konstantea, lurraren erradioa 6370 Km
   Ezezaguna:
        fDistantzia aldagaia, lortu nahi den distantzia kilometroetan
*/

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

#define R 6370   // Lurraren erradioa Kilometroetan

int main()
{
   float fAltuera, fDistantzia;

   printf("\n\n");
   printf("Eman behatokiaren altuera metroetan (adibidez \"Atxarre\" 312): ");
   scanf("%f", &fAltuera);

   fDistantzia = sqrt(pow(fAltuera, 2) + 2*fAltuera*(R*1000));
// fDistantzia = sqrt(fAltuera*fAltuera + 2*fAltuera*R*1000);

   printf("\nZeruertzaren distantzia = %.2f m", fDistantzia);
   printf("\nZeruertzaren distantzia = %.2f Km", fDistantzia/1000);
   printf("\n\n");

   return 0;
}

Ariketa-05_ZeruertzarenUrruntasuna.cbp proiektu horren irteera bat hau izan daiteke:

Azpimarratu beharra dago iAltuera aldagaiaren eta iOinarria aldagaiaren helbideak eman beharko
zaizkiola
scanf() funtzioari. Horretarako, aldagaiaren identifikadorearekin batera & sinboloa erabiliko da





ESKATZEN DEN PROGRAMAREN BIGARREN BERTSIOA

Eredu den aurreko programaren aldaera eskatzen da. Programak, exekuzio bakoitzeko, hiru mendiren datuak hartuko ditu sekuentzialki eta hiru altuera horiekin zeruertzaren distantziak pantailaratu.

Oraintxe dakigunarekin, sarrerako datuak Burgoa (451 m), Katillotxu (336 m) eta Atxarre (312 m) balira, programa bat idatzi beharko genuke; baina sarrerako datuak Gaztelugatxe (79 m), Aketz (105 m) eta Gorbeia (1482 m) balira, beste programa desberdin bat idatzi beharko genuke. Esate baterako, datutzat Aketz (105 m), Garbola (477 m) eta OgoƱo (305 m) emanik, programaren irteera honelako zerbait izango litzateke hiru scanf() eginez:

Mendien altuerak ezagutzeko www.mendikat.net webgunea bisitatu

Baina, esan bezala, scanf() bakarrean irakurri nahi dira hiru mendiren altuerak, honela adibidez:

          scanf("%fm %fm %f", &fAltuera_1,  &fAltuera_2, &fAltuera_3);

Programaren irteera hau litzateke Aketz, Burgoa eta Garbola mendien datuak ematean:

scanf() funtzioak aldagai bat baino gehiago irakurriko duenean, derrigorrez
banatzaileren bat jarri beharko zaio formatu-zehaztatzaileen artean


Hona hemen Ariketa-06a_Zeruertza3Mendietatik.cbp proiektuaren main() funtzioa gordetzen duen main.c fitxategiaren edukia, non 3 irakurketak scanf() bakarrean egiten diren:

/* Ariketa-06a_Zeruertza3Mendietatik: datuak teklatutik hartzen */

// Programa honetan ikasiko dugu scanf() funtzioak 3 datu irakur
// ditzakeela eta datuak banatzeko guk aukeratutako karaktereak
// eman beharko direla.

/*
   Demagun itsasoaren ondoan gaudela eta urrunera, zeruertzera, begiratzen dugula.
   Zenbat kilometrotara batzen dira zerua eta itsasoa?
   Beste modu batez galdetuta: Zenbat kilometrotara dago ostertza edo zeruertza?

   Itsasertzeko mapa bat eskuratu eta hiru mendiren izena eta altuerak hartu
   ondoren dagozkien kalkuluak burutu.

   Datuak:
        fAltuera_1, fAltuera_2 eta fAltuera_3 aldagaiak, metrotan emandako altuerak
        R konstantea, lurraren erradioa 6370 Km
   Ezezaguna:
        fDistantzia_1, Distantzia_2 eta Distantzia_3 aldagaiak, lortu nahi diren
        distantzia kilometroetan

   Erakusten den mapa baliatuz, programak hiru mendiren datuak hartuko ditu sekuentzialki
   emaitzak lortzeko. Adibidez: Aketz (105 m), Burgoa (451 m) eta Garbola (477 m).
*/

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

#define R 6370   // Lurraren erradioa Kilometroetan

int main()
{
   float fAltuera_1, fDistantzia_1;
   float fAltuera_2, fDistantzia_2;
   float fAltuera_3, fDistantzia_3;

   printf("\n\n");
   printf("\tHIRU MENDIREN ALTUERAK METROTAN\n\n");
   printf("\tEman hiru mendiren altuerak 'm ' karaktere bikotez banaturik.\n");
   printf("\tAdibidez, datuak hauek izan daitezke: 105m 451m 477\n");
   printf("\tAdibidez, datuak hauek izan daitezke: 105m 451m 477m\n");
   printf("\tAdibidez, datuak hauek izan daitezke: 105m    451m    477\n");
   printf("\tBaina, sarrera ezin daiteke hau izan: 105 m 451m 477\n");
   printf("\tBaina, sarrera ezin daiteke hau izan: 105M 451m 477\n\n");

   printf("\tEman, hurrenez hurren, \"Aketz\", \"Burgoa\" eta \"Garbola\" mendien\n");
   printf("\taltuerak metroetan:   ");
   scanf("%fm %fm %f", &fAltuera_1, &fAltuera_2, &fAltuera_3);

   fDistantzia_1 = sqrt(pow(fAltuera_1, 2) + 2*fAltuera_1*(R*1000));
   fDistantzia_2 = sqrt(pow(fAltuera_2, 2) + 2*fAltuera_2*(R*1000));
   fDistantzia_3 = sqrt(pow(fAltuera_3, 2) + 2*fAltuera_3*(R*1000));

   printf("\n\tAketzetik ostertzaren distantzia  = %.2f Km", fDistantzia_1/1000);
   printf("\n\tBurgoatik ostertzaren distantzia  = %.2f Km", fDistantzia_2/1000);
   printf("\n\tGarbolatik ostertzaren distantzia = %.2f Km", fDistantzia_3/1000);
   printf("\n\n");

   return 0;
}


Hona hemen Ariketa-06b_Zeruertza3Mendietatik.cbp proiektuaren main() funtzioa gordetzen duen main.c fitxategiaren edukia, non datu bakoitzaren irakurketa bere scanf() funtzio berezituan egiten den:

/* Ariketa-06b_Zeruertza3Mendietatik: datuak teklatutik hartzen */

// Programa honetan ikasiko dugu scanf() funtzioa erabiliko
// dugunean datu bakar bat irakurriko dugula.

/*
   Demagun itsasoaren ondoan gaudela eta urrunera, zeruertzera, begiratzen dugula.
   Zenbat kilometrotara batzen dira zerua eta itsasoa?
   Beste modu batez galdetuta: Zenbat kilometrotara dago ostertza edo zeruertza?

   Itsasertzeko mapa bat eskuratu eta hiru mendiren izena eta altuerak hartu
   ondoren dagozkien kalkuluak burutu.

   Datuak:
        fAltuera_1, fAltuera_2 eta fAltuera_3 aldagaiak, metrotan emandako altuerak
        R konstantea, lurraren erradioa 6370 Km
   Ezezaguna:
        fDistantzia_1, Distantzia_2 eta Distantzia_3 aldagaiak, lortu nahi diren
        distantzia kilometroetan

   Erakusten den mapa baliatuz, programak hiru mendiren datuak hartuko ditu sekuentzialki
   emaitzak lortzeko. Adibidez: Aketz (105 m), Burgoa (451 m) eta Garbola (477 m).
*/

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

#define R 6370   // Lurraren erradioa Kilometroetan

int main()
{
   float fAltuera_1, fDistantzia_1;
   float fAltuera_2, fDistantzia_2;
   float fAltuera_3, fDistantzia_3;

   printf("\n\n");
   printf("\tHIRU MENDIREN ALTUERAK METROTAN\n");
   printf("\t(Datu bakoitzeko bere irakurketa propioa egingo dugu)\n\n");

   printf("\tEman \"Aketz\" mendiaren altuera metroetan:   ");
   scanf("%f", &fAltuera_1);
   printf("\tEman \"Burgoa\" mendiaren altuera metroetan:  ");
   scanf("%f", &fAltuera_2);
   printf("\tEman \"Garbola\" mendiaren altuera metroetan: ");
   scanf("%f", &fAltuera_3);

   fDistantzia_1 = sqrt(pow(fAltuera_1, 2) + 2*fAltuera_1*(R*1000));
   fDistantzia_2 = sqrt(pow(fAltuera_2, 2) + 2*fAltuera_2*(R*1000));
   fDistantzia_3 = sqrt(pow(fAltuera_3, 2) + 2*fAltuera_3*(R*1000));

   printf("\n\tAketzetik ostertzaren distantzia  = %.2f Km", fDistantzia_1/1000);
   printf("\n\tBurgoatik ostertzaren distantzia  = %.2f Km", fDistantzia_2/1000);
   printf("\n\tGarbolatik ostertzaren distantzia = %.2f Km", fDistantzia_3/1000);
   printf("\n\n");

   return 0;
}






  • Ariketa-06a_Zeruertza3Mendietatik.cbp | main.c     (honela ez egin)
  • Ariketa-06b_Zeruertza3Mendietatik.cbp | main.c     (gomendatuta)

 

iruzkinik ez:

Argitaratu iruzkina