С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
#1

задача на подпрограммы и системы счисления - C++

17.11.2011, 00:06. Просмотров 704. Ответов 11
Метки нет (Все метки)

Помогите, пожалуйста, с задачей.
Десятичное целое положительное число m переводится в двоичную систему счисления, разряды в этой записи переставляются в обратном порядке, и снова производится перевод в десятичную систему счисления. Напечатать в виде таблицы все полученные значения для m=512,513,514,...,1023.
Начало таблицы имеет вид 512 1000000000 0000000001 1
Перевод чисел из одной системы счисления в другую организовать в подпрограмме.

Для одного конкретного числа как это сделать я еще более-менее понимаю, а с целой таблицей непонятно что делать.
Да и как подпрограммы оформить тоже совсем не ясно...
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 00:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос задача на подпрограммы и системы счисления (C++):

Простейший алгоритм перевода числа из 10 системы счисления в 16 ричную систему счисления - C++
Помогите написать самый простой алгоритм перевода из 10 системы счисления в 16 ричную систему счисления! Мне нужен именно самый простенький...

Перевод натурального числа из десятичной системы счисления в систему счисления по основанию - C++
Здравствуйте. Я хотела бы попросить у вас помощи. Я понимаю, что это не очень красиво, но вдруг кто-нибудь откликнется. Я не очень...

Программа обучения переводу чисел из десятичной системы счисления в 2 10 и 16 систем счисления - C++
дали задание составить программу нужно чтобы на экран выводилось это: Программа обучение переводу чисел из десятичной систем...

Перевод строки из 2-ной системы счисления в 8-ную систему счисления - C++
помогите пожалуйста как сделать перевод строки из 2 системы счисления на 8 систему счисления через массив ?

Написать рекурсивную функцию перевода целого числа из десятичной системы счисления в 9 систему счисления C++ - C++
Написать рекурсивную функцию перевода целого числа из десятичной системы счисления в 9-чную систему счисления.

Перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки и обратно - C++
Нужно две программы, одна реализует перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки, а другая...

11
Байт
Нарушитель
Эксперт C
16687 / 10950 / 1684
Регистрация: 24.12.2010
Сообщений: 21,348
17.11.2011, 00:25 #2
C
1
2
3
for(m=512; m<1024; m++) {
  // Работа с одним числом m
}
0
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
17.11.2011, 00:26  [ТС] #3
Байт, да, я тоже так пробовала.
в итоге на экране куча непонятных чисел
0
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
17.11.2011, 00:32 #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <limits.h>
#include <string.h>
#include <ctype.h>
 
#define FROM  512
#define TO   1023
 
int bintoi(char *s)
{
        int n, sign;
 
        for ( ; isspace(*s); s++)
                ;
        sign = (*s == '-') ? -1 : 1;
        if (*s == '+' || *s == '-')
                s++;
        n = 0;
        while (*s == '0' || *s == '1')
                n = 2 * n + ((*s++ == '1') ? 1 : 0);
        return n * sign;
}
 
void itobin(int n, char s[])
{
        static int i;
 
        if (n / 2) 
                itobin(n / 2, s);
         else {
                 i = 0;
                 if (n < 0)
                        s[i++] = '-';
         }
        s[i++] = ((n % 2 < 0) ? -(n % 2) : n % 2) + '0'; 
        s[i] = '\0';
}
 
char *reverse(char *s)
{
    int i, j, t;
 
    for (i = 0, j = strlen(s) - 1; i < j; i++, j--)
        t = s[i], s[i] = s[j], s[j] = t;
    return s;
}
 
#define MAXLEN sizeof(int) * CHAR_BIT + 2
 
int main()
{
    int n;
    char s[MAXLEN];
 
    for (n = FROM; n <= TO; n++) {
        itobin(n, s);
        printf("%4d %s ", n, s);
        printf("%s ", reverse(s));
        printf("%4d\n", bintoi(s));
    }
    return 0;
}
1
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
17.11.2011, 00:42  [ТС] #5
Net_Wanderer, спасибо большое!!!
только он почему то с 725 считает, вместо 512
0
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
17.11.2011, 00:46 #6
Цитата Сообщение от ПаЗитиФкА Посмотреть сообщение
Net_Wanderer, спасибо большое!!!
только он почему то с 725 считает, вместо 512
это консоль windows кривая, попробуте понизить TO например до 700
0
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
17.11.2011, 00:50  [ТС] #7
странно, может у меня dev c++ как обычно глючит.
а Вы не поможете с этой же программой, но через массивы?


После понижения все нормально отображает. Благодарю!
0
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
17.11.2011, 00:51 #8
Цитата Сообщение от ПаЗитиФкА Посмотреть сообщение
а Вы не поможете с этой же программой, но через массивы?
в моей программе нет массивов?
0
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
17.11.2011, 00:55  [ТС] #9
Net_Wanderer, я имела в виду без строк, с одними массивами.
0
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
17.11.2011, 00:56 #10
Цитата Сообщение от ПаЗитиФкА Посмотреть сообщение
Net_Wanderer, я имела в виду без строк, с одними массивами.
строка - это массив символов
0
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
17.11.2011, 01:02  [ТС] #11
ой, точно. я с этой программой вообще туплю.
т.е. тут без строк совсем-совсем никак, да?
можно тогда какие-нибудь комментарии к коду? если не сложно?
0
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
28.11.2011, 23:22  [ТС] #12
проверьте, пожалуйста, кому не очень сложно. пыталась решить как препод требует, но компилятор 8 ошибок выдает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <stdio.h>
#include <limits.h>
#include <conio.h>
#include <ctype.h>
#include <iostream>
#include <iomanip>
 
int perevod (int a, int *m, int *n) // ïåðåâîä ГЁГ§ äåñÿòè÷Г*îé ñèñòåìû Гў äâîè÷Г*ГіГѕ
      { int i=0;
     int  m[100]={0};
       n=0;
       while (a!=0)
       { if (a % 2 == 1)
       m[i]=1 ;
       else  m[i]=0;
       a=a/2;
       i++;
       n++ ;
       };
       
    }
       
  int podprogramma (int *m, int *n) // ïåðåâîä ГЁГ§ äâî÷èГ*îé ñèñòåìû Гў äåñÿòè÷Г*ГіГѕ
  {
        int k=1, x=0, p;
        p=n;
        for (int i=0, i<p, i++)
      {
        k=m[i]*pow(2;(n-1));
        x=x+k;
        n--;
      };
      return x;
    } ;
    
    int main
    { 
    int z, x;
    for (c=512, c<1023, c++)
    {
        z=perevod (a, m, n);
        x=podprogramma (m,n);
        cout << z;
        for (i=n,i<>0, i--)
        cout << m[i] << " ";
        for (i=0,i<n,i++)
        cout << m[i] << " ";
        cout << x << endl;
     }
     getch ();
    
}
0
28.11.2011, 23:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2011, 23:22
Привет! Вот еще темы с ответами:

Написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления - C++
Помогите написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления. Цифра в самом младшем...

С восьмеричной системы счисления в десятичную систему счисления - C++
Задание: Дана строка символов. Если он изображен целого числа в восьмеричной системе счисления, то перевести его в целое число в...

Перевод чисел из 16 системы счисления в 2 систему счисления - C++
Помогите составить программу для перевод чисел из 16 с/c в 2 c/c при условии,что программ может переводить и дробные числа.

Подпрограммы сложения и умножения целых чисел, представленных в системах счисления с любым основанием от 2 до 10 - C++
1. Определить подпрограммы сложения и умножения целых чисел, представленных в системах счисления с любым основанием от 2 до 10. результаты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.