Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
1

Обратный перевод в восьмиричную систему

01.04.2010, 17:34. Просмотров 1678. Ответов 14
Метки нет (Все метки)

Целое положительное число m записывается в восьмеричной системе счисления, и разряды в этой записи переставляются в обратном порядке. Получившееся число принимается за значение функции F(m). Например, m=477, F(m)=351.

Помогите зделать пожалуйста, на форуме искал, не нашёл прогу перевода в 8ю, может искал плохо...а дальше вообще не могу понять что и как. Объясните пожалуйста.

Добавлено через 3 часа 48 минут
Помощь ещё нужна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2010, 17:34
Ответы с готовыми решениями:

Перевод числа N из десятичной системы счисления в восьмиричную
Здравствуйте! Я начинающий программист и мне очень надо создать 3 программы на...

Рекурсия.Перевод с десятичной в двоичную, восьмиричную и шестнадцатиричную системы
Нужно перевести с десятичной в эти 3 системы,но с рекурсией у меня не выходит....

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

Перевод двоичного числа в прямой и обратный код
Помогите написать программу) Перевод двоичного числа в прямой и обратный код.

Перевод в 8-ую систему
Вообщем проблема такая(( Нужно написать программу перевода многоразрядного...

14
Voron8
13 / 13 / 3
Регистрация: 28.04.2009
Сообщений: 62
01.04.2010, 19:18 2
C++
1
2
3
4
5
6
7
8
9
10
11
cout<<"Введите число ";
int c=0;
cin>>c;
char a[5]={'\0'},b[5]={'\0'};
itoa(c,a,8);
cout<<a<<endl;
 
for(int i=0,j=strlen(a)-1;a[i];i++,j--){
    b[i]=8-(a[j]-48)+48;
}
cout<<b;
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
02.04.2010, 13:33  [ТС] 3
Забыл указать, что мне на СИ нужно...я пока перевёл вот так, но есть ошибки, помогите пожалуйста исправить и доделать ошибки.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
main(){
int c=0;
int i,j;
printf("Введите число: ");
scanf("%d", &c);
char a[5]={'\0'},b[5]={'\0'};
itoa(c,a,8);
printf("First diget: %d",a[j]);
 
for(i=0,j=strlen(a)-1;a[i];i++,j--){
        b[i]=8-(a[j]-48)+48;
 
}
printf("Second diget: %d",b[i]);
}
0
Voron8
13 / 13 / 3
Регистрация: 28.04.2009
Сообщений: 62
02.04.2010, 16:50 4
12 строка - обращение к не инициированной переменной.
18 строка тоже подозрительна.

хотя в с слабоват...
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
02.04.2010, 18:19  [ТС] 5
Я знаю, что у меня там ошибки, потому и прошу, чтобы знающий человек помог мне привести код в рабочее состояние. Заранее спасибо!
0
easybudda
Модератор
Эксперт CЭксперт С++
10089 / 6000 / 1503
Регистрация: 25.07.2009
Сообщений: 11,379
03.04.2010, 21:47 6
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
...и разряды в этой записи переставляются в обратном порядке.
В смысле - цифры восьмеричного числа в обратном порядке переставляются, или всё-таки биты в числе нужно зеркально отобразить и то, что получится, вывести в восьмеричном формате?
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
04.04.2010, 16:56  [ТС] 7
Я так понял что нужно перевести в восьмиричную, поменять местами элементы в ней, а потом перевести назад. Помогите пожалуйста, хоть как-нибудь сделать..(

Добавлено через 2 часа 46 минут
В общем вариант 2) буду рад любой помощи!!
0
Voron8
13 / 13 / 3
Регистрация: 28.04.2009
Сообщений: 62
04.04.2010, 17:27 8
С алгоритмом все в порядке. Проблемы были в выводе.

попробуй это.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
 
main(){setlocale( LC_ALL,"Russian" );
int c=0;
int i,j;
printf("Введите число: ");
scanf("%d", &c);
 
char a[5],b[5];
itoa(c,a,8);
std::cout<<"First diget: "<<a<<std::endl;
 
for(i=0,j=strlen(a)-1;a[i];i++,j--){
        b[i]=8-(a[j]-48)+48;
 
}
std::cout<<"Second diget: "<<b<<std::endl;
}
Добавлено через 7 минут
Я делал так

из десятичной 477 >> в восьмеричную 735 >> отражаем 153 >> переставляем 351.
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
05.04.2010, 13:20  [ТС] 9
В общем помогите теперь исправить синтаксис, я пробовал предыдущую смесь написать в Си, но пока вышло так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
 
main(){setlocale( LC_ALL,"Russian" );
int c=0;
int i,j;
printf("Введите число: ");
scanf("%d", &c);
 
char a[5],b[5];
itoa(c,a,8);
printf("First diget: ",a);
 
for(i=0,j=strlen(a)-1;a[i];i++,j--){
        b[i]=8-(a[j]-48)+48;
 
}
printf("Second diget: ",b);
}
Но не работает. Пожалуйста помогите!
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
05.04.2010, 13:54 10
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
F(m)=351.
по-твоему же получается 537.
Цитата Сообщение от Voron8 Посмотреть сообщение
12 строка - обращение к не инициированной переменной.
в десятой a инитится.
Цитата Сообщение от Voron8 Посмотреть сообщение
18 строка тоже подозрительна.
b делается в цикле.

Добавлено через 1 минуту
Но i и j не инитятся. И вообще, в таком веде обе строки надо в тела циклов.
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
05.04.2010, 20:36  [ТС] 11
taras atavin, ничего не понял(( пожалуйста исправьте ошибки, чтобы я понял, 4й день бьюсь над этой задачей((

Добавлено через 3 часа 39 минут
Ещё актуально! плиз помогите...
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
07.04.2010, 15:25  [ТС] 12
Всё ещё не исправил ошибки...пожалуйста помогите! очень прошу!
0
outoftime
║XLR8║
763 / 662 / 212
Регистрация: 25.07.2009
Сообщений: 3,320
Записей в блоге: 5
07.04.2010, 15:58 13
C
1
2
printf("Second diget: ",b); //в стоку параметров передай %s чтобы сообщить о выводе строки
printf("Second diget: %s",b);
Прочитай это: http://www.cplusplus.com/reference/clibrary/cstdio/printf/

Добавлено через 2 минуты
Bloodykeeper, почитай еще о потоках, можешь к примеру с помощью тех же параметров вывести число в десятичной записи в 8-ю в поток, потом прочечь с него строку и вывести ее реверсом..

Добавлено через 5 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
 
main()
{
    int c = 0;
    printf("Введите число: ");
    scanf("%d", &c);
    char a[5] = {'\0'}, b[5] = {'\0'};
    itoa(c, a, 8);
    printf("First diget: %c\n", a[strlen(a)-1]);
    for(int i = 0, j = strlen(a)-1; a[i]; ++i, --j)
        b[i] = a[j];
    printf("Second diget: %s", b);
    getch();
}
Розберись что к чему..
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
08.04.2010, 12:46  [ТС] 14
Я переделал вот так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
 
main()
{
    int c = 0;
    int i,j;
    printf("Введите число: ");
    scanf("%d", &c);
    char a[5] = {'\0'}, b[5] = {'\0'};
    itoa(c, a, 8);
    printf("First diget: %c\n", a[strlen(a)-1]);
    for(i = 0, j = strlen(a)-1; a[i]; ++i, --j)
        b[i] = a[j];
    printf("Second diget: %s", b);
    getch();
}
Ругается на объявление а и б пишет что мол нет таких и в цикле for тоже пишет остальные ошибки. Спасибо за ссылку, обязательно почитаю как домой с отдыха приеду, помогите исправить оставшиеся ошибки, заранее большое спасибо, outoftime, вам в особенности.

Добавлено через 20 часов 8 минут
Блин, народ, ну пожалуйста, помогите исправить! ну 6 дней не могу справится(( пожалуйста исправьте ошибки.
0
outoftime
║XLR8║
763 / 662 / 212
Регистрация: 25.07.2009
Сообщений: 3,320
Записей в блоге: 5
08.04.2010, 16:50 15
Bloodykeeper, все что могу сказать по єтому поводу - читайте старіе стандарты, насколько я понял пишите вы на BC 3.1, поэтому и ошибки, на современных компиляторах этого нет, стандарт поменялся..
0
08.04.2010, 16:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2010, 16:50

Перевод из 10 в 2 систему
Я понимаю, было не мало тем на эту тему, но нужного я пока не нашел. Вот...

Перевод из 16 в 10 и 2 систему счисления
Кто сможет написать код на с++ IDE Dev c++. Что бы переводила в 10 и 2...

Перевод в двоичную систему
Здравствуйте, написал алгоритм перевода введённого числа в двоичную систему....


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

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

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