IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задача на системы счисления
Flipper
сообщение 16.10.2004 20:07
Сообщение #1


Гость






задание: написать программу на языке паскаль, чтобы она переводила число из четверичной системы счиления в шестнадцетиричную с.с.

вот собственно что надо..........
ПОЖАЛУЙСТО, HELP
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Amro
сообщение 19.10.2004 19:59
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  2  +


Вот тута прогу одну нашёл, правда ещё сам не разобрался, но по-моему она переводит из любой системы счисления в любую другую ....... в общем универсальная она
Код
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


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Flipper   задача на системы счисления   16.10.2004 20:07
Altair   один из способов (простых) это перевести сначала в...   16.10.2004 20:16
Flipper   спасибо, sorry, вспылил, был не прав.   16.10.2004 21:57
Altair   То-то же! :yes:   17.10.2004 8:04
--Vika--   Привет, всем! клево, нам тоже самое задали, за...   18.10.2004 14:40
Atos   Число - это n, а radix- это какая с/c Например выз...   18.10.2004 14:48
--Vika--   digit: string[16]='0123456789ABCDEF' а это...   18.10.2004 14:55
Altair   тут реагируютна все вопросы! так что заходите ...   18.10.2004 16:40
FreeMan   своим подругам :D   18.10.2004 16:56
Altair   Это прежде всего, девушкам тут особенно рады, и за...   18.10.2004 17:07
GoodWind   угу.... очеень... особенно я :D Зватит флеймить...   18.10.2004 19:23
--Vika--   ребята, не получилось....еще мне сказали чтоб дела...   19.10.2004 9:55
Altair   Так, а задание дайте.   19.10.2004 10:00
--Vika--   задание тоже самое :huh: программа на паскале, п...   19.10.2004 10:29
APAL   И у меня есть попутный вопрос - ведь наверняка дол...   19.10.2004 10:43
volvo   --Vika-- Только что проверил программу Oleg_Z. Вс...   19.10.2004 12:05
Altair   На нашем форум, все, что выложенно в ЧаВо, все раб...   19.10.2004 13:42
Amro   Вот тута прогу одну нашёл, правда ещё сам не разоб...   19.10.2004 19:59
volvo   Принцип остается тот же - здесь... for i:=n...   19.10.2004 20:07
GoodWind   завтра ОМТ`шницу нашу спрошу   19.10.2004 20:25
Dao   Я мож и опоздал, но в том году писал прогу, котора...   19.10.2004 20:31
Altair   Опоздал во-первых, во-вторых слишком однобокая про...   20.10.2004 6:12
Dao   Полностью с тобой согласен, но 5 у меня уже сотит,...   20.10.2004 18:19
Altair   Точно!   20.10.2004 18:32
Vika   вот, перевод числа из любой с/с в 10. не делением...   22.10.2004 9:15
Altair   Не понял, что тебе не нравиться?   22.10.2004 15:30
aspu   А вот я что-то не пойму та прога универсальная на ...   26.09.2005 13:52
Jill   ребята, а если ПРОСТО десятичное (и положительное,...   26.09.2005 14:20
aspu   У тебя не проблема :) При переводе между системами...   26.09.2005 15:38
Jill   как это? по-моему, там происходят изменения в ста...   26.09.2005 15:43
aspu   A черт его знает в одних источниках одно написано ...   27.09.2005 8:48
Jill   калькулятор не обрабатывает отр. числа :-) чтоб ...   27.09.2005 10:29
aspu   ну вот и меняй :) Переведи его в строковый вид и п...   27.09.2005 10:49
Гость   Помогите пожалуйста модифицировать программу перев...   25.09.2007 10:40


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 24.06.2025 21:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"