' dk- возможный радиус окружности!'
Иначе
Вывод 'dk-не образует радиус.. 'Если (dj=dl) или (dj=dk) тогда
Вывод' dj- возможный радиус окружности!’
ИначеВывод
' dj-не образует радиус’если (dk<dj) и (dk=dl) то
Вывод
' dk- Наименьший радиус окружности!'
Если (dk<dl) и (dk=dj) то
Вывод
' dl- Наименьший радиус окружности!'
Если (dk=dj) и (dl=dk) тогда
Вывод
' dk и dj и dl- Наименьший радиус окружности!'Листинг программы:
Program alex;
uses crt;
Type Point = Record
x,y : real;
End;
pnt = Array [1..20] Of Point;
var
q, nstr,cstr:string;
c:char;
D:pnt;
l,n,i,k,j,code:integer;
di,dj,dk,dl,Dmin:real;
begin
clrscr;
writeln(' Донецкий государственный институт искусственного интеллекта');
writeln;
writeln;
gotoxy(40,6);
write('Кафедра програмного обеспечения');
gotoxy(40,7);
writeln(' интеллектуальных систем');
gotoxy(19,10);
writeln(' Лабораторная работа #2');
writeln(' по курсу:"Алгоритмизация вычислительных процессов"');
writeln(' тема:"Разработка алгоритмов и программы"');
gotoxy(60,20);
write('Выполнил:');
gotoxy(60,21);
write(‘');
gotoxy(60,22);
write();
writeln;
writeln;
writeln;
write('Нажмите любую клавишу');
readkey;
clrscr;
writeln(' Задание: Задано множество точек. Найти параметры окружности');
writeln('минимального радиуса проходящей через три точки множества.');
gotoxy(1,25);
write('Нажмите любую клавишу...');
readkey;
clrscr;
repeat
Writeln('Введите количество точек');
readln(nstr);
writeln;
val(nstr,n,code);
if (code<>0) then
begin
clrscr;
writeln('Это не число! Попробуйте еще раз.');
n:=5;
end;
if not( n in[3..20]) then
begin
clrscr;
code:=1;
writeln('Число не находится в заданном диапазоне! Попробуйте еще раз')
end;
until (code=0);
clrscr;
for i:=1 to n do
begin
repeat
write('Введите координату Х ',i,'-ой точки: ');
readln(cstr);
val(cstr,D[i].x,code);
if (code<>0) then
begin
writeln('Это не число! Попробуйте еще раз.');
continue
end;
clrscr;
if ((D[i].x>100) or (D[i].x<-100)) then
begin
clrscr;
writeln('Диапазон координат точек от -100 до 100!');
code:=1;
continue
end;
until (code=0);
repeat
write('Введите координату Y ',i,'-ой точки: ');
readln readln val(cstr,D[i].y,code);
if (code<>0) then
begin
clrscr;
writeln('Это не число! Попробуйте еще раз.');
code:=1;
continue
end;
clrscr;
if ((D[i].y>100) or (D[i].y<-100)) then
begin
clrscr;
writeln('Диапазон координат точек от -100 до 100!');
code:=1;
continue
end;
until (code=0);
end;
for i:=1 to n do
begin
writeln('D[',i,'].x=',D[i].x);
writeln('D[',i,'].y=',D[i].y);
end;
for i:= 1 to (n-3) do
for k:= i+1 to (n-2) do
for l:= k+1 to (n-1) do
for j:= l+1 to n do
begin
begin
begin
begin
dk:=Sqrt(Sqr(D[i].x-D[k].x)+Sqr(D[i].y-D[k].y));
dl:=Sqrt(Sqr(D[i].x-D[l].x)+Sqr(D[i].y-D[l].y));
dj:=Sqrt(Sqr(D[i].x-D[j].x)+Sqr(D[i].y-D[j].y));
Dmin:=dk;
begin
if (dk=dl) or (dj=dl) then
writeln ('',dl:7:2,' dl-возможный радиус окружноости')
else
writeln ('dl-не образует радиус');
if (dk=dj) or (dk=dl) then
writeln ('',dk:7:2,' dk-возможный радиус окружности')
else
writeln ('dk-не образует радиус');
if (dj=dl) or (dj=dk) then
writeln ('',dj:7:2,' dj-возможный радиус окружности')
else
writeln ('dj-не образует радиус');
if (dk=dl) or (dk=dj) then
writeln ('Точка ',i,' является центром окружности')
else
writeln ('Точка ',i,' не является центром окружности!');
end;
begin
if (dk<dj) and (dk=dl) then
writeln ('dk i dl-наименьший радиус окружности') ;
if (dk<dl) and (dk=dj) then
writeln ('dk i dj-наименьший радиус окружности');
if (dk=dj) and (dk=dl) then
writeln ('dk i dj i dl-наименьший радиус окружности');
end;
end;
end;
end;
end;
readLn;
end.
Экранные формы:
Вывод:
В ходе лабораторной работы я изучил навыки описания метода решения математической модели на примере решения задач аналитической геометрии.