На числовой прямой даны два отрезка: P = [10, 20] и Q = [12, 15]. Выберите такой отрезок A, что формула ( (x "не принадлежит" А) → (x "не принадлежит" P) ) \/ (x "принадлежит" Q) тождественно истинна, то есть принимает значение 1 при любом значении переменной х.
1) [10, 15] 2) [20, 35] 3) [5, 20] 4)[12, 40]
var i,k,mn,indm,sm: integer;
a: array[1..n] of integer;
sar: real;
begin
randomize;
writeln('исходный массив:');
mn:=n; sm:=0;
k:=1;
for i:=1 to n do
begin
a[i]:=random(-n,n);
sm:=sm+a[i];
write(a[i],' ');
if a[i]=mn then k:=k+1;
if a[i]<mn then
begin
mn:=a[i];
indm:=i;
k:=1;
end;
end;
writeln;
writeln('минимальный элемент: ',mn,' индекс: ',indm);
sm:=sm-a[indm]*k;
writeln('сумма элементов без минимального: ',sm);
sar:=sm/(n-k);
writeln('среднее арифметическое: ',sar:7:3);
end.
исходный массив:
-1 6 -12 -14 14 -14 10 -9 -2 -6 9 -1 -13 13 -2
минимальный элемент: -14 индекс: 4
сумма элементов без минимального: 6
среднее арифметическое: 0.462
// Внимание! Если программа не работает, обновите версию!
begin
var n:=4;
var xp:=new real[n];
var yp:=new real[n];
Writeln('Введите парами координаты четырех вершин');
for var i:=0 to n-1 do Read(xp[i],yp[i]);
var (x,y):=ReadReal2('Введите координаты точки:');
var (i,j,c):=(0,n-1,False);
while i<n do begin
if ((yp[i]<=y) and (y<yp[j]) or (yp[j]<=y) and (y<yp [i]))
and (x<(xp[j]-xp[i])*(y-yp[i])/(yp[j]-yp[i])+xp[i]) then c:=not c;
j:=i;
i+=1;
end;
if c then Writeln('Внутри')
else Writeln('Не внутри')
end.
Примеры
Введите парами координаты четырех вершин
1 4 6 9 9 6 4 1
Введите координаты точки: 1.5 1.6
Не внутри
Введите парами координаты четырех вершин
1 4 6 9 9 6 4 1
Введите координаты точки: 4 7
Внутри