Artem152006
13.06.2022 14:42

2. Завдання «Дитяче свято»
у вашого двоюрідного брата скоро день народження — йому виповниться 7 років. Його батьки
звернулися до вас за до у створенні кошторису для проведення дитячого свята.
Брат хотів би за друзів. Пригощати гостей заплановано вдома двома видами тістечок, соком і
морозивом, які можна придбати в одному із супермаркетів. Кімнату можна прикрасити повітряними
кульками власними силами або замовити оформлення в агенції «Веселий клоун», про яку батьки багато
чули та хотіли б отримати і контактні дані, щоб за клоуна для проведення свята.
1. Оберіть форму подання знайдених відомостей, яка буде зручна для перегляду батьками:
презентація, електронний лист, текстовий юкумент, проект, підготовлений мовою програмування.
Передбачте, що батькам слід повідомити URL адреси сайтів двох найкращих, на вашу думку, навчальних
закладів та аргументи на їх користь.
2. Заповніть таблицю виконання завдання — файл Таблиця-олімпіада, який збережений у папці
Компетентнісні завдання.
3. На електронну адресу вчителя надішліть розв'язок завдання: архів опрацьованої електронної
таблиці; архів представлення результатів батькам, таблиця виконання завдання.​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
nikitakirillov3
01.04.2020 18:28

Без проверок код был бы намного меньше, но сделал с проверками на всякий случай. Если нужно проще - пишите. По сути достаточно функции calculate_cost. И я ещё другую функцию сделал calculate_cost_old, она не используется, но в ней дифференцированный подход вычислений используется, то есть до нижней границы вычисляется по ставке 1,1, дальше вычисляется по тарифу, а больше верхней границы по тарифу 0,9. Мне кажется, так логичнее:

def calculate_cost(N:int,A:int,B:int,T:float):

   s = 0

   if N <= A: s = 1.1*N

   elif A < N <= B: s = N

   else: s = 0.9*N

   return round(T*s,2)

def calculate_cost_old(N:int,A:int,B:int,T:float):

   """Данная функция вычисляет стоимость услуг и возвращает значение"""

   s1 = 0

   s2 = 0

   s3 = 0

   # вычислим стоимость до нижней границы включительно

   if N <= A: s1 = 1.1*N

   else: s1 = 1.1*A

   # вычислим стоимость между нижней (исключительно) и верхней (включительно) границами

   if A < N <= B: s2 = N-A

   elif N > B: s2 = B-A

   # вычислим стоимость от верхней границы (исключительно)

   if N > B: s3 = 0.9*(N-B)

   

   return round(T*(s1+s2+s3),2)

def calculator():

   """основная функция"""

   names = ['Количество минут', 'Нижняя граница тарифа', 'Верхняя граница тарифа', 'Стоимость тарифа']

   while True:

       chk = True

       a = list(map(str, input('Начните ввод: ').split()))

       if len(a) != 4:

           print('Ошибка ввода: введите четыре параметра через пробел')

           continue

       for i in range(len(a)):

           if i != 3:

               try:

                   a[i] = int(a[i])

                   if a[i] < 0: raise ValueError

                   if i == 2 and a[i-1] > a[i]: raise ValueError

               except ValueError:

                   print(f'Ошибка ввода: значение "{names[i]}" ({i+1}-й параметр) должно быть целым не отрицательным числом', '> нижней границы' if i == 2 else '')

                   chk = False

           else:

               try:

                   a[i] = float(a[i])

                   if a[i] <= 0: raise ValueError

               except ValueError:

                   print(f'Ошибка ввода: значение "{names[i]}" ({i+1}-й параметр) должно быть целым положительным числом')

                   chk = False

       if chk: break

   print()

   print('--- Рассчёт окончен ---')

   print('Стоимость учлуг составляет: {:.2f}'.format(calculate_cost(a[0],a[1],a[2],a[3])))

   print()

print('--- Рассчёт стоимости услуг связи ---')

print()

print('Введите через пробел: \n  - количество потраченных за месяц минут (целое число >= 0)\n  - нижнюю границу тарифа (целое число >= 0)\n  - верхнюю границу тарифа (целое число >= нижней границы)\n  - стоимость (вещественное число > 0)')

print()

while True:

   calculator()

   if input('Повторить вычисления? (y/n): ') == 'n': break

0,0(0 оценок)
Ответ:
пингвин39
02.05.2021 01:38

Вводится сначала радиус круга, потом координаты икс и игрек.

Эта точка проверяется на попадание в круг радиусом r,  с центром в начале координат. Если нужен круг не в начале координат, надо добавить координаты его центра x0, y0  (и тоже их запрашивать вместе с радиусом). Потом эти координаты использовать как смещения по икс и игрек в неравенстве.

Неравенство получится такое:  (x-x0)*(x-x0)+(y-y0)*(y-y0)<=r*r

var

x,y,r :real;

begin

write('r= ');

read (r);

write('x= ');

read (x);

write('y= ');

read (y);

if x*x+y*y<=r*r

then write('принадлежит')

else write('не принадлежит');

end.

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