Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2011, 17:47   #1
KrotikDJ
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 38
По умолчанию Обучение переводу из 10-й системы счисления в 16- ричную.

Составить программу для обучения переводу чисел из десятичной системы счисления в 16-ричную и обратно. Программа должна предлагать десятичное (16-ричное) число, выбранное с помощью датчика случайных чисел, обучающийся – назвать это число в 16-ричной (десятичной) системе счисления. Причем, должен быть контроль за временем на размышление.

Помогите, пожалуйста...
Составить на С/С++/С#
Даже могу за небольшую символическую плату... Пожалуйста, помогите срочно!
А то не понимаю..

Последний раз редактировалось KrotikDJ; 20.10.2011 в 18:07. Причина: Опечатка
KrotikDJ вне форума Ответить с цитированием
Старый 20.10.2011, 18:43   #2
KrotikDJ
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 38
По умолчанию

Код:
//Программу для обучения переводу чисел из 10 в 2. И обратно.
//Программа должна предлагать 10 (двоичное) число, выбраное с помощью датчика случайных чисел, а обучающихся назвать это число в Двоичной(10) системе.

program algoritm;
uses crt;
label 1,2;
var s,sbox,dvaPs:string;
m:array [1..99] of integer;
i,step,des,dva,n,ost,l,delo,v,rand,box,dvaP,desP:integer;
begin
{Выбор направления обучения}
 writeln('Выберите направление обучения:');
 writeln('1. Перевод из десятичной системы счисления в двоичную');
 writeln('2. Перевод из двоичной системы счисления в десятичную');
 read(v);
 if v=1 then //если выбран 1, то
  begin
   writeln('--------------------');
   randomize;
   des:=random(6)+2;//задаём "сложность", число цифр в десятичном числе
   for i:=1 to des do
    begin
    rand:=random(10)+1;//выбираем рандомное число
    s:=s+IntToStr(rand);
    end;
    l:=length(s);
   {Отрубаем нолики из начала}
    for i:=1 to l do
     if s[1]='0' then
     begin
     Delete(s,1,1);
     l:=l-1;
     end
    else
     break;
   {/Отрубили нолики}
   des:=StrToInt(s);
   des:=3831;//тест
   writeln('Десятичное число:',des);
   n:=0;
   i:=0;
   repeat
    inc(n);
    inc(i);
    ost:=des mod 2;
    des:=des div 2;
    m[i]:=ost;
   until des=0;
   for i:=n downto 1 do
    begin
    box:=m[i];
    sbox:=sbox+IntToStr(box);//записываем двоичное число в строку
    end;
    l:=length(sbox);
   {Отрубаем нолики из начала}
    for i:=1 to l do
     if sbox[1]='0' then
     begin
     Delete(sbox,1,1);
     l:=l-1;
     end
    else
     break;
   {/Отрубили нолики}
   1:write('Переведите его в двоичную систему счисления:');
   read(dvaPs);
   if dvaPs=sbox then
    writeln('Правильно!')
   else
    begin
     writeln('Не правильно, попробуйте еще');
     goto 1;
    end;
  end
 else
 if v=2 then //если выбран 2, то
  begin
   writeln('--------------------');
   randomize;
   dva:=random(9)+3;//задаём "сложность", число цифр в двоичном числе
   for i:=1 to dva do
    begin
    rand:=random(2);//случайный 0 или 1
    s:=s+IntToStr(rand);
    end;
  l:=length(s);//длина строки
  {Отрубаем нолики из начала}
  for i:=1 to l do
   if s[1]='0' then
    begin
    Delete(s,1,1);
    l:=l-1;
    end
   else
    break;
  {/Отрубили нолики из начала}
  Writeln('Двоичное число:',s);
  for i:=1 to l do //для каждого символа делаем
   begin
    dva:=StrToInt(s[i]);//записываем текущую цифру
    step:=l-i;//степень
    if dva>0 then //для 1 делаем
     begin
     for n:=1 to step do
      dva:=dva*2; //1*2^step
     delo:=delo+dva;//складываем
     end;
   end;
  2: Write('Переведите его в десятичную систему счисления:');
  read(desP);
  if desP=delo then
   writeln('Правильно!')
  else
   begin
    writeln('Не правильно, попробуйте еще');
    goto 2;
   end;
  end
  else
   writeln('Некоректный выбор');
end
KrotikDJ вне форума Ответить с цитированием
Старый 20.10.2011, 18:44   #3
KrotikDJ
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 38
По умолчанию

Код:
//из 10 в 16

program algoritm;
uses crt;
var i,ost,des,n,l:integer;
s,s1,sbox:string;
begin
{Алгоритм перевода}
 Writeln('Введите десятичное число:');
 read(des);
 n:=0;
 i:=0;
 s:='';
 repeat
  inc(n);
  inc(i);
  ost:=des mod 16;//остаток
  des:=des div 16;//целая часть
  if ost>=10 then
   begin
    if ost=10 then s:=s+'A';
    if ost=11 then s:=s+'B';
    if ost=12 then s:=s+'C';
    if ost=13 then s:=s+'D';
    if ost=14 then s:=s+'E';
    if ost=15 then s:=s+'F';
   end
  else
   begin
    s:=s+IntToStr(ost);
   end;
 until des=0;
{Переворачиваем содержимое}
n:=1;
l:=length(s);
for i:=1 to (l div 2) do
 begin
 sbox:=s[n];
 s[n]:=s[l+1-n];
 s[l+1-n]:=sbox[1];
 inc(n);
 end;
writeln('Шестнадцатиричное число: ',s);
end.
KrotikDJ вне форума Ответить с цитированием
Старый 20.10.2011, 18:44   #4
KrotikDJ
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 38
По умолчанию

Код:
//из 16 в 10

program algoritm;
uses crt;
var i,step,des,n,l,shest,delo:integer;
s:string;
begin
{Алгоритм перевода}
 Writeln('Введите шестнадцатиричное число:');
 read(s);
 l:=length(s);
 for i:=1 to length(s) do
  begin
  if (s[i]>#47) and (s[i]<#58) then //если символ - число, то
   shest:=StrToInt(s[i])
  else //если символ буква, то
   begin
    if s[i]='A' then shest:=10;
    if s[i]='B' then shest:=11;
    if s[i]='C' then shest:=12;
    if s[i]='D' then shest:=13;
    if s[i]='E' then shest:=14;
    if s[i]='F' then shest:=15;
   end;
  step:=l-i;//степень
  des:=1;
  for n:=1 to step do
   des:=des*16;//возводим в степень
  delo:=delo+shest*des;
 end;
Writeln('Десятичное число: ',delo);
end.
KrotikDJ вне форума Ответить с цитированием
Старый 20.10.2011, 18:45   #5
KrotikDJ
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 38
По умолчанию

Как это все скрепить в одну целую программу на С/С++/С# ?
И чтобы условие задания выполнялось... Выручите, пожалуйста...

Последний раз редактировалось KrotikDJ; 20.10.2011 в 18:51. Причина: Опечатка
KrotikDJ вне форума Ответить с цитированием
Старый 21.10.2011, 08:40   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Как это все скрепить в одну целую программу на С/С++/С# ?
а Вас не смущает, что Вы привели пример на языке программирования Паскаль?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.10.2011, 09:09   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
на С/С++/С# ?
А всетаки на каком из них?
Кстати... насчет Шарпа - тут на форуме уже дали ответ http://msdn.microsoft.com/ru-ru/library/8s62fh68.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2011, 11:24   #8
KrotikDJ
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 38
По умолчанию

Я привел примеры, чтобы проще можно было перевести на другой язык...

А на чем можно, на том и составьте... желательно на С++ (ну если сделаете на C#, то не обижусь)

Выручили бы, а не флуд разводили...

На С++, чтобы условия данной задачи полностью выполнялось (из 10 в 16 (и обратно) через датчик случайных чисел и учет времени на размышление)
!!!

Последний раз редактировалось KrotikDJ; 21.10.2011 в 11:28. Причина: Дополнение
KrotikDJ вне форума Ответить с цитированием
Старый 21.10.2011, 11:31   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
А на чем можно, на том и составьте... желательно на С++ (ну если сделаете на C#, то не обижусь)
На С++, чтобы условия данной задачи полностью выполнялось!!!
Выручили бы, а не флуд разводили...
А что вы будете делать в это время?
С такими запросами во фриланс (за вознаграждение) надо.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 21.10.2011 в 11:33.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Системы счисления kspower C++ Builder 6 22.04.2011 06:25
Системы счисления monogramm Помощь студентам 11 20.04.2011 14:25
перевод из 10-тичной в 11-ричную систему счисления metallldoctor Помощь студентам 0 11.03.2010 13:51
Системы счисления To4H9IK Помощь студентам 2 02.10.2009 17:12