Автор: Пользователь скрыл имя, 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.