Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод чисел в формат с фиксированной точкой 
:(
    Опции темы
Kefir
Дата 11.11.2004, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 1
Всего: 87



Задача заключается в переводе чисел из стандиртного вида в обычный (т.е. из 1,2335*10^3 получить 1233,5) + округление
Дана мантисса (1<=|a|<10), дана экспонента (b<=200), дано число k, определяющее округление (округление до 10^k)

Хорошо бы соображения какие-то трезвые, а то я совсем апутался уже. А если примерик на С++ будет - я буду без ума от счастья
PM MAIL WWW Skype   Вверх
podval
Дата 11.11.2004, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Модератор: Название темы должно отражать ее суть!
Потрудитесь придумывать сами заголовки для тем!
PM WWW ICQ   Вверх
maxim1000
Дата 12.11.2004, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



ну так в чем проблема?
Код

int func(double a,int b)
{
 double result=1;
 while(b>0)
 {
   result*=a;
   b--;
 }
 return (int)result;
}

Цитата
стандиртного вида в обычный

звучит smile


--------------------
qqq
PM WWW   Вверх
val
Дата 12.11.2004, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: 1
Всего: 7



maxim1000, а почему у тебя результат типа int. Мне кажется, что double должен...


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
podval
Дата 12.11.2004, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Кажись, по условию задачи надо результат выдавать так: целая часть, дробная часть и округление. Все три могут быть int.
PM WWW ICQ   Вверх
val
Дата 12.11.2004, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: 1
Всего: 7



Цитата
Кажись, по условию задачи надо результат выдавать так: целая часть, дробная часть и округление. Все три могут быть int.


Вроде наоборот, целая часть, дробная часть и округление - входные данные, выход - результирующее число действительного типа...


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
maxim1000
Дата 12.11.2004, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



упс... не заметил k...
ну тогда можно после подсчета переменной result сделать так:
Код

if(k<0)
{
 int c;
 for(c=0;c<-k;c++)
   result*=10;
 result=(int)result;
 for(c=0;c<-k;c++)
   result/=10;
}
else
{
 int c;
 for(c=0;c<k;c++)
   result/=10;
 result=(int)result;
 for(c=0;c<k;c++)
   result*=10;
}

и возвращать, конечно, сам result



--------------------
qqq
PM WWW   Вверх
podval
Дата 12.11.2004, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Цитата(val @ 12.11.2004, 12:30)
Цитата
Кажись, по условию задачи надо результат выдавать так: целая часть, дробная часть и округление. Все три могут быть int.


Вроде наоборот, целая часть, дробная часть и округление - входные данные, выход - результирующее число действительного типа...

Нет, дано: мантисса, экспонента, округление.
Надо получить: целую часть и дробную часть с учетом округления.
Видимо, вывести результат надо как double, а так интовые вещи получаются.

Вот для наглядности:

--Resize_Images_Alt_Text--

--Resize_Images_Alt_Text--
PM WWW ICQ   Вверх
Kefir
Дата 12.11.2004, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 1
Всего: 87



Немного проясню ситуацию на примерах:



1. дано:
1,265387 * 10^4
k = 2

решеие:
1. 1,265387 * 10^4 = 12653,87
2. k=2 -> округляем до 10^k, т.е. до сотен:
12653,87 -> 12700

Ответ: 12700



2. дано:
1,265387123 * 10^4
k = -2

решеие:
1. 1,265387123 * 10^4 = 12653,87123
2. k=-2 -> округляем до 10^k, т.е. до сотЫХ:
12653,87123 -> 12653,87

Ответ: 12653,87




2. дано:
1,86 * 10^-2
k = -2

решеие:
1. 1,86 * 10^-2 = 0,0186
2. k=-2 -> округляем до 10^k, т.е. до сотЫХ:
0,0186 -> 0,02

Ответ: 0,02

Щас буду пробовать решать 6)
PM MAIL WWW Skype   Вверх
Kefir
Дата 12.11.2004, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 1
Всего: 87



Кстати, во входящем файле мантисса записана не через точку, а через Запятую... и в выходной файл надо вывести через запятую...
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1476 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.