Advertisement
Guest User

lab1_1

a guest
Apr 27th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.93 KB | None | 0 0
  1.  
  2. /* Перевод чилса в другую систему счисления
  3. Тестовые данные
  4. ввод     вывод
  5. 10, 2    1010
  6. 16, 8    20
  7. 5, 8     5
  8. 6, 2     110
  9. 26, 16   1A
  10. 456, 2   111001000
  11.  
  12. */
  13. #include "stdafx.h"
  14. #include "iostream"
  15. #include <windows.h>
  16. #include <conio.h>
  17.  
  18. using namespace std;
  19.  
  20. void Translate(int number, int a, char c[]);
  21. void Return();
  22.  
  23. void Initialization() {
  24.     int number = 0; int a = 0; char c[256]; // число, система сч., массив для записи ответа
  25.  
  26.     cout << "Enter number" << endl;
  27.     cin >> number;
  28.     cout << "Enter the system to translate" << endl;
  29.     cin >> a;
  30.  
  31.     Translate(number, a, c);
  32.  
  33.     Return();
  34. }
  35.  
  36. // Повторный запуск программы
  37. void Return() {
  38.  
  39.  
  40.     cout << endl << "----------------------------" << endl;
  41.     cout << "Return?  (y) (n)" << endl;
  42.  
  43.  
  44.     switch (_getch()) {
  45.     case 'y':Initialization();
  46.     case 'n':exit(0);
  47.     default:Return();
  48.     }
  49.  
  50.  
  51. }
  52.  
  53. // Вывод числа
  54. void Output(char c[], int n) {
  55.  
  56.     for (int i = 0; i < n/2; i++) {
  57.         char buff = c[i];
  58.         c[i] = c[n - i - 1];
  59.         c[n - i - 1] = buff;
  60.     }
  61.  
  62.     for (int i = n; i > 0; i--) {
  63.         if (c[i - 1] >= 10) {
  64.             c[i - 1] = c[i - 1] + 'A' - 10;
  65.             //printf_s("%c", (c[i - 1] + 'A' - 10));
  66.  
  67.             //switch (c[i - 1]) {
  68.             //case 10:cout << "A"; break; // Вывод для 16 с.сч.
  69.             //case 11:cout << "B"; break;
  70.             //case 12:cout << "C"; break;
  71.             //case 13:cout << "D"; break;
  72.             //case 14:cout << "E"; break;
  73.             //case 15:cout << "F"; break;
  74.  
  75.             //}
  76.         }
  77.         else {
  78.             //printf_s("%d", c[i - 1]);
  79.             /*cout << c[i - 1];*/
  80.         }
  81.  
  82.     }
  83.  
  84. }
  85.  
  86. //Перевод числа
  87. void Translate(int number, int a, char c[]) {
  88.  
  89.     int i = 0;  //счётчик длины числа
  90.  
  91.     for (i = 0; number != 0; i++) {
  92.         c[i] = number % a;
  93.         number /= a;
  94.     }
  95.     Output(c, i);
  96. }
  97.  
  98.  
  99. int main()
  100. {
  101.  
  102.     Initialization();
  103.  
  104.     getchar();
  105.     getchar();
  106.  
  107.     return 0;
  108.  
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement