nextupprevious

Next:3.2.6 Упражнения
Up:3.2 Построение ветвящихся программ
Previous:3.2.4 Анализ квадратного уравнения


3.2.5 Тип треугольника

Задача. Определить, существует ли треугольник с заданными целочисленными длинами сторон$a,b,c$. Если да, то определить тип треугольника -- остроугольный, тупоугольный или прямоугольный.

Решение. Для того, чтобы можно было построить треугольник, необходимо и достаточно выполнения трех неравенств треугольника, т.е. $(a+b>c)$&$(a+c>b)$&$(b+c>a)$. Между прочим, из истинности этого условия следует также $(a>0)$&$(b>0)$&$(c>0)$. (Докажите!). Далее, если $h$ -- максимальная из длин сторон $a,b,c$, a $k,l$ -- длины двух других сторон, то треугольник будет:

прямоугольным при $h^2 = k^2 + l^2$,
остроугольным при $h^2 < k^2 + l^2$,
и тупоугольным при $h^2 > k^2 + l^2$.

Из проведенного анализа вытекает, в частности, что значения выражений $h^2$ и $k^2 + l^2$ целесообразно запомнить во вспомогательных переменных (в программе они названы $Т1$ и $Т2$ соответственно).

module ТипТреугольника;
        var A,B,C,H,K,L,T1,T2 : integer;
begin
        read(A,B,C);
        if (A + B > C) & (A + C > B) & (B + C > A) then
        begin
            write('Можно построить ');
            if A < B then K := A; L := B
            else  K := B; L := A
            end;
            (*{Здесь$К = min(A,B),\ L = max(A,B)\}$)*
            if$<$ C then H := C else H := L; L := C end;
            (*{Здесь$H = max(A,B,C)$, а$ K,L$ - длины двух других сторон треугольника}*)
            T1 := Sqr(H); T2 := Sqr(K) + Sqr(L);
            if T1 = T2 then write (' прямоугольный ')
            elsif T1< T2 then write (' остроугольный ')
            else write (' тупоугольный ')
            end;
            writeln('треугольник.')
         end
    else writeln('Треугольник построить нельзя.')
    end
end ТипТреугольника.
 

Next:3.2.6 Упражнения
Up:3.2 Построение ветвящихся программ
Previous:3.2.4 Анализ квадратного уравнения



© В.Н. Касьянов, Е.В.Касьянова, 2004