В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
serejafox23
serejafox23
28.08.2022 02:30 •  Информатика

. Если можно, то с объяснением ​


. Если можно, то с объяснением ​

Показать ответ
Ответ:
58722001
58722001
02.08.2022 07:13
Можно заметить, что самый большой угол в треугольнике всегда расположен напротив самой длинной стороны, которую мы обозначим буквой с.
Значение такого угла можно найти по теореме косинусов:
\displaystyle \cos(C)= \frac{a^2+b^2-c^2}{2ab}
В остроугольном треугольнике угол всегда будет меньше 90 градусов, поэтому его косинус всегда будет положительным. В прямоугольном треугольнике косинус будет равен нулю, а в тупоугольном он будет отрицательным. На этом можно построить решение, предварительно определив, какая из сторон является самой длинной. И, само собой разумеется, надо сразу после ввода проверить условие существования треугольника, т.е. чтобы сумма длин двух его любых сторон была больше третьей.

var
  a,b,c,a1,b1,c1,cosC:real;
begin
  Write('Введите длины сторон треугольника: ');
  Read(a,b,c);
  Write('Треугольник ');
  if (a<(b+c)) and (b<(a+c)) and (c<(a+b)) then begin
    if a>b then
      if a>c then begin c1:=a; a1:=c; b1:=b end
      else begin c1:=c; a1:=a; b1:=b end
    else
      if b>c then begin c1:=b; a1:=a; b1:=c end
      else begin c1:=c; a1:=a; b1:=b end;
    cosC:=(sqr(a1)+sqr(b1)-sqr(c1))/(2*a*b);
    if cosC<0 then Writeln('тупоугольный')
    else
      if cosC=0 then Writeln('прямоугольный')
      else Writeln('остроугольный')
  end
  else Writeln('построить невозможно')
end.

Тестовое решение:
Введите длины сторон треугольника: 6 4.1 4
Треугольник тупоугольный
0,0(0 оценок)
Ответ:
polinamimi2006
polinamimi2006
08.09.2020 07:56
Const
  n=50;
var
  f:Text;
  s:string;
  ss:array of string;
  a:array[1..n] of string;
  i,j:integer;
begin
  Assign(f,'input.txt'); Reset(f);
  j:=0;
  while not Eof(f) do begin
    Readln(f,s);
    ss:=s.Split(' ');
    for i:=0 to Length(ss)-1 do
      if Length(ss[i])>1 then
        if RightStr(ss[i],2)='of' then
        begin Inc(j); a[j]:=ss[i] end;
  end;
  Close(f);
  for i:=1 to j do Write(a[i],' ');
  Writeln
end.

Тестовое решение:
123of asdfdsof dasof

Есть решение и покороче, но совсем не уровня начинающих:
uses
  System.Text.RegularExpressions;
const
  n=50;
var
  f:Text;
  s:string;
  a:array[1..n] of string;
  i,j:integer;
begin
  Assign(f,'input.txt'); Reset(f);
  j:=0;
  while not Eof(f) do begin
    Readln(f,s);
    foreach var m:Match in Regex.Matches(s,'\b\S+of\b') do
    begin Inc(j); a[j]:=m.Value end;
  end;
  Close(f);
  for i:=1 to j do Write(a[i],' ');
  Writeln
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота