![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Flipper |
![]()
Сообщение
#1
|
Гость ![]() |
задание: написать программу на языке паскаль, чтобы она переводила число из четверичной системы счиления в шестнадцетиричную с.с.
вот собственно что надо.......... ПОЖАЛУЙСТО, HELP |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
один из способов (простых) это перевести сначала в десятичную а затем в шестандуатиричную.
Простой, он из-за того, что все можно здесь найти уже решеным. Вот 2 процедуры: Код {Одна переводит из любой системы счисления в десятичную, вторая наоборот } function FromDec(n, radix:longint):string; {перевод числа n из radix c/c в 10-ую} var s: String; const digit: string[16]='0123456789ABCDEF'; begin s:=''; repeat s:=digit[(n mod radix)+1]+s; n:=n div radix; until n=0; FromDec:=s; end; function ToDec(n:string; radix:longint):longint; {перевод числа n из 10-ной с/с в radix} var m, i: longint; const digit: string[16]='0123456789ABCDEF'; begin m:=0; while n[1]='0' do delete(n,1,1); for i:=1 to length(n) do m:=m*radix+pos(n[i],digit)-1; ToDec:=m; end; ЗЫ: Не держи зла на ближнего своего. Иешуа. Сообщение отредактировано: Oleg_Z - 16.10.2004 20:18 -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Flipper |
![]()
Сообщение
#3
|
Гость ![]() |
спасибо,
sorry, вспылил, был не прав. |
Altair |
![]()
Сообщение
#4
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
То-то же! :yes:
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
--Vika-- |
![]()
Сообщение
#5
|
Гость ![]() |
Привет, всем!
клево, нам тоже самое задали, зашла на ваш форум, хотела попросить помочь. а тут уже есть такое :D только у меня другие с.с. вот хотела спросить. а как задавать эту систему radix и где число вводить? может мой вопрос покажется совсем глупым, но вот только с программированием у меня труба... |
Atos |
![]()
Сообщение
#6
|
![]() Прогрессор ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Число - это n, а radix- это какая с/c
Например вызов FromDec(1210, 3) возвращает десятичное число, которое равно числу 1210 в троичной с/c |
--Vika-- |
![]()
Сообщение
#7
|
Гость ![]() |
digit: string[16]='0123456789ABCDEF' а это для 16 с.с
значит везде в программе где radix и n. заменяешь на то что надо ![]() ой спасибо, очень выручили что отреагировали на такой простой вопрос :yes: |
Altair |
![]()
Сообщение
#8
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
тут реагируютна все вопросы! так что заходите еще!
Сайт наш советуйте всем ![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
FreeMan |
![]()
Сообщение
#9
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Сайт наш советуйте всем своим подругам :D -------------------- бб
|
Altair |
![]()
Сообщение
#10
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Это прежде всего, девушкам тут особенно рады, и задания выполняются обычно за t->0 (время близкоек нулю, т.е. мгновенно)
![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
GoodWind |
![]()
Сообщение
#11
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Цитата девушкам тут особенно рады угу.... очеень... особенно я :D Зватит флеймить! Сообщение отредактировано: Oleg_Z - 19.10.2004 10:01 -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
--Vika-- |
![]()
Сообщение
#12
|
Гость ![]() |
ребята, не получилось....еще мне сказали чтоб делала сама, типа кто это вам делал
![]() а у кого паскаль есть, я себе скачивала, а у меня не запускается... можете кто-нибудь проверить эту программу??? |
Altair |
![]()
Сообщение
#13
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Так, а задание дайте.
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
--Vika-- |
![]()
Сообщение
#14
|
Гость ![]() |
задание тоже самое
![]() программа на паскале, перевод любого числа из 3 с.с в 16с.с просто что то у меня не сработала можете ее проверить? |
APAL |
![]()
Сообщение
#15
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
И у меня есть попутный вопрос - ведь наверняка должен быть алгоритм перевода чисел из любой системы в любую минуя десятичную?
-------------------- |
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
--Vika--
Только что проверил программу Oleg_Z. Все работает. Видимо, ты неправильно используешь функции. Просто добавь к коду Oleg_Z вот это: Код var decimal: longint; const x = '212212'; {это число в 3-ой системе счисления} Begin decimal := todec(x, 3); writeln( 'x(16) = ', fromdec(decimal, 16) ); End. |
Altair |
![]()
Сообщение
#17
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
На нашем форум, все, что выложенно в ЧаВо, все работает!
volvo, прав, прогу надо написать еще, чтобы процедуры работали ![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Amro |
![]()
Сообщение
#18
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 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 -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
volvo |
![]()
Сообщение
#19
|
Гость ![]() |
Принцип остается тот же -
здесь... Код for i:=n downto 1 do begin s:=s+chislo(st[i])*m; m:=m*p; end; вычисляется 10-ное число... |
GoodWind |
![]()
Сообщение
#20
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Цитата(APAL @ 19.10.04 10:43) И у меня есть попутный вопрос - ведь наверняка должен быть алгоритм перевода чисел из любой системы в любую минуя десятичную? завтра ОМТ`шницу нашу спрошу -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 8:03 |