Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Задание нового значения переменной называется присваиванием. Во многих языках программирования, например, Pascal, оператор присваивания имеет вид:
переменная: = выражение;
Например, y:= (a+b) * sin(x/4);
i:= i+1.
Cимвол ":=" обозначает операцию присваивания и означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части (в языке Basic операция присваивания обозначается символом "=").
Примеры операторов присваивания:
X:= 5; читается "X присвоить 5"
A:= X - 2; читается "A присвоить X-2"
X:= X + 1; читается "X присвоить X+1"
При выполнении оператора присваивания сначала вычисляется значение выражения, записанного справа от знака присваивания, а потом это значение заменяет собой прежнее значение переменной, указанной в левой части оператора.
Таким образом, присваивание можно понимать как операцию "заменить на". В программе при этом происходит пересылка (копирование) значения выражения из одного места памяти в другое. Последний из приведенных операторов, например, увеличивает на единицу значение переменной X.
Упражнения:
1. Какими будут значения переменных после выполнения следующих операторов присваивания:
а) X:=15; Y:=2*X+5; X:=X*X+Y*5; Y:=X+Y;
б) X:=5; Y:=10; Z=15; X:=X+Y; Z:=Z+Y; Z:=Z+X+Y;
в) N:=10; A:=20; B:=15; C:=A+B-N; C:=C*2; B:=A+B-C; A:=A+B-C;
A:=N*A; N:=N+1;
г) X:=5; Y:=2*X; X:=X*X-Y+5; Y:=X+Y;
Для того, чтобы вручную выполнить алгоритм, обычно используют так называемую трассировочную таблицу, в которую записывают значения переменных после каждой команды.
а) X:=15; Y:=2*X+5; X:=X*X+Y*5; Y:=X+Y;
Решение. Трассировочная таблица:
Номер шага= | ||||
X= | 15*15+35*5=400 | |||
Y= | 2*15+5=35 | 400+35=435 |
Ответ: X=400 Y=435
б) X:=5; Y:=10; Z=15; X:=X+Y; Z:=Z+Y; Z:=Z+X+Y;
Решение. Трассировочная таблица:
Номер шага= | ||||||
X= | 5+10=15 | |||||
Y= | ||||||
Z= | 15+10=25 | 25+15+10=50 |
Ответ: X=15; Y=10; Z=50;
2. Написать последовательность операторов присваивания, при выполнении которой переменные A и B обменяются значениями.
Указание: воспользоваться вспомогательной переменной.
Решение:
P:=A; A:=B; B:=P;
Используется вспомогательная переменная Р.
Проверим решение при А=5, В=10.
Трассировочная таблица:
Номер шага= | |||
А=5 | |||
В=10 | |||
Р |
Вывод: Решение верно.
3. Каким было значение переменной А, если после выполнения следующих операторов присваивания оно стало равно 25?
A:=A+1; A:=A*2; A:=A-1; A:=A+10;
Так как известен конечный результат, то трассировочную таблицу заполним от последней команды к первой.
Решение. Таблица обратной трассировки:
Номер шага= | |||||
А= | А+10=25; (A=15) | A-1=15; (A=16) | A*2=16; (A=8) | A+1=8; (A=7) |
Или другое решение:
25=A+10; => A=15;
15=A-1; => A=16;
16=A*2; => A=8;
8=A+1; => A=7;
Ответ А=7;
Проверим решение. Трассировочная таблица:
Номер шага= | ||||
А=7 | 7+1=8; | 8*2=16; | 16-1=15; | 15+10=25; |
Вывод: Решение верно, конечное значение А равно заданному.
4. Каким было значение переменной X, если после выполнения следующих операторов присваивания оно стало равно 8?
X:=X*5; X:=X-10; X:=X+1; X:=X/2;
5. Следующие операторы присваивания представить в виде последовательности простых присваиваний, содержащих одну арифметическую операцию. Использовать минимальное количество вспомогательных переменных.
а) z:=x*y-5;
б) y:=a/(a+b)+x*(a + b/5);
в) z:=x+y-a/b;
г) z:= (x – y)/(x + 1) + (x + y)/(xy)
Решение. а) z=x*y; z=z - 5;
б) y=a+b; y=a/y1; r=b/5; r=a+r; r=x*r; y=y+r;
r – вспомогательная переменная.
6. Написать последовательность простых присваиваний, содержащих по одному умножению, для вычисления заданной степени величины а.
а) a4 за 2 операции б) a6 за 3 операции
в) a7 за 4 операции г) a8 за 3 операции
д) a15 за 5 операции е) a4 и a20 за 5 операции
Решение.
а) a4 за 2 операции б) a6 за 3 операции
r=a*a; a2 r=a*a; a2
r=r*r; a4 r=r*a; a3
r=r*r; a6
7. Преобразовать заданное выражение.
а) использовать только 4 операции сложения или вычитания и 4 операции умножения.
2x4 – 3x3 + 4x2 - 5x + 6
Решение.
2*x4 – 3*x3 + 4*x2 – 5*x + 6 = x*(2*x3 – 3*x2 + 4*x – 5)+6 =
x* (x*(2*x2 – 3*x + 4) – 5) +6= x*(x*(x*(2*x-3)+4)-5)+6
Запишем в виде простых присваиваний:
1. r=2*x; 2. r=r-3; 3. r=x*r; 4. r=r+4;
5. r=x*r; 6. r=r-5; 7. r=x*r; 8. r=r+6;
Условие задачи соблюдается.
б) использовать только 3 операции умножения, 2 операции сложения или 1 операцию вычитания:
4x3 + 3x2 - 2x + 1
в) использовать минимальное количество операций:
5x5 - 4x4 + 3x3 - 2x2 + 1
Дата публикования: 2015-01-14; Прочитано: 444 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!