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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2015, 22:09   #1
Frycher
 
Регистрация: 18.06.2015
Сообщений: 9
По умолчанию Кто может помочь сделать алгоритм,программа для перевода из 2в10

Код:
#include <stdio.h>
#include <conio.h>
int main(void)
{
    int osn,     // основание системы счисления
        n,       // исходное число
        cn,      // копия исходного числа
        r;       // остаток от деления числа
                 // на основание сист счисл.
    char st[17]; // представление числа в заданной сист. счисл.
    int i;

    printf("\Cheloe chislo ->");
    scanf("%d", &n);
    printf("Vvedite osnovnie sistemi schislenia->");
    scanf("%d", &osn);

    cn = n;
    //  делим исходное число на основание системы
    //  счисления до тех пор, пока остаток от деления
    //  больше основания системы счисления.
    //  Остаток от деления на каждом щаге - очередная цифра
    st[16] ='\0';
    i = 15;
    do {
      r = n  % osn;  // очередная цифра
      n = n / osn; // целая часть деления
      // printf("цифра:%d остаток:%d\n", r,n);
      st[i--] = r + 48; // преобразование цифры в символ
    } while ( n > 0);

    // "сдвинем" сформированную строку в начало
    i++;
    int j = 0;
    while(st[i])
      st[j++] = st[i++];
    st[j] = '\0';

    st[i--] = ' ';
    printf("Desyatichnomy chislu %d sootvetstvuet ", cn);
    printf("chislo %s po osnovaniu %d\n", st, osn);

    printf("\n Dlya zaverwenia nawmite  <Enter>");
    getch();

Последний раз редактировалось Вадим Мошев; 24.06.2015 в 22:25.
Frycher вне форума Ответить с цитированием
Старый 24.06.2015, 22:26   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Почитайте здесь: http://www.programmersforum.ru/showp...4&postcount=36
разберитесь.
Вадим Мошев вне форума Ответить с цитированием
Старый 24.06.2015, 22:37   #3
Frycher
 
Регистрация: 18.06.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Почитайте здесь: http://www.programmersforum.ru/showp...4&postcount=36
разберитесь.
я видел этот код там в С# он нерабочий , я не знаю как исправить
Frycher вне форума Ответить с цитированием
Старый 25.06.2015, 00:39   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Код:
cn = n;
    //  делим исходное число на основание системы
    //  счисления до тех пор, пока остаток от деления
    //  больше основания системы счисления.
    //  Остаток от деления на каждом щаге - очередная цифра
У вас написано в задании "из 2 в 10".
То, как вы поступаете же, выполняют в том случае, если переводят число из 10 в n-ю.
В вашем же случае, конвертация идёт в обратную сторону.
Конкретно для вашего случая, поступайте так.

Начинайте с самой правой цифры. Эту цифру умножайте на 2 в степени 0
Продвигаетесь на одну позицию влево, на вторую справа цифру. её умножаете на 2 в степени 1. Продвигаетесь снова на одну позицию влево. С ней выполняете аналогичные действия, за тем исключением, что показатель степени двойки увеличиваете на 1 каждый раз при переходе от одной цифры к другой по мере продвижения влево.

В конце концов вам надо просто сложить всё то, что у вас получилось на каждом шаге, что в итоге даст вам десятичное представление исходного числа
Вадим Мошев вне форума Ответить с цитированием
Старый 25.06.2015, 09:10   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я видел этот код там в С# он нерабочий
Вот это поворот! О_о
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2015, 18:14   #6
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Для сравнения результатов

Вот рабочий (до 96 цифр), в т. ч. и для двоичных дробей:
Изображения
Тип файла: jpg 2015-06-26_170344.jpg (29.8 Кб, 130 просмотров)
Вложения
Тип файла: doc 96_цифр.doc (39.5 Кб, 14 просмотров)

Последний раз редактировалось Sasha_Smirnov; 26.06.2015 в 17:12. Причина: 96_цифр.doc + скрин.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Народ привет,Кто может сделать алгоритм программы в виде блок-схемы,ЗА ВОЗНАГРОЖДЕНИЕ, есть листинг программы?? DIMONCHIK666 Фриланс 9 01.07.2015 14:26
Бросок к горизонту(паскаль+-делфи.(может ли кто помочь сделать с Паскаля АВС на Делфи?) extrimal Помощь студентам 8 24.03.2013 23:51
Где и как скачать программу Delphi. Может кто нибудь может помочь мне - без скачивания из интернета. IZOPGRAM Общие вопросы Delphi 4 16.06.2012 18:12
Кто может помочь сделать autorun? san91 Помощь студентам 2 07.09.2011 20:53