|
1 | 1 | /* |
2 | | -* „®¬ 襥 § ¤ ¨¥ ª ãபã 1 |
3 | | -* ªãàá "Žá®¢ë ï§ëª ‘++" |
4 | | -* ¢â®à ¥¤®ªã¥¢ €.‚. |
5 | | -* á। à §à ¡®âª¨ Notepad++ /ª®¬¯¨«ïâ®à MinGW/ |
6 | | -* codepage OEM866 |
| 2 | +* Домашнее задание к уроку 2 |
| 3 | +* курса "Основы языка С++" |
| 4 | +* автор Недокунев А.В. |
| 5 | +* среда разработки Notepad++ /компилятор MinGW/ |
| 6 | +* codepage UTF-8 |
7 | 7 | */ |
8 | 8 | #include <iostream> |
9 | 9 |
|
10 | 10 | int main() |
11 | 11 | { |
12 | | - std::cout << "Hello world!" << std::endl; |
| 12 | +//Задание 1 |
| 13 | +//объявляем и сразу инициализируем |
| 14 | + int type_int = 2147483647; //4 байта -2 147 483 648 / 2 147 483 647 |
| 15 | + unsigned int type_uint = 4294967295; //4 байта |
| 16 | + short type_short = 32767; //2 байта -32 768 / 32 767 |
| 17 | + unsigned short type_ushort = 65535; //2 байта |
| 18 | + long type_long = 2147483647; //4 байта |
| 19 | + unsigned long type_ulong = 4294967295; //4 байта |
| 20 | + char type_char = 'a'; //1 байт |
| 21 | + float type_float = 2147483647.0; //4 байта |
| 22 | + double type_double = 9223372036854775807.0; //8 байт |
| 23 | + |
| 24 | +//объявляем тип данных enum, заодно и Задание 2 выполним |
| 25 | + enum SYMBOL{PLAYER_1_WIN = 'X', PLAYER_2_WIN = 'O', SPACE = ' ', PLAYER_1 = 'x', PLAYER_2 = 'o', HORIZ = '-', VERT = '|', CROSS = '+'};//объявляем тип данных enum |
| 26 | +//хотя enum вообще-то int, для удобочитаемости пишем символы, а не их коды ASCII |
| 27 | + enum SYMBOL p1 = PLAYER_1;//объявляем переменную и сразу инициализируем |
| 28 | + enum SYMBOL p2 = PLAYER_2; |
| 29 | + enum SYMBOL s = SPACE; |
| 30 | + enum SYMBOL p1w = PLAYER_1_WIN; |
| 31 | + enum SYMBOL p2w = PLAYER_2_WIN; |
| 32 | + enum SYMBOL h = HORIZ; |
| 33 | + enum SYMBOL v = VERT; |
| 34 | + enum SYMBOL x = CROSS; |
| 35 | + |
| 36 | +//объявляем тип данных struct, заодно и Задание 4* выполним |
| 37 | + static const int size_x = 3, size_y = 3; |
| 38 | + struct sGame_field { |
| 39 | + const int in_line = 3;//количество полей для выигрыша |
| 40 | + struct sCell {//структура для клетки поля |
| 41 | + int x_coord, y_coord;//координаты клетки поля |
| 42 | + int mode;//состояние клетки поля, где 0 - пусто, 1 - занято игроком 1, 2 - занято игроком 2 |
| 43 | + } cell_arr[size_x][size_y]; |
| 44 | + } MyField; |
| 45 | + for (int a = 0; a < size_x; a++) {//инициализируем игровое поле |
| 46 | + for (int b = 0; b < size_y; b++) { |
| 47 | + MyField.cell_arr[a][b].x_coord = a; |
| 48 | + MyField.cell_arr[a][b].y_coord = b; |
| 49 | + MyField.cell_arr[a][b].x_coord = 0; |
| 50 | + }; |
| 51 | + }; |
| 52 | + |
| 53 | +//объявляем тип данных union |
| 54 | + union type_union { |
| 55 | + int i; |
| 56 | + char c; |
| 57 | + float f; |
| 58 | + }; |
| 59 | + union type_union U_1;//объявляем переменную |
| 60 | + U_1.f = 2147483647.0;//инициализируем |
| 61 | + |
| 62 | +//Задание 3 |
| 63 | + char field[5][5];//создаем массив |
| 64 | + for (int k = 0; k < 5; k++){//инициализируем массив пустым полем для игры крестики-нолики |
| 65 | + for (int m = 0; m < 5; m++){ |
| 66 | + if ((m % 2 == 0) && (k % 2 == 0)){ |
| 67 | + field[k][m] = s; |
| 68 | + } else if ((m % 2 != 0) && (k % 2 != 0)) { |
| 69 | + field[k][m] = x; |
| 70 | + } else if (m % 2 != 0) { |
| 71 | + field[k][m] = v; |
| 72 | + } else if (k % 2 != 0) { |
| 73 | + field[k][m] = h; |
| 74 | + } |
| 75 | + printf("%c", field[k][m]);//просто, чтобы проверить себя |
| 76 | + } |
| 77 | + printf("\n");//наверное, можно было добавить перевод строки в каждый последний элемент строки (тогда размерность станет [5][6] |
| 78 | + } |
| 79 | + |
| 80 | +//Задание 5* |
| 81 | + struct s_byte {//объявляем тип данных struct, |
| 82 | + union type_union {//объявляем тип данных union |
| 83 | + int i; |
| 84 | + char c; |
| 85 | + float f; |
| 86 | + }; |
| 87 | + int is_int : 1; |
| 88 | + int is_char : 1; |
| 89 | + int is_float : 1; |
| 90 | + }; |
| 91 | + |
| 92 | + |
| 93 | +/* |
| 94 | + printf("sizeof int %d, %d\n", sizeof(int), type_int); |
| 95 | + printf("sizeof uint %d, %u\n", sizeof(unsigned int), type_uint); |
| 96 | + printf("sizeof short %d, %hd\n", sizeof(short), type_short); |
| 97 | + printf("sizeof short %d, %hu\n", sizeof(unsigned short), type_ushort); |
| 98 | + printf("sizeof long %d, %ld\n", sizeof(long), type_long); |
| 99 | + printf("sizeof long %d, %lu\n", sizeof(unsigned long), type_ulong); |
| 100 | + printf("sizeof char %d, %c\n", sizeof(char), type_char); |
| 101 | + printf("sizeof float %d, %f\n", sizeof(float), type_float); |
| 102 | + printf("sizeof double %d, %f\n", sizeof(double), type_double); |
| 103 | +*/ |
13 | 104 | return 0; |
14 | 105 | } |
0 commit comments