ZER DAKIDAN: if baldintzazko egitura eta if-else baldintzazko egitura menperatzen ditut. ZER IKASIKO DUDAN: Aldagai aukeratzailea zenbaki oso bat izanik, switch baldintzazko egitura ikasiko dut. |
Ariketa 13 | Ekuazioa sistema artikulua edo Ariketa 14 | Bigarren graduko ekuazioa artikulua gogora ekarriz, programaren fluxua desbideratu daiteke if agiduari esker eta if-else aginduari esker. Baina fluxuaren aukerak hiru edo gehiago direnean switch kontrol-agindua erabil daiteke.
ESKATZEN DEN PROGRAMA
Demagun lurrazaleko lau leku ditugula, bakoitza hemisferiko banakoa. Lau lekuak hauek dira: 1 Adelaide, 2 Brasilia, 3 Calgary eta 4 Donetsk. Lau leku horiek zenbaki oso baten bitartez identifikatuko ditugu. Zenbaki identifikatzailea teklatuz irakurri eta balioaren arabera, lurrazaleko lekuari dagokion informazioa pantailaratu:
1 identifikatzailea: Adelaide 2 identifikatzailea: Brasilia 3 identifikatzailea: Calgary 4 identifikatzailea: Donetsk |
LASTER ESKATUKO DEN PROGRAMA
char datu mota ikasiko dugunean, sarrerako datua zenbaki bat izan ordez karaktere bat izango da: A Adelaide, B Brasilia, C Calgary eta D Donetsk. Beraz, ataria identifikatzeko sarrerako datua A, B, C edo D letrak izango dira. Bide batez, laster eskatuko den programa horretan, system("cls") aginduaren bitartez, pantaila garbitzen ikasiko dugu ere.
Esan bezala, switch batean aukeratzailea balio diskretua izango da beti, ikusi zer gertatzen den 1 eta 2 arteko balio zatigarria aukeratzen bada:August 6, 2020
switch baldintzazko aginduak aldagai aukeratzaile bat darabil eta aukeratzaile hori datu-mota ordinal bat izango da (zenbaki osoa adibidez edo karakterea adibidez). Sintaxiari dagokiolarik, switch kontrol-aginduan break bati esker bukatzen da agindua hurrengo aukerak ebaluatu gabe.
Ebaluazio baten nota adierazten duen zenbaki osoa irakurri ondoren dagokion hitzezko kalifikazioa pantailaratu:
![]() |
Hau da Ariketa-18a_AukeraAnitzenArtekoHautapena.cbp proiektuaren iturburu-programa |
Ebaluazio baten nota adierazten duen zenbaki ez-osoa irakurri eta dagokion hitzezko kalifikazioa pantailaratu:
![]() |
Ariketa-18b1_AukeraAnitzenArtekoHautapena.cbp proiektuaren kodea non esparruak mugatzeko baldintza konposatua daukaten hainbat if kontrol-egiturak erabiltzen diren |
Goian erakutsi den Ariketa-18b1_AukeraAnitzenArtekoHautapena.cbp proiektuaren baldintza konposatuak sahiestu ahal izateko if-else sorta bat kateatuz lor daiteke; esate baterako, Ariketa-18b2_AukeraAnitzenArtekoHautapena.cbp proiektuan egiten den bezala. Lehen if-aren bitartez behemuga zaintzen da eta azken else-aren bitartez goimuga zaintzen da, tartean dauden else if bikoteak bloke bana definitzen du. Kodea ikusi:
/* Ariketa-18b2_AukeraAnitzenArtekoHautapena: Zenbaki errealekin, kalifikazioak pantailaratu. */ // switch kontrol-agindua ezin daiteke erabili aldagai aukeratzailea // float bat delako, horregatik if-else kateatuekin programatuko da. #include <stdio.h> #define NOTAMINIMOA 0.0 #define NOTAMAXIMOA 10.0 int main() { float fNota; printf("\n"); printf("\n Notari dagokion zenbakia eman"); printf(" (0.0 eta 10.0 arteko datua): "); scanf("%f", &fNota); if (fNota <= 0.0) printf("\n Nota %.1f eta %.1f artean egongo da!", NOTAMINIMOA, NOTAMAXIMOA); else if (fNota < 3.0) printf("\n %.2f puntu | Oso txarto!", fNota); else if (fNota < 5.0) printf("\n %.2f puntu | Txarto!", fNota); else if (fNota < 6.0) printf("\n %.2f puntu | Nahiko!", fNota); else if (fNota < 7.0) printf("\n %.2f puntu | Ondo!", fNota); else if (fNota < 9.0) printf("\n %.2f puntu | Oso ondo!", fNota); else if (fNota <= 10.0) printf("\n %.2f puntu | Bikain!", fNota); else // bestelako daturik ematean printf("\n Nota %.1f eta %.1f artekoa izango da!", NOTAMINIMOA, NOTAMAXIMOA); printf("\n\n"); return 0; }
|
iruzkinik ez:
Argitaratu iruzkina