| ZER DAKIDAN: Kaixo mundua! programa egin ondoren, badakit testu bat pantailan idazten. ZER IKASIKO DUDAN: Testu bat eta bi zenbaki (bat osoa eta bestea erreala) pantailaratzen ikasiko dut. Datuak pantailan idaztean, balio bakoitzari berari dagokion formatua eman ahal zaiola ikasiko dut; honelaxe adibidez: printf("Kopurua = %4d", iZbk) non iZbk zenbaki osoa den. Bide batez aldagaiak nola deklaratzen diren ikasiko dut eta aldagai bati balioa nola ematen zaion ikasiko dut. |
| 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 PROGRAMAREN IRTEERA
Kaixo mundua! programatik abiatuta, Ariketa-02c_DatuKonstanteakFormatuarekin.cbp proiekua garatu zeinek bere exekuzioan ondoko informazioa modu kontrolatuan pantailaratuko duen:
![]() |
| printf() funtzioak testuak eta zenbakizko aldagaien balioak pantailara ditzake |
Hiru lerro ikus daitezke, testua eta zenbakiak agertzen dira (zenbaki bat osoa eta bestea erreala, datu-mota biren arteko aldea hemen azaldu zen). Hiru lerroak ezkerreko mugatik tabuladore baten distantziara hasten dira. Zenbakien eta haien ezkerreko karakterearen distantziak zehatzak dira 10 eta 12. Zenbaki errealak bi dezimal erakusten ditu. Lehen lerroko informazioari aldaketak egin zaizkio eta balio berriak hirugarren lerroan aurkezten dira.
Has gaitezen testuak eta zenbakien balioak pantailatzetik. Horretarako, hona hemen Ariketa-02a_DatuKonstanteakFormatuarekin.cbp proiekuaren main.c fitxategiaren edukia non printf() desberdinak idatzi diren:
- Argumentu bakarra denean, karaktere-kate konstante bat izango da
- Argumentu bat baino gehiago denean, lehen argumentua karaktere-kate konstantea izango da
/* Ariketa-02a_DatuKonstanteakFormatuarekin: datu konstanteak pantailaratzen */
// Dagoeneko printf() funtzioa erabili dugu.
// Programa honetan printf() funtzioan datuak formatuarekin jarriko dira pantailan.
// Programa honetan %s, %d eta %f formatu-zehaztatzaileak erabiliko dira.
// Programa honetan #define klausula erabiliko da.
#include <stdio.h>
#define IZENA "Elisa" // izena, karaktere-katea
#define URTEAK 19 // adina urteetan, zenbaki osoa
#define KILOAK 55.859 // masa kilogramoetan, zenbaki erreala
int main()
{
printf("\n\n");
printf(" 1 2 2 3 4 4 5 6\n");
printf("123456789012345678901234567890123456789012345678901234567890\n");
printf("------------------------------------------------------------\n");
printf("%10s", IZENA);
printf("%15d urte", URTEAK);
printf("%18.2f kg", KILOAK);
printf("\n\n");
printf(" 1 2 3 4 5 6\n");
printf("123456789012345678901234567890123456789012345678901234567890\n");
printf("------------------------------------------------------------\n");
printf("%3s", IZENA);
printf("%1d urte", URTEAK);
printf("%0.1f kg", KILOAK);
printf("\n\n");
return 0;
}
Programaren 8. lerroan, stdio.h liburutegia sartzeko beharra adierazten da (bestela, printf() funtzioa ezezaguna izango litzateke konpiladorearentzat).
10., 11. eta 12. lerroetan hiru konstante definitzen dira, konstanteari dagokion identifikadorea eta konstaneari dagokion balioa. aldagaiak adierazten dira, eta gai horri buruz aurrerago itzuliko gara. Orain bakarrik jakin behar dugu int eta float hitz erreserbatuak direla, eta iUrteak eta fKiloak aldagaien identifikadoreak direla.
17. eta 18. lerroetan erreferentziak izango diren zenbakiak idazten dira, distantzia esanguratsuak 10, 15 eta 18 izango dira. Erreferentziak idatziko dira ere 25. eta 26. lerroetan, baina distantzia esanguratsuak 3, 1 eta 0 izango dira.
Beste lerroetan printf() desberdinak egiten dira, printf() bana magnitude bakoitzeko: testua, zenbaki osoa eta zenbaki erreala. Lehen idazketa testu bati dagokio eta formatu-espezifikatzailea %s izango da (adibidez %10s edo %3s). Bigarren idazketa kopuru osoarena da eta formatu-espezifikatzailea %d izango da (adibidez %15d edo %1d). Hirugarren idazketa zenbaki errealena da eta bere formatu-espezifikatzailea %f izango da (adibidez %18.2f edo %0.1f).
Ikus daiteke ere zenbait printf() funtzioetan \n ihes-sekuentzia erabili dela. Ariketa honetan \t ihes-sekuentzia berria ikasiko dugu (\t ihes-sekuentzia = 8 zuriuneko tokia).
Hona hemen Ariketa-02a_DatuKonstanteakFormatuarekin.cbp proiekua exekutatzean lortzen den irteera:
![]() |
| %s formatu-espezifikatzailea aztertzen dira, %d, formatu-espezifikatzailea eta %f formatu-espezifikatzailea aztertzen dira |
Zer gertatu da %3s, %1d eta %0.1f formatu-espezifikatzaileen aginduekin?
Ariketa-02b programa hau aurreko Ariketa-02a programaren bezalakoa da, haien arteko aldea formatu-espezifikatzailetan dago eta bi konstante aldagai bihurtu direla. Ariketa-02b programan formatuak honela aukeratu dira: %6d eta %9.2f. Ikusi 13. eta 14. lerroetan bi aldagai adierazten direla, gai honi buruz aurrerago itzuliko gara; orain bakarrik jakin behar dugu int eta float hitz erreserbatuak direla, eta iUrteak eta fKiloak aldagaien identifikadoreak direla.
/* Ariketa-02b_DatuKonstanteakFormatuarekin: datu konstanteak pantailaratzen */
// Dagoeneko printf() funtzioa erabili dugu.
// Programa honetan printf() funtzioan datuak formatuarekin jarriko dira pantailan.
// Programa honetan %s, %d eta %f formatu-espezifikatzaileak erabiliko dira.
// Programa honetan #define klausula erabiliko da.
#include <stdio.h>
#define IZENA "Elisa" // izena, karaktere-katea
int main()
{
int iUrteak = 19;
float fKiloak = 55.87;
printf("\n");
printf("\n\t%s %d urte eta %f Kg\n", IZENA, iUrteak, fKiloak);
printf("12345678\n");
printf("\n");
printf("\n\t%s%6d urte%9.2f Kg\n", IZENA, iUrteak, fKiloak);
printf("12345678Elisa123456 urte123456789 Kg\n");
printf("\n");
return 0;
}
Hauxe da Ariketa-02b_DatuKonstanteakFormatuarekin.cbp proiekua exekutatzean lortzen den irteera:
![]() |
| %6d formatu-espezifikatzailea eta %9.2f formatu-espezifikatzailea aztertzen dira |
Eskatzen den Ariketa-02c_DatuKonstanteakFormatuarekin.cbp proiekuaren main.c fitxategia jarraian erakusten da. Ikusi nola aldagaiak deklaratzean beraien hasierako balioak finka daitezkeela. Ikusi ere 16. lerroan ehunekoaren % marka birritan jarri dela formatu-espezifikatzaileekin ez nahasteko. Bukatzeko, ikusi 17. eta 18. lerroetan ematen diren bi esleipenak, lehenengoak iUrteak aldagaiaren balioari unitate bat gehitzen dio, eta bigarrenak fKiloak aldagaiaren balioari %10 gehitzen dio:
/* Ariketa-02c_DatuKonstanteakFormatuarekin: datu konstanteak pantailaratzen */
// Dagoeneko printf() funtzioa erabili dugu.
// Programa honetan printf() funtzioan datuak formatuarekin jarriko dira pantailan.
// Programa honetan %s, %d eta %f formatu-espezifikatzaileak erabiliko dira.
// Programa honetan #define klausula erabiliko da.
#include <stdio.h>
int main()
{
int iUrteak = 19;
float fKiloak = 50.06;
printf("\n\tElisa%10d urte%12.2f Kg", iUrteak, fKiloak);
printf("\n\tAldaketak: Urte bat gehiago eta %%10 lodiago");
iUrteak = iUrteak +1; // urte bat gehiago
fKiloak = fKiloak*1.1; // kilo gehiago (%10)
printf("\n\tElisa%10d urte%12.2f Kg", iUrteak, fKiloak);
printf("\n\n");
return 0;
}
Hauxe da Ariketa-02c_DatuKonstanteakFormatuarekin.cbp proiektua exekutatzean lortzen den irteera:
![]() |
| %6d formatu-espezifikatzailea eta %9.2f formatu-espezifikatzailea aztertzen dira |
|




iruzkinik ez:
Argitaratu iruzkina