IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> числа с фиксированной и плавающей точкой
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


В текстовом файле записаны вещественные числа в форме с фиксированной точкой. Преобразовать файл, представив каждое число в форме с плавающей точкой, сохранив две цифры после точки в мантиссе.

Первый раз сталкиваюсь с таким, что вообще нужно делать для того, чтобы представить каждое число в форме с плавающей точкой, сохранив две цифры после точки в мантиссе?

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Прочитай пока здесь: Формы представления чисел в ЭВМ
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Я так и не смогла разобраться!

Объясните пожалуйста!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


алгоритм такой - считываешь строку из файла, пробегаешь символы до точки, записываешь в один string, и после точки 2 символа в другой string. затем с помощью val переводишь оба string'а в integer. второй делишь на 100 и прибавляешь к первому.. надеюсь понятно smile.gif может не самый лучший способ, но это первое что в голову пришло
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


ну и ради чего такие извращения?
val и с действительными числами прекрасно работает.

не совсем поняла задание:
Цитата
представив каждое число в форме с плавающей точкой, сохранив две цифры после точки в мантиссе.

в мантиссе нет точек! надо сохранить две цифры, которые были после точки в форме с фиксированной точкой? или сделать так, чтобы в мантиссе было 2 значащих цифры? или в мантиссу записать только те две цифры, которые были после точки (отбросив целую часть)?
В общем, приведи пример: что было->что стало


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(мисс_граффити @ 11.01.2007 0:49) *

В общем, приведи пример: что было->что стало

Боюсь, что не могу ответить на твой вопрос, поскольку задание вообще не поняла ...

Сообщение отредактировано: 18192123 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Я это так представляю:
00544.115650 -> 5.44E2
12024.120000 -> 1.20E4
00000.100000 -> 1.00E-1
00000.000015 -> 1.50E-5


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(Archon @ 12.01.2007 0:32) *

Я это так представляю:
00544.115650 -> 5.44E2
12024.120000 -> 1.20E4
00000.100000 -> 1.00E-1
00000.000015 -> 1.50E-5

а как это можно осуществить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(18192123 @ 13.01.2007 21:49) *

а как это можно осуществить?


Вон, что вышло: wacko.gif
Function format (x:string):string; 
var e:integer;
z,s:string;
begin
if x[1]='-' then begin delete (x,1,1); z:='-'; end else z:='';
while x[1]='0' do delete (x,1,1);
e:=pos('.',x)-1;
if e=0 then
while x[2]='0' do begin dec (e); delete (x,2,1); end;
delete (x,e+1,1);
dec (e); insert ('.',x,2);
delete (x,5,255);
while length(x)<4 do x:=x+'0';
str (e,s);
format:=z+x+'E'+s;
end;


Проверка:
writeln (format('00544.115650'));
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 8:45
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name