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

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

примечание:

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

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

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

0

Показать ответ
Ответ:
lol2710
lol2710
14.04.2023 13:47

Некоторые изменения в коде на Питоне в отличие от Паскаля:

"const  n = 10;"  превратится в "n = 10"Присвоения обозначаются не :=, а просто =Раздел описаний нам не нужен, разве что можно сразу задать списки длины n: a = [None] * n; b = [None] * nВ Паскале некоторые переменные инициализируются нулем. Тут придется написать присвоение явно."for i := 1 to n do" превратится в "for i in range(1, n + 1):". Но так как нумерация элементов списка в Питоне начинается с нуля, имеет смысл поменять на range(n), чтобы действительно был проход по всем элементам. При этом в выводе придется поменять i на i + 1, чтобы сам вывод не поменялся.Вместо begin ... end используются отступыДля генерации случайных чисел в промежутке от 3 до 10 в модуле random есть функция randint, использование такое же, что и у random в исходной программеУсловная конструкция в Питоне if cond: ...Проверка на равенство ==, а не =Вывод - функция print. Чтобы Питон не добавлял лишние пробелы, нужно в функцию print дописать sep=''

Получается так:

Код (Python 3):

from random import randint

n = 10

a = [None] * n

b = [None] * n

maxs = 0

for i in range(n):

   a[i] = randint(3, 10)

   b[i] = randint(3, 10)

   if maxs < a[i] * b[i]:

       maxs = a[i] * b[i]

for i in range(n):

   if maxs == a[i] * b[i]:

       print(i + 1, ' Площадь=', a[i] * b[i] * 0.5, ' а=', a[i], ' b=', b[i], sep='')

Пример вывода:

5 Площадь=50.0 а=10 b=10

7 Площадь=50.0 а=10 b=10

0,0(0 оценок)
Ответ:
Adilkin
Adilkin
31.01.2021 19:10
uses crt; var s:string;     c:char;     m:set of char;     n,i,k,p:byte; begin writeln('Введите текст из строчных латинских букв, окончаание ввода Enter'); s:=''; repeat c:=readkey; if c in ['a'..'z'] then  begin   write(c);   s:=s+c;  end; if c=#13 then writeln until c=#13; n:=length(s); m:=[]; for c:='a' to 'z' do  begin   k:=0;   for i:=1 to n do   if s[i]=c then k:=k+1;   if k>1 then m:=m+[c];  end; if m=[] then write('Нет букв, встречающихся более 1 раза') else  for c:='a' to 'z' do  if c in m then write(c) end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота