ПредишенСледващото

Д. Валентин, моля обяснете малко за изчисляване на машина епсилон и контрол на ширината на таблицата въз основа на заповед на брой, необходим за извършване на курсова работа. Имам FreeBSD 6.0 и два компилатор, Free Pascal и GNU Pascal. Лекции по курса ви предложи вземем следния пример изчисли епсилон на машината -

започвам
EPS: = 1;
докато (1 + EPS / 2)> 1 направи
започвам
EPS: = EPS / 2;
приключи;
writeln ( "машина епсилон = ', EPS кръг (7-LN (EPS) / LN (10)).);
край.

1. Тази форма уточнява броя на значимите елементи на продукцията е приложима само за ГСП и Compaq компютъра? Получавам две различни резултати

GPC -
машина епсилон = 2.2204460492503131e-16

СПК -
машина епсилон = 1.084202172485504E-019

СПК, както се вижда в този вид на продукцията определя размера на изходните символи, но показва броя от този по-точно не показва точно преди попълване на позицията на пространства. Или нещо, което не разбирам наистина?

Освен това, формата на изхода FPC otilchaetsya четен брой въздушни символи в изхода - реда, посочен три цифрено число, в този случай, тъй като по -019 -005 градуса -5 като. Т.е. Това не е много устойчив начин на изхода на компилатор.

Между другото, interestny факт - ако произволно увеличаване на броя на знаците показва значителен брой, например, както следва: -
writeln ( "машина епсилон = ', EPS кръг (35-LN (EPS) / LN (10)).);

получаваме следното крайния резултат -

машина епсилон = 2.22044604925031308084726333618164062500000000e-16

т.е. от гледна точка на броя на знаците по-точен брой. Ограничаване мантиса до 16 знака след десетичната запетая, смислени символи частично маскиран. Въпреки че устройството вече не могат да се делят, че редица от 2, като Той приключва, тази цифра е крайният резултат. И, ако покажем на всички междинни резултати, това е много interestno гледате на това, което е на границата започва да губи смислени символи.

С уважение,
Shafirin Юри.
в. 18-101

администратор
Регистриран: преди 8 години
Публикации: 2,857

Здравейте, Юрий! Ти си написал:

> Д. Валентин, моля обяснете малко за
> Изчисляване на Epsilon двигател и регулиране на ширината на таблицата на
> Въз основа на номера на поръчката,

лекции, които обсъдихме само за изчисляване на ширината на областта за дробна част от епсилон на машината!

> Необходимо за завършване на курса
> Work. Имам FreeBSD 6.0 и два компилатор, Free Pascal и GNU
> Pascal. Лекции по курса ви предлагат да се база
> Следващият пример за изчисляване на машина епсилон -
>
> Програма GetEpsilon (продукция);
>
> Var EPS. недвижими;
>
> започне
> EPS: = 1;
> докато (1 + EPS / 2)> 1 направи
> започне
> EPS: = EPS / 2;
> Край;
> Writeln ( "машина епсилон = ', EPS кръг (7-LN (EPS) / LN (10)).);
> Край.
>
Общата ширина на терена, ние просто помислих, (7), както и в един от цеховете продължава изследванията към пълната ширина на изчислимост.

> Въпроси -
>
> 1. Тази форма определяне на броя на елементите показва значително
> Отнася се само за ГСП и Compaq компютъра? Получавам две различни
> резултати
>
> GPC -
> Машина епсилон = 2.2204460492503131e-16
>
> FPC -
> Машина епсилон = 1.084202172485504E-019
>
> Както може да се види в тази форма FPC изход определя броя
> Изходни знаци, но показва броя от този по-точно не се показва,
> Точно преди запълване на позицията на пространства. Или нещо, което
> Не е правилно разбран?
>

Те използват различни видове материали (за опасностите от неизпълнение!). Методът е приложим винаги, и така полезни, която изчислява прецизност в действителност се използва тип.
> Освен това, формата на изхода от FPC otilchaetsya четен брой
> Въздушни символи в продукцията - посочения ред трицифрен
> Брой, в този случай, тъй като -019 под -005 градуса -5 харесват. Т.е.
> Не е много устойчив начин на изхода на компилатор.
>
> Между другото, interestny факт - ако произволно увеличава
> Значителен брой символи номера изход, например
> Както следва -
> Writeln ( "машина епсилон = ', EPS кръг (35-LN (EPS) / LN (10)).);
>
> Ние получаваме следното крайния резултат -
>
> Машина епсилон =
> 2.22044604925031308084726333618164062500000000e-16
>
> Т.е. от гледна точка на броя на знаците по-точен брой.
Този брой е същата точност, и повечето от десетични знака след десетичната точка (от 17-ти до 44-ти) погрешно, че фрагменти (стърготини, талаш) функция deinterpretatsii вътрешния представяне на изхода. Понякога той се използва в по-точна недвижими вид, но това ще се добавят не повече от 3 знака: Едва ли на домашния си компютър има повече от 80-битов реален аритметика.

> Ограничаване на мантисата до 16 знака след десетичната запетая, смислен
> герои

> Частично маскиран.

Те някак си просто безсмислен! Не може да има по-широко значение мантиса !!

> Въпреки, че машината не може да го
> Брой се разделя на две, защото Той приключва, този брой
> Това е най-новият резултат. И ако ние се оттегли всички
> Междинните резултати, това е много interestno гледате на
> А граница започва да губи смислени символи.
>
> Поздрави,
> Shafirin Юри.
> Т. 18-101

администратор
Регистриран: преди 8 години
Публикации: 2,857

> В предишния пост не е съвсем ясно да види разликата между
> Сключването на програмата събира и СПК GPC, пролуките между
> = Знак и първата цифра е отстранена от форума, така че аз ги заменя
> Вход "_" -
>
> FPC (четири места) -
> Privateer @ FreeBSD01 $ / Начало / корсар / geteps
> Машина епсилон = ____ 1.084202172485504E-019
>
> GPC (едно пространство) -
> Капер @ FreeBSD01 $ /home/privateer/a.out
> Машина епсилон = _2.2204460492503131e-16

СПК всички подразбиране, разширяване и свиване трябва Borland'u и GPC има възможност за спазване на различни диалекти и стандартите на Паскал. Заключение Pascal не е стандартизирана, но дори и с помощта на стандартни инструменти може да бъде доста тънък, за да го управлява. По-специално, в Олимпийските игри за програмиране с автоматични задачи за изпитване, необходими за поддържане на точното изходния формат.

Благодаря ви много за вашите отговори. Аз продължавам да работя върху себе си.

С уважение,
Юрий Shafirin.
gr.18-101

Съжаляваме, само регистрирани потребители могат да пишат в този форум.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!