![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Kubus |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
в общем есть у меня курсавая. Задача написать программку перевода чисел из разных систем счисления в другие(с основаниями от 2 до 16) с дробной частью. Задача не новая да и не особо сложноя. Сделал я ее и понес к преподу. Там-то и выяснилось, что сделана она через одно местно, так как программка переводит отдельно дробную, отдельно целую часть, а это неправильно. Так вот может кто-нибудь возьмется помочь и отредактирует так, как надо? или мож у кого готовая есть? а то мне сдавать в понедельник, а у самого завал с мейплом, не успеваю. Буду очень, очень благодарен.
вот исходный текст:
Сообщение отредактировано: Kubus - 24.12.2005 23:08 |
![]() ![]() |
Kubus |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
я, наверное, неправильно выразился. То, что у меня есть берет целую часть и переводит и берет дробную часть и точно так же, как и целую ее переводит. А это, походу, неправильно Целая и дробная часть не равноправны.....) И еще она что-то про точность говорила. Хоть чуть-чуть стало понятнее?
Вообще-то эту программу писал не я, а сам я с паскалем особо не знаком. Поэтому получив текст неделю назад я сел, намутил четыре учебника по паскалю и стал построчно "переводить", а то надо же знать, что вообще сдаешь и как оно работает, да и вообще интересно..........) чуток в ней исправил\добавил, а то там графика убогая была так вот посидев ночь сегодня намутил вот такую штуку Код uses crt; const value = 0.1875; { число, которое будем переводить } base = 2; { в какую систему переводим } precision = 5; { точность } var ivalue, nbase, digit, k : integer; fvalue, eps : real; sym : char; begin ivalue := trunc(value); fvalue := value - ivalue; nbase := 1; while (ivalue >= nbase) do nbase := nbase * base; while (nbase > 1) do begin nbase := nbase div base; digit := ivalue div nbase; ivalue := ivalue - digit * nbase; if (digit < 10) then sym := chr(48+digit) else sym := chr(55+digit); write(sym); end; write('.'); eps := 1; for k := 1 to precision do eps := eps * base; for k := 1 to precision do begin digit := trunc(fvalue * base); fvalue := fvalue * base - digit; if (digit < 10) then sym := chr(48+digit) else sym := chr(55+digit); write(sym); if (fvalue < 1/eps) then break; end; writeln; readkey; end. ....вот по этой ссылке http://forum.pascalnet.ru/index.php?showt...993entry46993 Только проблема в том, что я не особо понимаю, что там написано. Построчно перевести не получилось.....) прикинул, что из моей программы нужно выкинуть, а что вставить. Например задаем новую переменную precision и вводим ее с клавиатуры. Переменная base у меня уже есть, только называется она radix. Переменная value - это, я так понимаю, str (хотя я могу ошибаться....). Далее invalue & fvalue - int & decimal соответственно. |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 21:30 |