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

: найдите площадь треугольника по трём сторонам, которые вводит пользователь

примечание:

все стороны - целые положительные числа
если треугольник с введёнными сторонами не существует, на экран необходимо вывести 0
ответ при необходимости округлите с точностью до двух знаков после запятой
подсказка: для решения этой рекомендую воспользоваться формулой геррона

входной сигнал образца:

1 2 3
выход образца:

0

Показать ответ
Ответ:
KunLallalit
KunLallalit
23.03.2023 06:06

a = 3, b = 1, c = 2

if a > b (3 > 1): M = a (M = 3, условие сработало - эту ветку выполняем)

else: M = b (условие сработало - эту ветку пропускаем)

if c > b (2 > 1): M = c (M = 2, условие сработало - эту ветку выполняем)

else: M = b (условие сработало - эту ветку пропускаем)

M = 2

if c > M: M = c

a = 3, b = 1, c = 2

if a > b (3 > 1): M = a (M = 3)

else: M = b (условие сработало - эту ветку пропускаем)

if c > M (2 > 3): M = c (условие НЕ сработало - эту ветку пропускаем)

M = 3

Объяснение:

В первой программе сначала сравнивают первое и второе число и переменной М присваивают значение большего из них. Затем сравнивают второе и третье число и переменной М присваивают значение большего из них. Если первое и третье число больше второго числа, то программа выдаёт неверный результат.

Во второй программе сначала сравнивают первое и второе число и переменной М присваивают значение большего из них. Затем сравнивают третье число и переменную М и переменной М присваивают значение третьего числа, если оно больше. Программа выдаёт верный результат.

0,0(0 оценок)
Ответ:
karinkacommelЛіза
karinkacommelЛіза
17.07.2020 19:22
Сделать эту задачу можно двумя Первый - чисто арифметический. Второй - более хитрый, через операции над строками. Мы пойдем вторым путем, он короче и практичней, такой код будет требовать меньше ресурсов машины для реализации (что незаметно в таких маленьких задачках, но довольно критично в реальной жизни, поэтому учимся писать дальновидные коды).

Var n:longint;

Function MinDigit(n:longint):integer;
var s,a:string; c,i:integer;
begin
 str(n,s);
 a:=s[1];
 for i:=2 to length(s) do
   if s[i]<a then a:=s[i];
 val(a,n,c);
 MinDigit:=n;
end;

Function MaxDigit(n:longint):integer;
var s,a:string; c,i:integer;
begin
 str(n,s);
 a:=s[1];
 for i:=2 to length(s) do
   if s[i]>a then a:=s[i];
 val(a,n,c);
 MaxDigit:=n;
end;

Begin
 readln(n);
 writeln(MinDigit(n),' ',MaxDigit(n));
End.

По факту переменную "c" можно убрать из функций и использовать вместо нее уже не нужную в конце "i", таким образом избавившись от одной переменной. Но это не принципиально на самом деле, к тому же так понятней, какая переменная за что отвечает.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота