2. Робітник має основну заробітну плату (значення змінної х). Якщо робітник перевиконав лан, він отримує надбавку в розмiрi 10 % вiд основної заробітної плати (значення змінноï р) Якщо в процесі роботи робітник допускав брак, то він отримує штраф у розмірі 20 % від основної аробітної плати (значення змінної b). Перевиконання плану визначається станом прапорця змiнна choice1), а наявність браку - станом прапорця Змiнна =hoice2). Для визначення заробленої заробітної плати (значення змiнноï y) учень склав такий Фрагмент проекту: if choicel.get() == True: р = x * 0.1 else: if choice2.get() b = x * 0.2 y=x+p-b Чи правильний фрагмент проекту склав учень? Відповідь поясніть.
Answers & Comments
Відповідь:
Ні, фрагмент проекту який склав учень містить помилки.
Пояснения:
Основна проблема полягає в тому, що умова перевірки наявності браку включена в блок "else", тобто цей блок виконується тільки у випадку, коли "choicel.get() == False" (тобто перевиконання плану не було досягнуто). Тому, якщо робітник не досяг перевиконання плану, але допустив брак, то програма не врахує штраф і зарахує надбавку, що буде неправильно.
Також у фрагменті необхідно враховувати, що якщо робітник не перевиконав план і не допустив браку, то заробітна плата буде дорівнювати основній заробітній платі (тобто не потрібно робити віднімання).
Виправлений проект:
if choicel.get() == True:
p = x * 0.1
else:
p = 0
if choice2.get():
b = x * 0.2
else:
b = 0
y = x + p - b