Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Шерлок
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 16
#1

Шестнадцатеричная система - C++

05.12.2012, 16:04. Просмотров 1043. Ответов 4
Метки нет (Все метки)

Задано шестнадцатеричное число. Напечатать таблицу умножения в шестнадцатеричной системе счисления от 1 до данного числа. Помогите пожалуйста, вариантов нету вообще(((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2012, 16:04     Шестнадцатеричная система
Посмотрите здесь:

Двоичная система C++
C++ Шестнадцатеричная цифра
C++ двоичная система
C++ Система счисления
Для чего используется шестнадцатеричная система счисления? C++
Шестнадцатеричная система счисления C++
C++ Система с переключателем
Система уравнений C++
C++ Записать hex( шестнадцатеричная система счисления ) код файла в блокнот
Шестнадцатеричная чисельная система C++
C++ Система банкомат

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
05.12.2012, 16:17     Шестнадцатеричная система #2
Таблицу умножения знаете?

Создаёте двумерный массив размером на 1 больше, чем число (число строк и столбцов равны). Нулевой столбец и строку заполняете числами от 1 до заданного числа. Все остальные элементы - произведение.

Далее идёт стандартный вывод массива на консоль.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.12.2012, 16:52     Шестнадцатеричная система #3
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
void OutMull(char *Num, HDC Context, signed int left, signed int top, DOCINFO *di)
{
 StartDoc(Context, di);
 static char digits[2][16]={{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}, {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}};
 signed int i;
 signed int d;
 signed int rd;
 signed int n;
 signed int x;
 signed int y;
 signed int m;
 unsigned int L;
 TEXTMETRIX tm;
 char *p;
 for (p=Num, L=0; x=0; *p!=0; ++p, n*=16)
 {
  for (d=15, d>=0; --d, x*=16)
  {
   for (i=1, i>=0; --i)
   {
    if (digits[i][d]==*p)
    {
     rd=d;
    }
   }
   x+=rd;
   L+=1;
  }
 }
 n/=16;
 GetTextMetrics(Context, tm); 
 for (x=n; x>0; --x)
 {
  for (y=n; y>0; --y)
  {   
   for (m=x*y, d=2*L-1; d>=0; --d, m/=16)
   {
    TextOut(Context, ((x-1)*2*L+L+d)*(tm.tmAveCharWidth+4)+left, ((y-1)*2*L+L)*(tm.Height+4)+top, digits[0][m%16], 1);
   }
  }
 }
 for (x=n; x>0; --x)
 {
  for (m=x, d=L-1; d>=0; --d, m/=16)
  {
   TextOut(Context, d*(tm.tmAveCharWidth+4)+left, ((x-1)*2*L+L)*(tm.Height+4)+top, digits[0][m%16], 1);   
   TextOut(Context, ((x-1)*2*L+L+d)*(tm.tmAveCharWidth+4)+left, top, digits[0][m%16], 1);
   MoveToEx(Context, left, top+tm.Height+2, NULL);
   LineTo(Context, left+(L+2*L*n)*(tm.tmAveCharWidth+4), ((x-1)*2*L+L)*(tm.Height+4)+top+2, NULL);
   MoveToEx(Context, ((x-1)*2*L+L+d)*(tm.tmAveCharWidth+4)+left+2, top, NULL);
   LineTo(Context, ((x-1)*2*L+L+d)*(tm.tmAveCharWidth+4)+left+2, ((n-1)*2*L+L)*(tm.Height+4)+top, NULL);
  }
 }
 MoveToEx(Context, left, top+tm.Height+2, NULL);
 LineTo(Context, left+(L+2*L*n)*(tm.tmAveCharWidth+4), top+tm.Height+2, NULL);
 MoveToEx(Context, left+L*(tm.tmAveCharWidth+4), top, NULL);
 LineTo(Context, left+L*(tm.tmAveCharWidth+4), ((n-1)*2*L+L)*(tm.Height+4)+top, NULL);
 EndDoc(Context);
}
Контекст и кокинфо созавай сам, функция только для винды, может глючить в ширину.
WhiteP
606 / 204 / 23
Регистрация: 20.11.2012
Сообщений: 426
05.12.2012, 16:59     Шестнадцатеричная система #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
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
 
void print_hex(int x_max)
{
    int width = log(x_max * x_max)/log(16)+2;
 
    for(int i=0;i<width+1;i++) 
        cout<<" ";
    for(int i = 1; i <= x_max; i++) 
        cout<<setw(width)<<hex<<i;
    cout<<endl;
    for(int i = 1; i <= (x_max*width)+(width*2); i++)
        cout<<'-';
    cout<<endl;
 
    for(int i = 1; i <= x_max; i++)
    {
        cout<<setw(width)<<i<<'|';
        for(int j = 1; j <= x_max; j++)
            cout<<setw(width)<<hex<<i*j;
        cout<<endl;
    }
        
}
 
int main()
{
    int x = 0;
    cout<<"Enter x: ";
    cin>>x;
    print_hex(x);
    return 0;
}
Миниатюры
Шестнадцатеричная система  
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.12.2012, 18:16     Шестнадцатеричная система #5
Цитата Сообщение от WhiteP Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void print_hex(int x_max)
{
* * int width = log(x_max * x_max)/log(16)+2;
for(int i=0;i<width+1;i++) 
* * * * cout<<" ";
* * for(int i = 1; i <= x_max; i++) 
* * * * cout<<setw(width)<<hex<<i;
* * cout<<endl;
* * for(int i = 1; i <= (x_max*width)+(width*2); i++)
* * * * cout<<'-';
* * cout<<endl;
for(int i = 1; i <= x_max; i++)
* * {
* * * * cout<<setw(width)<<i<<'|';
* * * * for(int j = 1; j <= x_max; j++)
* * * * * * cout<<setw(width)<<hex<<i*j;
* * * * cout<<endl;
* * }
}
С принтером эта функция не знакома.
Yandex
Объявления
05.12.2012, 18:16     Шестнадцатеричная система
Ответ Создать тему
Опции темы

Текущее время: 23:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru