Собственно, более сложные списки и называются многоуровневыми.В них также используется либо маркировка, нумерация, а иногда и сочетание того и другого. Но главное их отличие от предыдущих типов списков – наличие нескольких уровней. В зависимости от уровня для каждого абзаца устанавливается символ или номер.Многоуровневые списки отличаются от обычных наличием отступов. Определенный отступ принимается за уровень такого списка.Создать многоуровневый список возможно с табуляции (Tab).
Procedure WriteDMS(r: real); var dd, s: real; d, m: integer;
begin dd := 180 * r / Pi; d := Trunc(dd); dd := 60 * (dd - d); m := Trunc(dd); s := 60 * (dd - m); Writeln('=', d, ' град ', m, ' мин ', s:0:2, ' сек') end;
var a, b, c, dd: real;
begin Write('Введите через пробел стороны треугольника a,b,c: '); Readln(a, b, c); Writeln('Значения углов треугольника'); Write('А'); dd := ArcCos((sqr(b) + sqr(c) - sqr(a)) / (2 * b * c)); WriteDMS(dd); Write('B'); dd := ArcCos((sqr(a) + sqr(c) - sqr(b)) / (2 * a * c)); WriteDMS(dd); Write('C'); dd := ArcCos((sqr(a) + sqr(b) - sqr(c)) / (2 * a * b)); WriteDMS(dd); end.
Тестовое решение: Введите через пробел стороны треугольника a,b,c: 5.8 3.2 4.9 Значения углов треугольника А=88 град 53 мин 7.58 сек B=33 град 28 мин 41.54 сек C=57 град 38 мин 10.88 сек