| uses crt;const max=19;
 var m:array[1..max,1..3] of integer;
 n,i,j,k,p:integer;
 begin
 clrscr;
 repeat
 write('Количество точек от 3 до ',max,' n=');
 readln(n);
 until n in [3..max];
 writeln('Введите коэффициенты уравнений прямых a,b,c');
 writeln('a,b одновременно не равны 0');
 for i:=1 to n do
 begin
 writeln('Прямая ',i);
 repeat
 readln(m[i,1],m[i,2],m[i,3]);
 until(m[i,1]<>0)or(m[i,2]<>0);
 end;
 clrscr;
 writeln('Коэффициенты уравнений:');
 for i:=1 to 3 do
 begin
 write(chr(i+64));
 for j:=1 to n do
 write(m[j,1]:4);
 writeln;
 end;
 writeln;
 k:=0;
 for i:=1 to n-2 do
 for j:=i+1 to n-1 do
 for p:=j+1 to n do
 {если прямые не параллельны}
 if (m[i,1]*m[j,2]-m[j,1]*m[i,2]<>0)and(m[i,1]*m[p,2]-m[p,1]*m[i,2]<>0)
 {вычисляем точку пересечения}
 and((m[i,2]*m[j,3]-m[j,2]*m[i,3])/(m[i,1]*m[j,2]-m[j,1]*m[i,2])=
 (m[i,2]*m[p,3]-m[p,2]*m[i,3])/(m[i,1]*m[p,2]-m[p,1]*m[i,2]))
 then
 begin
 k:=1;
 writeln('Прямые ',i,' (',m[i,1],',',m[i,2],',',m[i,3],') ',
 j,' (',m[j,1],',',m[j,2],',',m[j,3],') ',
 p,' (',m[p,1],',',m[p,2],',',m[p,3],');');
 end;
 if k=0 then write('Таких прямых нет!');
 readln
 end.
 
 
 и решение второй задачи
 надеюсь тут особых ошибок нет
 проверьте пожалуйста
 
 |