
Вопрос задан 10.02.2019 в 00:33.
Предмет Информатика.
Спрашивает Имангалиев Рамазан.
Для решения задачи сделать вариант программы с реализацией указанной подпрограммы в виде функции
или в виде процедуры. Даны координаты трех точек определить между какими из пар точек самое большое расстояние используя подпрограмму вычисления длины отрезка между двумя точками

Ответы на вопрос

Отвечает Ивина София.
Type
Point=record
x,y:real
end;
function Distance2(a,b:Point):real;
{ возвращает квадрат расстояния между точками }
begin
Distance2:=sqr(b.x-a.x)+sqr(b.y-a.y)
end;
function Max(p,q:real):real;
{ возвращает максимальное из p,q }
begin
if p>q then Max:=p else Max:=q
end;
procedure Vvod(var a:Point;n:integer);
{ процедура с изменяемым параметром a }
begin
Write('Введите координаты точки ',n,': ');
Readln(a.x,a.y)
end;
var
a:array[1..3] of Point;
d1,d2,d3:real;
i:integer;
begin
for i:=1 to 3 do Vvod(a[i],i);
d1:=Distance2(a[1],a[2]);
d2:=Distance2(a[1],a[3]);
d3:=Distance2(a[2],a[3]);
if d1>d2 then
if d1>d3 then Writeln('Максимальное расстояние 1-2')
else
if d1=d3 then Writeln('Максимальное расстояние 1-2 и 2-3')
else Writeln('Максимальное расстояние 2-3')
else
if d1=d2 then
if d1>d3 then Writeln('Максимальное расстояние 1-2 и 1-3')
else
if d1=d3 then Writeln('Расстояния между всеми точками одинаковы')
else Writeln('Максимальное расстояние 2-3')
else
if d3>d2 then Writeln('Максимальное расстояние 2-3')
else
if d3=d2 then Writeln('Максимальное расстояние 1-3 и 2-3')
else Writeln('Максимальное расстояние 1-3');
end.
Тестовое решение:
Введите координаты точки 1: -2 1
Введите координаты точки 2: 4 5
Введите координаты точки 3: 2 -2
Максимальное расстояние 2-3
Point=record
x,y:real
end;
function Distance2(a,b:Point):real;
{ возвращает квадрат расстояния между точками }
begin
Distance2:=sqr(b.x-a.x)+sqr(b.y-a.y)
end;
function Max(p,q:real):real;
{ возвращает максимальное из p,q }
begin
if p>q then Max:=p else Max:=q
end;
procedure Vvod(var a:Point;n:integer);
{ процедура с изменяемым параметром a }
begin
Write('Введите координаты точки ',n,': ');
Readln(a.x,a.y)
end;
var
a:array[1..3] of Point;
d1,d2,d3:real;
i:integer;
begin
for i:=1 to 3 do Vvod(a[i],i);
d1:=Distance2(a[1],a[2]);
d2:=Distance2(a[1],a[3]);
d3:=Distance2(a[2],a[3]);
if d1>d2 then
if d1>d3 then Writeln('Максимальное расстояние 1-2')
else
if d1=d3 then Writeln('Максимальное расстояние 1-2 и 2-3')
else Writeln('Максимальное расстояние 2-3')
else
if d1=d2 then
if d1>d3 then Writeln('Максимальное расстояние 1-2 и 1-3')
else
if d1=d3 then Writeln('Расстояния между всеми точками одинаковы')
else Writeln('Максимальное расстояние 2-3')
else
if d3>d2 then Writeln('Максимальное расстояние 2-3')
else
if d3=d2 then Writeln('Максимальное расстояние 1-3 и 2-3')
else Writeln('Максимальное расстояние 1-3');
end.
Тестовое решение:
Введите координаты точки 1: -2 1
Введите координаты точки 2: 4 5
Введите координаты точки 3: 2 -2
Максимальное расстояние 2-3


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili