1.
var
a: integer;
begin
readln(a);
if ((a mod 10) mod 2 = 0) and ((a mod 100) mod 2 = 0) then writeln('да')
else writeln('нет');
end.
2.
var
a, max: integer;
begin
readln(a);
max : = -1;
while a < > 0 do
begin
if ((a mod 10) mod 2 = 0) and ((a mod 10) mod 2 > max) then max : = (a mod 10) mod 2;
a : = a div 10;
end;
if max < > -1 then writeln(max)
else writeln('');
end.
3.
var
mas: array[0..19] of integer;
sum, i: integer;
begin
randomize;
sum : = 0;
for i : = 0 to 19 do
begin
mas[i] : = -45 + random(1 + 45 + 55);
if (mas[i] mod 2 = 0) and (mas[i] > 0) then sum += mas[i];
end;
writeln(sum);
end.
1) полная таблица истинности каждого выражения с пятью переменными содержит 2^5 = 32 строки;
2) в каждой таблице содержится по 4 единицы и по 28 нулей, ( то есть 32-4);
3) выражение a v - b равно нулю тогда, когда a = 0 или b = 1;
4) min количество единиц в таблице истинности выражения a v - b будет тогда, когда там будет наибольшее число нулей, то есть в max количество строк одновременно a = 0 и b = 1;
5) по условию a = 0 в 28 строках, и b = 1 в 4 строках, поэтому выражение a v - b может быть равно нулю не более чем в 4 строках, а оставшиеся 32 – 4 = 28 могут быть равны 1.
ответ: 28.
Напрмер алгоритм для робота. Задача забить гвоздь.
1.выяснить куда забивать гвоздь
1.1 Выяснить на какую глубину.
2.Поставить метку где будет забит гвоздь
3.Выбрать гвоздь.
4.Выбрать молоток. (тут можно добавить оптимизацию, например выбирать только определенный молоток под определенный гвоздь)
5.Приставить острие гвоздя к месту куда будет забиваться гвоздь.
6.Зафиксировать гвоздь в этом положении
7.Ударить молотком по шляпке гвоздя
8.Повторять п.7 до тех пор пока гвоздь не будет забит до нужного состояния согласно п1.1.
9.Убрать молоток туда откуда был взят
Конец