Òóðáî Ïàñêàëå èìååòñÿ 5 âåùåñòâåííûõ òèïîâ:
- Real (çàíèìàåò 6 áàéò, äèàïàçîí îò 2.9E-39 äî 1.7E+38 ïî ìîäóëþ, òî÷íîñòü 11-12 çíà÷àùèõ öèôð)
- Single (çàíèìàåò 4 áàéòà, äèàïàçîí îò 1.5E-45 äî 3.4E+38 ïî ìîäóëþ, òî÷íîñòü 7-8 çíà÷àùèõ öèôð)
- Double (çàíèìàåò 8 áàéò, äèàïàçîí îò 5.0Å-324 äî 1.7Å+308 ïî ìîäóëþ, òî÷íîñòü 15-16 çíà÷àùèõ öèôð)
- Extended (çàíèìàåò 10 áàéò, äèàïàçîí îò 3.4E-4932 äî 1.1E+4932 ïî ìîäóëþ, òî÷íîñòü19-20 çíà÷àùèõ öèôð).
- Comp (çàíèìàåò 8 áàéò, äèàïàçîí îò -9.2E-18 äî 9.2E+18, õðàíÿòñÿ òî÷íî, ïîñêîëüêó ýòî öåëûå ÷èñëà)
Âåùåñòâåííûå òèïû ÿâëÿþòñÿ óïîðÿäî÷åííûìè, íî íå ïîðÿäêîâûìè. Îïåðàöèè íàä âåùåñòâåííûìè ÷èñëàìè: ñëîæåíèå ,âû÷èòàíèå, óìíîæåíèå, äåëåíèå è îïåðàöèè îòíîøåíèÿ. Êðîìå òîãî, èìååòñÿ áîëüøîå êîëè÷åñòâî âñòðîåííûõ ôóíêöèé äëÿ ðàáîòû ñ ÷èñëàìè: abs, sqr, sqrt, sin, cos è ò.ï.
Âåùåñòâåííûå ÷èñëà õðàíÿòñÿ íåòî÷íî. Êàæäûé èç èìåþùèõñÿ âåùåñòâåííûõ òèïîâ ãàðàíòèðóåò ïðàâèëüíîå õðàíåíèå òîëüêî îïðåäåëåííîãî êîëè÷åñòâà çíà÷àùèõ öèôð, èõ íàçûâàþò âåðíûìè öèôðàìè. Ñ ìàòåìàòè÷åñêîé òî÷êè çðåíèÿ, èç çà îñîáåííîñòåé âíóòðåííåãî ïðåäñòàâëåíèÿ ðå÷ü èäåò îá îòíîñèòåëüíîé ïîãðåøíîñòè.
Íåòî÷íîñòè â õðàíåíèè âåùåñòâåííûõ ÷èñåë ìîãóò ïðèâåñòè ê òîìó, ÷òî ïðè âû÷èòàíèè áëèçêèõ ÷èñåë ìîæåò ïðîèçîéòè ïîòåðÿ çíà÷èìîñòè. Ýòî æå îáúÿñíÿåò, ïî÷åìó ñëåäóåò èçáåãàòü ñðàâíåíèÿ âåùåñòâåííûõ âåëè÷èí íà òî÷íîå ðàâåíñòâî.
ÏÐÈÌÅÐ: òèï Single - õðàíèòñÿ 7-8 çíàêîâ ïîñëå äåñÿòè÷íîé òî÷êè, òèï Double - 15-16, òèï Extended - 19-20.
program sravnenie;
var x : single; y : double; z : extended;
begin
x := 1/3; y := 1/3;
z := abs(x-y);
writeln('z=',z);
end.
Ýòà ïðîãðàììà âûäàñò â ðåçóëüòàòå ÷èñëî z=9.93410748106882E-0009. Îáû÷íî ïðèíÿòî ñ÷èòàòü, ÷òî a=b, åñëè âûïîëíÿåòñÿ óñëîâèå abs(a-b)
|