Автор: Пользователь скрыл имя, 24 Декабря 2012 в 17:36, контрольная работа
Даны действительные положительные числа X ,Y , Z .
1) Выяснить, существует ли треугольник с длинами сторон X , Y , Z .
2) Если треугольник существует, то ответить, является ли он остроугольным .
1) Постановка задачи:
Даны действительные положительные числа X ,Y , Z .
2) Если треугольник существует, то ответить, является ли он остроугольным .
2) Математическая модель:
Используем следующие математические положения и формулы:
1. Если X+Y>Z , Z+X>Y , Z+Y>X , следовательно треугольник построить можно.
2. По теореме Пифагора : если X2+Y2=Z2 , то треугольник прямоугольный , из этого следует что если X2+Y2>Z2 или Z2-Y2-X2 <0 , то треугольник остроугольный и наоборот если Z2-Y2-X2>0 , то тупоугольный.
3) Таблица внешних спецификации:
№ |
Имя |
Назначение |
Тип |
Ед. изм. |
ОДЗ | |||
1 |
X |
Отрезок 1 |
Вещ. |
------ |
[0,100] | |||
2 |
Y |
Отрезок 2 |
Вещ. |
------ |
[0,100] | |||
3 |
Z |
Отрезок 3 |
Вещ. |
------ |
[0,100] | |||
4 |
Soob 1 |
Сообщение |
Текст |
------ |
2 вида | |||
5 |
Soob 2 |
Сообщение |
Текст |
------ |
2 вида | |||
6 |
Soob 3 |
Сообщение |
Текст |
------ |
1 вид |
Сообщения:
1) Soob 1.1 ‘ Треугольник построить можно и ‘
Soob 1.2 ‘Треугольник построить нельзя ‘
2) Soob 2.1 ‘ он будет тупоугольный ‘
Soob 2.2 ‘ он будет остроугольный ‘
3) Soob 3 ‘ выход за ОДЗ ‘
Начало
X, Y, Z
Усл. 1
нет да
Усл. 2
нет
Soob 1.2
Soob 1.1
да
Soob 3
Усл. 3
нет да
Усл. 4
n:=x2-y2-z2
нет да
n:=y2-z2-x2
n:=z2-x2-y2
Усл. 5
нет да
Soob 2.1
Soob 2.2
конец
Усл. 1 ‘ Можно построить треугольник ? ‘
Усл.2 ‘ Соответствует ли ОДЗ ? ‘
Усл. 3 ‘ X гипотенуза ? ‘
Усл. 4 ‘ Y гипотенуза ? ‘
Усл. 5 ‘ n>0 ? или треугольник тупоугольный ? ‘
№ текста |
Входные данные |
Выходные |
Примечания | |||||
№ |
X |
Y |
Z |
Soob |
||||
1 |
0 |
1 |
5 |
Soob 1.2 |
Треугольник построить нельзя | |||
2 |
3 |
2,5 |
6 |
Soob 1.2 |
Треугольник построить нельзя | |||
3 |
3 |
4 |
6 |
Soob 1.1 , 2.1 |
Треугольник тупоугольный | |||
4 |
4 |
4,8 |
3 |
Soob 1.1 , 2.2 |
Треугольник остроугольный | |||
5 |
99 |
100 |
101 |
Soob 3 |
Выход за ОДЗ |
6) Кодирование алгоритма на языке Паскаль: program program my ;
var
x,y,z,n :real ;
begin
writeln ('Введите x ,y ,z ');
readln (x,y,z);
if (x>0) and (y>0) and(z>0) and (x+y>z) and (x+z>y) and (y+z>x) then
begin
if (x<=100) and (y<=100) and ( z<=100) then
begin
writeln ( 'Треугольник построить можно и ' );
if (x>=z) and (x>=y) then
n:=(x*x-y*y-z*z)
else
if (y>=z) and (y>=x) then
n:=(y*y-z*z-x*x)
else
n:=(z*z-x*x-y*y);
if (n>0) then
writeln ( 'он будет тупоугольный ')
else Writeln ('он будет остроугольный ' ) ;
end
else writeln ( ' выход за ОДЗ ')
end
else
writeln ('Треугольник построить нельзя!') ;
readln;
end.