|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Anton Gorbenko 2:5036/10.69 05 Jul 2002 10:32:18 To : Sergey Biryukov Subject : Пpеобpазование числа в стpоку -------------------------------------------------------------------------------- 04 Июл 02 13:45, Igor Zakhrebetkov -> Sergey Biryukov: >> Есть вещественное число. Hеобходимо написать пpогpамму на Паскале для >> пpеобpазования его в стpоку, не используя функций типа Str. Элементарно, Ватсон. Для этого необходимо выделить каждую цифру числа в отдельности, преобразовать в символ, символы сложить. Правильно вставить запятую. Полный алгоритм не дам, а только основные моменты. А то совсем обленились. :-) Дано: a: real; 1) Вычисление количества целых разрядов числа, т. е. знаков перед запятой как целой части десятичного логарифма этого числа плюс единица (не веришь - проверь): n := trunc(ln(a) / ln(10)) + 1; 2) Выделение i-той цифры числа a происходит так: Обрезаем все что идет после нее выделением целой части от деления на 10 в степени n - i, затем еще раз делим на 10, отнимаем от результата его целую часть (т. е. выделяем дробную), которую умножаем опять на 10. Таким образом, получаем выделяемую цифру. Для приведения типов надобно формально округлить. d := round((trunc(a / exp(ln(10) * (n - i))) / 10 - trunc(trunc(a / exp(ln(10) * (n - i))) / 10)) * 10); 3) Осталось массив чисел представить массивом символов, что есть строка. Hу а запятую после n-го символа я думаю вставишь сам. :-) Удачи! ---------- Anton Gorbenko --- GoldED+/W32 1.1.5-20020104 * Origin: Кто любит, тот любим! (С) Веpтинский (2:5036/10.69) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33723d255aca.html, оценка из 5, голосов 10
|