readln(rDatua);
iOsoaTrunkatua := trunc(rDatua);
iOsoaBiribildua := 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;
iOsoaTrunkatua: integer; { integer datu-mota derrigorrez }
iOsoaBiribildua: integer; { integer datu-mota derrigorrez }
begin
writeln;
writeln;
write('Zenbaki erreala eta positiboa eman: ');
readln(rZbk1);
writeln;
iOsoaTrunkatua := trunc(rZbk1);
iOsoaBiribildua := round(rZbk1);
writeln('Hona hemen emandako zenbakia: ', rZbk1:0:3);
writeln('trunc(', rZbk1:0:3, ') = ', iOsoaTrunkatua);
writeln('round(', rZbk1:0:3, ') = ', iOsoaBiribildua);
writeln;
iOsoaTrunkatua := trunc(-rZbk1);
iOsoaBiribildua := round(-rZbk1);
writeln('Hemen emandakoaren negatiboa: ', -rZbk1:0:3);
writeln('trunc(', -rZbk1:0:3, ') = ', iOsoaTrunkatua);
writeln('round(', -rZbk1:0:3, ') = ', iOsoaBiribildua);
writeln;
writeln;
rZbk2 := rZbk1 + 0.4;
iOsoaTrunkatua := trunc(rZbk2);
iOsoaBiribildua := round(rZbk2);
writeln('Aurreko sarrerari 0.4 gehitu: ', rZbk2:0:3);
writeln('trunc(', rZbk2:0:3, ') = ', iOsoaTrunkatua);
writeln('round(', rZbk2:0:3, ') = ', iOsoaBiribildua);
writeln;
iOsoaTrunkatua := trunc(-rZbk2);
iOsoaBiribildua := round(-rZbk2);
writeln('Hementxe berriaren negatiboa: ', -rZbk2:0:3);
writeln('trunc(', -rZbk2:0:3, ') = ', iOsoaTrunkatua);
writeln('round(', -rZbk2:0:3, ') = ', iOsoaBiribildua);
writeln;
writeln;
writeln('=======================');
writeln('RETURN sakatu amaitzeko');
write ('_______________________');
readln;
end. { PROGRAMAREN BUKAERA }
Ikusi ere zenbaki erreal baten bi atalak nola eskuratzen diren (2. astea | 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, ikusi izan dugu "zuloak" geratzen direla bi zenbaki erreal artean.
Noiz Trunc() funtzioa eta noiz Round() funtzioa? galderaren harira adibide hau azter ezazu:
2. astea | 3 zifra eta 2 dezimaleko zenbaki erreal bat atzekoz aurrera (XYZ.AB → ZYX.BA autoebaluazioa) .
iruzkinik ez:
Argitaratu iruzkina