Пример на Паскале. Пусть массив размером 100 элементов
Program Maasiv;
var A:array[1..100] of real; i,s:integer; k :real;
begin
random;
For i:=1 to 100 do A[i]:=randomize(100)-50; {заполняем массив случайными числами от -50 до 50}
s:=0; for i:=1 to 100 do if A[i]<i then S:=S+A[i]; writeln(s);{задание а}
s:=0; for i:=1 to 100 do if i/2=int(i/2) then S:=S+A[i]; writeln(s);{задание б}
s:=0; for i:=1 to 100 do if A[i]<0 then S:=S+A[i]; writeln(s);{задание в}
readln(k);s:=0; for i:=1 to 100 do if A[i]>k then S:=S+A[i]; writeln(s);{задание г}
end.
Задача 1
Program Zadanie1;
var i,N:integer;
A:array[1..4]of integer;
Begin
readln(n);
A[1]:=round(int(N/1000));
A[2]:=round(int(N/100))-A[1];
A[3]:=round(int(N/10))-A[1]-A[2];
A[4]:=N-A[1]-A[2]-A[3];
if (A[1]:=A[4]) and (A[2]:=A[3]) and (A[3]:=A[2]) and (A[4]=A[1]) then writeln('полином');
end;
Задача 2
Program Zadanie2;
var i,N:integer;
A:array[1..3]of integer;
function Kub(a):integer;begin Kub:=a*a*a;end;
Begin
readln(n);
A[1]:=round(int(N/1000));
A[2]:=round(int(N/100))-A[1];
A[3]:=N-A[1]-A[2]-A[3];
if N*N=kub(A[1])+kub(A[2])+kub(A[3]) then writeln('равенство');
end;
Мы получили три конъюнкции, соединенные дизъюнкциями. Функция будет истинной при условии истинности хотя бы одной из дизъюнкций. Выписываем соответствующие комбинации (звездочки означаю, что допускается любое значение бита).
х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