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

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


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

Ответ:
iragabets73
iragabets73
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
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?