Создайте блок-схему к программе
program lab_2-1;
uses crt;
label m1,m2;
var
n : integer;
x,y : real;
p: byte;
begin
clrscr;
riteln(‘программа вычисления функции…’);
writeln(‘++’);
writeln(‘| 1. ввод данных |’);
writeln(‘| 2. вычисление функции и вывод результатов |’);
writeln(‘| 3. завершение работы программы |’);
writeln(‘++’);
p: =0;
m1: riteln(‘введите пункт меню’);
readln(n); { ввод номера пункта меню}
case n of
1: begin { ввод данных }
m2: write(‘введите значение аргумента x=’);
readln(x)
if x=0 then begin
riteln(‘x не может быть равным 0 по условию’) ;
goto m2; end;
p: =1;
end;
2:
begin
if p< > 0 then
writeln (‘данные не введены, выполните пункт n1’);
else
begin
if x> 0 then y: =1/x else y: =x*x;
writeln(‘при х=’, x: 7: 2, ‘ y=’, y: 7: 2)
end;
end;
3: exit
end;
goto m1;
end.
Пояснение:
Существует 16 двоичных слов длины 4
Т.к. среди них есть слова, содержащие 1 или 3 единицы, то в нашем коде нужно использовать кодовые слова с длиной больше, чем 4
Слов длины 5 достаточно
Искомые кодовые слова можно получать, например, добавляя к каждому из 16 возможных двоичных слов справа "бит четности", равный 0, если 4-значное двоичное слово содержит четное количество единиц, и равный 1 в противном случае
Например, двоичное слово 0000 преобразуется в 00000, а двоичное слово 1011 – в 10111
3 не подходит: даже без ограничений на количество единиц число строчек 2^3 = 8, что меньше 16.
4 тоже не подходит: без ограничений на количество единиц число строчек 2^4 = 16, но как минимум одна не подходит (например, 0001 - не удовлетворяет требованиям). Хороших строчек остается не больше 15, что меньше 16. (На самом деле, хороших строчек длины 4 всего 8).
Пробуем 5. Если придумаем как закодировать 16 символов - победа. А закодировать можно вот как: первые 4 символа - двоичная запись номера символа (нумеруем начиная с нуля, например 5-й символ - 0101), а последний символ - 0, если число единиц среди первых четырёх символов чётно и 1 - если нечётно. Тогда в любом случае получится чётное количество единиц.
ответ. 5 (вариант 3).