Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/54: Рейтинг темы: голосов - 54, средняя оценка - 4.69
Lineta
1

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

02.05.2012, 19:23. Показов 10306. Ответов 2
Метки нет (Все метки)

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

Вот задачи:
1. Написать программу для перевода натурального числа N из десятичной системы счисления в систему счисления по основанию K (K>10).

2. Дан текстовый файл. Создать файл, содержащий все знаки препинания, встретившиеся в текстовом файле в обратном порядке.

3. Дан массив размера N и число k (0<k<5, k<N). Осуществить циклический сдвиг элементов массива вправо на k позиций.
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2012, 19:23
Ответы с готовыми решениями:

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

Перевод числа из 8-ичной системы счисления в 16-ричную систему счисления и обратно.
Написать программу на С++. Перевод из 8 системы счисления в 16 систему счисления и обратно из 16...

Перевод числа из восьмеричной системы счисления в шестнадцатеричную систему счисления
Вот пример числа: 754 = 1EC 1000 = 200

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

2
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
03.05.2012, 02:33 2
Лучший ответ Сообщение было отмечено как решение

Решение

Только из хорошего настроения помогу за корректность программ не ручаюсь, практически ничего не тестировал, но по идее всё должно работать
main1.cpp

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
63
64
65
66
#include <iostream>
#include <cstdlib>
#include <clocale>
#include <map>
#include <list>
#include <string>
 
typedef std::list<int> IntList;
 
int main()
{
   setlocale( LC_ALL, NULL );
   long N; // число с десятичным основанием
   long k; // основание системы в которую надо перевести
   IntList numberK;
   std::string numberKStr;
   const int MAX_BASE = 36;
   std::map< int, char > numberDic;
 
   for ( char i = '0'; i <= '9'; ++i )
   {
      numberDic[ i - '0' ] = i;
   }
   for ( char i = 'A'; i <= 'Z'; ++i )
   {
      numberDic[ i - 'A' + 10 ] = i;
   }
 
   std::cout << "Введите натуральное число в десятичной системе: ";
   std::cin >> N;
 
   if ( N < 1 )
   {
      std::cout << "Ошибка, введено не натуральное число. Выход" << std::endl;
      exit( EXIT_SUCCESS );
   }
 
   std::cout << "Введите основание системы для перевода: ";
   std::cin >> k;
 
   if ( k < 2 || k > MAX_BASE )
   {
      std::cout << "Неверное основание системы. Выход" << std::endl;
      exit( EXIT_SUCCESS );
   }
 
 
   long Ncopy = N;
   while ( true )
   {
      numberK.push_front( Ncopy % k );
      if ( Ncopy < k )
         break;
 
      Ncopy /= k;
   }
 
   for ( IntList::iterator i = numberK.begin(); i != numberK.end(); ++i )
   {
      numberKStr += numberDic[ *i ];
   }
 
   std::cout << "Результат: " << numberKStr << std::endl;
 
   return 0;
}

main2.cpp

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 <iostream>
#include <list>
#include <fstream>
#include <clocale>
#include <cctype>
#include <string>
#include <cstdlib>
 
typedef std::string::iterator strItr;
typedef std::list< char > CharList;
 
int main()
{
   setlocale( LC_ALL, NULL );
   std::string text;
   CharList punctList;
   std::ifstream fin("input.txt");
   std::ofstream fout("output.txt");
 
   if ( !fin )
   {
      std::cout << "Ошибка, не могу открыть файл для чтения. Выход" << std::endl;
      exit( EXIT_SUCCESS );
   }
   if ( !fout )
   {
      std::cout << "Ошибка, не могу открыть файл для записи. Выход" << std::endl;
      exit( EXIT_SUCCESS );
   }
 
   while ( !fin.eof() )
   {
      std::getline( fin, text );
      for ( strItr i = text.begin(); i != text.end(); ++i )
      {
         if ( ispunct(*i) )
            punctList.push_front( *i );
      }
   }
   fin.close();
 
   for ( CharList::iterator i = punctList.begin(); i != punctList.end(); ++i )
   {
      fout << *i;
   }
 
   fout.close();
 
   std::cout << "OK" << std::endl;
 
   return 0;
}

main3.cpp

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
#include <iostream>
#include <cstdlib>
#include <locale>
#include <algorithm>
 
template < class T1 >
void shiftArray( T1 arr, size_t ARR_SIZE, long shiftValue );
 
int main()
{
   setlocale( LC_ALL, NULL );
   const size_t ARR_SIZE = 10;
   int arr[ ARR_SIZE ];
   int k = 4;
 
   for ( size_t i = 0; i < ARR_SIZE; ++i )
   {
      arr[i] = i + 1;
   }
 
   std::cout << "Array before:" << std::endl;
   for ( size_t i = 0; i < ARR_SIZE; ++i )
   {
      std::cout << arr[i] << ' ';
   }
   std::cout << std::endl;
 
   shiftArray<int *>( arr, ARR_SIZE, k );
 
   std::cout << "Array after:" << std::endl;
   for ( size_t i = 0; i < ARR_SIZE; ++i )
   {
      std::cout << arr[i] << ' ';
   }
   std::cout << std::endl;
 
   return 0;
}
 
template < class T1 >
void shiftArray( T1 arr, size_t ARR_SIZE, long shiftValue )
{
   if ( shiftValue == 0 )
      return;
 
   shiftValue = shiftValue % ARR_SIZE;
   std::rotate( arr, arr + ARR_SIZE - shiftValue ,arr + ARR_SIZE );
}
1
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 173
27.12.2012, 01:20 3
Извините, а не совсем разобрался в программах. А можно написать программу перевода чисел с 8сс в 4сс, если несложно?
0
27.12.2012, 01:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2012, 01:20
Помогаю со студенческими работами здесь

Перевод натурального числа из десятичной системы счисления в восьмеричную
\Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в...

перевод натурального числа из десятичной системы счисления в двоичную
люди помагиет сейчас идти здавать а я не успеваю! помагите кто че сможет решить! ...

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru