Ответ: 33

B8 (базовый уровень, время – 3 мин)

Тема: Умение исполнить линейный алгоритм, записанный на алгоритмическом языке.

Что нужно знать:

· Алгоритмы описывают последовательность действий, производимых над объектами, определенными условием задачи;

· переменная – это величина, которая имеет имя, тип и значение; переменная может изменяться во время исполнения алгоритма;

· оператор присваивания служит для записи значения в переменную, который записывается так: <имя переменной> =: <выражение>;

· значение, присвоенное переменной, сохраняется в ней до следующего присваивания этой переменной нового значения; если в переменную записывают новое значение, старое стирается;

· знаки +, -, *, / используются для обозначения операций сложения, вычитания, умножения и деления. Правила выполнения операций и порядок действий соответствуют правилам арифметики.

· запись вида a div b означает результат целочисленного деления a на b (остаток отбрасывается);

· запись вида a mod b означает остаток от деления a на b;

· запись вида a := с + 4*d + 1; означает «вычислить значения выражения справа от знака присваивания := и записать результат в переменную a»; при этом значения других переменных (кроме a) не изменяются.

 

Задача 1: Определите значение переменной c после выполнения следующего фрагмента программы.

а =: 5;

а =: а + 6;

b =: -а;

с =: а - 2*b;

Решение:

1) выполним вручную все действия программы;

2) составим таблицу, где в первом столбце записаны операторы программы, а в остальных показаны изменения переменных при выполнении этих операторов;

3) в задаче используются три переменные: a, b, c;

4) после выполнения оператора a := 5; изменяется значение переменной a:

  a b c
a := 5;    

5) следующий оператор a := a + 6;в результате новое значение равно 5 + 6 = 11:

  a b c
a := 5;    
a := a + 6;    

6) оператор, b := -a; изменяет значение переменной b, записывая в нее –a; поэтому значение b = –11:

 

  a b c
a := 5;    
a := a + 6;    
b := –a;   –11  

7) оператор c := a – 2*b, изменяет значение переменной c; результат с = 33 (11 – 2*(–11) = 33):

  a b c
a := 5;    
a := a + 6;    
b := –a;   –11  
c := a – 2*b;    

 

Ответ: 33

Задача 2:Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 3 + 8*4;

b := (a div 10) + 14;

a := (b mod 10) + 2;

Решение:

1) выполним вручную все действия программы;

2) составим таблицу, где в первом столбце записаны операторы программы, а в остальных показаны изменения переменных при выполнении этих операторов;

3) в задаче используются три переменные: a, b, c;

4) после выполнения оператора a := 3+8*4; изменяется значение переменной a:

  a b
a := 3+8*4;  

5) следующий оператор b := (a div 10) + 14;изменяется значение переменной b, в результате новое значение равно 17 ((35 div 10) + 14 = 17), где запись вида 35 div 10 означает результат целочисленного деления 35 на 10 (остаток отбрасывается), т.е. 3:

  a b
a := 3+8*4;  
b := (a div 10) + 14;  

6) оператор a := (b mod 10) + 2;изменяет значение переменной a, в результате новое значение равно 9 ((17 mod 10) + 2 = 9), где запись вида 17 mod 10 означает результат остаток деления 17 на 10 (остаток отбрасывается), т.е. 7: