VerochkaL86V
02.07.2021 16:46

Проанализируйте программный код задания (рис. 1). Проверьте вручную, задав переменным следующие значения: а=7, b=20,c=9 и a= 13,b=11,c=0. Запишите результат выполнения каждой из команд в программе при вводе этих значений. Анализируя полученные результаты, выясните, какой алгоритм программно решить данную задачу.


Проанализируйте программный код задания (рис. 1). Проверьте вручную, задав переменным следующие знач

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
дима2855
14.04.2022 06:00

1. Результаты выполнения каждой команды ниже.

2. Данную задачу решить линейный алгоритм (с ветвлениями if). Мы подставляли текущие значения переменных, тем самым определяли, выполнится командный блок if или нет. Если выполняется - также подставляли значения переменных, и находили новые значения. Мы выполняли код последовательно и были в роли программы, которая считывает написанный код и также выполняет эти же действия.

Объяснение:

Код с объяснениями:

a, b, c = map(int, input().split()) # вводятся значения a, b, c  с клавиатуры, через пробел

t = k = h = p = s = 0 # регистрируются переменные, равные нулю

if (a + b + c) % 3 == 0:  # если сумма a, b, c  кратна трём, то...

  k = (a + b + c) // 3  # ...присвоить переменной k значение: целая часть от деления (a + b + c) на 3

  t = a - k;  p = b - k;  h = c - k # ...выполнить данные действия

  if t > 0:  # если t больше нуля...

      s = s + t  #...то переменную s увеличить на t

  if p > 0:  # если p больше нуля...

      s = s + p # ...то переменную s увеличить на p

  if h > 0: # если h больше нуля...

      s = s + h  # ...то переменную s увеличить на h

  print(s)  # вывести значение переменной s

else:  # если сумма a, b, c  НЕ кратна трём, то...

  print(-1)  # ...вывести -1

Код с промежуточными результатами при a = 7, b = 20, c = 9:

a, b, c = 7, 20, 9

t = k = h = p = s = 0

if (a + b + c) % 3 == 0: # true. (7 + 20 + 9) % 3 = 36 % 3 = 0 (цел.часть 12)

  k = (a + b + c) // 3 # k = 36 // 3 = 12

  t = a - k;  p = b - k;  h = c - k  # t = 7 - 12 = -5;  p = 20 - 12 = 8;  h = 9 - 12 = -3

  if t > 0:  # false

      s = s + t

  if p > 0: # true. s = 0 + 8 = 8

      s = s + p

  if h > 0:  # false

      s = s + h

  print(s)  # вывод: 8

else:  # не выполнится

  print(-1)

Код с промежуточными результатами при a = 13, b = 11, c = 0:

a, b, c = 13, 11, 0

t = k = h = p = s = 0

if (a + b + c) % 3 == 0: # true. (13 + 11 + 0) % 3 = 24 % 3 = 0 (цел.часть 8)

  k = (a + b + c) // 3  # k = 24 // 3 = 8

  t = a - k;  p = b - k;  h = c - k # t = 13 - 8 = 5;  p = 11 - 8 = 3;  h = 0 - 8 = -8

  if t > 0: # true. s = 0 + 5 = 5

      s = s + t

  if p > 0:  # true. s = 5 + 3 = 8

      s = s + p

  if h > 0: # false

      s = s + h

  print(s) # вывод: 8

else:  # не выполнится

  print(-1)

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