С! на языке free pascal ide или abc pascal площадь. по данным натуральным числам a,b,m,k найти (с округлением с избытком до целого числа) площадь пересечения полуплоскоси (a*x+b*y< =a*b) и прямоугольника (0 < = x < =m, 0< =y< =k). пример: a=5, b=5,m=5,k=3 > 11. ввод: на
единственный строке - натуральные числа a,b,m,k (меньшие 100), разделенные единичными пробелами. вывод: одно натуральное число.
var
i,k,min,max:integer;
x,y:array[1..n]of integer;
z:array[1..2*n]of integer;
function four(n:integer):string;
var s:string;
begin
repeat
s:=s+IntToStr(n mod 4);
n:=n div 4;
until n=0;
result:=ReverseString(s);
end;
begin
for i:=1 to n do
begin
x[i]:=random(-10,10);
y[i]:=random(-10,10);
if (x[i] mod 2=0) and (x[i]>0) then
begin
k:=k+1;
z[k]:=x[i];
if k=1 then
begin
min:=z[1];
max:=z[1];
end;
if z[k]>max then max:=z[k];
if z[k]<min then min:=z[k];
end;
if (y[i] mod 2=0) and (y[i]>0) then
begin
k:=k+1;
z[k]:=y[i];
if k=1 then
begin
min:=z[1];
max:=z[1];
end;
if z[k]>max then max:=z[k];
if z[k]<min then min:=z[k];
end;
end;
write('Массив X:');
for i:=1 to n do write(x[i]:4);
writeln;
write('Массив Y:');
for i:=1 to n do write(y[i]:4);
writeln;
write('Массив Z:');
for i:=1 to k do write(z[i]:4);
writeln;
write('Измененный массив Z:');
for i:=1 to k do
begin
if z[i]=min then z[i]:=max
else
if z[i]=max then z[i]:=min;
write(z[i]:4);
end;
writeln;
write('Массив Z по основанию 4:');
for i:=1 to k do write(four(z[i]):4);
end.
+ - - - - + + +
26 26 24 26 18 26 6 10
99899 79899 19899 22244
4 плюсика.
Из приведённых чисел могут получиться в результате работы автомата 4 числа.
Это 2626, 2426, 1826, 610.
В числах 2618, 2624 последовательности убывающие (26-18, 26-24).
В числах 2628, 2826 есть число 28, которое не может быть получено суммой трёх десятичных цифр, (максимум 9+9+9=27).