Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Присваивание



Задание нового значения переменной называется присваиванием. Во многих языках программирования, например, 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...