Консультация № 182106
05.02.2011, 12:26
114.22 руб.
0 8 2
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

Разработайте алгоритм для решения задачи (блок-схема)

1) Даны длины a,b,c сторон треугольника. Найдите медианы треугольника, сторонами которого являются медианы исходного треугольника.
Указание: Длина медианы, проведенной к стороне a, равна: 0,5* (sqrt (2*(b^2+c^2)-a^2))

2) Даны отрезки a, b, c, d. Для каждой тройки этих отрезков, из которых можно построить треугольник, найдите площадь данного треугольника. Определите процедуру Plo (x,y,z) , определяющую площадь треугольника со сторонами x, y, и z, если такой треугольник существует.

Обсуждение

давно
Профессор
230118
3054
05.02.2011, 21:22
общий
это ответ
Здравствуйте, Марина!

Блок схема 1:

2
Даны отрезки a, b, c, d. Для каждой тройки этих отрезков, из которых можно построить треугольник, найдите площадь данного треугольника. Определите процедуру Plo (x,y,z) , определяющую площадь треугольника со сторонами x, y, и z, если такой треугольник существует.

Псевдокод, похожий на Паскаль:
procedure Plo(x,y,z)
begin
if x<y+z and y<x+z and z<x+y then
begin
p:=(x+y+z)/2;
Result := sqrt(p*(p-a)*(p-b)*(p-c))
end
else Result:=0;
end;
ввод a,b,c,d;
pabc:=P(a,b,c);
pabd:=P(a,b,d);
pacd:=P(a,c,d);
pbcd:=P(b,c,d);
end.

Неизвестный
06.02.2011, 10:23
общий
для задания №2 только блок-схема нужна.
давно
Профессор
230118
3054
06.02.2011, 10:27
общий
Нарисуйте.
Неизвестный
06.02.2011, 13:06
общий
очень удачный ответ.
давно
Академик
320937
2216
06.02.2011, 14:09
общий
Сделаем, не волнуйтесь!
давно
Академик
320937
2216
06.02.2011, 14:12
общий
У Вас в задании ошибка. Должно быть procedure Plo(x,y,z,s); или function Plo(x,y,z); Буду делать с процедурой
Неизвестный
06.02.2011, 14:25
общий
Спасибо! Может быть опечатка в методичке, но определить процедуру.
давно
Академик
320937
2216
06.02.2011, 14:33
общий
это ответ
Здравствуйте, Марина! Блок-схемы получены следующим образом. Сначала написана программа на языке Pascal, затем с помощью построителя diamFC получена блок-схема. Разработчик : Брянцев Дмитрий Иванович
Exists

Plo

Program


Исходник ABC-Pascal (проверял недостаточно)
Код:
// Даны отрезки a, b, c, d. Для каждой тройки этих отрезков,
// из которых можно построить треугольник, найдите площадь данного треугольника.
// Определите процедуру Plo (x,y,z) , определяющую площадь треугольника со
// сторонами x, y, и z, если такой треугольник существует.

procedure Plo(x,y,z: real; var s: real);
var
p: real;
begin
p:= (x+y+z)/2;
s:= sqrt(p*(p-x)*(p-y)*(p-z));
end; { plo }

function Exists(a,b,c: real): boolean;
// Проверяет, возможно ли построить треугольник по трем указанным сторонам
begin
Exists := (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b) and (b+c>a);
end; { exists }

var
a,b,c,d,s: real;
begin
readln(a,b,c,d);
if exists(a,b,c) then begin
plo(a,b,c,s);
writeln(a,b,c,s);
end;
if exists(a,b,d) then begin
plo(a,b,d,s);
writeln(a,b,d,s);
end;

if exists(a,c,d) then begin
plo(a,c,d,s);
writeln(a,c,d,s);
end;

if exists(b,c,d) then begin
plo(b,c,d,s);
writeln(b,c,d,s);
end;
end.

Если требуются уточнения, задавайте вопросы в мини-форуме. Удачи!
5
Форма ответа