KONPUTAGAILUEN PROGRAMAZIOA TURBO PASCAL BITARTEZ

Σχετικά έγγραφα
DERIBAZIO-ERREGELAK 1.- ALDAGAI ERREALEKO FUNTZIO ERREALAREN DERIBATUA. ( ) ( )

7.GAIA. ESTATISTIKA DESKRIBATZAILEA. x i n i N i f i

Banaketa normala eta limitearen teorema zentrala

Aldagai Anitzeko Funtzioak

LANBIDE EKIMENA. Proiektuaren bultzatzaileak. Laguntzaileak. Hizkuntz koordinazioa

= 32 eta β : z = 0 planoek osatzen duten angelua.

ANGELUAK. 1. Bi zuzenen arteko angeluak. Paralelotasuna eta perpendikulartasuna

Hirukiak,1. Inskribatutako zirkunferentzia. Zirkunskribatutako zirkunferentzia. Aldekidea. Isoszelea. Marraztu 53mm-ko aldedun hiruki aldekidea

2. PROGRAMEN ESPEZIFIKAZIOA

MATEMATIKAKO ARIKETAK 2. DBH 3. KOADERNOA IZENA:

1 Aljebra trukakorraren oinarriak

MATEMATIKARAKO SARRERA OCW 2015

KANTEN ETIKA. Etika unibertsal baten bila. Gizaki guztientzat balioko zuen etika bat.

Solido zurruna 2: dinamika eta estatika

1. Gaia: Mekanika Kuantikoaren Aurrekoak

MATEMATIKAKO ARIKETAK 2. DBH 3. KOADERNOA IZENA:

9. Gaia: Espektroskopiaren Oinarriak eta Espektro Atomiko

(1)σ (2)σ (3)σ (a)σ n

I. KAPITULUA Zenbakia. Aldagaia. Funtzioa

Poisson prozesuak eta loturiko banaketak

ARRAZOI TRIGONOMETRIKOAK

9. K a p itu lu a. Ekuazio d iferen tzial arrun tak

Inekuazioak. Helburuak. 1. Ezezagun bateko lehen orria 74 mailako inekuazioak Definizioak Inekuazio baliokideak Ebazpena Inekuazio-sistemak

Solido zurruna 1: biraketa, inertzia-momentua eta momentu angeluarra

DBH3 MATEMATIKA ikasturtea Errepaso. Soluzioak 1. Aixerrota BHI MATEMATIKA SAILA

Zinematika 2: Higidura zirkular eta erlatiboa

Ordenadore bidezko irudigintza

ESTATISTIKA ENPRESARA APLIKATUA (Bigarren zatia: praktika). Irakaslea: Josemari Sarasola Data: 2016ko maiatzaren 12a - Iraupena: Ordu t erdi

4. Hipotesiak eta kontraste probak.

Funtzioak FUNTZIO KONTZEPTUA FUNTZIO BATEN ADIERAZPENAK ENUNTZIATUA TAULA FORMULA GRAFIKOA JARRAITUTASUNA EREMUA ETA IBILTARTEA EBAKIDURA-PUNTUAK

Trigonometria ANGELU BATEN ARRAZOI TRIGONOMETRIKOAK ANGELU BATEN ARRAZOI TRIGONOMETRIKOEN ARTEKO ERLAZIOAK

EUSKARA ERREKTOREORDETZAREN SARE ARGITALPENA

Zenbaki errealak ZENBAKI ERREALAK HURBILKETAK ERROREAK HURBILKETETAN ZENBAKI ZENBAKI ARRAZIONALAK ORDENA- ERLAZIOAK IRRAZIONALAK

Ordenagailuen Egitura

4. GAIA: Ekuazio diferenzialak

6. Aldagai kualitatibo baten eta kuantitatibo baten arteko harremana

AURKIBIDEA I. KORRONTE ZUZENARI BURUZKO LABURPENA... 7

3. K a p itu lu a. Aldagai errealek o fu n tzio errealak

1. jarduera. Zer eragin du erresistentzia batek zirkuitu batean?

ESTATISTIKA ENPRESARA APLIKATUA (Praktika: Bigarren zatia) Irakaslea: JOSEMARI SARASOLA Data: 2013ko maiatzaren 31a. Iraupena: 90 minutu

Mate+K. Koadernoak. Ikasplay, S.L.

Hidrogeno atomoaren energi mailen banatzea eremu kubiko batean

Zirkunferentzia eta zirkulua

SELEKTIBITATEKO ARIKETAK: OPTIKA

3. K a p itu lu a. Aldagai errealek o fu n tzio errealak

ERREAKZIOAK. Adizio elektrozaleak Erredukzio erreakzioak Karbenoen adizioa Adizio oxidatzaileak Alkenoen hausketa oxidatzailea

3. KOADERNOA: Aldagai anitzeko funtzioak. Eugenio Mijangos

ZENTRAL HIDROELEKTRIKO ITZULGARRIA TURBINA-PONPA TALDEAREKIN DISEINUA BILBOKO INDUSTRIA INGENIARITZA TEKNIKOKO UNIBERTSITATE ESKOLA

4. GAIA Mekanismoen Sintesi Zinematikoa

Hasi baino lehen. Zenbaki errealak. 2. Zenbaki errealekin kalkulatuz...orria 9 Hurbilketak Erroreen neurketa Notazio zientifikoa

KONPUTAGAILUEN TEKNOLOGIAKO LABORATEGIA

SELEKTIBITATEKO ARIKETAK: EREMU ELEKTRIKOA

1. Higidura periodikoak. Higidura oszilakorra. Higidura bibrakorra.

MATEMATIKA DISKRETUA ETA ALGEBRA. Lehenengo zatia

10. K a p itu lu a. Laplaceren transfo rm atu a

Ekuazioak eta sistemak

1-A eta 1-8 ariketen artean bat aukeratu (2.5 puntu)

Estatistika deskribatzailea Excel-en bidez

I. ebazkizuna (1.75 puntu)

Makina elektrikoetan sortzen diren energi aldaketak eremu magnetikoaren barnean egiten dira: M A K I N A. Sorgailua. Motorea.

DBH 2 MATEMATIKA. erein

3. Ikasgaia. MOLEKULA ORGANIKOEN GEOMETRIA: ORBITALEN HIBRIDAZIOA ISOMERIA ESPAZIALA:

ERDI MAILAKO HEZIKETA ZIKLOETARAKO SARBIDE MATEMATIKA ATALA MATEMATIKA ARIKETAK ERANTZUNAK PROGRAMAZIOA

1 GEOMETRIA DESKRIBATZAILEA...

SELEKTIBITATEKO ARIKETAK: EREMU ELEKTRIKOA

TEKNIKA ESPERIMENTALAK - I Fisikako laborategiko praktikak

INDUSTRI TEKNOLOGIA I, ENERGIA ARIKETAK

Proba parametrikoak. Josemari Sarasola. Gizapedia. Josemari Sarasola Proba parametrikoak 1 / 20

6. GAIA: Oinarrizko estatistika

FISIKA ETA KIMIKA 4 DBH Higidurak

Diamanteak osatzeko beharrezkoak diren baldintzak dira:

UNITATE DIDAKTIKOA ELEKTRIZITATEA D.B.H JARDUERA. KORRONTE ELEKTRIKOA. Helio atomoa ASKATASUNA BHI 1.- ATOMOAK ETA KORRONTE ELEKTRIKOA

Deixia. Anafora edota katafora deritze halako deixi-elementuei,

Emaitzak: a) 0,148 mol; 6,35 atm; b) 0,35; 0,32; 0,32; 2,2 atm; 2,03 atm; 2.03 atm c) 1,86; 0,043

4.GAIA. ESPAZIO BEKTORIALAK

Telekomunikazio-sare eta -zerbitzuak: Teoria

1. Oinarrizko kontzeptuak

LOGIKA. F. Xabier Albizuri go.ehu.eus/ii-md

5 Hizkuntza aljebraikoa

Antzekotasuna ANTZEKOTASUNA ANTZEKOTASUN- ARRAZOIA TALESEN TEOREMA TRIANGELUEN ANTZEKOTASUN-IRIZPIDEAK BIGARREN IRIZPIDEA. a b c

Batxilergorako materialak. Logika sinbolikoa. Peru Urrutia Bilbao ISBN: Salneurria: 14 E

1.1. Aire konprimituzko teknikaren aurrerapenak

OREKA KIMIKOA GAIEN ZERRENDA

2011 Kimikako Euskal Olinpiada

PROGRAMA LABURRA (gutxiengoa)

Fisika. Jenaro Guisasola Ane Leniz Oier Azula. Irakaslearen gidaliburua BATXILERGOA 2

IRAKASKUNTZA GIDA: MATEMATIKARAKO SARRERA

6 INBERTSIOA ENPRESAN

4. GAIA MASAREN IRAUPENAREN LEGEA: MASA BALANTZEAK

7. K a p itu lu a. Integ ra l a nizk o itza k

I. ikasgaia: Probabilitateen kalkulua

Definizioa. 1.Gaia: Estatistika Deskribatzailea. Definizioa. Definizioa. Definizioa. Definizioa

ESTATISTIKA ETA DATUEN ANALISIA. BIGARREN ZATIA: Praktika. Data: 2012ko ekainaren 25. Ordua: 12:00

EREDU ATOMIKOAK.- ZENBAKI KUANTIKOAK.- KONFIGURAZIO ELEKTRONIKOA EREDU ATOMIKOAK

ESTATISTIKA ETA DATUEN ANALISIA. Azterketa ebatziak ikasturtea Donostiako Ekonomia eta Enpresa Fakultatea. EHU

7.1 Oreka egonkorra eta osziladore harmonikoa

Dokumentua I. 2010ean martxan hasiko den Unibertsitatera sarrerako hautaproba berria ondoko arauen bidez erregulatuta dago:

6.1. Estatistika deskribatzailea.

EIB sistemaren oinarriak 1

GIZA GIZARTE ZIENTZIEI APLIKATUTAKO MATEMATIKA I BINOMIALA ETA NORMALA 1

Transcript:

eman ta zabal zazu Universidad del País Vasco Euskal Herriko Unibertsitatea BILBOKO INGENIARIEN GOI ESKOLA TEKNIKOA KONPUTAGAILUEN PROGRAMAZIOA TURBO PASCAL BITARTEZ I EGILEA: Jesus-Mari Romo Uriarte (hirugarren zirriborroa) 2000-9-20

HITZAURREA Esku artean duzun liburu honek konputagailuen programazioaren oinarriak aurkezten ditu, helburu nagusi horrekin batera informatikaren hastapeneko kontzeptuak ere lantzen ditu. Liburu osoan zehar ariketa praktikoei garrantzia handia ematen zaie, batez ere laugarren kapitulutik aurrera, hots, programazioaren gaia hasten denetik aurrera. Esan daiteke kontzeptu bakoitzeko programa bat idatzi dela, programen erabilpena errazago izan dadin kapituluka bildu dira eta kapitulu bakoitzaren amaieran euren identifikazio-taula tartekatu egin da. Programok diskete batean banatzen ditugu horrela eskatuz gero, iturburu-programak direnez exekutatu ahal izateko konpiladoreren bat beharko du ikasleak (guk Borland etxeko Turbo Pascal 7.0 konpiladorea erabili dugu). Liburuak 14 kapitulu ditu, baina bigarren zirriborro hau amaitzen dugun une honetan lehen hamabiak idatzirik ditugu, gainerakoak hurrengo baterako utzi ditugularik. 14 kapituluen kontzeptuak jasotzeko ikasleak 12 kreditu beharko lituzke, euretatik 4 kreditu gutxienez konputagailuaren aurrean era praktiko batean kurtsatuko lituzke. 12 kreditu horiek bi ikasturtetan banaturik egonez gero, hona hemen proposatzen dugun jokabidea: Ikasturtea Kredituak Kapituluak 1 6 1, 2, 3, 4, 5, 6, 8, 9, 10, 11 2 6 7, 12, 13, 14 Bilboko Ingeniarien Goi Eskola Teknikoan, Industri Ingeniarien titulazioan erabiltzen da liburu hau eta bertan 9 kreditu ditugu une honetan konputagailuei buruzko kontzeptu guztiak eman ahal izateko. Gauzak horrela, egun prestaturik ditugun lehen hamabi kapituluak jorratzeko denborarik ez dugulako zazpigarrena, unitateak lantzen dituena alegia, sakontasunik gabe gainbegiratzen dugu. JM Romo Uriarte

NON ZER NON ZER NON ZER v 1. ATALA: INFORMATIKARAKO SARRERA 1 AURKIBIDEA 2 1.1 SARRERA 5 1.2 ALGORITMOA 5 1.2.1 Algoritmoen erabilpena 8 1.2.2 Algoritmoen mailaketa 9 1.2.3 Algoritmotik programara 10 1.2.4 Makina algoritmikoak 14 1.2.4.1 Makina algoritmikoen sailkapena 14 1.2.4.2 Makina algoritmikoen arkitektura 16 1.3 MAKINA ALGORITMIKOEN MUGARRI HISTORIKOAK 18 1.3.1 Ordenadoreen aurretikoak 18 1.3.1.1 Aritmetikaren hastapenak 18 1.3.1.2 Aritmetikaren automatizazioa 19 1.3.1.3 Programaren kokapena memorian 21 1.3.2 Ordenadore mekanikoak 21 1.3.3 Ordenadore elektronikoak 22 1.3.4 Gaur egungo makina algoritmikoen arkitektura 24 1.4 PROGRAMAZIO-LENGOAIAK 26 1.4.1 Makina-lengoaia 27 1.4.2 Itzultzaileak 28 1.4.2.1 Mihiztadura-lengoaia 29 1.4.2.2 Konpiladoreak eta interpretatzaileak 30 1.4.2.2.1 Konpiladoreak 33 1.4.2.2.2 Interpretatzaileak 35 1.4.3 Goi-mailako lengoaia garrantzitsuenak 37 1.4.3.1 FORTRAN 37 1.4.3.2 COBOL 37 1.4.3.3 BASIC 37 1.4.3.4 PASCAL 38 1.4.3.5 C 39 1.4.3.6 ADA 39 1.4.3.7 MODULA-2 39 1.4.3.8 LISP 40 1.4.3.9 PROLOG 40 1.4.3.10 LOGO 40 1.5 KONPUTAZIO SISTEMA BATEN MAILAKETA 40 1.5.1 Sistema Eragilea 41 1.5.1.1 Sistema Eragilea eta erabiltzailea 41 1.5.1.2 Sistema Eragilearen funtzioak 41 1.5.1.3 Sistema Eragilearen motak 43 1.5.2 Aplikazio Programak 43 1.5.2.1 Testu-prozesadoreak eta Editoreak 44 v

NON ZER 1.5.2.2 Kalkulu-orriak 44 1.5.2.3 Simuladoreak 45 1.5.2.4 Datu-baseak 46 1.5.2.5 CAD-CAM-CAE 46 1.5.2.6 Telekomunikazioak 47 1.6 PROGRAMAK 48 1.7 BIBLIOGRAFIA 48 ERANSKINAK 48 E1 Abakoa erabiltzeko arauak 49 E2 Adimena duten makinak 61 E3 Telekomunikazioen iraultza 75 2. ATALA: INFORMAZIOA ETA BERE ADIERAZPIDEA 1 AURKIBIDEA 2 2.1 SARRERA 3 2.2 INFORMAZIOA NEURTZEKO UNITATEAK 3 2.3 SINBOLOEN ADIERAZPIDEA: KONPUTAGAILU-KODEAK 4 2.3.1 ASCII kodea 4 2.3.2 BCD kodea 5 2.3.3 EBCDIC kodea 5 2.3.4 OEM kodea 5 2.3.5 ANSI kodea 5 2.3.6 UNICODE kodea 5 2.4 KOPURUEN ADIERAZPIDEA 6 2.4.1 Zenbaketaren Oinarrizko Teorema 7 2.4.1.1 n oinarritik hamartarrerako eta hamartarretik n oinarrirako bihurketak 7 2.4.1.2 n oinarritik m oinarrirako bihurketa 9 2.4.1.3 Bitar-hamartar eta hamartar-bitar bihurketak 9 2.4.1.4 Bitar-zortzitar eta zortzitar-bitar bihurketak 10 2.4.1.5 Bitar-hamaseitar eta hamaseitar-bitar bihurketak 11 2.4.2 Zenbaki osoen adierazpidea 12 2.4.2.1 Modulua eta zeinua 13 2.4.2.2 1rako osagarria 14 2.4.2.3 2rako osagarria 14 2.4.2.4 Bitarra gainditua 18 2.4.3 Zenbaki errealen adierazpidea 20 2.4.3.1 Koma finkoa 20 2.4.3.2 Koma higikorra 21 2.4.4 Erroreak detektatzeko kodeak 25 2.5 ARIKETAK 26 2.6 PROGRAMAK 30 2.7 BIBLIOGRAFIA 30 3. ATALA: KONPUTAGAILUAREN BARNE OSAGAIAK 1 AURKIBIDEA 2 3.1 SARRERA 5 3.1.1 Makina algoritmikoa kanpotik, hurbilpena 5 3.1.2 Makina algoritmikoa barrutik, hurbilpena 6 3.2 GAUR EGUNGO MAKINA ALGORITMIKOEN ARKITEKTURA 7 3.2.1 Memoria 8 vi

NON ZER 3.2.1.1 Memori taula 9 3.2.1.2 Helbide-erregistroa 9 3.2.1.3 Datu-erregistroa 10 3.2.1.4 Deskodetzailea 11 3.2.1.5 Memoriako eragiketak 12 3.2.1.5.1 Irakurketa 12 3.2.1.5.2 Idazketa 13 3.2.1.6 Memoria motak 14 3.2.1.6.1 RAM memoria 14 3.2.1.6.2 ROM memoria 14 3.2.2 Bus konektoreak 15 3.2.2.1 Datu-busa 15 3.2.2.2 Helbide-busa 16 3.2.2.3 Kontrol-busa 16 3.2.3 Unitate Aritmetiko-logikoa 16 3.2.4 Kontrol-unitatea 17 3.2.4.1 Kontrol-unitatearen osagaiak 18 3.2.4.2 Instrukzio baten exekuzioa, Bilaketa-fasea eta Exekuzio-fasea 19 3.2.5 Periferikoak 20 3.2.6 Memoria masiboa 21 3.2.6.1 Memoria magnetikoak 21 3.2.6.2 Memoria optikoak 22 3.3 KONPUTAGAILU DIDAKTIKO BATEN DISEINUA 23 3.3.1 Arkitektura 23 3.3.2 Lengoaia 24 3.4 PROGRAMEN EXEKUZIOA 26 3.4.1 Zenbakiak batzen 26 3.4.2 Errepikapenak burutzen 27 3.4.3 Bilaketa-fasea eta Exekuzio-fasea 29 3.5 KONPUTAGAILU DIDAKTIKOAREN ESKEMA 31 3.6 ARIKETA 32 3.7 PROGRAMAK 34 3.8 BIBLIOGRAFIA 34 ERANSKINAK 35 E1 Transistorea 37 E2 Datuak lantzeko zirkuituak 41 E3 Datuak biltegitzeko zirkuituak 55 E4 Konputagailuen memoriari buruzko artikulua 65 E5 Mikroprozesadorei buruzko artikuluak 71 E6 Konputagailuen periferiko optikoei buruzko artikuluak 89 4. ATALA: TURBO PASCAL 7.0 LENGOAIAREN ELEMENTUAK 1 AURKIBIDEA 2 4.1 SARRERA 3 4.2 LENGOAIAREN FUNTSEZKO ELEMENTUAK 3 4.2.1 Hitz erreserbatuak eta sinboloak 3 4.2.2 Identifikadoreak 5 4.2.2.1 Identifikadore estandarrak 5 4.2.2.2 Erabiltzailearen identifikadoreak 5 4.2.3 Konstanteak 6 4.2.4 Aldagaiak 7 4.2.5 Iruzkinak 8 vii

NON ZER 4.2.6 Esleipena 8 4.3 AURREDEFINITURIKO DATU-MOTAK 9 4.3.1 Datu-mota osoak 9 4.3.1.1 Zenbaki osoen eragileak 10 4.3.1.2 Zenbaki osoen gainezkada 13 4.3.2 Datu-mota errealak 15 4.3.1.1 Zenbaki errealen eragileak 17 4.3.1.2 Eragile aritmetiko eta eragigaien arteko bateragarritasuna 17 4.3.3 Datu-mota boolearrak 19 4.3.3.1 Adierazpen boolearrak 20 4.3.4 Karaktere datu-mota 23 4.4 PROGRAMA BATEN EGITURA 26 4.4.1 Goiburukoa: PROGRAM hitz erreserbatua 28 4.4.2 Erazagupen atala 28 4.4.2.1 Unitateak 28 4.4.2.2 Datu-motak 28 4.4.2.3 Konstante eta aldagaiak 29 4.4.2.4 Prozedura eta funtzioak 29 4.4.3 Programa Nagusia 30 4.5 IRTEERA/SARRERA 30 4.5.1 Write eta WriteLn prozedurak 31 4.5.2 Read eta ReadLn prozedurak 34 4.6 DATU-MOTAK EGITURATUAK 36 4.6.1 STRING datu-mota 37 4.6.2 ARRAY datu-mota 38 4.6.3 RECORD datu-mota 38 4.6.4 SET datu-mota 39 4.6.5 FILE eta TEXT datu-motak 40 4.6.6 Erakusle datu-mota 40 4.6.7 Objektu datu-mota 40 4.7 PROGRAMAK 41 4.8 BIBLIOGRAFIA 41 5. ATALA: BALDINTZAK ETA ERREPIKAPENAK 1 AURKIBIDEA 2 5.1 SARRERA 3 5.2 BALDINTZAZKO AGINDUAK 3 5.2.1 IF-THEN baldintzazko sententzia 4 5.2.1.1 Adibidea 6 5.2.1.2 IF-THEN kabiatuak 7 5.2.2 IF-THEN-ELSE baldintzazko sententzia 7 5.2.2.1 Adibidea 8 5.2.2.2 IF-THEN-ELSE kabiatuak 8 5.2.3 CASE-OF baldintzazko sententzia 10 5.3 AGINDU ERREPIKAKORRAK 13 5.3.1 WHILE-DO sententzia errepikakorra 13 5.3.1.1 Adibidea 16 5.3.1.2 Adibidea 19 5.3.2 REPEAT-UNTIL sententzia errepikakorra 21 5.3.2.1 Adibidea 22 5.3.2.2 Adibidea 23 5.3.3 FOR-DO sententzia errepikakorra 24 viii

NON ZER 5.3.3.1 Adibidea 27 5.3.3.2 Kontra adibidea 27 5.3.3.3 Adibidea 29 5.3.3.4 Adibidea 30 5.3.3.5 Adibidea 32 5.3.3.6 Adibidea 34 5.3.3.7 Adibidea 35 5.4 PROGRAMAZIO ARIKETAK EBAZTEKO URRATSAK 36 5.4.1 Diferentzia Finituen metodoa (zenbaki osoekin) 36 5.4.1.1 Arazoaren definizioa 36 5.4.1.2 Algoritmoa asmatu 38 5.4.1.3 Algoritmoa programa bezala idatzi 38 5.4.1.4 Soluzioa ebaluatu 40 5.4.2 Diferentzia Finituen metodoa (zenbaki errealekin) 40 5.5 PROGRAMAK 41 5.6 BIBLIOGRAFIA 41 6. ATALA: AZPIPROGRAMAK, FUNTZIOAK ETA PROZEDURAK 1 AURKIBIDEA 2 6.1 SARRERA 5 6.2 AZPIPROGRAMA BATEN HELBURUA 5 6.2.1 Kodearen errepikapena ekiditea 5 6.2.2 Programaren antolaketa lortzea 7 6.2.3 Kodearen independentzia 8 6.3 AZPIPROGRAMEEN ARTEKO KOMUNIKAZIOA 9 6.3.1 Azpiprogramaren deia 9 6.3.1.1 Deiaren Helburua 10 6.3.1.2 Parametroen ordena azpiprogramaren deian 11 6.3.2 Parametro motak 13 6.3.2.1 Sarrerako parametroak 14 6.3.2.1.1 Adibideak 15 6.3.2.2 Irteerako parametroak 18 6.3.2.2.1 Adibideak 19 6.3.2.3 Sarrera/Irteerako parametroak 22 6.3.2.3.1 Adibideak 23 6.3.3 Parametroen erabilpena Turbo Pascal lengoaian 26 6.3.3.1 Baliozko parametroa 26 6.3.3.2 Aldagai-parametroa 30 6.3.3.3 Konstante-parametroa 32 6.3.4 Azpiprogrameen arteko komunikazioa. Laburpena 34 6.4 PARAMETRO MOTAK ETA MEMORI HELBIDEAK 37 6.4.1 Baliozko parametroak eta memori helbideak 39 6.4.2 Aldagai-parametroak eta memori helbideak 41 6.4.3 Konstante-parametroak eta memori helbideak 42 6.5 ALDAGAIEN IRAUPENA ETA ALDAGAIEN ESPARRUA 43 6.5.1 Aldagaien iraupena 43 6.5.2 Aldagaien esparrua 46 6.5.3 Identifikadoreen lehentasuna eta ustegabeko gertaerak 50 6.6 AZPIPROGRAMA MOTAK TURBO PASCAL LENGOAIAN 52 6.6.1 Funtzioak 52 6.6.1.1 Funtzioaren atalak 52 6.6.1.1.1 Funtzioaren goiburukoa 53 ix

NON ZER 6.6.1.1.2 Funtzioaren erazagupenak 53 6.6.1.1.3 Funtzioaren sententzien atala 54 6.6.1.2 Funtzioaren deia 55 6.6.1.3 Funtzioen adibideak 56 6.6.1.3.1 Kosinua Taylor bitartez 56 6.6.1.3.2 Angeluen bihurketa 58 6.6.1.3.3 Funtzio boolearra 60 6.6.1.4 Zenbait funtzio estandar 61 6.6.2 Prozedurak 62 6.6.2.1 Prozeduraren atalak 63 6.6.2.1.1 Prozeduraren goiburukoa 63 6.6.2.1.2 Prozeduraren erazagupenak 64 6.6.2.1.3 Prozeduraren sententzien atala 64 6.6.2.2 Prozeduraren deia 64 6.6.2.3 Prozeduren adibideak 65 6.6.2.3.1 Kosinua Taylor bitartez 65 6.6.2.3.2 Angeluen bihurketa 69 6.6.2.3.3 Pilota jauzika 70 6.6.2.4 Zenbait prozedura estandar 72 6.7 ERREKURTSIBITATEA 72 6.7.1 Funtzio errekurtsiboaren adibidea 73 6.7.2 Prozedura errekurtsiboaren adibidea 75 6.8 PROGRAMAK 76 6.9 BIBLIOGRAFIA 77 7. ATALA: UNITATEAK 1 AURKIBIDEA 2 7.1 SARRERA 3 7.1.1 Turbo Pascal eta grafikoak 4 7.1.1.1 Grafikoak irekitzen eta ixten 4 7.1.1.2 Pantaila testuala vs. pantaila grafikoa 8 7.1.1.3 Pixelak 9 7.1.1.4 Koloreak 10 7.1.1.5 Letra-tipoak eta estiloak 11 7.1.1.6 Lerro zuzenak 14 7.1.1.7 Oinarrizko azpirrutina grafiko estandarrak 17 7.1.2 Geure azpirrutina grafikoak 17 7.1.2.1 Elementu geometrikoak banaka 18 7.1.2.1.1 Hirukia 18 7.1.2.1.2 Laukia 19 7.1.2.1.3 Karratua 19 7.1.2.1.4 Laukizuzena 21 7.1.2.1.5 Zirkunferentzia 22 7.1.2.1.6 Elipsea 25 7.1.2.1.7 Arkua 26 7.1.2.1.8 Funtzio trigonometrikoak 29 7.1.2.2 Elementu geometrikoak bildurik 31 7.2 UNITATE BAT ERAIKITZEN 32 7.2.1 Unitate baten barne egitura 33 7.2.2 Unitate baten sorrera, konpilazioa eta gaurkotzea 34 7.2.3 Uste gabeko gertaerak 36 7.2.3.1 Unitate kabiatuak 36 7.2.3.2 Unitateen arteko erreferentzia gurutzatuak 37 7.2.3.3 Unitate ezberdinetan dagoen identifikadore bera 38 x

NON ZER 7.3 UNITATEEN ADIBIDEA: GRAFIKOAK 39 7.3.1 Unitate grafikoaren beharkizunak 39 7.3.2 Unitate grafikoaren interfazea 40 7.3.3 Unitate grafikoaren inplementazioa 41 7.3.4 Unitate grafikoa erabiltzen 42 7.4 UNITATEEN ARIKETA: KOORDENATU-TRANSFORMAZIOAK 43 7.4.1 Biraketa 43 7.4.2 Traslazioa 43 7.4.3 Eskalatua 44 7.5 UNITATEEN ADIBIDEA: ANIMAZIOAK 44 7.6 UNITATEEN ARIKETA: TRIGONOMETRIA ERRAZTEN 44 7.7 PROGRAMAK 45 7.8 BIBLIOGRAFIA 46 8. ATALA: ERABILTZAILEAREN DATU-MOTAK 1 AURKIBIDEA 2 8.1 SARRERA 3 8.2 DATU-MOTAK TURBO PASCAL LENGOAIAN 6 8.2.1 Datu-moten arteko bihurketak 8 8.3 DATU-MOTA BERRIAK SORTZEN 10 8.4 DATU-MOTA ENUMERATUAK 11 8.4.1 Datu-mota enumeratuak. Adibidea 12 8.4.2 Datu-mota enumeratuak. Sendotasuna 12 8.4.3 Datu-mota enumeratuak. Ahulezia 14 8.5 AZPIEREMU DATU-MOTA 14 8.5.1 Azpieremuak eta heina. {$R±} konpilazio direktiba 16 8.6 DATU-MOTA EGITURATUEN SARRERA 17 8.6.1 STRING datu-mota egituratua 18 8.6.2 ARRAY datu-mota egituratua 18 8.6.3 RECORD datu-mota egituratua 18 8.6.4 SET datu-mota egituratua 19 8.6.5 FILE datu-mota egituratua 19 8.6.6 Erakusle datu-mota egituratua 20 8.6.7 Objektu datu-mota egituratua 20 8.7 KONPILADOREAREN DIREKTIBAK 21 8.7.1 Konmutadore direktibak 21 8.7.1.1 {$R±} direktiba 21 8.7.1.2 {$B±} direktiba 22 8.7.1.3 {$Q±} direktiba 22 8.7.1.4 {$I±} direktiba 23 8.7.1.5 {$V±} direktiba 24 8.7.1.6 {$P±} direktiba 26 8.7.1.7 {$X±} direktiba 27 8.7.1.8 {$A±} direktiba 27 8.7.2 Parametrodun direktibak 29 8.7.2.1 {$I XXX} direktiba 29 8.7.2.2 {$L XXX} direktiba 30 8.7.3 Baldintza-direktibak 30 8.8 PROGRAMAK 35 xi

NON ZER 8.9 BIBLIOGRAFIA 35 9. ATALA: STRING DATU-MOTA 1 AURKIBIDEA 2 9.1 SARRERA 3 9.1.1 Definizioa 3 9.1.2 Luzera fisiko vs luzera logiko 3 9.1.2.1 String baten osagaiak 6 9.1.2.2 Zero posizioaren edukia 7 9.1.2.3 Karaktere-kateen eragiketak 7 9.1.2.3.1 Kateen arteko esleipena 7 9.1.2.3.2 Kateen arteko konparaketak 8 9.1.2.3.3 Karaktere-kateen kateaketa 9 9.1.3 Kateekin lan egiteko modua 11 9.2 KATEEN FUNTZIO ETA PROZEDURA ESTANDARRAK 11 9.2.1 Funtzioak 12 9.2.1.1 Length funtzioa 12 9.2.1.2 Copy funtzioa 14 9.2.1.3 Pos funtzioa 14 9.2.1.4 Concat funtzioa 16 9.2.2 Prozedurak 16 9.2.2.1 Delete prozedura 16 9.2.2.2 Insert prozedura 17 9.2.2.3 Str prozedura 18 9.2.2.4 Val prozedura 19 9.2.3 Kateen funtzio eta prozedura estandarren adibideak 19 9.2.3.1 Adibidea 19 9.2.3.2 Adibidea 21 9.3 NULL KARAKTEREZ BUKATURIKO KATEAK 24 9.3.1 StrLen eta StrEnd funtzioak 26 9.3.2 StrCopy eta StrLCopy funtzioak 27 9.3.3 StrCat eta StrLCat funtzioak 28 9.3.4 StrComp, StrIComp, StrLComp eta StrLIComp funtzioak 29 9.3.5 StrLower eta StrUpper funtzioak 32 9.3.6 StrPas eta StrPCopy funtzioak 32 9.3.7 StrPos funtzioa 33 9.3.8 StrECopy funtzioa 34 9.4 PROGRAMAK 35 9.5 BIBLIOGRAFIA 35 10. ATALA: ARRAY DATU-MOTA 1 AURKIBIDEA 2 10.1 SARRERA 5 10.1.1 Definizioa 5 10.1.2 Indizeak 7 10.1.3 Eragiketak arrayekin 8 10.1.4 Eragiketak arrayen elementuekin 10 10.1.4.1 Adibidea 11 10.1.4.2 Adibidea 12 10.1.5 Arrayen luzera fisikoa eta luzera logikoa 16 10.1.5.1 Arrayen luzera fisikoa 16 10.1.5.2 Arrayen luzera logikoa 17 10.1.5.3 {$R±} direktiba 19 10.1.6 Arrayak parametro bezala 20 xii

NON ZER 10.2 ARRAY DIMENTSIOBAKARRAK 24 10.2.1 Array dimentsiobakar baten biltegitzea memorian 25 10.2.2 Array dimentsiobakarra den aldagai baten hasieraketa 26 10.3 ARRAY DIMENTSIOANITZAK 28 10.3.1 Array dimentsioanitz baten biltegitzea memorian 32 10.3.2 Array dimentsioanitza den aldagai baten hasieraketa 35 10.4 ARRAY DIMENTSIOBAKARREN GAINEKO ERAGIKETAK 37 10.4.1 Ibilera 38 10.4.2 Bilaketa 40 10.4.2.1 Bilaketa lineala 40 10.4.2.2 Bilaketa bitarra 43 10.4.3 Tartekaketa 49 10.4.4 Ezabaketa 52 10.4.5 Nahasketa 54 10.4.6 Ordenazioa 58 10.4.6.1 Ordenazioa aukeraketaren bitartez 59 10.4.6.2 Ordenazioa tartekaketaren bitartez (bilaketa lineala) 61 10.4.6.3 Ordenazioa tartekaketaren bitartez (bilaketa bitarra) 64 10.4.6.4 Ordenazioa burbuilaren bitartez 67 10.4.6.5 Ordenazioa burbuila hobetuaren bitartez 69 10.5 ARRAYEN ERAGIKETA ARITMETIKOETARAKO UNITATEA 72 10.5.1 Array karratuen aritmetikarako unitatearen beharkizunak 72 10.5.1.1 Batuketa 73 10.5.1.2 Kenketa 73 10.5.1.3 Biderketa 73 10.5.1.4 Zatiketa 74 10.5.1.4.1 Array karratu baten determinantea 75 10.5.1.4.2 Array karratu baten array iraulia 77 10.5.1.4.3 Array karratu baten array adjuntua 77 10.5.2 Array karratuen aritmetikarako unitatearen interfazea 78 10.5.3 Array karratuen aritmetikarako unitatearen inplementazioa 79 10.5.4 Array karratuen aritmetikarako unitatea erabiltzen 84 10.5.4.1 Ekuazio sistemak ebazten 85 10.5.4.1.1 Cramer 85 10.5.4.1.2 Gauss-Jordan 88 10.6 PROGRAMAK 94 10.7 BIBLIOGRAFIA 95 11. ATALA: RECORD ETA SET DATU-MOTAK 1 AURKIBIDEA 2 11.1 SARRERA 3 11.2 RECORD DATU-MOTA 6 11.2.1 Definizioa 6 11.2.2 Eremuak 7 11.2.2.1 Eremuak zehazteko sintaxia 7 11.2.2.2 Eremuen helburua 8 11.2.2.3 Eremuen biltegitzea memorian 9 11.2.3 Eragiketak erregistroekin 12 11.2.3.1 Erregistroa eragigai bezala 12 11.2.3.2 Erregistroa parametro bezala 13 11.2.4 Eragiketak erregistroen eremuekin 17 11.2.5 Erregistroen arrayak 18 11.2.5.1 Adibidea 23 xiii

NON ZER 11.2.5.2 Adibidea 26 11.2.6 Erregistro baten hasieraketa 35 11.2.7 Erregistro hierarkikoak 37 11.2.7.1 Adibidea 40 11.2.7.2 Adibidea 41 11.2.8 Erregistro aldakorrak 43 11.2.8.1 Adibidea 46 11.2.8.2 Adibidea 48 11.2.8.3 Adibidea 49 11.2.8.4 Adibidea 53 11.3 SET DATU-MOTA 55 11.3.1 Definizioa 55 11.3.2 Eragiketak multzoekin 57 11.3.2.1 Multzoen arteko erlazioak 57 11.3.2.1.1 Barnekotasuna 57 11.3.2.1.2 Azpi eta gainmultzoa 58 11.3.2.1.3 Berdintasuna eta desberdintasuna 60 11.3.2.2 Multzoen eragileak 61 11.3.2.2.1 Bilketa 61 11.3.2.2.2 Ebaketa 62 11.3.2.2.3 Osaketa 62 11.3.2.2.4 Diferentzia 63 11.3.3 Multzoak parametro bezala 64 11.4 ZENBAKI KONPLEXUEN ERAGIKETATARAKO UNITATEA 70 11.4.1 Zenbaki konplexuen unitatearen beharkizunak 71 11.4.2 Zenbaki konplexuen unitatearen interfazea 73 11.4.3 Zenbaki konplexuen unitatearen inplementazioa 74 11.4.4 Zenbaki konplexuen unitatea erabiltzen 79 11.5 PROGRAMAK 80 11.6 BIBLIOGRAFIA 81 12. ATALA: FILE ETA TEXT DATU-MOTAK 1 AURKIBIDEA 2 12.1 FILE DATU-MOTAREN SARRERA 5 12.1.1 Definizioa 8 12.1.1.1 Fitxategi fisikoa 11 12.1.1.2 Fitxategi logikoa 12 12.1.1.3 Fitxategi fisiko eta fitxategi logiko. Laburpena 12 12.1.2 Aurredefinituriko azpiprogramak 14 12.1.2.1 Funtzioak 14 12.1.2.1.1 Eof funtzioa 14 12.1.2.1.2 FileSize funtzioa 15 12.1.2.1.3 FilePos funtzioa 16 12.1.2.2 Prozedurak 17 12.1.2.2.1 Assign prozedura 17 12.1.2.2.2 Rewrite prozedura 18 12.1.2.2.3 Reset prozedura 20 12.1.2.2.4 Close prozedura 21 12.1.2.2.5 Read prozedura 21 12.1.2.2.6 Write prozedura 26 12.1.2.2.7 Seek prozedura 30 12.1.2.2.8 Truncate prozedura 34 12.1.2.2.9 Erase prozedura 35 12.1.2.2.10 Rename prozedura 36 12.1.3 Fitxategiak parametro bezala 38 xiv

NON ZER 12.1.4 Fitxategien gaineko eragiketak 40 12.1.4.1 Sorrera 40 12.1.4.2 Existentzia 42 12.1.4.3 Ibilera 45 12.1.4.4 Bilaketa 50 12.1.4.5 Gehiketa 53 12.1.4.6 Aldaketa 55 12.1.4.7 Tartekaketa 57 12.1.4.8 Ezabaketa 62 12.1.4.9 Fitxategi/Array 66 12.1.4.10 Array/Fitxategi 67 12.1.4.11 Ordenazioa fitxategi txikietan 68 12.1.4.12 Ordenazioa fitxategi handietan 70 12.2 TEXT DATU-MOTAREN SARRERA 74 12.2.1 Definizioa 74 12.2.2 Input eta Output fitxategi estandarrak 74 12.2.2.1 WriteLn prozedura eta Output fitxategia 74 12.2.2.2 Write prozedura eta Output fitxategia 74 12.2.2.3 ReadLn prozedura eta Input fitxategia 74 12.2.2.4 Read prozedura eta Input fitxategia 75 12.2.3 Aurredefinituriko azpiprogramak 75 12.2.3.1 Funtzioak 75 12.2.3.2 Prozedurak 75 12.1.2.2.1 Assign prozedura 75 12.1.2.2.2 Rewrite prozedura 75 12.1.2.2.3 Reset prozedura 75 12.1.2.2.4 Close prozedura 76 12.1.2.2.5 Read prozedura 76 12.1.2.2.6 Write prozedura 76 12.1.2.2.7 Seek prozedura 76 12.1.2.2.8 Truncate prozedura 76 12.1.2.2.9 Erase prozedura 76 12.1.2.2.10 Rename prozedura 76 12.3 DOS UNITATEA 77 12.3.1 DOS unitateko funtzioak 77 12.3.1.1 DiskFreef eta DiskSize funtzioak 77 12.3.1.2 DosExitCode eta DosVersion funtzioak 77 12.3.1.3 EnvCount eta EnvStr funtzioak 77 12.3.1.4 GetEnv funtzioa 77 12.3.1.5 FSearh funtzioa 77 12.3.1.6 FExpand eta FSplit funtzioak 77 12.3.2 DOS unitateko prozedurak 77 12.3.2.1 Exec prozedura 77 12.3.2.2 MsDos prozedura 78 12.3.2.3 FindFirst eta FindNext prozedurak 78 12.3.2.4 GetDate eta SetDate prozedurak 78 12.3.2.5 GetTime eta SetTime prozedurak 78 12.3.2.6 GetFTime eta SetFTime prozedurak 78 12.3.2.7 GetFAttr eta SetFAttr prozedurak 78 12.4 PROGRAMAK 81 12.5 BIBLIOGRAFIA 81 13. ATALA: ERAKUSLEAK 1 AURKIBIDEA 2 13.1 SARRERA 3 xv

NON ZER 13.1.1 Definizioa 3 13.1.2 Eragiketak 3 13.1.3 Aurredefinituriko azpiprogramak 3 13.2 ZERRENDA KATEATUAK 3 13.2.1 Zerrenda kateatuen sailkapena 3 13.2.2 Zerrenda kateatuen gaineko algoritmoak 3 13.3 ZUHAITZAK 4 13.3.1 Zuhaitzen sailkapena 4 13.3.2 Zuhaitzen gaineko algoritmoak 4 13.4 ARIKETAK 4 13.5 BIBLIOGRAFIA 4 14. ATALA: OBJEKTUAK 1 AURKIBIDEA 2 14.1 SARRERA 4 14.1.1 Objektuei Zuzendutako Programazioa vs Programazio Egituratua 4 14.1.2 Objektuei Zuzendutako Programazioaren propietareak 4 14.2 OBJEKTUAK ETA TURBO PASCAL LENGOAIA 4 14.2.1 Objektuen sorrera 4 14.2.2 Metodoak 4 14.2.3 Eremuen atzipenak 5 14.2.4 Objektuak eta unitateak 5 14.3 HERENTZIA 5 14.3.1 Heredaturiko datuen eremuak 5 14.3.2 Heredaturiko metodoak 5 14.3.3 Herentzia eta ustegabeko gertarerak 5 14.4 KAPSULAZIOA 5 14.5 METODO ESTATIKOAK ETA METODO BIRTUALAK 6 14.5.1 Polimorfismoa 6 14.5.2 Eraikitzaileak 6 14.5.3 Objektu dinamikoak 6 14.6 ARIKETAK 6 14.7 BIBLIOGRAFIA 6 KONTZEPTUEN INDIZE ALFABETIKOA 1 xvi

1. ATALA: INFORMATIKARAKO SARRERA 1-1

Informatikarako sarrera 1. kapitulua AURKIBIDEA 1. ATALA: INFORMATIKARAKO SARRERA 1 AURKIBIDEA 2 1.1 SARRERA 5 1.2 ALGORITMOA 5 1.2.1 Algoritmoen erabilpena 8 1.2.2 Algoritmoen mailaketa 9 1.2.3 Algoritmotik programara 10 1.2.4 Makina algoritmikoak 14 1.2.4.1 Makina algoritmikoen sailkapena 14 1.2.4.2 Makina algoritmikoen arkitektura 16 1.3 MAKINA ALGORITMIKOEN MUGARRI HISTORIKOAK 18 1.3.1 Ordenadoreen aurretikoak 18 1.3.1.1 Aritmetikaren hastapenak 18 1.3.1.2 Aritmetikaren automatizazioa 19 1.3.1.3 Programaren kokapena memorian 21 1.3.2 Ordenadore mekanikoak 21 1.3.3 Ordenadore elektronikoak 22 1.3.4 Gaur egungo makina algoritmikoen arkitektura 24 1.4 PROGRAMAZIO-LENGOAIAK 26 1.4.1 Makina-lengoaia 27 1.4.2 Itzultzaileak 28 1.4.2.1 Mihiztadura-lengoaia 29 1.4.2.2 Konpiladoreak eta interpretatzaileak 30 1.4.2.2.1 Konpiladoreak 33 1.4.2.2.2 Interpretatzaileak 35 1.4.3 Goi-mailako lengoaia garrantzitsuenak 37 1.4.3.1 FORTRAN 37 1.4.3.2 COBOL 37 1.4.3.3 BASIC 37 1.4.3.4 PASCAL 38 1.4.3.5 C 39 1.4.3.6 ADA 39 1.4.3.7 MODULA-2 39 1.4.3.8 LISP 40 1.4.3.9 PROLOG 40 1.4.3.10 LOGO 40 1.5 KONPUTAZIO SISTEMA BATEN MAILAKETA 40 1.5.1 Sistema Eragilea 41 1.5.1.1 Sistema Eragilea eta erabiltzailea 41 1.5.1.2 Sistema Eragilearen funtzioak 41 1.5.1.3 Sistema Eragilearen motak 43 1-2 J-M Romo Uriarte

1. kapitulua Informatikarako sarrera 1.5.2 Aplikazio Programak 43 1.5.2.1 Testu-prozesadoreak eta Editoreak 44 1.5.2.2 Kalkulu-orriak 44 1.5.2.3 Simuladoreak 45 1.5.2.4 Datu-baseak 46 1.5.2.5 CAD-CAM-CAE 46 1.5.2.6 Telekomunikazioak 47 1.6 PROGRAMAK 48 1.7 BIBLIOGRAFIA 48 ERANSKINAK 48 E1 Abakoa erabiltzeko arauak 49 E2 Adimena duten makinak 61 E3 Telekomunikazioen iraultza 75 J-M Romo Uriarte 1-3

Informatikarako sarrera 1. kapitulua 1-4 J-M Romo Uriarte

1. kapitulua Informatikarako sarrera 1.1 SARRERA Informazioa transmititu eta prozesatu beharra betidanik izan du gizakiak, horregatik informatika bezala egun ezagutzen dugun zientziak aspaldiko aurretikoak ditu. Lehenengo kapitulu honetan zenbait definizio emango dugu, hurrengo kapituluen oinarriak direlako argi geratu beharko dira, edozein kasutan liburu honen planteamendu didaktikoa praktikoa izanik erabat argi geratuko ez diren kontzeptuak aurrerago ikusiko diren kapituluetan landuko direnez ez da zertan orain dena %100an ulertu behar. Has gaitezen bada informatika hitzak zer esanahi duen, UZEI hiztegitik hartuta honela definitzen da informatika: ordenadoreen diseinu eta erabilerari eta informazioaren tratamendu automatikoari dagozkion alderdi guztiak biltzen dituen jakintza-arloa. Informatika zientziaren definizioan elementu pare bat azpimarratuko genituzke. Batetik, Informatikak darabilen gaia informazioa dela (bigarren kapituluan zehaztuko dugu informazioa zer den), eta informazioaren prozesaketa edo tratamendua du helburu. Bestetik informazioaren tratamendua automatikoa dela, hots, informazioaren tratamendua makinaz egingo dela ordenadoreez 1 alegia. Zientzia bezala Informatikaren 2 ikergaiak, besteak beste, hauek lirateke: Algoritmoak eta datu-egiturak. Ordenadoreen arkitektura Adimen artifiziala eta Robotika Datu-baseak Gizaki-makina arteko komunikazioa Kalkulua Sistema Eragileak Programazio-lengoaiak Software ingeniaritza Nabaria denez sarrerako kurtso honetan ezin dira aipatu diren arlo guztiak arakatu, gure helburua ordenadore batek nola egiten duen lan ikastea da, hori bai, oso modu praktikoan irakatsiko dugu ordenadoreen funtzionamendua. Ondorioz ikasleak goi-mailako lengoaia batean programatzen ikasiko du, proposaturiko arazoa era formal batean formulatzen ohituko da eta haren ebazpidea programatzen gai izango da. 1.2 ALGORITMOA Konputazio Zientziaren (Informatikaren) oinarrizko kontzeptua algoritmoa da. Hura formalki definitu aurretik intuitiboki zer den azalduko dugu, edo behintzat saiatuko gara esplikatzen. Ordenadoreen programazioa zeregin berria da, baina programazioa funtsean arazoen soluzioa bilatzeko metodoa da eta esan genezake arazoak bezain zaharrak direla haien 1 Guri ordenadore terminoa baino konputagailu gehiago gustatzen zaigu. Logikoagoa iruditzen zaigu bi arrazoiagatik angloxaxoniarren artean ordenadore hitza ezagutu ere ez delako egiten, eta, makina algoritmikoa den ordenadorea definitzean konputagailu hobeto egokitzen da eta ez ordenadore (ordenadore batek lan egiten duenean beti konputatuko du, baina ez du halabeharrez ordenatu behar) 2 Informatika berba Frantzian sortua da 1962an bi hitz elkartuz Informazio Automatikoa, guretzat horren ezaguna den hitza erabat arrotza da gainerako munduan (Amerika eta Europa barne). J-M Romo Uriarte 1-5

Informatikarako sarrera 1. kapitulua ebazpideak. Planteaturiko arazo bat soluzionatzeko lau urrats betetzen dira, ordena-doreen programazioan beteko ditugunak: 1. Arazoaren ulermena. Problema zehaztasunez deskribatu beharra dago, hau da, zer egin behar den prezisio osoz jakitea halabeharrezkoa da. Urrats hau ez da beti behar bezala betetzen eta oso ondorio txarrak ekartzen ditu. 2. Arazoaren ebazteko plana egin. Zer egin behar den ziurtasunez dakigunean bestelako galderak erantzun genitzake, arazoari nola ekingo diogun bidea erakusten digutenak: Zer baliabide daukagu? Zer nolako tresneria? Nolakoak dira langileak? Zer epetan amaitu behar da? Erosgairik behar da? Errekurtso edo baliabide guztiak nola konbinatuko dira?. 3. Plana gauzatu. Zer egin behar den dakigula nola egingo den hausnartu ondoren lanean hasiko gara, helburu zehatz eta hura lortzeko plangintza egokiarekin. 4. Soluzioa ebaluatu. Gure produktuak hasierako espezifikazioak betetzen ditu?. Soluzioa bilatzeko lau urrats horietan ez da esan arazoa Informatikoa izan behar denik, Informatikaren mundura jauzi eginez problema bati erantzuten dion programa lortzeko lau urratsak hauek dira: 1. Arazoaren definizioa 2. Algoritmoa asmatu 3. Algoritmoa programa bezala idatzi 4. Soluzioa ebaluatu Beraz programa bat idatzi aurretik algoritmo bat sortu beharra daukagu. Baina algoritmoa zer da?. Intuitibori 3 erraz definitzen da: lan bat exekutatzeko behar diren instrukzioen multzoa da algoritmoa. Algoritmoen adibiderik klasikoenak errezetak dira, jarraian Pedro Subijana maisu famatuaren Denok Sukaldari liburutik hartutako algoritmoa ematen da: Lau lagunentzat gaiak Nola egin PORRUSALDA-KREMA BAKAILAOAREKIN porruak: 375 gr tipula: 180 gr patata: 470 gr bakailaoa: 200 gr bi baratxuri-atal olioa 1. Porruak txikitu eta zatirik samurrenak azkenerako utzi hornigaitarako erabiltzeko 2. Gainerakoak kazola batean jarri egosten 3. Gehitu tipula txikitua eta patata zatituak, olio zorrotada bat bota eta su motelean utzi irakiten, 40 minutu edo. 3 Algoritmo instrukzioen multzo finitua da, instrukzioak exekutagarriak dira eta euren arteko anbiguotasunik (zalantzagarritasunik) ez dago, eta, instrukzioek gidatzen duten zereginak amaiera du. 1-6 J-M Romo Uriarte

1. kapitulua Informatikarako sarrera 4. Bitartean, gezatutako bakailaoa prestatu eta mamitu. Zartaginean pasa baratxuri txikitu eta olio pixkarekin, eta lurrintzen utzi botatako ur guztia. 5. Porrusalda egin eta gero, xehatu eta iragazi (fin-fin gera dadila), gehitu bakailaomamiak eta nahastu. 6. Azkenerako utzitako porru-zatiak erdi egosi zartaginean eta krema gainean bota. Algoritmoak ideiak transmititzeko tresnak direnez grafikoak izan daitezke, jostailuak muntatzeko orrietan agertzen diren bezalakoak: J-M Romo Uriarte 1-7

Informatikarako sarrera 1. kapitulua 1.2.1 Algoritmoen erabilpena Algoritmoak betidanik erabili dira, badira algoritmoak janariak prestatzeko errezetak deitzen ditugunak, musika jotzeko partiturak bezala ezagutzen ditugunak, etxeko landareak zaintzeko prozedurak algoritmoak izan daitezke, magia egiteko liburuak algoritmoen liburuak dira (amarrua urratsez urrats enumeratzen baita), mendi liburuetako ibilbideak algoritmikoki deskribatu ohi dira. Antzinako Mesopotamian algoritmoak erabiltzen ziren, Grezia zaharrean ere Euklides matematikariak gure egunetara iritsi den algoritmoa asmatu zuen. Euklides-en algoritmoak bi zenbakien z.k.h. (zatitzaile komunetako handiena) aurkitzeko balio du eta honela dio: Arazo orokorra: Bi zenbakien zatitzaile komunetako handiena lortu. Sarrerako datuak: Osoak eta positiboak diren bi kopuru. Prozesua: Algoritmoak hiru urrats ditu lehenengoa hasieraketa da eta beste biak behin baino gehiagotan errepika daitezke. 1. Datuetan kopuru handienari M deituko diogu, kopuru txikiena N izango da. 2. M eta N arteko zatiketa osoa lortu hondarrari H deituz. 3. H zero ez denean, N balioa M-ri erantsi (esleitu) H balioa N-ri erantsi bigarren urratsera itzuli; bestela, z.k.h. N-ren uneko balioa da Adibidea: Datuak 36 eta 16 M N H Zatidura 36 16 4 2 16 4 0 4 z.k.h. 4 Behin algoritmoa asmatu eta sortu ondoren bi zenbaki osoen z.k.h. lortzea hura aplikatzea aski da, ez da ulertu behar zer egiten dugun urratsak egoki betetzea besterik ez zaigu gelditzen. Esaterako 7 eta 11 arteko zatitzaile komunetako handiena kalkulatu nahi badugu, taula hau beteko litzateke larregirik pentsatu gabe: Datuak 11 eta 7 M N H Zatidura 11 7 4 1 7 4 3 1 4 3 1 1 1 1 0 1 z.k.h. 1 Nolabait esateko z.k.h. kalkulatzeko behar den adimena algoritmoan txertatuta dago eta horren erabiltzailea ez da oso burutsua izan behar, areago, makina automata bat izan daiteke taula eraikiz soluzioa eskura dezakeena. Alderantziz formulatuta, arazo bat emanik hura ebazteko algoritmorik aurkitzen ez badugu, ezinezkoa izango zaio ordenadore bati arazo horren soluzioa bilatzea. 1-8 J-M Romo Uriarte

1. kapitulua Informatikarako sarrera Algoritmoak hobeto ulertzeko urratsen zerrenda baten ordez fluxu-eskemen bitartez adieraz daitezke, lantzen ari garen adibiderako eskema hauxe litzateke: Datu handiena M Datu txikiena N N balioa M-ri esleitu H balioa N-ri esleitu M eta N-ren arteko zatiketa egin eta EZ H-k 0 balio du? BAI z.k.h. = N 1.2.2 Algoritmoen mailaketa Euklides-en algoritmoarekin jarraituz, eta azken puntuan emandako fluxu-eskemari begiratuz, zatiketak nola egiten diren ezagutzen dela suposatu dugu. Edo porrusalda-kremaren prestaketan deskribatzen den bosgarren urratsan: 5. Porrusalda egin eta gero, xehatu eta iragazi (fin-fin gera dadila), gehitu bakailaomamiak eta nahastu. Ez denez ezer gehiagorik zehaztu, porrusalda fin-fin gera dadin irakurleak nola egin behar duen badakiela suposatu da errezeta idatzi denean. Honek esan nahi du algoritmo bat formulatzean abstrakzio maila bat aukeratu behar dela, eta horren arabera algoritmoak zatika adieraz daitezkeela. Esate baterako Euklides-en algoritmoan zatiketak nola egiten diren zehaztu nahi izanez gero, txikiak ginenean erakutsi ziguten zatiketa operazioari dagokion algoritmoa bilatu beharko genuke (honek behartzen gaitu biderketa definitzera). Edo bestela kontutan izan dezakegu zatiketa operazioa kenketa multzo bat dela, horrela jokatuz hona hemen zatiketa definitzen duen algoritmoari dagokion eskema: M eta N zehaztu M ken N kalkulatu eta M-ri esleitu EZ N > M? BAI H = M J-M Romo Uriarte 1-9

Informatikarako sarrera 1. kapitulua Kenketa nola kalkulatzen den suposatuz, Euklides-en algoritmoari dagokion eskema osatua hau litzateke: Datu handiena M Datu txikiena N M eta N zehaztu N balioa M-ri esleitu H balioa N-ri esleitu M ken N kalkulatu eta M-ri esleitu EZ N > M? BAI H = M EZ H-k 0 balio du? BAI z.k.h. = N Algoritmoa formulatuta dagoen bezala ordenadoreak ezingo du ulertu, ordenadoreak interpreta ditzakeen aginduak oso elementalak baitira. Algoritmoa osatzen duten instrukzioetatik makinak onartzen dituen aginduetara jauzi egin beharra dago. Azken honi programa esaten zaio eta jarraian garatzen den puntuan horren ideia hartuko dugu. 1.2.3 Algoritmotik programara Demagun ordenadorearen bitartez joko bat antolatu nahi dugula. Programaren zeregina honela deskribatzen da: erabiltzaileak, guk, 0 eta 100 artean dagoen zenbaki oso bat pentsatuko dugu eta ordenadoreak zein den asmatu beharko du. Konputagailuak saiakera ezberdinak izango ditu, eta bakoitzean 0 eta 100 arteko zenbaki bat aukeratuko du eta guk pentsatutako kopurutzat harturik soluzio bezala aurkeztuko digu erabiltzailearekiko honelako elkarrizketa izanik: 1. saiakeran ordenadoreak aukeratutako zenbakia: 50 zurearekin konparatuta, nolakoa da? B Berdina H Handiagoa T Txikiagoa Erantzuna: T 1-10 J-M Romo Uriarte

1. kapitulua Informatikarako sarrera 1. saiakeran erabiltzaileak, teklatuz, dagokion erantzuna emango dio ordenadoreari, horretarako erabiltzaileak pentsatutako zenbakia eta ordenadoreak aukeratu duena kontutan edukiko ditu. Eta, horren arabera hauek izan daitezke konputagailuaren ekintzak: Erantzuna B izatean, zenbakia asmatu du eta programa amaituko da Erantzuna H edo T izatean beste soluzio berri bat proposatuko du eta aurreko menuaren bitartez erakutsiko digu Esaterako, lehenengo saiakeran 50 kopurua gure zenbakia baino txikiagoa delako T erantzun da, baina bigarren txandan ordenadoreak hau erakutsiko digunean gure erantzuna H izango da guk asmatutako zenbakia 50 eta 75 artean baitago: 2. saiakeran ordenadoreak aukeratutako zenbakia: 75 zurearekin konparatuta, nolakoa da? B Berdina H Handiagoa T Txikiagoa Erantzuna: H Azken informazio honekin ordenadoreak soluziotzat 62 hartuko luke. Hau erakutsi eta programa bukatu B erantzun baitzaio: 3. saiakeran ordenadoreak aukeratutako zenbakia: 62 zurearekin konparatuta, nolakoa da? B Berdina H Handiagoa T Txikiagoa Erantzuna: B Pentsatu duzun zenbakia 62 da Falta zaigu azaltzea ordenadoreak zergatik aukeratu dituen 50, 75 eta 62 zenbakiak, nola dakien guk pentsatutako zenbakia mugatzen? ordenadoreak zein estrategia darabilen?. Konputagailuak, hasieran baliagarria den 0 eta 100 arteko esparrua gure erantzunen arabera aldatu egiten du, eta saiakera bakoitzean ordenadoreak proposatzen digun soluzioa uneko esparruaren erdian aurkitzen den zenbakia da. Algoritmoa laburbiltzen duen taula: Uneko esparrua Saiakera Behemuga Goimuga Erdia 1. 0 100 (0+100) / 2 = 50 2. 51 100 (51+100) / 2 =75 3. 51 74 (51+74) / 2 =62 Algoritmoa grafikoki adierazita, non gezien muturrek saiakera bakoitzari dagozkion behemuga eta goimuga azaltzen duten: 51 2. saiakera 100 51 3. saiakera 74 50 62 75 0 1. saiakera 100 J-M Romo Uriarte 1-11

Informatikarako sarrera 1. kapitulua Zenbakia asmatzen duen algoritmoak hiru zati nagusi ditu: jokoa hasi, saiakerak errepikatu eta jokoaren bukaera. Hona hemen algoritmoa: Jokoa hasi: Esparruaren behemuga 0 izan dadila Esparruaren goimuga 100 izan dadila Esparruaren erdia kalkulatu: (behemuga + goimuga) / 2 Saiakerak zenbatzen dituen kontagailua 1 izan dadila Saiakerak errepikatu: Uneko esparruaren erdia soluziotzat hartu eta pantailaratu Erabiltzailearen erantzuna jaso Proposatutako zenbakia guk pentsatutakoa baino handiagoa bada (erantzuna H) esparrua aldatuko da goimuga txikiagoa jarriz. Hurrengo saiakerarako behemuga dagoen bezala mantendu eta goimuga uneko esparruaren erdia ken 1 izan dadila Proposatutako zenbakia guk pentsatutakoa baino txikiagoa bada (erantzuna T) esparrua aldatuko da behemuga handituz. Hurrengo saiakerarako goimuga ez da aldatzen baina behemuga uneko esparruaren erdia gehi 1 izan dadila Behemuga edo goimuga berriekin, hasieraketan bezala, hurrengo saiakerari dagokion esparruaren erdia kalkulatu: (behemuga + goimuga) / 2 Saiakerak zenbatzen dituen kontagailua unitate batean inkrementatu Saiakera berri bat behar den ala ez erabaki. Ordenadoreak proposatutako zenbakia eta guk pentsatutakoa berdinak izan badira (erantzuna B) algoritmoaren hirugarren zatira joan, bestela algoritmoaren bigarren zatiarekin hasieratik jarraitu. Errepikapenak eteteko bigarren arrazoi bat dago, hots, saiakerak 7 baino gehiago izan badira erabiltzaileak ez du erantzunetan zuzen jokatu eta algoritmoaren hirugarren zatira joan. Jokoaren bukaera: Algoritmoaren bigarren zatitik irtetea ziurtaturik dago (erantzuna B izan delako edo saiakera kopurua 8raino heldu delako) eta prozesu errepikakorra nola eten den aztertuz soluzioa erakutsiko zaio erabiltzaileari. Erantzuna B izan denean guk pentsatutako zenbakia azken esparruaren erdia da, bestela erabiltzaileak ez du zuzentasunez erantzun Zenbakia asmatzen digun algoritmoa hizkuntza naturalean formulatu dugu, algoritmo horrek asmaketa lortzeko zein bide jorratu behar den argi eta garbi azaltzen digu, nahiz eta ondo ulertu ez helburua erdiesten dela froga dezake ikasleak. Beraz, zenbakia asmatzeko prozedura hau edozeinek aplika dezake era mekaniko batean, makina batek zenbakia asma dezan algoritmoa ezarri behar zaio. Tamalez hizkuntza naturalean formulaturiko algoritmo hori uler dezakeen ordenadorerik ez dago oraindik, hizkuntza naturala oso aberatsa da baina oso konplexua ere eta ideiak adierazteko anbiguatasun handiak egon daitezke gaizki-ulertze eta erroreak eragiten dituztenak. Esandakoagatik ordenadoreei algoritmoak ematean ez da hizkuntza naturala erabiltzen programazio-lengoaia bat baizik. Programazio-lengoaia bat lengoaia naturalaren azpimultzo bat da (lengoaiaren hiztegia txikia da eta bere arauak oso zehatzak), ondorioz programaziolengoaia batek edukiko dituen ezaugarriak argitasuna, sinpletasuna eta prezisioa izango dira. 1-12 J-M Romo Uriarte

1. kapitulua Informatikarako sarrera Zenbakiaren asmaketa jokoa konputagailu batek exekuta dezan, algoritmoa hizkuntza naturaletik programazio-lengoaia batetara igaroko dugu. Lengoaia formal batean adierazitako algoritmoari programa deritzo. Adibidez Turbo Pascal izenez ezagutzen den lengoaiara igaro ondoren hona hemen zenbakia asmatzen digun programa: PROGRAM ZenbakiaAsmatzen ; { \TP70\01\ASMATU.PAS } { ------------- Zenbakiak memorian gordetzeko } { ------------- aldagaiak definitzen dira } VAR Soluzioa, Saiakera, Behemuga, Goimuga : Byte ; Erantzuna: Char ; BEGIN { ------------- Algoritmoaren lehen zatia } Behemuga := 0 ; { ------------- Jokoa hasi } Goimuga := 100 ; Soluzioa := (Goimuga + Behemuga) DIV 2 ; Saiakera := 1 ; { ------------- Algoritmoaren bigarren zatia } REPEAT { ------------- Saiakerak errepikatu } WriteLn ; Write (Saiakera, ', saiakeran ordenadoreak aukeratutako zenbakia: ') ; WriteLn (Soluzioa) ; WriteLn ('zurearekin konparatuta, nolakoa da?') ; WriteLn (' B Berdina' ) ; WriteLn (' H Handiagoa' ) ; WriteLn (' T Txikiagoa' ) ; Write ('Erantzuna: ') ; Readln (Erantzuna) ; Erantzuna := UpCase (Erantzuna) ; IF Erantzuna='H' THEN Goimuga := Soluzioa - 1 ; IF Erantzuna='T' THEN Behemuga := Soluzioa + 1 ; Soluzioa := (Goimuga + Behemuga) DIV 2 ; Saiakera := Saiakera + 1 ; UNTIL (Erantzuna = 'B') OR (Saiakera > 7) ; {-------------- Algoritmoaren hirugarren zatia } {-------------- Emaitza erakutsiz jokoa bukatu } IF Erantzuna='B' THEN WriteLn ('Pentsatu duzun zenbakia ', Soluzioa, ' da') ELSE WriteLn ('Erantzunetan okertu zara ala gezurti hutsa zara') ; END. Irakurleak ez ditu ZenbakiaAsmatzen programaren sententziak ulertuko baina bai ikus dezake lengoaia naturalean idatziko algoritmoarekiko duen lotura estua, izan ere liburu eta kurtso honen asmoetatik bat algoritmoak Turbo Pascal lengoaia formalean idazten ikastea izango da. Onar dezagun ere algoritmoa programa bezala adierazita dagoenean ordenadore batek hura exekutatzeko aukera duela, eta algoritmoari guk barneratu diogun adimena bereganatzen duela. Hurrengo puntuan makinei buruz arituko gara, algoritmoak exekutatzeko ahalmena duten makinak sailkatu eta aurkeztuko ditugu. J-M Romo Uriarte 1-13

Informatikarako sarrera 1. kapitulua 1.2.4 Makina algoritmikoak Algoritmoa exekuta dezakeen gailuari makina algoritmiko esango diogu. Ordena-doreei zer egin behar duten programa baten bitartez zehazki esan behar zaienez algoritmoren bat erabiliko dute euren funtzionamenduan, horregatik ordenadoreak makina algoritmikoak dira. Algoritmo kontzeptua Informatika baino zaharrago denez, makina algoritmikoak ere aspaldiko asmakizunak dira (makinaren bat algoritmikoa izan dadin bere funtzionamenduan algoritmoren bat jarraitzen duela kontsideratuz). Makina algoritmikoen bilakaera historikoa 1.3 MAKINA ALGORITMIKOEN MUGARRI HISTORIKOAK puntuan garatuko dugu, baina horren aurretik makinen sailkapen bat egin dezagun. 1.2.4.1 Makina algoritmikoen sailkapena Makina bat lan bat egin edo funtzioren bat betetzen duen aparatu edo aparatu-multzoa da, makinak bere kabuz funtziona dezake edo erabiltzaileak maneiatuta ibil daiteke. Makina nola kontrolatzen den aintzat harturik makinen sailkapen berezi hau egin daiteke: 1. Makina ez-automatikoak 2. Makina automatikoak 3. Makina programagarriak Banan-banan azal ditzagun: 1. Makina ez-automatikoak Erabiltzaile batek uneoro maneiatu behar duen aparatua da. Lana burutu dadin erabiltzailearen partehartzea ezinbestekoa da, nahiz eta makina ez-automatikoak bere kabuz zenbait funtzio bete izan. Adibidez, idazmakinak letrak paperean inprimatzen ditu idazleak teklak sakatzen dituen heinean, baina mekano-grafiatzeari utziz gero idazmakina gelditzen da. 2. Makina automatikoak Makina automatiko batean operadorea ez da uneoro aparatua kontrolatzen ariko. Automatikoak kontsidera daitezkeen makinek duten funtzioa betetzeko, euren kabuz ibiltzen dira kanpotik aginduak hartu eta gero. Esate baterako modernoagoak diren idazmakinekin lan egitean, lerro muturrera iristean orga atzeratu eta papera igotzen du automatikoki. Automatizazioa gradu bat da eta makina automatikoen adibideak amai ezinak lirateke. Denek onartzen dute erabiltzailearengandik nolabaiteko agindua eta funtzionamendua nahikoa autonomoa izaten da. Adibidez, gaur eguneko igogailuek teklatu txiki baten bitartez hartzen dituzte erabiltzailearen eskakizunak eta bere kabuz jaitsi eta igotzeko mugimenduak gobernatzen ditu (igo, jaitsi eta abar luzeko eginkizunak: abiadura eta azelerazioaren kontrola, ateen irekitzea eta ixtea, argitxo adierazgarriak piztea, bidaiarien eta kargaren pisua neurtzea,...). Makina automatiko bat eraikitzen denean etorkizunean izango duen funtzionamendua erabakitzen da, eta bere osagaietan era finko batean ezartzen da. Horrela, zirkuitu elektriko edo eta pneumatiko baten bitartez gobernatzen dira igogailuaren ateak, 1-14 J-M Romo Uriarte

1. kapitulua Informatikarako sarrera eta sistema ongi dabilen bitartean ateak beti ireki eta itxi egingo dira modu berean. Baina ateak astiroago ixtea nahi izango bagenu ez litzateke erraza izango, igogailuaren barne egituretan jantziak izateaz gain fisikoki zaila delako (igogailua desmuntatu beharko litzatekeelako). Igogailu batek, makina automatikoa den aldetik, algoritmo bat dauka bere zirkuituetan ezarririk, eta funtzionatzean eskema honi erantzuten dio beti: eszitazioak + Algoritmoa Makina automatikoa irteerako erantzunak Makina automatikoaren algoritmoa aldatzea zaila da, ondorioz funtzionamendu autonomoa baina zurruna dauka. 3. Makina programagarriak Makina programagarriak makina automatiko sofistikatuak dira. Izan ere, erabiltzailearen eskakizunak jasoko ditu baina makina automatikoak ez bezala ez dute portaera finko bat. Esan nahi da makinaren funtzionamendua unez une egokitzeko erraztasunak nabariak daudela makina programagarrietan. Igogailuaren adibidera atxikiz, horrek duen funtzionamendua automatikoa baina zurruna da, botoi bat sakatuz ondoriotzen diren sekuentziak beti izango dira berdinak. Baina programa-garria den makina batean eszitazio bat jasoz izan daitekeen portaera desberdina litzateke, orain azalduko den arrazoiagatik. Makina programagarria bi zatiz osaturik dago. Batetik oinarrizko makina deituko dugun zatia (aldaezina dela onar daiteke), eta, bestetik makinaren osagaia den programa (bigarren zati hau erraz aldatu eta moldatzeko diseinaturik dago): programa programa makina makina Makina programagarriaren osagaiak Makina progr Makina programagarriaren funtzionamendua bi osagaien partebestera aldatzea erraza dela kontsideratuz makina programagarriaren funtzionamendua Egindako sailkapenarekin gogoratuz: 1. Pianoa: -automatikoa, pianojoleak teklak sakatzen dituen bitartean musika entzungo da. 2. Musika kutxa: J-M Romo Uriarte 1-15

Informatikarako sarrera 1. kapitulua 3. Disko-jogailua: Makina programagarria, diskoa kenduz portaera ezberdinak izan ditzakeelako (kontzertu barrokoa izatetik folk jaia izatera pasa daiteke, modu oso errazean). Soinua automatikoki jotzeaz gain apatuaren portaera unez une egokitzea berehalakoa da. Ordenadore batek makina programagarria dela esango dugu, bi osagai baititu. Oinarrizko dispositiboekin batera (Informatikaren munduan hardware esaten zaio sailkapena egitean oinarrizko makina izendatu duguna), erraz karga daitekeen programa agertuko da ordenadorearen partaide bezala. Honez gero ordenadore batek duen funtzionamendua erabat alda daiteke exekutatzen duen programaren arabera: inprimagailuarekin batera idazmakina izan daiteke baldin eta testu prozesadore bat kargatzen badiogu, planoak marrazteko lanpostua izan daiteke CAD programa (marrazketa teknikorako programa) kargatzen badiogu, musika sor daiteke, etxeko kontabilitatea, irudi digitalak tratatu, sistemen ekuazioak ebatzi, zenbakizko datuak eman eta grafikoak marraztu,... A programa A programa B programa B programa oinarrizko oinarrizko oinarrizko oinarrizko makina makina makina makina portaera berezia duen A Makina portaera berezia duen B Makina 1.2.4.2 Makina algoritmikoen arkitektura Bi zenbakien zatitzaile komunetako handiena kalkulatzeari ekingo bagenio, eta eskuz egin beharko bagenu paper orria eta arkatza baliabide fisikoz lagundurik eta Euklides-en algoritmoa baliabide intelektualaz, hau egingo genuke: 1 3 3 2 2 Euklides-en algoritmoaren prozesua gogoratuz: 1. Datuetan kopuru handienari M deituko diogu, kopuru txikiena N izango da. 2. M eta N arteko zatiketa osoa lortu hondarrari H deituz. 3. H zero ez denean, N balioa M-ri esleitu, H balioa N-ri erantsi eta bigarren urratsera itzuli; bestela, z.k.h. N-ren uneko balioa da Beraz, datuak 36 eta 16 izanik z.k.h. eskuz kalkulatzeko betetzen ditugun zereginak bi dira. Batetik balio bat nonbaiten gorde behar dugu, geroago balio hori eskuratu ahal izateko, 1-16 J-M Romo Uriarte

1. kapitulua Informatikarako sarrera adibidean 36 datua M deituriko aldagaian 4, zeregin hau informazioaren biltegitzea izango da. Bete beharreko bigarren zeregina informazioaren prozesaketa izango da, informazioa prozesatzean eragiketa matematiko eta eragiketa logikoak burutzen dira; adibidez H-ri dagokion balioa lortzeko M eta N-ren arteko eragiketa matematikoa den zatiketa egin behar da, prozesu errepikakorra eteteko H-k zero balio duen frogatzen da (eragiketa logikoa). 36 eta 16 datuen z.k.h. eskuz kalkulatu ordez makina batek egin beharko balu, honek ere informazioa biltegitzeko (gordetzeko) eta informazioa prozesatzeko (eragiketak) ahalmena izan beharko luke. Ordenadoreetan atal berezi bi daude funtzio horietaz arduratzen direnak: memoria eta unitate prozesatzailea: Memoria Unitate Prozesatzailea Baina makina automatiko eta programagarriei eszitazioak ematen dizkio erabiltzaileak martxan jarri daitezen. Ordenadoreari ere, algoritmo programatua eta datuak eman beharko zaizkio eta programa hori exekuta dezan agindu beharko zaio. Horrez gain ordenadoreak kalkulatu duen emaitza erabiltzaileari erakutsiko dio (informazioa ordenadoretik kanporatuz). Beraz, ordenadore baten zereginak lau izango dira, aurreko biak eta sarrera/irteera nozioekin loturik daudenak. Hona hemen makina algoritmiko baten zereginen zerrenda eta eskemarik sinpleena: 1. Sarrerak onartu Erabiltzaileak informazioa ordenadoreri emango dio, informazioa diogunean datuak eta programari buruz ari gara. 2. Irteerak sortu Informazioa ordenadoretik kanporatzen denean. 3. Informazioa biltegitu Informazioa ordenadorearen memorian pilatzen da, informazio hori memoriatik ordenadorearen beste ataletara mugi daiteke, eta, ordenadorearen gainerako barne-osagaietatik memoriara mugi daiteke ere. 4. Informazioa prozesatu Informazioa prozesatzeak alderdi bi izango ditu. Eragiketa aritmetikoak eta logikoak burutu behar ditu ordenadoreak, eta, programaren instrukzioak ulertu eta exekutatuko ditu. Sarrerak / Irteerak Memoria Unitate Prozesatzailea Elementu hauen konbinazioak ordenadorearen hardwarea osatzen du eta makina programagarriaren aldaezina den zatia litzateke, hots, oinarrizko makina deitutakoa. Zati finko horri aldagarria den atala gehituko zaio makina algoritmiko osatua lortzeko, lehen aurreratu dugulako badakigu erraz alda daitekeen zatiari programa deitzen zaiola. programa programa oinarrizko makina oinarrizko makina 4 M-ri aldagaia esaten zaio berak adierazten duen balioa aldagarria delako prozesuaren zehar, hasieran M-k 36 sarrerako datua ordezkatzen du baina aurrerago M-ren balioa 16 da. J-M Romo Uriarte 1-17

Informatikarako sarrera 1. kapitulua 1.3 MAKINA ALGORITMIKOEN MUGARRI HISTORIKOAK Gizakion artean lan minimoaren legea edonon eta edonoiz aplikatu den araua izan da, da, eta izango da. Lan astunak eta errepikakorrak ekidin nahirik gabiltza mundu honetan; eta kalkuluak modu atsegin batean burutu ahal izateko asmatu dira hainbat tresna fisiko eta prozedura adimendutsu, horien artean ordenadoreak dira kate luze baten azken katemailak. Egungo ordenadoreetara iristeko bide luze bat jorratu da, makina algoritmikoak nola bilakatu diren ikus dezagun. Mugarri historikoak multzoka taldekatu ditugu, nahiz eta euren artean jarraipen estua egon. 1.3.1 Ordenadoreen aurretikoak Ordenadoreen aurretikoak hiru etapetan azalduko ditugu: aritmetikaren hastapenak zeintzuk ziren, kalkulugintza nola hasi zen automatizatzen eta historiako lehen makina programagarriek erakarri zituzten aurrerakuntzak. 1.3.1.1 Aritmetikaren hastapenak Hasiera batean zenbaketak egiteko gizakiak atzamarrak erabiliko zituen, atzamarrak eta harrien bitartez lortuko zuen kopuruen adierazpidea. Kalkulurako ezagutzen dugun tresnarik zaharrena hortik ondoriotuko zen, dakigunez K.a. 3500 inguruan abakoa Mesopotamian ibiltzen zen eta handik Grezia eta Txinara zabaldu omen zen. Abako batek hainbat ardatz ditu eta bakoitzean egurrezko, harrizko edo zeramikazko bolak mugi daitezke gora eta behera, bola horiek dituzten posizioak behaturik jakin daiteke zein zenbaki adierazten duten. Esate baterako 7230189 kopurua abako batean idatzi ondoren honelako egoera izango genuke: 0 0 7 2 3 0 1 8 9 Abakoa eskuz maneiatzen den tresna da zenbaki bat adieraz dezan. Behin kopuruaren matematikoak burutzeko arauak definitu ziren (ikus kapitulu aldizkariko artikuluak). Matematikari hinduek asmatutako errepresentazio sistema hamartarra arabiarren eta kulturetan. Baina, abakoa herri askotan. 1-18 J-M Romo Uriarte