понедельник, 8 декабря 2014 г.

Информатика и ИКТ. 9 класс, задание 8

Информатика и ИКТ. 9 класс Демонстрационный вариант 2015 г.
Задача 8.В программе знак «:=» обозначает оператор присваивания, знаки «+», «–»,
«*» и «/» – соответственно операции сложения, вычитания, умножения и
деления. Правила выполнения операций и порядок действий соответствуют
правилам арифметики.
Определите значение переменной a после выполнения алгоритма:
a := 6
b := 2
b := a/2*b
a := 2*a+3*b
В ответе укажите одно целое число – значение переменной a.
Ответ: ___________________________.

Решение: все изменения происходят в памяти. Каждой переменной выделяется по одному участку, который именуется именем переменной. Размер участка определяется типом данных. Так как у нас выполняются действия над числами, то в участке, выделенном под одну переменную помещается одно число. Выполняя действие присваивания помним, что вначале вычисляется значение выражения, расположенного справа от знака присвоить, а потом полученное значение заносится в память под именем переменной, указанной слева от этого знака.
1) 6->a
2) 2->b
3) 6/2*2->b
4) 2*6+3*6->a

Память


Но в постановке задачи есть неоднозначность, неясно какая арифметика используется целочисленная или вещественная. После выполнения третьего оператора из-за операции деления / в зависимости от определённого языка может получиться 6 целых 0 десятых (вещественное число). А это означает, что результатом вычисления выражения в операторе 4 является 30.0.Казалось бы, что в ответ нужно записать число 30.

А как Вы понимаете, 30 и 30.0 – это два разных значения.
Совет создателям КИМов – наберите группу сторонних  экспертов, которые до публикации прорешают Ваши тесты!

Комментариев нет:

Отправить комментарий