| ZER DAKIDAN: Sekuentzialki multzokatzen diren aginduak ezagutzen ditut, bide desberdinak erabakitzeko baldintzazko aginduak (if eta switch) ezagutzen ditut. Datuak teklatuz modu kontrolatuan jasotzeko do-while agindu errepikakorra ere erabili izan dut. ZER IKASIKO DUDAN: Agindu errepikakorrekin jarraituz for ikasiko dut. |
C programazioan, begizta bat erabiltzen da kode bloke bat hainbat aldiz errepikatzeko. Begizta bat osatzeko for agindua da modurik trinkoena da.
|
Hona hemen 1 eta 5 zenbakiak inprimatzen dituen adibide sinple bat:
Baldintzak adierazten duen egoera faltsua denean (iKont-ek 6 balioko duenean), |
Ondoko adibidea aztertu non do-while aginduari esker ziurtatzen da iZbk datu positiboa den, eta, for aginduari esker lFakt faktoriala kalkulatzen den.
Hona hemen Ariketa-20a_FaktorialaKalkulatzen.cbp proiektuaren main() funtzioa gordetzen duen main.c fitxategiaren edukia:
/* Ariketa-20a_FaktorialaKalkulatzen: for aginduaren adibidea. */
// Zenbaki osoekin lan egingo dugu, iZbk teklatuaren bitartez
// irakurri eta lFakt=iZbk! faktoriala kalkulatu for bitartez.
#include <stdio.h> // printf() funtzioarako
int main()
{
int iZbk, iKont;
long lFakt;
printf("\n");
printf("\n Kopuru osoko eta positiboekin lan egingo da");
printf("\n -------------------------------------------\n");
printf("\n Zenbaki osoa eta positiboa eman eta dagokion");
printf("\n faktoriala kalkulatu eta pantailaratuko da.\n\n");
do
{
printf(" Zenbaki osoa eta positiboa eman (5 adibidez): ");
scanf("%d", &iZbk);
} while (iZbk < 0);
lFakt = 1;
for (iKont=1; iKont<=iZbk; iKont++)
{
lFakt = lFakt*iKont;
printf("\n \t %d iterazioan lFakt= %ld", iKont, lFakt);
}
printf("\n\n \t \t %d! = %ld", iZbk, lFakt);
printf("\n\n");
return 0;
}
Ondoko adibidea aztertu non do-while aginduari esker ziurtatzen da iBerretzailea datu positiboa den, eta, for aginduari esker 2 konstantearen lBerredura potentzia kalkulatzen den. Lortutako emaitzaren zuzentasuna konprobatuko dugu pow(2, iBerretzailea) funtzioa aplikatuz.
Hauxe da potenzia edo berredura kalkulatzen duen Ariketa-20b_PotentziaKalkulatzen.cbp proiektuaren main.c fitxategiaren edukia:
/* Ariketa-20b_PotentziaKalkulatzen: for aginduaren adibidea. */
// Zenbaki osoekin lan eginez, iBerretzailea teklatuz irakurri
// eta 2^iBerretzailea potentzia kalkulatu for bitartez, emaitza
// konprobatuko dugu pow(2, iBerretzailea) funtzioa aplikatuz.
// ADI: Emaitza long bada 31 datuarekin gainezkatzea gertatzen da.
#include <stdio.h> // printf() funtzioarako
#include <math.h> // pow() funtzioarako
#define OINARRIA 2
#define MUGA 30
int main()
{
int iBerretzailea, iKont;
long lBerredura;
printf("\n");
printf("\n Kopuru osoko eta positiboekin lan egingo da");
printf("\n -------------------------------------------\n");
printf("\n iBerretzailea zenbaki osoa eta positiboa eman eta dagokion");
printf("\n 2^iBerretzailea potentzia (edo berredura) kalkulatuko da.\n\n");
do
{
printf(" Berretzailea adierazten duen zenbaki osoa eta positiboa eman (5 adibidez): ");
scanf("%d", &iBerretzailea);
if ((iBerretzailea < 0) || (iBerretzailea > MUGA))
printf(" Datua 0 eta %d artekoa (biak barne) \n", MUGA);
} while ((iBerretzailea < 0) || (iBerretzailea > MUGA));
lBerredura = 1;
for (iKont = 1; iKont <= iBerretzailea; iKont++)
{
lBerredura = lBerredura*OINARRIA;
printf("\n \t %2d iterazioan lBerredura= %ld", iKont, lBerredura);
}
printf("\n\n \t \t 2^%d = %ld", iBerretzailea, lBerredura);
printf("\n \t pow(2, %d) = %.0f", iBerretzailea, pow(2, iBerretzailea));
printf("\n\n");
return 0;
}

iruzkinik ez:
Argitaratu iruzkina