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.
и решение второй задачи надеюсь тут особых ошибок нет проверьте пожалуйста
|