Дано два числа: а = 247(8), b = a9(16 какое из чисел c, записанных в двоичной системе, отвечает условию a < c < b a. 101011002 b.101010102 c.101010112 d.101010002
247(8) = 010 100 111 A9(16) = 1010 1001 10100111 < 10101000 < 10101001 ответ: d Смысл задачи был в том, что каждая цифра в системе с основанием 2^k кодируется k цифрами в двоичной (т.е. 3 в восьмеричной и 4 в шестнадцатеричной), что делает перевод значительно проще.
Const n=8; var aNam, aFam, aDat: array[1..n] of string; i: integer;
begin aNam[1]:='Олег'; aFam[1]:='Бубенков'; aDat[1]:='1993'; aNam[2]:='Игорь'; aFam[2]:='Бросов'; aDat[2]:='1991'; aNam[3]:='Тимур'; aFam[3]:='Наружный'; aDat[3]:='1961'; aNam[4]:='Анастасия'; aFam[4]:='Боброва'; aDat[4]:='1985'; aNam[5]:='Михаил'; aFam[5]:='Тапаров'; aDat[5]:='1957'; aNam[6]:='Евгений'; aFam[6]:='Костарева'; aDat[6]:='1992'; aNam[7]:='Мария'; aFam[7]:='Никитин'; aDat[7]:='1977'; aNam[8]:='Ксения'; aFam[8]:='Бабенкова'; aDat[8]:='1978'; writeln('Лица, чьи фамилии начинаются на букву "Б"'); for i := 1 to n do if aFam[i][1] = 'Б' then writeln(aNam[i],' ',aFam[i], ' (', aDat[i], ')') end.
тестовый прогон:
Лица, чьи фамилии начинаются на букву "Б" Олег Бубенков (1993) Игорь Бросов (1991) Анастасия Боброва (1985) Ксения Бабенкова (1978)
Возможна также более "современная" запись программы
const n = 8;
type tP = record Nam: string; Fam: string; Dat: string end;
var M: array[1..n] of tP; i: integer;
begin with M[1] do begin Nam := 'Олег'; Fam := 'Бубенков'; Dat := '1993' end; with M[2] do begin Nam := 'Игорь'; Fam := 'Бросов'; Dat := '1991' end; with M[3] do begin Nam := 'Тимур'; Fam := 'Наружный'; Dat := '1961' end; with M[4] do begin Nam := 'Анастасия'; Fam := 'Боброва'; Dat := '1985' end; with M[5] do begin Nam := 'Михаил'; Fam := 'Тапаров'; Dat := '1957' end; with M[6] do begin Nam := 'Евгений'; Fam := 'Костарева'; Dat := '1992' end; with M[7] do begin Nam := 'Мария'; Fam := 'Никитин'; Dat := '1977' end; with M[8] do begin Nam := 'Ксения'; Fam := 'Бабенкова'; Dat := '1978' end; writeln('Лица, чьи фамилии начинаются на букву "Б"'); for i := 1 to n do With M[i] do begin if Fam[1] = 'Б' then writeln(Nam, ' ', Fam, ' (', Dat, ')') end end.
kulibabad566
30.09.2022
Если говорить о точном дополнении для двоичного числа, то оно получается путём: 1. Представить данное число в двоичном виде. 2. Инвертировать каждый разряд. (0 станет 1, а если был 1, то станет 0). 3. Прибавить к полученному числу 1.
Точное дополнение числа в сумме с самим числом даёт 0.
Найдём точное дополнение к числу 98. 1) 0110 0010 2) 1001 1101 3) 1001 1110 Число 1001 1110 - есть дополнение числа 98. Представлено в однобайтовом виде. (задействовано 8 бит). Старший знаковый бит "1". Число соответствует отрицательному числу -98. Да, действительно, дополнение к положительному числу 98 есть отрицательное число -98).
Найдём точное дополнение к числу -48 1) Представим в двоичном виде. 1101 0000 2) Инвертируем поразрядно 0010 1111 3) Прибавим 1 0011 0000.
Число 0011 0000 есть дополнение числа -48. Старший знаковый бит "0". Число соответствует положительному числу 48. Да, действительно, дополнение к отрицательному числу -48 есть положительное число 48).
A9(16) = 1010 1001
10100111 < 10101000 < 10101001
ответ: d
Смысл задачи был в том, что каждая цифра в системе с основанием 2^k кодируется k цифрами в двоичной (т.е. 3 в восьмеричной и 4 в шестнадцатеричной), что делает перевод значительно проще.