Перевод числа в различные системы счисления - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вобщем задание состоит в следующем: перевести число в ситему счисления (из десятичной в двоичную вплоть до 36-ричной) . Задание на форуме такое есть но хочется зделать как говориться по своему. Как говориться хочу заново изобрести колесо Вот все что я всеми правдами и неправдами пытался зделать . Вопросов два: из этого вобще чтото может получится и второй : если может то конкретно укажите пожалусто на ощибки . Заранее спасибо!
Листинг программы
  1. #include <iostream>
  2. #include <Windows.h>
  3. using namespace std;
  4. //int Pro (int sys);
  5. void main()
  6. {setlocale (LC_ALL,"rus");
  7. int a=0,b=0,sys=0;
  8. char simwol_0 ='A';
  9. char simwol_1 ='B';
  10. char simwol_2 ='C';
  11. char simwol_3 ='D';
  12. char simwol_4 ='E';
  13. char simwol_5 ='F';
  14. char simwol_6 ='G';
  15. char simwol_7 ='H';
  16. char simwol_8 ='I';
  17. char simwol_9 ='J';
  18. char simwol_10 ='K';
  19. char simwol_11 ='L';
  20. char simwol_12 ='M';
  21. char simwol_13 ='N';
  22. char simwol_14 ='O';
  23. char simwol_15 ='P';
  24. char simwol_16 ='Q';
  25. char simwol_17 ='R';
  26. char simwol_18 ='S';
  27. char simwol_19 ='T';
  28. char simwol_20 ='U';
  29. char simwol_21 ='V';
  30. char simwol_22 ='W';
  31. char simwol_23 ='X';
  32. char simwol_24 ='Y';
  33. char simwol_25 ='Z';
  34. char simwol_26 = 10;
  35. cout<<"Введите число которое хотите расчитать : ";cin>>a;
  36. if (a<=0)
  37. {cout<<"\n Вы вели отрицательное число (или ноль) , оно не может быть расчитанно !";}
  38. if (a>0) { cout<<"Укажите систему счисления в котрую хотите перевести число (от 2 до 36) : ";cin>>sys;
  39. const int ai=1000000,bi=100;
  40. char mas[ai];
  41. // int mas[bi];
  42. //int war_0=0, war_1=0, war_2=0;
  43. for (int daser;;)
  44. {
  45. for (int i=0,j;a!=0;i++) //j-переменная счётчик (накопитель)
  46. { j=a%sys;
  47. if (j<10){mas[i]=j;}
  48. if (j>=10) {
  49. switch (j)
  50. {case 10: mas[i]=simwol_0;break;
  51. case 11: mas[i]=simwol_1;break;
  52. case 12: mas[i]=simwol_2;break;
  53. case 13: mas[i]=simwol_3;break;
  54. case 14: mas[i]=simwol_4;break;
  55. case 15: mas[i]=simwol_5;break;
  56. case 16: mas[i]=simwol_6;break;
  57. case 17: mas[i]=simwol_7;break;
  58. case 18: mas[i]=simwol_8;break;
  59. case 19: mas[i]=simwol_9;break;
  60. case 20: mas[i]=simwol_10;break;
  61. case 21: mas[i]=simwol_11;break;
  62. case 22: mas[i]=simwol_12;break;
  63. case 23: mas[i]=simwol_13;break;
  64. case 24: mas[i]=simwol_14;break;
  65. case 25: mas[i]=simwol_15;break;
  66. case 26: mas[i]=simwol_16;break;
  67. case 27: mas[i]=simwol_17;break;
  68. case 28: mas[i]=simwol_18;break;
  69. case 29: mas[i]=simwol_19;break;
  70. case 30: mas[i]=simwol_20;break;
  71. case 31: mas[i]=simwol_21;break;
  72. case 32: mas[i]=simwol_22;break;
  73. case 33: mas[i]=simwol_23;break;
  74. case 34: mas[i]=simwol_24;break;
  75. case 35: mas[i]=simwol_25;break;
  76. case 36: mas[i]=simwol_26;break;} }
  77. }
  78. cout<<"Ваше число в ("<<sys<<") системе счисления равна : "<<mas[daser];break;
  79. }
  80. a=a/sys;
  81. }
  82. system ("pause");}
  83. //cout<<"Ваше число в ("<<sys<<") системе счисления равна : "<<mas[ai];
  84.  
  85. /*int Pro (int sys, int b)
  86. {const int ai=100,bi=100;
  87. int mas[ai];
  88. int mas[bi];
  89. //int war_0=0, war_1=0, war_2=0;
  90. for (int i,j;b=!0;i++) //j-переменная счётчик (накопитель)
  91. { b%sys=j;
  92. if (j<10){mas[i]=j;}
  93. if (j>=10) {
  94. switch (j)
  95. {case 10: char simwol ='A'; j=simwol; mas[i]=simwol;break;
  96. case 11: char simwol ='B'; j=simwol; mas[i]=simwol;break;
  97. case 12: char simwol ='C'; j=simwol; mas[i]=simwol;break;
  98. case 13: char simwol ='D'; j=simwol; mas[i]=simwol;break;
  99. case 14: char simwol ='E'; j=simwol; mas[i]=simwol;break;
  100. case 15: char simwol ='F'; j=simwol; mas[i]=simwol;break;
  101. case 16: char simwol ='G'; j=simwol; mas[i]=simwol;break;
  102. case 17: char simwol ='H'; j=simwol; mas[i]=simwol;break;
  103. case 18: char simwol ='I'; j=simwol; mas[i]=simwol;break;
  104. case 19: char simwol ='J'; j=simwol; mas[i]=simwol;break;
  105. case 20: char simwol ='K'; j=simwol; mas[i]=simwol;break;
  106. case 21: char simwol ='L'; j=simwol; mas[i]=simwol;break;
  107. case 22: char simwol ='M'; j=simwol; mas[i]=simwol;break;
  108. case 23: char simwol ='N'; j=simwol; mas[i]=simwol;break;
  109. case 24: char simwol ='O'; j=simwol; mas[i]=simwol;break;
  110. case 25: char simwol ='P'; j=simwol; mas[i]=simwol;break;
  111. case 26: char simwol ='Q'; j=simwol; mas[i]=simwol;break;
  112. case 27: char simwol ='R'; j=simwol; mas[i]=simwol;break;
  113. case 28: char simwol ='S'; j=simwol; mas[i]=simwol;break;
  114. case 29: char simwol ='T'; j=simwol; mas[i]=simwol;break;
  115. case 30: char simwol ='U'; j=simwol; mas[i]=simwol;break;
  116. case 31: char simwol ='V'; j=simwol; mas[i]=simwol;break;
  117. case 32: char simwol ='W'; j=simwol; mas[i]=simwol;break;
  118. case 33: char simwol ='X'; j=simwol; mas[i]=simwol;break;
  119. case 34: char simwol ='Y'; j=simwol; mas[i]=simwol;break;
  120. case 35: char simwol ='Z'; j=simwol; mas[i]=simwol;break;
  121. case 36: char simwol ='10'; j=simwol; mas[i]=simwol;break;} }
  122. } */
Код не завершен. Но подскажите сможет ли он вобще заработать ?

Решение задачи: «Перевод числа в различные системы счисления»

textual
Листинг программы
  1. #include <iostream>
  2. #include <Windows.h>
  3. using namespace std;
  4. void fun (int n,int k)
  5. {if ((n > 0, 2 <= k <= 37))// Проверка входных данных
  6. {
  7.     int mas_int[100];
  8. int i=0;
  9. char mas[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
  10.  for(;n!=0;)//Вычисляем нужное значение :)
  11.  {
  12.  mas_int[i]=n%k;
  13.  n/=k;
  14.  i++;
  15.  }
  16.  cout<<"Результат перевода = ";
  17.  for (int j = i-1; j >=0; j--) //Переварачиваем массив
  18. {cout<<mas[ mas_int[j] ];}
  19.  cout<<"\n\n";
  20. }}
  21.  
  22. void main()
  23. {setlocale (LC_ALL,"rus");
  24. int a=0;
  25. cout<<"Введите число которое хотите перевести : ";cin>>a;cout<<"\n\n";
  26. int sys=0;
  27. cout<<"Введите систему счисления в которую хотите произвести перевод : ";cin>>sys;cout<<"\n\n";
  28.  
  29. fun (a,sys);
  30.  
  31. system ("pause");}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с потоками ввода-вывода и Windows.h
  2. Объявляем функцию fun с двумя параметрами типа int n и k
  3. Проверяем корректность входных данных - n больше 0 и 2 <= k <= 37
  4. Создаем массив mas_int размером 100 для хранения результатов перевода
  5. Создаем массив mas размером 30 для хранения соответствия цифр и символов
  6. Начинаем цикл for для вычисления результата перевода, используя операторы % и / для деления и остатка от деления
  7. В каждой итерации цикла присваиваем элементу массива mas_int значение остатка от деления n на k и обновляем n, вычитая из него k
  8. Увеличиваем i после каждой итерации цикла
  9. Выводим результат перевода, используя цикл for, который проходит по массиву mas_int в обратном порядке и выводит соответствующий символ из массива mas
  10. В функции main считываем число и систему счисления, в которую необходимо произвести перевод
  11. Вызываем функцию fun с введенными значениями a и sys
  12. Ожидаем нажатия клавиши для завершения работы программы

ИИ поможет Вам:


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

Оцени полезность:

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы