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