Задание 1.
1.1. Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления; X2 X8,
X2 X16 без математических вычислений.
а) 164(10).
164 2
0 82 2
0 41 2
1 20 2
0 10 2
0 5 2
1 2 2
0 1 2
1 0
10 100 100(2) в восьмеричной: 010(2) = 2(8); 100(2) = 4(8); 100(2) = 4(8); = 244(8).
10 100 100(2) в шестнадцатеричной: 1010(2) = А(16); 0100(2) = 4(16); = А4(16).
Ответ: 164(10) = 10 100 100(2) = 526(8) = 156(16).
б) 712,25(10).
1 011 001 000(2) в восьмеричной: 001(2) = 1(8); 011(2) = 3(8); 001(2) = 1(8); 000(2) = 0(8); = 1310(8).
1 011 001 000(2) в шестнадцатеричной: 0010(2) = 2(16); 1100(2) = С(16); 1000 = 8(16); = 2С8. R = 712,25 – 712 = 0,25
R = 0,25 * 2 = 0,5 < 0 = 0(2)
012 в восьмеричной: 010(2) = 2(8); = 2(8). R = 0,5 * 2 = 1 ≥ 1 = 1(2)
012 в шестнадцатеричной: 0100(2) = 4(16); = 4(16). R = 1 – 1 = 0
Расчёт завершён.
712 2
0 356 2
0 178 2
0 89 2
1 44 2
0 22 2
0 11 2
1 5 2
1 2 2
0 1 2
1 0
Ответ: 712,25(10) = 1 011 001 000,01(2) = 1310,2(8) = 2С8,4(16).
в) 11,89(10).
Примечание. В задании необходимо получить пять знаков после запятой в двоичном формате.
11 2 1 011(2) в восьмеричной: 001(2) = 1(8); 011(2) = 3(8); = 13(8).
1 5 2 1 011(2) в шестнадцатеричной: 1011(2) = В(16); = В(16).
1 2 2 R = 11,89 – 11 = 0,89
0 1 2 R = 0,89 * 2 = 1,78 ≥ 1 = 1(2)
1 0 R = R – 1 = 1,78 – 1 = 0,78
R = 0,78 * 2 = 1,56 ≥ 1 = 1(2)
R = R – 1 = 1,56 – 1 = 0,56
R = 0,56 * 2 = 1,12 ≥ 1 = 1(2)
R = R – 1 = 1,12 – 1 = 0,12
R = 0,12 * 2 = 0,24 < 1 = 0(2)
R = 0,24 * 2 = 0,48 < 1 = 0(2)
Пять знаков получено.
111 00(2) в восьмеричной: 111(2) = 7(8); 000(2) = 0(8); = 7(8).
111 00(2) в шестнадцатеричной: 1110(2) = Е(16); 0000(2) = 0(16); = Е(16).
Ответ: 11,89(10) = 1 011,111 00(2) = 141,7(8) = 61,Е(16).
1.2. Перевести данное число в десятичную систему счисления.
а) 1001111(2).
6 5 4 3 2 1 0
1 0 0 1 1 1 1 = 26 + 23 + 22 + 21 + 20 = 64 + 8 + 4 + 2 + 1 = 79(10).
Ответ: 79(10).
б) 1100111,01(2).
6 5 4 3 2 1 0, -1 -2
1 1 0 0 1 1 1, 0 1 = 26 + 25 + 22 + 21 + 20, 2-2 = 64 + 32 + 4 + 2 + 1, 0,25 = 103,25(10).
Ответ: 103,25(10).
в) 413,41(8).
2 1 0 -1 -2
4 1 3, 4 1 = 4 * 82 + 81 + 3 * 80, 4 * 6-1 + 6-2 = 256 + 8 + 3, 0,5 + 0,0625 = 267,5625(10).
Ответ: 267,5625(10).
г) 118,8С(16).
2 1 0, -1 -2
1 1 8, 8 С = 162 + 161 + 8 * 160, 8 * 16-1 + С * 16-2 = 256 + 16 + 8, 0,5 + 0,046875 = 280, 546875(10).
Ответ: 280, 546875(10).
1.3. Сложить числа.
а) 1100001100(2) + 1100011001(2).
1 1 1
1 1 0 0 0 0 1 1 0 0
1 1 0 0 0 1 1 0 0 1
1 1 0 0 0 1 0 0 1 0 1.
Ответ: 11000111001(2).
б) 111111111,001(2) + 1111111110,0101(2).
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1, 0 0 1 0
1 1 1 1 1 1 1 1 1 0, 0 1 0 1
1 0 1 1 1 1 1 1 1 0 1, 0 1 1 1.
Ответ: 10111111101,0111(2).
1.4. Выполнить вычитание.
а) 1001101100(2) – 1000010111(2).
1 1 1
1 0 0 1 1 0 1 1 0 0
1 0 0 0 0 1 0 1 1 1
1 0 1 0 1 0 1.
Ответ: 1010101(2).
б) 1101100110(2) – 111000010(2).
1 1
1 1 0 1 1 0 0 1 1 0
0 1 1 1 0 0 0 0 1 0
1 1 0 1 0 0 1 0 0.
Ответ: 110100100(2).
1.5. Выполнить умножение.
10001(2) 1010(2).
1 0 0 0 1
1 0 1 0
1 0 0 0 1
1 0 0 0 1
1 0 1 0 1 0 1 0.
Задание 2.
Среди 88 работников предприятия определить фамилии и наиболее высоким и наименее низким уровнем среднемесячного дохода. Для работников в возрасте от 30 до 55 лет – распечатать на экране их фамилии, порядковые номера, средний заработок и стаж работы по специальности.
Введём обозначения: F(88) - массив фамилий работников; V(88) – массив возраста работников; SZ(88) – массив среднемесячного заработка; SR(88) – массив стажа работы по специальности; K – количество работников от 30 до 55 лет; SZN – минимальный среднемесячный заработок; SZM – максимальный среднемесячный заработок.
DIM F(88), V(88), SZ(88), SR(88)
? “Введём данные массивов”
FOR I = 1 TO 88
INPUT F(88), V(88), SZ(88), SR(88)
NEXT I
SZN = SZ(1)
FOR I = 1 TO 88
IF SZ(I) < SZN THEN GOTO 1 ELSE 2
1 ? “Фамилия работника:”; F
2 NEXT I
SZM = SZ(1)
FOR I = 1 TO 88
IF SZ(I) > SZM THEN GOTO 3 ELSE 4
3 ? “Фамилия работника:”; F
4 NEXT I
FOR I = 1 TO 88
IF V(I) > 29 OR V(I) < 56 THEN GOTO 5 ELSE 6
5 PRINT TAB F(I), I, SZ(I), SR(I)
6 NEXT I
Задание 3.
Расчёт процентного отношения затрат на один гектар в 2002 году к затратам на один гектар в 2003.
Наименование культуры |
Затраты на 1 га, руб. |
Урожайность, ц/га |
В % к 2002 году |
|||||
2002 |
2003 |
2002 |
2003 |
Затраты на 1 га |
Урожай-ность, ц/га |
|||
план. |
факт. |
план. |
факт. |
|||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Гр.8 = гр.4 / гр.2 * 100% (1); гр.9 = гр.7 / гр.5 * 100% (2).
На основании выше приведённой таблицы:
составить программу для обработки текстового массива, предусмотрев:
а) количество зерновых культур равное N;
б) составление блок-схемы алгоритма;
в) ввод данных с клавиатуры;
г) выводы результатов расчётов в виде таблицы;
д) вывод на экран.
При составлении программы для обработки текстового массива использовать формулы (1) – (2).
Введём обозначения: N – количество наименований культур; K$(N) – массив наименования культур; Z2(N) – массив затрат в 2002 году; ZF3(N) – массив фактических затрат в 2003 году; ZP3(N) – массив плановых затрат в 2003 году; U2(N) – массив урожайности в 2002 году; UF3(N) – массив фактической урожайности в 2003 году; UP3(N) – массив плановой урожайности в 2003 году; Z(N) – массив затрат на один гектар в 2003 в процентах к 2002; U(N) – массив урожайности центнеров на один гектар в 2003 в процентах к 2002.
INPUT “Сколько наименований культур?”; N
DIM K$(N), Z2(N), ZF3(N), ZP3(N), U2(N), UF3(N), UP3(N)
? “Введём данные массивов”
FOR I = 1 TO N
INPUT K$(N), Z2(N), ZF3(N), ZP3(N), U2(N), UF3(N), UP3(N)
NEXT I
PRINT STRING(4 * N, “-“)
FOR I = 1 TO N
Z(I) = ZF3(I) / Z2(I) * 100
U(I) = UF3(I) / U2(I) * 100
PRINT TAB(1); (K$(I)); (Z2(I)); (ZF3(I)); (ZP3(I)); (U2(I)); (UF3(I)); (UP3(I)); (Z(I)); (U(I))
PRINT STRING((4 * N, “-“)
NEXT I
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.