Предисловие дорогие друзья !

Вид материалаДокументы

Содержание


§8. Операторы языка Паскаль. Оператор присваивания, составной оператор, пустой оператор.
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   29

§8. Операторы языка Паскаль. Оператор присваивания, составной оператор, пустой оператор.


8.1. Операторы, или Предложения языка Паскаль. Арифметические выражения предназначены для получения какого-то результата. Этот результат может быть промежуточным или окончательным. В любом случае на основании этого в программе должно происходить какое-либо действие, то ли это продолжение работы программы, то ли выдача результата.

Минимальной структурой в программе, производящей законченное действие, является оператор. Оператор — одно из основных понятий языка. Каждый оператор представляяет собой законченную фразу языка и определяет некоторый этап обработки данных. Оператор содержит ключевые слова, определяющие его смысл. Наряду с ними он содержит операнды — числа, переменные и выражения, значения которых и определяют конкретное действие этого оператора.

8.2. Îïåðàòîð ïðèñâàèâàíèÿ. Практически любая программа содержит оператор присваивания. Цель почти любой программы — получение результатов и присваивание их переменным, являющихся выходными данными программы. С помощью оператора присваивания можно задать переменной некоторое значение. Операторы присваивания применяется для данных любых типов и имеют следующую структуру: в левой части оператора стоит переменная, за ней следует символ присваивания «:=» (двоеточие и равно), а в правой части — выражение. Тип переменной в левой части и тип выражения в правой части должны быть одинаковые. Исключение составляют переменные вещественного типа: им могут присваиваться также значения целого типа.

Оператор вычисляет значение выражения, стоящего справа от знака присваивания «:=», и присваивает полученное значение переменной, стоящей слева от знака. Частным случаем выражения является константа или переменная. В момент выполнения оператора значения всех переменных в правой части оператора присваивания должны быть определены (т.е. им предварительно должно быть присвоено значение). Если значения переменных в правой части оператора неизвестны, то и невозможно получить правильный результат. Переменные, стоящие в левой части оператора присваивания, могут быть не определены. Если же они имеют определённые значения, то после выполнения оператора эти значения «затираются».

Ïðèìåðы операторов присваивания:

а:=3 — эта запись означает, что переменной а присваивается значение 3.

а:=а+1, а эта запись означает, что к прежнему значению переменной а прибавляется единица и этой же переменной присваивается ответ. Если считать, что а было равно 3, то после выполнения второго оператора присваивания значение переменной а будет 4. Прежнее значение не сохраняется.

Оператор присваивания не представляет особой трудности. Рассмотрим несколько примеров, чтобы разобраться, какие значения принимают переменные при выполнении нескольких операторов присваивания.

Пример 8. какое значение примет величина В после выполнения следующих операторов присваивания:

В:=5;

К:=-В;

В:=13;

В:=В+К;?

Сначала переменные примут значения В=5 и К=-5. затем переменная В примет новое значение 13, при котором будет вычисляться выражение В+К. полученное значение вновь присваивается переменной В. Окончательно имеем В=13+(-5)=8.

Пример 9. какое значение примет величина S после выполнения следующих операторов присваивания:

Y:=7;

S:=0:

S:=S+Y;

S:=S+Y;

S:=S+S;?

Рассуждаем, как и в первом примере: первоначальные значения переменных Y=7; S=0, затем вычисляется правая часть третьего оператора S:=S+Y;, в результате чего получаем S=0+7=7. С этим значением вычисляется правая часть четвёртого оператора S:=S+S;. имеем S=7+7=14. наконец, вычисляется правая часть последнего оператора S:=S+S;. Получаем S=14+14=28.

8.3. Ñîñòàâíîé îïåðàòîð. Ñîñòàâíîé îïåðàòîð — ýòî îáúåäèíåíèå íåñêîëüêèõ îïåðàòîðîâ â îäíó ãðóïïó, ограниченную служебными словами begin è end. Îáùèé âèä ýòîãî îïåðàòîðà ñëåäóþùèé:

begin

îïåðàòîð 1;

îïåðàòîð 2;

...........

îïåðàòîð n;

end;

 ýòîé ñèòóàöèè ñëîâà begin (начало) è end (конец) называются îïåðàòîðíûми ñêîáêами. Слово BEGIN выполняет роль îòêðûâàþùåé скобки, слово END — çàêðûâàþùåé. Ñîñòàâíîé îïåðàòîð представляется как единый оператор. Его ìîæíî âñòàâ­ëÿòü â ëþáîå ìåñòî ïðîãðàììû, ãäå äîïóñêàåòñÿ èñïîëüçîâàíèå îäíîãî îïåðàòîðà.  ñâîþ î÷åðåäü ëþáîé èç îïåðàòîðîâ ñîñòàâíîãî îïåðàòîðà òàêæå ìîæåò áûòü ñîñòàâíûì. Ïîñëå begin è ïåðåä end òî÷êó ñ çàïÿ­òîé ìîæíî íå ñòàâèòü. Íåëüçÿ èçâíå ñîñòàâíîãî îïåðàòîðà ïåðåäàâàòü óïðàâëåíèå âíóòðü åãî (îïåðàòîðîì goto).

8.4. Ïóñòîé îïåðàòîð. Ïóñòîé îïåðàòîð — ýòî îïåðàòîð, íå âûïîëíÿþùèé íèêàêîãî äåéñ­òâèÿ. Ïóñòîìó îïåðàòîðó ñîîòâåòñòâóåò ñèìâîë «;» (точка с запятой).

Пустой оператор соответствует отсутствию записи на том месте, где по правилам должен быть какой-нибудь оператор. Чаще всего пустой оператор применяется для придания программе большей наглядности.

Вопросы и задания.
  1. Приведите общий вид команды присваивания. Как она исполняется?
  2. Какое значение будет иметь переменная х после выполнения операторов: х:=15; х:=х+5?
  3. Записать оператор присваивания, который меняет знак у значения переменной Р.
  4. Чему равны значения переменных х и у после выполнения операторов: х:=7; у:=9; х:=у; у:=х?
  5. Поменять местами значения переменных х и у. рассмотреть два варианта: используя промежуточную переменную и без использования дополнительной переменной.
  6. Поменять местами значения переменных х, у и z так, чтобы в х оказалось значение переменной у, в у — значение переменной z, а в z — прежнее значение переменной х.
  7. Указать порядок выполнения операций в выражении

—a mod b+a div b*c.
  1. Записать операторы присваивания, которые переменной d присваивают:
  1. среднее арифметическое чисел x, y, z;
  2. расстояние между точками с координатами (x1, y1) и (x2, y2) (расстояние между точками вычисляется по формуле );
  3. площадь треугольника со сторонами a, b, c (использовать формулу Герона ).
  1. Какое значение будет иметь переменная х после выполнения операторов х:=10; х:=х+3?
  2. Чему равны значения переменных х и у после выполнения операторов х:=2; у:=5; х:=у; у:=х?
  3. Указать значение величины s после выполнения следующих операторов присваивания:

    а) s:=5;

    s:=57;

    в) s:=-7.5;

    s:=2*s;

    б) s:=6;

    s:=-5.2*2;

    s:=0;

    г) s:=45;

    k:=-25;

    s:=s+k;
  4. Указать значение величины х после выполнения следующих операторов присваивания:

    а) х:=10;

    х:=-10;

    В) х:=60;

    х:=х-1;

    х:=0;

    б) х:=17.5;

    х:=-2*х;


    г) х:=-50;

    k:=-25;

    х:=х+k;
  5. Указать значение величин s и k после выполнения следующих операторов присваивания:

    а) s:=14;

    k:=-3;

    d:=s+1;

    s:=d;

    k:=2*s;

    Б) s:=0;

    k:=30;

    d:=k-5;

    k:=2*d;

    s:=k-100;
  6. Указать значение вещественных величин a и b после выполнения следующих операторов присваивания:

    а) a:=5.8;

    b:=-7.9;

    b:=a;

    a:=b;

    б) a:=0;

    b:=-9.99;

    b:=a;

    a:=b;
  7. Если у — вещественная переменная, а n — целая, то какие из следующих операторов присваивания правильные, а какие нет и почему?
  1. y:=n+1; b) n:=y-1; c) n:=4.0; d) y:=trunс(y);

e) n:=n div 2; f) y:=y div 2; g) n:=n/2; h) n:=sqr(sqrt(n)).
  1. Правильны ли следующие операторы присваивания? Ответ обосновать.
  1. k:=k mod 3+k*sqr(5.2); b) x:=x*2 div 6+x/4.