для решения нужно использовать «ручную прокрутку» программы, то есть, выполнить вручную все действия
наиболее удобно и наглядно это получается при использовании таблицы, где в первом столбце записаны операторы программы, а в остальных показаны изменения переменных при выполнении этих операторов
здесь используются три переменные: a, b, c; до выполнения программы их значения анм неизвестны, поэтому ставим в таблице знаки вопроса:
после выполнения оператора a := 5; изменяется значение переменной a:
оператор a := a + 6; означает «вычислить значение выражения a + 6 используя текущее значение a (равное 5), и записать результат обратно в переменную a»; таким образом, новое значение равно 5 + 6 = 11:
| a | b | c |
| ? | ? | ? |
a := 5; | 5 | | |
a := a + 6; | 11 | | |
следующий оператор, a := a + 6, изменяет значение переменной b, записывая в нее –a; учитывая, что в a записано число 11, находим, что b будет равно –11:
| a | b | c |
| ? | ? | ? |
a := 5; | 5 | | |
a := a + 6; | 11 | | |
b := –a; | | –11 | |
последняя команда, c := a – 2*b, изменяет значение переменной c; при текущих значениях a = 11 и b = –11 результат выражения равен 11 – 2*(–11) = 33, это число и будет записано в переменную c:
| a | b | c |
| ? | ? | ? |
a := 5; | 5 | | |
a := a + 6; | 11 | | |
b := –a; | | –11 | |
c := a – 2*b; | | | 33 |
таким образом, правильный ответ – c = 33