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

Ariketa 13 | Ekuazio-sistema

ZER DAKIDAN:
Badakit testu bat pantailan idazten. Badakit aldagaien balioak teklatuz irakurtzen eta zenbakizko datuekin eragiketa matematikoak egiten. Baina, edozein datuekin programaren agindu guzti-guztiak exekutatzen dira.



ZER IKASIKO DUDAN:
Erabakiak hartzen ikasiko dut. Horrela, datuaren arabera programaren agindu batzuk exekutatuko dira ala ez. Adibide honetan baldintzazko if agindua ikasiko dut eta do agindu errepikakorra landuko dut ere.


Ikasi beharreko hitzak
  Hitza  Deskribapena  edo/eta  adibidea
  Konpiladore Programa bat da. Labur esanda, programa honen bitartez iturburu-fitxategitik (guk idatzi eta irakur dezakegun testu-fitxategitik) dagokion programa exekutagarriaren fitxategi bitarra lortzen da.
  Ihes-sekuentzia Ihes-sekuentzia (edo karaktere berezi) teklatuaren bitartez ezin daitekeen eman karakterea da, adibidez \n karakterea.
  Formatu-
  zehaztatzaile
Aldagai baten edukia pantailan idaztean nola aurkeztu nahi den aukeratzeko balio du; esate baterako %d bitartez zenbaki osoa ikusiko da pantailan, baina %c bitartez karaktere bat ikusiko da.
  Aurreprozesadore Programa hau konpiladorea baino lehen jarduten da, bere lana kodea prestatzea da (#include eta #define guztiak burutu, iruzkinak kendu, e.a.).
  Sartzea Fitxategia sartzea. #include FitxategiIzen aurre-prozesadorearen jarraibideari esker FitxategiIzen fitxategiaren edukia gure programara gehitzen zaio.
  Definitzea Konstantea definitzea. #define Identifikadore BalioKonstantea bitartez konstanteak defini daitezke.
  Funtzio Kode zati bat da helburu jakin bat betetzen duena. Emaitza itzul dezake eta behar dituen datuei parametro esaten zaie.
  Parametro
  (argumentu)
Funtzio bati ematen zaion datua. Parametroren bat funtzioari pasatzean bi modutan egin daiteke: balioz ala erreferentziaz.
  Datu-mota Programa batean erabiliko ditugun magnitudeak izaera bat daukate: zenbaki osoa, zenbaki erreala, karakterea, e.a. Horiek adierazteko datu-motak erabiltzen dira.
  Iruzkin Programa azaltzen duen testua.
  Esleipen-
  operadorea
C-rako, esleipena operadore bat da, esleipen-operadorea deritzona (=), eta operadore guztien artean lehentasun txikiena du.
  Operadore
  aritmetiko
Operadore edo eragile aritmetikoen adibideak hauek dira: + batuketa-operadorea, - kenketa operadorea, * biderkatzeko operadorea, / zatitzeko operadorea, % zatiketa osoaren hondarra lortzeko operadorea, ...
  Operadore logiko Operadore edo eragile logikoak hiru dira: ! ukapen logikoa (ez/not), && konjuntzioa edo biderketa logikoa (eta/and), || disjuntzioa edo batuketa logikoa (edo/or).
  Operadore
  erlazional
Operadore erlazionalak edo erlaziozko eragileak sei dira: > handiago, >= handiago edo berdin, < txikiago, <= txikiago edo berdin, == berdin, != desberdin.





ESKATZEN DEN PROGRAMA

Cramer-en metodoa egokia da ekuazio linealen sistemak ebazteko. Hona hemen ekuazio-sistema bat eta ikusi nola lortzen den bere ebazpena koefizienteen determinanteak erabiliz:

Koefiziente guztiak zenbaki errealak izanik, koefizienteak teklatuaren bitartez irakurri eta sistemaren ebazpena pantailan idatzi.  

Sarrerako datuak kontrolatzen ez badira eta A·E - B·D = 0 baldin bada, programa konpilagarria izango da, baina errorea gertatuko da exekuzio-denboran.

Konpilatu izanak ez du esan nahi programa ondo dagoenik

Hauxe izan daiteke Ariketa-13_Ekuazio-sistema.cbp proiektua exekutatzean lortzen den irteeraren bat:

Erabiltzaileak emandako datuen arabera programak era batean ala bestean erantzuten du



/* Ariketa-13_Ekuazio-sistema: erabakiak hartzen */
// if agindua ikasiko dugu.
// do-while agindua ikasiko dugu
// Programa honetan '\a' karaktere berezia erabiliko dugu.

/*
XY planoan dauden bi zuzenek (fAx+fBy=fC eta fDx+fEy=fF) P puntuan bat egiten dute
baldin eta paraleloak ez badira. Bi zuzenen 6 koefizienteak teklatuz eman eta
P puntuaren (fPx, fPy) koordenatu kartesiarrak kalkulatu.
*/

#include <stdio.h>

int main()
{
   float fPx, fPy, fAx, fBy, fC, fDx, fEy, fF, fDeterminantea;

   printf("\n\nZenbaki errealekin lan eginez...\n\n");

   printf("\"Ax+By=C\" lehen zuzenaren \"A\" koefizientea eman: ");
   scanf("%f", &fAx);
   printf("\"Ax+By=C\" lehen zuzenaren \"B\" koefizientea eman: ");
   scanf("%f", &fBy);
   printf("\"Ax+By=C\" lehen zuzenaren \"C\" koefizientea eman: ");
   scanf("%f", &fC);
   printf("\n");
   do
   {
      printf("\"Dx+Ey=F\" bigarren zuzenaren \"D\" koefizientea eman: ");
      scanf("%f", &fDx);
      printf("\"Dx+Ey=F\" bigarren zuzenaren \"E\" koefizientea eman: ");
      scanf("%f", &fEy);
      printf("\"Dx+Ey=F\" bigarren zuzenaren \"F\" koefizientea eman: ");
      scanf("%f", &fF);

      fDeterminantea = fAx*fEy - fBy*fDx;

      if (fDeterminantea == 0.0)
         printf("\a\nErrorea! Zuzenak paraleloak dira elkarrekiko\n\n");
   } while (fDeterminantea == 0.0);

   fPx = (fC*fEy - fBy*fF) / fDeterminantea;
   fPy = (fF*fAx - fDx*fC) / fDeterminantea;

   printf("\nP puntuaren koordenatuak:  P(%.3f, %.3f)", fPx, fPy);
   printf("\n\n");

   return 0;
}


  • Ariketa-13_Ekuazio-sistema.cbp | main.c  

 

iruzkinik ez:

Argitaratu iruzkina