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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2011, 20:16   #1
DreamMZ
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 13
Восклицание Уважаемые Товарищи Програмисты требуется ваши знания

Суть задачи такова: Написать программу , которая переводит число из 2-й системы счистления в 12-ю через 10-ю.
Заранее спасибо!)Язык С++

Последний раз редактировалось DreamMZ; 15.12.2011 в 20:29.
DreamMZ вне форума Ответить с цитированием
Старый 15.12.2011, 21:24   #2
DreamMZ
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 13
По умолчанию

Вот только что умею из 2 в 10
Код:
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <String.h>
#inlclude <windows.h>
using namespace std;
int main()
{
char bin[81]; //Строка для хранения двоичного числа
long dec=0; //результат перевода
char *pb = bin; //указатель с помощью которого мы получаем символьные строки
char ch;
int i=0;
cout << "Введите 2-е число" << endl;
do
{
ch=_getch();
if(ch=='0' || ch == '1')
{
  bin[i++] = ch;
cout << ch;
}
}while (ch != '\r' && i <81);
bin[i] = '\0';
cout << endl;
while (*pb) // пока строка не закочена
dec = dec * 2 +*pb++ - '0'; //схема Горнера
cout << "Соотв. десятичное число: ";
cout << dec << endl;
_getch();
return 0;
}
DreamMZ вне форума Ответить с цитированием
Старый 15.12.2011, 21:29   #3
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

как понимаю затруднения с самим пониманием как перевести из 10 в 12...
вот почитай если будут затруднения с реализацией... пиши...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 15.12.2011, 21:31   #4
DreamMZ
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 13
По умолчанию

Уважаемый перевод на "бумашке" я умею делать) проблемма в реализации кода не могли бы вы подсказать как это вписать в мою программу
DreamMZ вне форума Ответить с цитированием
Старый 15.12.2011, 21:59   #5
DreamMZ
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 13
По умолчанию

Горю к завтра надо(
DreamMZ вне форума Ответить с цитированием
Старый 16.12.2011, 02:50   #6
DreamMZ
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 13
По умолчанию

Форумчане горю в долгу не останусь
DreamMZ вне форума Ответить с цитированием
Старый 16.12.2011, 07:14   #7
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

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

Код:
int from = 123; // число которое будем переводить
char out[256]; // выходная строка
int index = 0; //индекс текущей цифры 
int ost = 0; // остаток
int pr=0; // темп
while(from!=0)
{
pr=from;
from = from / 12; // получаем частное
ost = pr%12; // получаем остаток

if (ost == 10) out[index++] = 'A'; // если остаток больше 9 то буквами
else
if (ost == 11) out[index++] = 'B';
else
if (ost == 12) out[index++] = 'C';
else out[index++] = (char)ost; // или просто пишем остаток как результат
}
В итоге в строке будем иметь число в 12 системе. В этом примере будет 3A то есть когда развернем строку получим реально A3.

Код HTML:
вот алгоритм
1. Найдем частное и остаток от деления числа на p. Остаток  будет очередной цифрой ai (j=0,1,2 …) записи числа в новой системе счисления.

2. Если частное равно нулю, то перевод числа закончен, иначе применяем к частному пункт 1.

Замечание 1. Цифры ai в записи числа нумеруются справа налево.

Замечание 2. Если p>10, то необходимо ввести обозначения для цифр с числовыми значениями, большими или равными 10.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 16.12.2011, 07:31   #8
DreamMZ
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 13
По умолчанию

Спасиюо огромное выручили но не понял смысл слова "зеркально" p.s туплю с утра
DreamMZ вне форума Ответить с цитированием
Старый 16.12.2011, 07:33   #9
DreamMZ
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 13
По умолчанию

Это уже готовая программа или кусочек который мне нужно дописать?
DreamMZ вне форума Ответить с цитированием
Старый 16.12.2011, 08:04   #10
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

при делении на 12 остаток не может быть 12
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уважаемые ТОВАРИЩИ! ПОМОГИТЕ ПОЖАЛУЙСТА! Роман91 Паскаль, Turbo Pascal, PascalABC.NET 3 15.05.2009 11:02
Товарищи многомудрые програмисты!!! Спасите бедную студентку ) eliana Паскаль, Turbo Pascal, PascalABC.NET 3 04.06.2008 16:37
Товарищи програмисты помогите по ПАСКАЛЮ. BEAR696 Фриланс 11 03.06.2008 20:18