Форум: "Прочее";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Внизfrac в TP работает неправильно. Найти похожие ветки
← →
Ttrunder (2010-01-09 02:15) [0]Что делать функция frac в Turbo Pascal прибавляет в конце мантиссы какие то цифры..
frac(1.2) = 0.2(0...0)1 А должно 0.2
Как можно это исправить??
← →
Германн © (2010-01-09 02:31) [1]
> frac в TP работает неправильно.
>
Правильно она работает. И не только в ТР.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
> Как можно это исправить?
Прочитать статью, уяснить её содержимое и изменить алгоритм решения задачи.
← →
KilkennyCat © (2010-01-09 02:31) [2]Жаль, что "орешник" не работает.
← →
palva © (2010-01-09 02:36) [3]А почему должно? У вас же число в машине представлено с погрешностью, значит последние разряды отброшены. Когда целая часть исчезла, то впереди у числа место освободилось, число сдвинулось влево, а справа в мантиссе появились нули вместо правильных цифр. После перевода в 10 с/с это искажение проявилось в мусоре появившемся в конце записи числа.
Так что всё работает правильно и ничего исправлять не надо.
← →
Ttrunder (2010-01-09 02:44) [4]Мне нужно написать прогу, которая выводит вторую цифру от конца в дробной части числа...
Я сделал так, как можно сделать иначе???program Get2Digi;
var
r: real;
i: integer;
function Get2Digit(num: real): integer;
var
prev : integer;
current: integer;
f : real;
begin
current := -1;
prev := -1;
while frac(num) <> 0.0 do
begin
prev := current;
f := frac(num);
current := trunc(f*10);
num := f*10;
end;
Get2Digit := prev;
end;
begin
Writeln("Enter real number:");
Read(r);
i := Get2Digit(r);
Write(i);
Readln;
end.
← →
Ttrunder (2010-01-09 02:45) [5]Из-за "неправильной" работы frac программа не работает...
← →
Германн © (2010-01-09 02:55) [6]
> Ttrunder (09.01.10 02:45) [5]
>
> Из-за "неправильной" работы frac программа не работает..
> .
>
Статью по ссылке прочитал? Понял?
Имхо. Либо не прочитал, либо не понял и не захотел понять.
Про задачу
> Мне нужно написать прогу, которая выводит вторую цифру от
> конца в дробной части числа...
я вообще молчу.
← →
Ttrunder (2010-01-09 03:08) [7]Германн © (09.01.10 02:55) [6]
Это учебная программа по Pascal"ю - задание... Какие либо знания по сопроцессорам и погрешностям я извиняюсь в Pascal"e нет... Как ещё в Pascal"е в его каноническом виде можно добыть цифру из дробной части?
← →
palva © (2010-01-09 03:20) [8]
> Как ещё в Pascal"е в его каноническом виде можно добыть
> цифру из дробной части?
Перевести в десятичный вид и из строки выбрать нужную цифру.
Или вам двоичная цифра нужна?
← →
palva © (2010-01-09 03:24) [9]Иногда это сделать просто невозможно. Например, если вы напишете a:=0.2, то вы не можете знать, какая цифра фактически стоит после точки в компьютерном представлении. Может быть, 2, а может быть 1.
← →
Германн © (2010-01-09 03:30) [10]
> Ttrunder (09.01.10 03:08) [7]
>
> Германн © (09.01.10 02:55) [6]
> Это учебная программа по Pascal"ю - задание... Какие либо
> знания по сопроцессорам и погрешностям я извиняюсь в Pascal"e
> нет...
Значит точно не прочитал.
Так какого ты хрена ничтоже сумняшеся пишешь:while frac(num) <> 0.0
?
Ты всё же прочитай статью.
Ну а по задаче, я опять молчу. :)
← →
Германн © (2010-01-09 03:32) [11]
> palva © (09.01.10 03:20) [8]
>
>
> > Как ещё в Pascal"е в его каноническом виде можно добыть
> > цифру из дробной части?
>
> Перевести в десятичный вид и из строки выбрать нужную цифру.
>
Саша. Это не твоё время суток!
Оставь это мне.
← →
korneley © (2010-01-09 04:00) [12]
> Как ещё в Pascal"е в его каноническом виде...
Это печально, но канонического Pascal не существует (как среды). Не стандартизирован. А если вторую цифру "откусить", то попробуй
s := Format("%.2f", [StrToFloat(Edit1.Text)]);
caption := copy(s, Length(s), 1);
после сдачи книги-то почитай :)
← →
korneley © (2010-01-09 04:10) [13]Ёлы-палы!!! Тут же ТР, а не Delphi! Сходу и не припомню, был там Format(), или нет...
← →
KilkennyCat © (2010-01-09 04:39) [14]был
← →
KilkennyCat © (2010-01-09 04:40) [15]только, вроде бы, он не входит в программу образования
← →
korneley © (2010-01-09 13:20) [16]
> KilkennyCat © (09.01.10 04:40) [15]
> только, вроде бы, он не входит в программу образования
:))) Какого такого образования? Тут же явно "Мы все учились понемногу, чему-нибудь и как-нибудь"... Во, чего нащёл
http://primat.at.ua/load/15-1-0-105
:)
← →
Anatoly Podgoretsky © (2010-01-09 15:44) [17]> Ttrunder (09.01.2010 02:15:00) [0]
То что ты просишь невозможно, невозможно представить такое число в формате с плавающей запятой, любой точности.
← →
Anatoly Podgoretsky © (2010-01-09 15:45) [18]> KilkennyCat (09.01.2010 02:31:02) [2]
Работает, только не ясно кто его обслуживает.
← →
Anatoly Podgoretsky © (2010-01-09 15:48) [19]> Ttrunder (09.01.2010 02:44:04) [4]
Fraq не нужен, превращай в строку и бери любую цифру.
← →
Anatoly Podgoretsky © (2010-01-09 15:49) [20]> Германн (09.01.2010 02:55:06) [6]
Чего ты не можешь понять, если задание бессмысленное, то это значит институт.
← →
Anatoly Podgoretsky © (2010-01-09 15:50) [21]> Ttrunder (09.01.2010 03:08:07) [7]
В каноническом сложно, придется писать довольно сложную для студента программу.
← →
Anatoly Podgoretsky © (2010-01-09 15:52) [22]> korneley (09.01.2010 04:00:12) [12]
Это не вторая от конца.
← →
korneley © (2010-01-09 16:20) [23]
> Anatoly Podgoretsky © (09.01.10 15:52) [22]
> > korneley (09.01.2010 04:00:12) [12]Это не вторая от
> конца.
Зато вторая от разделителя ;)
← →
Palladin © (2010-01-09 22:38) [24]Чуду дали задачу, чудо нашло решение простое, решенье было чудесным, но чудо чудес не поняло и на чудо наехало.
← →
korneley © (2010-01-10 00:51) [25]
> Palladin © (09.01.10 22:38) [24]
Ну, дык, ёлы-палы, братушка :) У меня вообще стойкое ощущение, что после [5] Народ откровенно веселится... Праздник всё таки :) И потом, если человек (при данных ему направлениях) не желает понять почему round(2.5) = 2... Хэппи, как говорится, ему нью уеар!!!
← →
Германн © (2010-01-10 02:28) [26]
> Ну, дык, ёлы-палы, братушка :) У меня вообще стойкое ощущение,
> что после [5] Народ откровенно веселится...
А после [5] вообще сложно что-то еще придумать. :)
Я правда намекал на описание задачи, но сей юмор слишком пошлый, чтоб я его озвучил. :)
← →
KilkennyCat © (2010-01-10 02:30) [27]а я всегда веселюсь, не дожидаясь [5]
← →
Германн © (2010-01-10 02:32) [28]
> KilkennyCat © (10.01.10 02:30) [27]
>
> а я всегда веселюсь, не дожидаясь [5]
>
Откуда у тебя столько денег? :)
← →
KilkennyCat © (2010-01-10 02:36) [29]у меня их просто нет.
← →
Умник (2010-01-10 07:48) [30]
> KilkennyCat © (09.01.10 02:31) [2]
> Жаль, что "орешник" не работает.
Кстати, а какая цель и предназначение орешника задумывалась изначально?
← →
Anatoly Podgoretsky © (2010-01-10 16:05) [31]> KilkennyCat (10.01.2010 02:36:29) [29]
Так ты на халяву?
← →
Anatoly Podgoretsky © (2010-01-10 16:05) [32]> Умник (10.01.2010 07:48:30) [30]
Простое, орехи колоть.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.005 c