![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Flipper |
![]()
Сообщение
#1
|
Гость ![]() |
задание: написать программу на языке паскаль, чтобы она переводила число из четверичной системы счиления в шестнадцетиричную с.с.
вот собственно что надо.......... ПОЖАЛУЙСТО, HELP |
![]() ![]() |
Amro |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот тута прогу одну нашёл, правда ещё сам не разобрался, но по-моему она переводит из любой системы счисления в любую другую ....... в общем универсальная она
Код program perevod; var q,p,n,osnov,s,m,i:longint; st:string; ch:char; mas:array[1..30] of byte; function test(st:string; osnov:integer):boolean; var n,i:integer; mn:set of char; begin test:=true; mn:=[]; for i:=0 to osnov-1 do if i<=9 then mn:=mn+[chr(i+48)] else mn:=mn+[chr(i+55)]; n:=ord(st[0]); for i:=1 to n do if (st[i]<>',') and (not(st[i] in mn)) then begin writeln('Неправильная запись числа. Повторите ввод'); test:=false; i:=n; end; end; function chislo(ch:char):integer; begin if ord(ch) in [48..57] then chislo:=ord(ch)-48 else chislo:=ord(ch)-55; end; function simvol(n:byte):char; begin if n in [10..15] then simvol:=chr(n+55) else simvol:=chr(n+48); end; begin writeln ('Введите основание р'); readln(p); writeln ('Введите число (для цифр после 9 писать ABC...)'); repeat readln (st); until test(st,p); writeln ('В какую систему перевести?'); readln (q); s:=0; m:=1; n:=ord(st[0]); for i:=n downto 1 do begin s:=s+chislo(st[i])*m; m:=m*p; end; m:=0; repeat inc(m); mas[m]:=s mod q; s:=s div q; until s<=q-1; inc(m); mas[m]:=s; for i:=m downto 1 do write(simvol(mas[i])); end. Прикольная между прочим прога, вроде всё прально делает!!!! Внимание всем, кто еще раз решит, что эта программа работает с любыми системами счисления!!! Программа корректно переводит числа из любой системы счисления с основанием 2 .. 16 в любую систему счисления с основанием 2 .. 16 !!! Не более того. НЕ считайте эту программу действительно универсальным переводчиком, и не ждите от нее корректной работы с другими системами счисления!!! Сообщение отредактировано: volvo - 15.12.2005 12:48 -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 21:03 |