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

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

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

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


Профи
****

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

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


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

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

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


Гость






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


Профи
****

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

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


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

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





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

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


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


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

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

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


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

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

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


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


Профи
****

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

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


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

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

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

Сообщение отредактировано: 18192123 - 11.01.2007 13:56
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Archon
сообщение 12.01.2007 0:32
Сообщение #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 
 К началу страницы 
+ Ответить 
18192123
сообщение 13.01.2007 21:49
Сообщение #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 
 К началу страницы 
+ Ответить 
Malice
сообщение 13.01.2007 22:29
Сообщение #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

 



- Текстовая версия 20.07.2025 2:18
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"