Смекни!
smekni.com

Разработка математической модели на основе описанных методов (стр. 3 из 3)

' 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.

Экранные формы:

Вывод:

В ходе лабораторной работы я изучил навыки описания метода решения математической модели на примере решения задач аналитической геометрии.