![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
source777, трабл в том что обычно нужен ввод исходных данных в виде строки. И тут ты хоть колом на голове теши, не сможешь перевести все возможные числа, введённые пользователем, из формата floating point в формат делимое/делитель. Ну вот введу я к примеру "1,01928" и напиши алгоритм вычисляющий сабж.
-------------------- ![]() |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 4 Всего: 56 |
Алгоритм: 1) выяснить сколько цифр после запятой ввёл пользователь, равно m 2) числитель = k = исх.число * 10^m 3) знаменатель = n = 10 ^ m 4) по алгоритму Евклида находим НОД(k; n) 5) сокращаем и получаем обыкновенную дробь, "введённую" пользователем. -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| FREEDEV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 6.3.2007 Где: Украина->Одесс а Репутация: 1 Всего: 3 |
Давненько я сюда не заглядывал, спасибо всем за ответы.
Действительно числа представлены в компьютере степенями двойки, поэтому в Debugeре видна была подобная картина, результат же выводимый пользователю, имел нормальный вид. За исключением значений массива в сумме дававших 0, тогда возвращаемым значением было что-то наподобие указанного выше, поправил округлением. --------------------
Microsoft Windows Visla © |
|||
|
||||
| Lycifer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
source777
Это конечно хорошо использовать дробь, тока есть такой вопрос, как же быть если приходится передавать в функции и конечно получать результаты(sin, cos...)? |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 4 Всего: 56 |
P.S. Не забывай, что любая математическая функция может быть представлена в виде суммы ряда обыкновенных дробей, причём функцию, представленную в таком виде, можно вычислить с любой точностью, а точность задаётся когда запрашивается результат, тогда же и происходят реальные вычисления... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |