ZENBAKIAREN KONTZEPTUA Zenbakia kontzeptua funtsezkoa da gizarteko komunikazio eta harremanetarako. Hizkera orokor arruntean, zenbakiek etengabeko presentzia dute, objektuak zenbatzeko eta objektuak neurtzeko ohitura baitugu, eta bai zenbatzean zein neurtzean zenbakiak erabili behar baititugu. Zenbatu eta neurtu aditzak nahasirik erabil daitezke hizkera orokorrean, baina teknikan eta zientzian bereizi behar ditugu bakoitzak ekintza desberdina adierazten duelako. Nahiz eta ekintza bietan zenbakiak erabili gauza bat da zenbatu eta beste gauza bat da neurtu.
Zenbatu Zehatz hitz eginda, zenbatu aditzak mota bereko zenbat objektu dauden kontatzea adierazten du. Beraz, zenbatu aditzaren esanahia kontaketarekin loturik dago eta dagokion eragiketa zenbaketa deitzen da. Zenbaketa eragiketaren emaitza kopurua da, hots, zenbat objektu dauden esatea. Zer esanik ez, zenbatu ahal izateko, objektuek edo magnitudeek diskretuak izan behar dute, zenbakagarriak alegia, eta zenbaketaren emaitza zenbaki osoa izango da. Pascal programazio-lengoaian zenbaki osoak adierazteko ondoko datu-motak erabiliko ditugu:
Neurtu Bestalde, neurtu aditzak honako ekintza adierazten du: objektu edo magnitude fisiko jakin baten neurrian, unitatea zenbat aldiz sartzen den kalkulatzea. Beraz, neurtu aditzaren esanahia konparaketa batekin loturik dago eta dagokion eragiketa neurketa deitzen da. Neurketa eragiketaren emaitza neurria da, hots, magnitude fisikoa zein tamainatakoa den esatea. Neurtu ahal izateko, magnitude fisikoek jarraituak izan behar dute, zenbakaitzak edo ez-zenbakagarriak alegia, eta neurketaren emaitza zenbaki ez-osoa izango da (edo bestela esanik zenbaki erreal). Pascal programazio-lengoaian zenbaki ez-osoak adierazteko ondoko datu-mota erabiliko dugu:
| ||||||||||||||||||||||||||||||
ZENBAKIEN OINARRIZKO TEOREMA Gaur egun munduan erabiltzen diren zenbakitze-sistemak posizionalak dira, aspaldiko garaietan ez posizionala zen zenbakitze-sistemarik bazegoen baina guztiz ahazturik geratu ziren (irakurri Zisterraren zenbakitze-sistema Erdi Aroan artikulua). Magnitude fisikoak matematikoki adierazteko Zenbakien Sistemak erabiltzen ditugu. Zenbakien Sistemak pluralean esan dugu, Zenbakien Sistema desberdinak daudelako b oinarriaren arabera. Zenbakien Sistema desberdinak izan arren, denek betetzen dute Zenbakien Oinarrizko Teorema, hots, Polinomioaren Adierazpidea:
Beraz, K kopuruaren errepresentazioa b oinarrian hau litzateke: K = an an-1 ... a2 a1 a0 , a-1 a-2 ... a-p K kopuruaren errepresentazio aurrekoa izanik, bere balioa eskuratzeko polinomioa aplika dezagun: Adibideak: Zenbakien Sistema desberdinak Magnitude fisikoak matematikoki adierazteko Zenbakien Sistemak erabiltzen ditugu. Zenbakien Sistemak pluralean diogu bat baino gehiago izan daitezkeelako. Hona hemen lau adibide: Bit-en taldekatzeak Magnitude fisikoak matematikoki adierazterakoan aukeratutako Zenbakien Sistemaren oinarria txikia bada, digitu kopuru handia behar izaten da. Sistema bitarrean adibidez, magnitudeak errepresentatzean digitu segida luzeak ateratzen dira. Ordenagailua eta gainerako makina digitaletan bitak multzoka prozesatzen dira, ondoko taulak bit-en taldekatzeak erakusten ditu: Ikus daitekeenez, 8 bit erabiltzean 28=256 konbinazio ateratzen dira, eta horrek mugatzen du onargarriak diren balioak (txikiena 0 eta handiena 255). Hamartarretik bitarrera Zenbaki osoen datu-motak aurkeztu aurretik, ikus dezagun nola igaro kopuru bat hamartarretik bitarrera. Esate baterako, nola adierazten da 33 kopura kode bitarrean? Hamartar-bitar bihurketa dela eta, nahiz eta "sakontzeko" kontu bat izan, ikusi 1. astea | Hamartarretik bitarrera artikulua eta bertan eskaintzen diren programak exekutatuz emaitzak interpretatu. Bide batez, iturburu-programen kodeak aztertu jakinik programazioaren elementu batzuk ez ditugula oraindik ulertuko. | ||||||||||||||||||||||||||||||
ZENBAKI OSOEN DATU-MOTAK Zenbaki osoen datu-mota desberdinak aurredefiniturik daude, baina guk hiru hauekin lan egingo dugu: Byte, Integer eta Longint. Hiru datu-mota horiek berdintsuak dira, batek beti balio positiboekin lan egiten du eta beste biek balio negatiboak zein positiboak onartzen dituzte. Edozein datu-motaren ezaugarri garrantzitsua byte kopurua da, Integer datu motak 2 edo 4 byte hartuko ditu plataformaren arabera. Zenbaki osoen heinak Gorago aipatu den datu-mota bakoitza zenbaki osoen multzo bat dela onar daiteke, eta ondoko taulan datu-mota bakoitzeko multzoaren behemuga eta goimuga biltzen dira: Esan bezala, gure ariketa gehienetan Integer, Longint eta Byte datu-motak erabiliko ditugu eta goimugak gogoratu behar izatea ekidin asmoz, Pascal programazio-lengoaiak aurredefiniturik ditu MAXINT eta MAXLONGINT konstanteak.
Datu-mota osoa dela eta, ikertu BYTE, SHORTINT, INTEGER, LONGINT eta WORD arteko desberditasunak programa hauen kodea aztertuz eta exekutatuz. Argi dago, irakasgaiaren hasiera honetan, kode horien zati batzuk ez direla ulertuko baina beste batzuk bai, (garrantzitsuena: programen exekuzioetatik ateratzen diren emaitzak analizatzea). Bost ariketen iturburu-programak hauek dira eta laborategian ikusiko ditugu:
Integer datu-motak hartzen dituen bit kopurua 16 dela esan dugu, hau da 2 byte. Baina egia da Integer datu-motaren bit kopurua ordenadorearen hardwarearen araberakoa dela. Hori dela eta, ordenadore batzuetan Integer datu-motak 2 byte hartzen ditu, eta beste batzuetan 4 byte hartuko ditu. Gure programaren hasieran {$MODE TP} konpilazio-agindua idazten badugu, ziurtatuko dugu Integer datu-motak 2 byte hartuko dituela. Aurreko hau frogatzeko, ondoko bi programak aztertu eta exekutatu:
Zenbaki osoen eragile aritmetikoak Datu-mota osoek ezagutzen dituzten operazioak hamabi dira (sei operadore aritmetiko eta erlaziozko beste sei operadore). Operadore aritmetikoak, aurreratu denez, sei dira eta adierazpen aritmetikoak sortzeko ezinbestekoak dira. Adierazpen aritmetiko batean, eragile aritmetikoei esker, ondoko hauek konbinatzen dira: konstanteak, aldagaiak eta funtzioen emaitzak. Esate baterako, ondoko adibidean ematen den adierazpen aritmetikoan agertzen diren tokenak 9 dira (hiru aldagaien identifikadoreak, konstante bat, funtzio baten identifikadorea, eta, aurreko horiek konbinatzen dituzten hiru eragile aritmetiko eta parentesi sinboloak): Abs(iZabalera - iAltuera) + 2*iDiametroa Hurrengo taulan zenbaki osoekin erabil daitezkeen sei eragile aritmetikoak biltzen dira: Sei eragile horien artean hierarkia bat dago, lehenengo biak batuketaren familiakoak dira eta azken hirurak biderketa familia osatzen dute, ukatzaile bereziagoa da eta isolaturik bezala kontsideratuko dugu. Azpimarratzekoa da zenbaki osoen zatiketa operazioari zatiketa osoa esaten zaiola eta bere emaitza zenbaki oso bat dela (dezimalik gabekoa, noski). Zenbaki osoen arteko zatidura zenbaki osoa delako, zentzua du zatiketa osoaren hondarra kalkulatzeak.
Adierazpen aritmetikoak konplexuak eta luzeak izan daitekeela kontutan izan dezagun, horrelakoetan biderketa familiako eragileak lehentasuna daukate batuketa familiako eragileen aurrean eta ukatzailea guztien aurretik dago. Horregatik ondoko adierazpen aritmetikoan eragiketak zenbakien ordenez burutuko dira: Dagoen ukatzailea aplikatuko da aurrena, beraz A identifikadoreari dagokion balioaren ukapena egiten da 1 lortuz. Gero biderketak egingo dira, ukapenaren bitarteko emaitza hori eta B identifikadoreari dagokion balioen arteko 2 biderkadura lortzen da. Ondoren, C eta D arteko zatiketa osoa kalkulatzen da 3 lortuz, 3 eta honi E-k balio duena biderkatzen zaio 4 kalkulatzeko. Amaitzeko batuketak osatuko dira, 2 gehi 4 alde batetik eta 5 ken F bestetik eginez. Adibidean ikus daitekeenez familia bereko eragiketak ezkerretik eskuinerantz burutzen dira, eta azkenean adierazpen aritmetiko batek emaitza bakar bat eskainiko du (eragigai guztiak zenbaki osoak direnez eta eragileak zenbaki osoen operadoreak direnez, emaitza ere zenbaki osoa izango da). Familien arteko lehentasuna aldatzeko parentesiak erabiltzen dira. Hona hemen eragileen lehentasun arauak:
Zenbaki osoen erlaziozko eragileak Esan bezala, datu-mota osoek ezagutzen dituzten operazioak hamabi dira (sei operadore aritmetiko eta erlaziozko beste sei operadore). Zenbaki osoekin adierazpen aritmetikoak sortzeaz gain, adierazpen boolearrak ere sor daitezke. Adierazpen boolear baten emaitzak bi balioen artean bat izango du (horregatik adierazpen boolearrei adierazpen logiko esaten zaie), Pascal programazio-lengoaian adierazpen boolear batek FALSE ala TRUE balioak har ditzake. Erlaziozko eragileak aritmetikoen ostean ebaluatzen dira. Hurrengo taulan osoekin erabil daitezkeen erlaziozko sei eragileak biltzen dira: Lehentasunari dagokiola, lehenik eragile aritmetikoak ebazten dira, eta ondoren erlaziozko eragileak ebatziko dira. Adibidez, hurrengo adierazpen boolearrean iAltuera+1 > 2*iErradioa lehenik diametroa kalkulatzen da, ondoren altuerari unitate bat gehitzen zaio eta azkenik konparaketa burutzen da. | ||||||||||||||||||||||||||||||
ZENBAKI OSOEN IRTEERAKO FORMATUA Datu-mota osoko aldagai baten edukia pantailan idatzi nahi denean Write eta WriteLn prozedura estandarrak erabiliko dira. Zenbaki osoa pantailaratzekoan ez bada ezer adierazten ezkerretara justifikatzen da. Zenbakia eskubira justifikatu nahi bada :n gehitu beharko diogu, non n kopuru oso bat den. Esate baterako, demagun iAdina aldagaian 19 gorde dela eta bi instrukzio hauek idatzi direla: WriteLn('Urteak: ', iAdina) ; { ezkerrera justifikaturik } Pantailaraketak honako hauek izango dira, hurrenez hurren: Urteak: 19 Adibidez, demagun iKopurua aldagaian 21075 gorde dela eta bi instrukzio hauek idatzi direla: WriteLn('Zenbat: ', iKopurua) ; { ezkerrera justifikaturik } Bigarren adibiderako pantailaraketak honako hauek izango dira, hurrenez hurren: Zenbat: 21075 | ||||||||||||||||||||||||||||||
ZENBAKI OSOA TEKLATUAREN BITARTEZ IRAKURRI Zenbaki bati balioa emateko esleipen instrukzioa ikasi dugu; hala ere, askotan interesatuko zaigu programaren exekuzioan aldagai bati balio ematea teklatua erabiliz. Horretarako, datu-mota osoko aldagai baten edukia memorian gordetzeko ReadLn prozedura estandarra erabiliko dugu. Esate baterako, demagun iAdina aldagaian 18 gorde nahi dugula. Hori lortzeko modurik arruntena ondoko hau da. Non lehen instrukzioa informatiboa den, eta aldagaiaren edukia benetan berrizten duena bigarren instrukzioa den: Write('Zure adina eman: ') ; { programak zer balio itxaroten duen jakiteko } Programak aurrera darrai eta iAdina aldagaiaren edukia alda daiteke, adibidez 18tik 19ra pasatuz. Instrukzio horiek exekutatzerakoan honako hau ikusiko da pantailan: Zure adina eman: 18 | ||||||||||||||||||||||||||||||
PARAMETRO IZATEAN JOKAMOLDEA Datu-mota osoa sinplea izanik, azpiprograma batean honela agertuko da jokamoldearen arabera:
| ||||||||||||||||||||||||||||||
ADIBIDEAK Hona hemen zenbaki osoen zenbait programa:
| ||||||||||||||||||||||||||||||
|
2023(e)ko urtarrilaren 25(a), asteazkena
INTEGER datu-mota
Harpidetu honetara:
Argitaratu iruzkinak (Atom)
iruzkinik ez:
Argitaratu iruzkina