Zenbaki errealetan bi atal desberdintzen dira:
alde osoa eta
alde dezimala. Eta zenbaki erreal bati dagokion zenbaki osoa lor dezakegu, esate baterako:
readln(rDatua) ;
iEmaitza1 := trunc(rDatua) ;
iEmaitza2 := round(rDatua) ;
Zenbaki erreal bat teklatuaren bitartez irakurri eta bere dagozkion bi zenbaki oso erakutsi. Horretarako
Trunc eta
Round funtzio estandarrak aplikatuko dira,
emaitzak zenbaki osoak izango dira. Sarrerako datua den zenbaki errealaren balioa moztuz ala biribilduz emaitza lortuko dugu:
{------------------------------------------------------------------------------
Sarrera zenbaki erreala izanik irteera zenbaki osoa izango da
round() funtzioa mugan, parametroa X.5 denean:
X bakoitia izatean round(X.5) ---> X+1
X bikoitia izatean round(X.5) ---> X
-------------------------------------------------------------------------------}
program TruncRound_funtzioak ;
var
rZbk1, rZbk2 : real ;
begin
writeln ;
writeln ;
write('Zenbaki erreala eta positiboa eman: ') ;
readln(rZbk1) ;
writeln ;
writeln('Hona hemen emandako zenbakia: ', rZbk1:0:3) ;
writeln('trunc(', rZbk1:0:3, ') = ', trunc(rZbk1)) ;
writeln('round(', rZbk1:0:3, ') = ', round(rZbk1)) ;
writeln ;
writeln('Hemen emandakoaren negatiboa: ', -rZbk1:0:3) ;
writeln('trunc(', -rZbk1:0:3, ') = ', trunc(-rZbk1)) ;
writeln('round(', -rZbk1:0:3, ') = ', round(-rZbk1)) ;
writeln ;
writeln ;
rZbk2 := rZbk1 + 0.4 ;
writeln('Aurreko sarrerari 0.4 gehitu: ', rZbk2:0:3) ;
writeln('trunc(', rZbk2:0:3, ') = ', trunc(rZbk2)) ;
writeln('round(', rZbk2:0:3, ') = ', round(rZbk2)) ;
writeln ;
writeln('Hementxe berriaren negatiboa: ', -rZbk2:0:3) ;
writeln('trunc(', -rZbk2:0:3, ') = ', trunc(-rZbk2)) ;
writeln('round(', -rZbk2:0:3, ') = ', round(-rZbk2)) ;
writeln ;
writeln ;
writeln('=======================') ;
writeln('RETURN sakatu amaitzeko') ;
write ('_______________________') ;
readln ;
end. { PROGRAMAREN BUKAERA }
Ikusi ere zenbaki erreal baten bi atalak nola eskuratzen diren (
Zenbaki erreal baten atalak).
Round() funtzioaren muga
X.5 kopurua da eta bere emaitza
X araberakoa da, jakin dezagun
Round() funtzioaren biribiltze emaitza zenbaki bikoitia dela ondoko irudian erakusten den bezala:
Noiz
Trunc() funtzioa eta noiz
Round() funtzioa? Adibide batekin erantzungo dugu, baina lehenik gogoratuz zenbaki erreal guztiak ezin direla errepresentatu memorian gordetzeko.