Метод решения математической модели на примере решения задач аналитической геометрии. Описание согласно заданному варианту методов решения задачи. Разработка математической модели на основе описанных методов. Параметры окружности минимального радиуса.
Аннотация к работе
Метод заключается в том , что бы найти наименьший радиус окружности с помощью последовательного соединения точек с одной, а затем проделывания этого с каждой из точек множества. В результате если два отрезка, выходящие из одной точки, равны - это и есть радиусы окружности. Метод 2.Второй метод заключается в том, что бы искать минимальный радиус окружности при помощи соединения множество точек между собой, и в результате получение множество геометрических фигур (в данном случае геометрические фигуры - треугольники). В случаи, если стороны выходящие из одной точки равны - это и есть радиусы окружности, так как через равные отрезки, выходящие из одной точки можно провести окружность с центром точки соединения этих отрезков. В случае, если в конечном результате вычисления несколько равных сторон, выходящих из одной точки, необходимо найти минимальный радиус окружности.‘Введите координаты’,I,’-ой точки.’‘D[‘,i,’].x =’,D[i].x;
‘D[‘,i,’].y =’,D[i].y;
для i:=1..(n-3)
для k:=i 1..(n-2)
для l:=j 1..(n-1)
для j:=l 1...n dk:= (D [i].x-D [k].x)? (D [i].y-D [k].y)?;
dl:= (D [i].x-D [l].x)? ( D[i].y-D [l].y)? ;
dj= (D [j].x-D [j].x)? (D [j].y-D [j].y)? ;
Если (dk=dl) или (dk=dj) тогда‘Точка ",i,"- является центром окружности!"
Иначе"Точка ",i," не является центром окружности!"
Если (dk=dl) или (dj=dl) тогда" dl- возможный радиус окружности!"
Иначе"dl-не образует радиус.."
Если (dk=dj) или (dk=dl) тогда" dk- возможный радиус окружности!"
Иначе"dk-не образует радиус..
Вывод
‘Введите координаты’,I,’-ой точки.’
Ввод
D[i].x, D[i].y‘D[‘,i,’].x =’,D[i].x;
‘D[‘,i,’].y =’,D[i].y;
для i:=1..(n-3)
для k:=i 1..(n-2)
для l:=j 1..(n-1)
для j:=l 1...n dk:= (D [i].x-D [k].x)? (D [i].y-D [k].y)?;
dl:= (D [i].x-D [l].x)? ( D[i].y-D [l].y)? ;
dj= (D [j].x-D [j].x)? (D [j].y-D [j].y)? ;
Если (dk=dl) или (dk=dj) тогда‘Точка ",i,"- является центром окружности!"
Иначе"Точка ",i," не является центром окружности!"
Если (dk=dl) или (dj=dl) тогда" dl- возможный радиус окружности!"
Иначе"dl-не образует радиус.."
Если (dk=dj) или (dk=dl) тогда" 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 (code0) 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 (code0) 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 (code0) 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.
Экранные формы:
Список литературы
В ходе лабораторной работы я изучил навыки описания метода решения математической модели на примере решения задач аналитической геометрии.