|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.11.2013, 20:44 | #1 |
Пользователь
Регистрация: 21.10.2013
Сообщений: 21
|
Помогите найти ошибку, пожалуйста!
C++ Builder Мне нужно написать функцию, которая переводит число(функция обязательно должна уметь работать с вещественными числами, так и целыми) взятого из Edit в число с системой с основанием хранящимся в переменной aSys(Тоже берется из другого Edit'a). Я уже третий день голову ломаю над этой функцией, а она не работает(возвращает 0).
Код:
Последний раз редактировалось РоРоРоЛоЛоЛо; 20.11.2013 в 20:49. |
20.11.2013, 20:54 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Обязательно функу с нуля писать? Может воспользовать чем-нибудь вроде atoi()?
I'm learning to live...
|
21.11.2013, 08:45 | #3 |
Пользователь
Регистрация: 21.10.2013
Сообщений: 21
|
|
21.11.2013, 13:38 | #4 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
РоРоРоЛоЛоЛо
Переводи всегда в вещественное. Если дробная часть нулевая - значит целое. P.S. И я слабо представляю, как можно перевести вещественное число в другую систему счисления... |
21.11.2013, 14:27 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
например, возьмём число 0.376 и запишем в двоичной СС: 0. (целая часть у нас равна нулю. если не равна - переводим целую часть отдельно - это понятно, не рассматриваем) 0.376 * 2 = 0.752 0.752 * 2 = 1.504 0.504 * 2 = 1.008 0.008 * 2 = 0.016 0.016 * 2 = 0.032 и т.д. т.е. исходное число (примерно) в двоичной СС будет записано как: 0.01100 |
|
21.11.2013, 14:33 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
21.11.2013, 22:07 | #7 | |
Пользователь
Регистрация: 21.10.2013
Сообщений: 21
|
Цитата:
Код:
(Возможно код был немного искаверкан после неудачного тестирования, а потом я этот кусок закоментил) P.S. в case там перечисление должно быть, типа case от 0 до 9: Последний раз редактировалось РоРоРоЛоЛоЛо; 21.11.2013 в 22:13. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите пожалуйста найти ошибку. | ksu25 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 07.10.2009 20:38 |
Помогите пожалуйста найти ошибку (С\С++) | Nina+ | Помощь студентам | 6 | 19.02.2009 22:30 |