1)var a:array[1..3,1..3] of integer; b:array[1..3,1..3] of integer; c:array[1..3,1..3] of integer; i,j:integer; begin; writeln('A array:'); for i:=1 to 3 do begin; writeln; for j:=1 to 3 do begin; a[i,j]:=random(-10,10); write(a[i,j]:4); end; end; writeln; writeln('B array:'); for i:=1 to 3 do begin; writeln; for j:=1 to 3 do begin; b[i,j]:=random(-10,10); write(b[i,j]:4); end; end; writeln; writeln('C array:'); for i:=1 to 3 do begin; writeln; for j:=1 to 3 do begin; c[i,j]:=b[i,j]-a[i,j]; write(c[i,j]:4); end; end; end. 2)var a:array of array of real; i,j,n,m:integer; max:real; begin; randomize; max:=-2147483648; readln(n); readln(m); setlength(a,n+1); for i:=1 to n do setlength(a[i],m+1); writeln('A array:'); for i:=1 to n do begin; writeln; for j:=1 to m do begin; a[i,j]:=random(-10,10); if max<a[i,j] then max:=a[i,j]; write(a[i,j]:4); end; end; for i:=1 to n do for j:=1 to m do if a[i,j]<0 then a[i,j]:=max; writeln; writeln('Final array:'); for i:=1 to n do begin; writeln; for j:=1 to m do write(a[i,j]:4); end; end.
Если х1,у1 - координаты одного конца 1-го отрезка, х2,у2 - координаты его второго конца, то уравнение прямой, на которой этот отрезок лежит, такое: у=у1+(у2-у1)(х-х1)/(х2-х1). Для второго отрезка (х3,у3) и (х4,у4), прямая у=у3+(у4-у3)(х-х3)/(х4-х3). Абсцисса точки пересечения (х,у) этих прямых находится из равенства
у1+(у2-у1)(х-х1)/(х2-х1)=у3+(у4-у3)(х-х3)/(х4-х3). Это х надо выразить в виде формулы до написания программы, чтобы х вычислялось в программе по этой формуле.
Схема программы: 1) проверка параллельности отрезков. Если "да", то выход и ответ "не существует". 2) проверка выполнения двух двойных неравенств: x1 <= x <= x2, x2 <= x <= x4. Если оба неравенства "истина", то ответ "существует", иначе "не существует"
Обратите внимание, что х1 должно быть меньше чем х2, и х3 меньше чем х4.
b:array[1..3,1..3] of integer;
c:array[1..3,1..3] of integer;
i,j:integer;
begin;
writeln('A array:');
for i:=1 to 3 do
begin;
writeln;
for j:=1 to 3 do
begin;
a[i,j]:=random(-10,10);
write(a[i,j]:4);
end;
end;
writeln;
writeln('B array:');
for i:=1 to 3 do
begin;
writeln;
for j:=1 to 3 do
begin;
b[i,j]:=random(-10,10);
write(b[i,j]:4);
end;
end;
writeln;
writeln('C array:');
for i:=1 to 3 do
begin;
writeln;
for j:=1 to 3 do
begin;
c[i,j]:=b[i,j]-a[i,j];
write(c[i,j]:4);
end;
end;
end.
2)var a:array of array of real;
i,j,n,m:integer;
max:real;
begin;
randomize;
max:=-2147483648;
readln(n);
readln(m);
setlength(a,n+1);
for i:=1 to n do
setlength(a[i],m+1);
writeln('A array:');
for i:=1 to n do
begin;
writeln;
for j:=1 to m do
begin;
a[i,j]:=random(-10,10);
if max<a[i,j] then max:=a[i,j];
write(a[i,j]:4);
end;
end;
for i:=1 to n do
for j:=1 to m do
if a[i,j]<0 then a[i,j]:=max;
writeln;
writeln('Final array:');
for i:=1 to n do
begin;
writeln;
for j:=1 to m do
write(a[i,j]:4);
end;
end.
Для второго отрезка (х3,у3) и (х4,у4), прямая у=у3+(у4-у3)(х-х3)/(х4-х3).
Абсцисса точки пересечения (х,у) этих прямых находится из равенства
у1+(у2-у1)(х-х1)/(х2-х1)=у3+(у4-у3)(х-х3)/(х4-х3). Это х надо выразить в виде формулы до написания программы, чтобы х вычислялось в программе по этой формуле.
Схема программы:
1) проверка параллельности отрезков. Если "да", то выход и ответ "не существует".
2) проверка выполнения двух двойных неравенств: x1 <= x <= x2, x2 <= x <= x4.
Если оба неравенства "истина", то ответ "существует", иначе "не существует"
Обратите внимание, что х1 должно быть меньше чем х2, и х3 меньше чем х4.