2. а) дан целочисленный массив из 20 элементов в диапазоне от 0 до 200. если сумма всех элементов
массива чётная, нужно вывести количество нечётных (по значению) элементов массива, если нечетная -
количество чётных. например, для массива из 6 элементов, равных соответственно 2, 6, 12, 17, 3, 8, ответом будет 2- количество нечётных элементов, так как общая сумма всех элементов чётна.
б) массив отсортировать.
написать на паскале
Мы получили три конъюнкции, соединенные дизъюнкциями. Функция будет истинной при условии истинности хотя бы одной из дизъюнкций. Выписываем соответствующие комбинации (звездочки означаю, что допускается любое значение бита).
х1 х2 х3 х4
0 1 0 0
* 0 1 *
1 * * 1
Заменяем строки со звездочками на набор строк со всем допустимыми комбинациями битов на месте звездочек.
х1 х2 х3 х4
0 1 0 0
0 0 1 0
0 0 1 1
1 0 1 0
1 0 1 1
1 0 0 1
1 0 1 1 - дубликат
1 1 0 1
1 1 1 1
И удаляем строки-дубликаты:
х1 х2 х3 х4
0 1 0 0
0 0 1 0
0 0 1 1
1 0 1 0
1 0 1 1
1 0 0 1
1 1 0 1
1 1 1 1
c:array [1..10] of integer;
i, even, positive, sumLessSix: integer;
begin
randomize;
writeln ('Рандомный массив');
for i:=1 to 10 do begin
c[i]:= random(20)-10;
write (c[i],' ');
end; {for}
writeln;
writeln('Произведение четных чисел');
even:=1;
for i:=1 to 10 do
if c[i] mod 2 = 0 then
even:= even*c[i];
write(even,' ');
writeln;
writeln('Произведение положительных чисел');
positive:=1;
for i:=1 to 10 do
if c[i] > 0 then
positive:= positive*c[i];
write(positive,' ');
writeln;
writeln('Сумма элементов меньших 6');
positive:=1;
for i:=1 to 10 do
if c[i] < 6 then
sumLessSix:= sumLessSix+c[i];
write(sumLessSix,' ');
end.