C programazio-lengoaia (I)

lengoaia k azken urteotan oso hedapen handia lortu du. Adibideetan oinarritutako ikuspegi praktikoa duen artikulu-sail honen bidez lengoaiaren oinarriak aurkeztuko ditugu .

Elhuyar. Zientzia eta Teknika

ren ale honetan eta hurrengoetan azaltzen segituko dugun C lengoaia k azken urteotan oso hedapen handia lortu du, gaur egun informatikaren munduan murgiltzen garenontzat bera ezagutzea ezinbestekoa delarik. Adibideetan oinarritutako ikuspegi praktikoa duen artikulu-sail honen bidez lengoaiaren oinarriak aurkeztuko ditugu, baina goi-mailako beste lengoaiaren bat (BASIC, PASCAL, FORTRAN, etab.) ezagutzen dela suposatuz eta programazio egituratua bultzatuz, hau da, programa zailak azpiprograma errazagotan edo funtziotan banatuz.

Hurrengo kapituluak:

  • C-ren oinarrizko datuak
  • C eragileak eta espresioak
  • Kontrol-egiturak I
  • Kontrol-egiturak II
  • Funtzioak eta makroak
  • Datu-egiturak I
  • Datu-egiturak II
  • Aldagaien ezaugarriak
  • Funtzioak II
  • Aurre-konpiladorea eta liburutegia
  • Sarrera-Irteera
  • C konpiladorea eta beste lengoaiak
  • Aplikazioak I
  • Aplikazioak II

C-ren ezaugarriak

C lengoaia 1972.ean D. Ritchiek sortu zuen AT T-ko Bell laborategietan UNIX sistema eragilea garatzen ari zen proiektuaren barruan. Jatorriz sistemen programazioari zuzendutako lengoaia izanik (UNIX izan bait zen goi-mailako lengoaiaz programatutako lehen sistema) eta aplikazio-programetan ere erabiltzen bada ere, C-ren aplikazio-esparru arruntena pakete eta programa estandarren garapenerako programazioa da. Beraz editore, datu-base bidezko sistema, grafiko zein gestio-pakete asko C-z garatzen dira. Horren arrazoia ondoko ezaugarri hauetan datza:

  • Oso lengoaia sinplea izan arren, ahaltsua da, zeren eta bere sententzi multzo laburraz eta daukan liburutegiaz lagunduta, mota guztietako problemak erraz ebatz bait daitezke.
  • C-z idatzitako programak konpilatu ondoren, oso eraginkorrak gertatzen dira; oso trinkoak (memori zati txikia hartuz) eta azkarrak bait dira.
  • Oso trukagarria da C lengoaia. Beraz iturburu lengoaiaz makina batean idatzitako programak besteetara eraman eta aldaketarik gabe konpila eta exekuta daitezke. Merkatuan C konpiladore asko egoteak ere laguntzen du.
  • Goi-mailako lengoaia bada ere, baliabide fisikoetatik gertu dauden kontzeptuak (erregistro orokorrak, bitak, sarrera/irteerako dispositiboen erregistroak, etab.) erabil daitezke, aplikazio-mota batzuetarako oso interesgarria izanik (pantaila eta diskoak maneiatzeko besteak beste).
1. irudia. Programa baten garapen-faseak.

Kontrako ezaugarriak ere baditu: alde batetik programatzaileek oso zorrotz jokatzen ez badute, programak oso kriptikoak eta interpretaezinak izan daitezke. Bestetik, konpiladoreak ez du asko egiaztatzen.

Beraz, erroreak detektatzea eta zuzentzea zaila gertatzen da (azken honetarako debugger programek gero eta gehiago laguntzen dute).

Programen garapena

Esan bezala, C lengoaia hau adibideen bitartez azalduko dugu, adibide hauek Microsoft C konpiladorearen bidez itzuli ondoren probatuta egongo direlarik. Dena den lengoaiarekin hasi baino lehen komenigarria da 1. irudian azaltzen diren faseak gogoratzea: problemaren definizioa, algoritmoaren diseinua, iturburu-programaren edizioa, konpilazioa, estekaketa (link) eta azkenik proba.

Aurretik esandakoa gogoratuz C lengoaia sinplea izan arren oso liburutegi handia du, bertan sarrera/irteerako prozedurak, funtzio aritmetiko eta grafikoak eta beste errutina asko daudelarik. Horren gain, programazio egituratuan laguntzen duen konpilazio banatua bultzatuko dugu. Konpilazio-mota hau erabiltzean, programatzaileak bere liburutegia bere objektu-moduluak bertan gordez edukiko du. Ondorioz, kontutan hartu behar den konpilazio-estekaketaren eskema 2. irudian agertzen dena da.

2. irudia. Konpilazioa eta estekaketa.

Lehen sententziak eta programen egitura

C lengoaian main ( ) hitz-gakoaz hasten da beti programa nagusia.

{ eta } ikurrek funtzio baten gorputzaren hasiera eta bukaera adierazten dute eta gorputzaren sententzia guztiak ; ikurraz bukatzen dira. 3. irudian ondoren aztertuko dugun programa erraz bat aurkezten dugu.

printf

eta scanf dira irteera eta sarrera bideratzen dituzten liburutegi estandarreko funtzioak (parentesiek parametroak mugatzen dituzte). Horien barruan %s string (karaktere-katea) formatuaren adierazlea da eta \n lerro-bukaerarena. Beste formatuak ere onartzen dira; adibidez, %d formatu hamartarra, %c karakterea, %f erreala eta %e idazkera zientifikoa.

main ( ) /* lehen programa */
{
char izena [20];
printf (“Sakatu zure izena: \n”);
scanf (“%s”, izena);
printf (“Elhuyar irakurriz %s C ikasten ari da\n”, izena);
}
3. irudia. Gure lehen programa.

char izena [20]

erazagupen-sententzia da. Bertan izena aldagaia definitzen da 20 karaktereko taula bezala. Datu-motak eta dagozkien erazagupenak hurrengo zenbakian aztertuko ditugu. /* eta */ karaktere-pareek iradokizun edo ohar bat mugatzen dute. Beraz, tartean dagoena ez da konpilatuko.

Azpimarratzekoa da konpiladoreak maiuskulak eta minuskulak bereizten dituela, eta adibidez, izena eta IZENA aldagai desberdinak liratekeenez, kode osoa minuskulaz idaztea gomendatzen da konstante parametrizatuak eta datu-mota berriak salbu, hauek maiuskulaz idatzi ohi dira eta.

Programa editatu ondoren honako urrats hauek eman behar dira programaren proba lortu arte.

Microsofteko konpiladoreaz PC batean:

$ msc

programa
$ link programa
$ programa

UNIX Sistema Eragileaz berriz, ondoko hauek

$ cc

-o programa programa. c
$ programa

Ikaslearen txokoa

Hemen C ikastaroa segitzen dutenen galderak eta proposamenak azaldu eta komentatu egingo ditugu. Parte hartzeko idatzi Elhuyarrera.

"C programazio–lengoaia"


ELHUYAR KULTUR ELKARTEA
Asteasuain Poligonoa 14.
Txikierdi Auzoa.
20170 USURBIL

Gipuzkoa
Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila