Оператор является неделимым элементом программы, который дает возможность выполнять определенные алгоритмические действия. Отличием оператора, по отношению к другим элементам, является то, что под ним всегда подразумевается какое-то действие. В языке Паскаль операторы состоят из служебных слов. Операторы, используемые в программе, отделяются между собой и от других элементов программы символом ; . Все операторы языка Паскаль можно условно разбить на две группы:
структурированные.
Простые операторы – это операторы, не содержащие в себе других операторов. К ним относятся:
оператор присваивания ( := );
обращение к подпрограмме;
оператор безусловного перехода (GOTO);
пустой оператор.
Структурированные операторы – это операторы, которые содержат в себе другие операторы. К ним относятся:
составной оператор;
операторы условий (IF, CASE);
операторы цикла (FOR, WHILE, REPEAT);
оператор присоединения (WITH).
Оператор присваивания
С помощью этого оператора переменной или функции присваивается значение выражения. Для этого используется знак присваивания := , слева от которого записывается имя переменной, которой присваивается значение, а справа – выражение, значение которого вычисляется перед присваиванием. Пример:
Паскаль с Нуля. Переменные, Оператор присваивания, Оператор ввода. Урок 2
X := Y; Z := А + В; Res := (I>0) and (I < 100); I := Sqr(J) + I * К;
Оператор безусловного перехода
Goto – зарезервированное слово в языке Паскаль. [метка] – это произвольный идентификатор, который позволяет пометить некий оператор программы и в дальнейшем сослаться на него. Метка располагается перед помеченным оператором и отделяется от него двоеточием : . Один оператор можно помечать несколькими метками. Они так же отделяются друг от друга : . Перед тем как использовать метку в разделе оператора ее необходимо описать в разделе label (раздел описания). Пример:
procedure MyProc; label Lbl1, Lbl2, met1; … begin … Lbl1: … goto met1; Lbl2: … goto Lbl1; Met1: … end;
Действие goto передает управление соответствующему помеченному оператору.
При использовании меток нужно руководствоваться следующими правилом: метка должна быть описана в разделе описаний и все метки должны быть использованы. Оператор goto противоречит принципам технологии структурного программирования. Современные языки программирования не имеют в своем составе такого оператора, и в его использовании нет необходимости.
Использовать оператор goto следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. Безусловный переход можно осуществлять далеко не из каждого места программы и не в любое место программы. Так, нельзя с помощью этого оператора перейти из основной программы в подпрограмму или выйти из подпрограммы, не рекомендуется осуществлять переход внутрь структурированного оператора, т. к. он может дать неправильный результат, и т. д.
Пустой оператор
Пустой оператор не выполняет никакого действия и никак не отображается в программе (за исключением, быть может, метки или точек с запятыми, отделяющих пустой оператор от предыдущих или последующих операторов). Он может потребоваться для осуществления на него безусловного перехода.
Информатика 8 класс: Оператор присваивания и выражения в Паскале
Составной оператор
Составной оператор – это последовательность произвольных операций в программе, заключенная в так называемые операторные скобки Begin-End . Синтаксис:
begin [оператор1]; [оператор2]; … [операторN]; end;
Он может потребоваться в тех случаях, когда в соответствии с правилами построения конструкций языка можно использовать один оператор, а выполнить нужно несколько действий. В такой составной оператор входит ряд операторов выполняющих требуемые действия.
В дальнейшем везде, где будет указываться, что можно использовать один оператор, им может быть и составной оператор.
Отдельные операторы внутри составного оператора отделяются друг от друга точкой с запятой.
Условный оператор IF
Условный оператор IF позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор — это средство ветвления вычислительного процесса. Структура условного оператора имеет следующий вид:
if [условие] then [оператор1] else [оператор2];
где if, then, else — зарезервированные слова (если, то, иначе);
условие – произвольное выражение логического типа;
оператор1, оператор2 – любые операторы языка Паскаль.
Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение [условие]. Если результат есть True (истина), то выполняется [оператор1], а [оператор2] пропускается; если результат есть False (ложь), наоборот, [оператор1] пропускается, а выполняется [оператор2]. Например:
var X, Y, Max: Integer; begin if X > Max then Y := Max else Y := X; … end;
При выполнении этого фрагмента переменная Y получит значение переменной X, если только это значение не превышает Mах, в противном случае Y станет равно Mах.
Обратите внимание, что перед else не должно быть точки с запятой.
Условными называются выражения, имеющие одно из двух возможных значений: истина или ложь. Такие выражения чаще всего получаются при сравнении переменных с помощью операций отношения =, <>, >, >=,
if (а > b) and (b <> 0) then …
В отличие от других языков программирования в Object Pascal приоритет операций отношения меньше, чем у логических операций, поэтому отдельные составные части сложного логического выражения заключаются в скобки.
Например, такая запись предыдущего оператора будет неверной:
if a > b and b <> 0 then …
С учетом приоритета операций компилятор будет транслировать такую строку как:
if a > (b and b) <> 0 then …
Часть else [оператор2] условного оператора может быть опущена. Тогда при значении True условного выражения выполняется [оператор1], в противном случае этот оператор пропускается:
var X, Y, Max: Integer; begin if X > Мах then Мах := X; Y := X; end;
В этом примере переменная Y всегда будет иметь значение переменной X, а в Mах запоминается максимальное значение X. Вслед за else может идти другой оператор if. Таким образом, можно составить множественное ветвление:
if [условие1] then … else if [условие2] then … else if [условие3] then … else …
Оператор выбора CASE
Оператор реализует множественное ветвление. В определенных ситуациях case использовать удобнее, чем if. Синтаксис оператора:
case [выражение] of [выражение_1]:[оператор_1]; [выражение_2]:[оператор_2]; … [выражение_N]:[оператор_N]; else [оператор]; end;
Выполнение операторов зависит, будет ли [выражение] равно [выражение_1], [выражение_2] или [выражение_N]. Например, [оператор_2] будет выполнен только в случае, когда [выражение]=[выражение_2]. Если ни одно из условий не выполняется, то будет выполнен [оператор], следующий за блоком else. Если блока else нет, то оператор case просто пропускается. Оператор case эквивалентен следующему оператору if:
if [выражение]=[выражение_1] then [оператор_1] else if [выражение]=[выражение_2] then [оператор_2] … else if [выражение]=[выражение_N] then [оператор_N] else [оператор]
Операторы цикла
Циклической алгоритмической структурой считается такая структура, в которой некоторые действия выполняются несколько раз. В программировании имеются два вида циклических структур: цикл с параметром и итерационный цикл.
В цикле с параметром всегда имеются так называемые параметры цикла. Иногда цикл с параметром называют регулярным циклом. Характерной чертой является то, что число циклов и повторений можно определить до выполнения цикла.
В итерационном цикле невозможно определить число циклов до его выполнения. Он выполняется до тех пор, пока выполняется условие продолжение цикла.
В языке Паскаль имеются три оператора, реализующих циклические вычислительные структуры:
счетный оператор for. Он предназначен для реализации цикла с параметром и не может быть использован для реализации итерационного цикла;
оператор цикла с предусловием while;
оператор цикла с постусловием repeat.
Последние два ориентированы на реализацию итерационного цикла, однако их можно использовать и для реализации цикла с параметром.
Оператор FOR
for [параметр] := [начальное значение] to [конечное значение] do [оператор]
For, to, do – служебные слова.
Параметр – переменная порядкового типа.
Начальное и конечное значения должны быть того же типа, что и параметр.
На первом шаге параметр цикла принимает начальное значение затем осуществляется проверка: параметр цикла меньше или равен конечному значению. Это условие является условием продолжения цикла. Если выполнено, то цикл продолжает свою работу и выполняется [оператор], после чего параметр цикла увеличивается (уменьшается) на единицу.
Затем с новым значением параметр цикла, проверяется условие продолжения цикла. Если оно выполняется, то действия повторяются. Если условие не выполняется, то цикл прекращает свою работу.
Оператор for существенно отличается от аналогичных операторов в других языках программирования. Отличия следующие:
Оператор может не выполниться ни разу, поскольку проверка условия продолжения цикла выполняется до тела цикла;
Шаг изменения параметра цикла постоянный и равен 1;
Тело цикла в операторе for представлено одним оператором. В том случае, если действие тела цикла требует более одного простого оператора, то эти операторы необходимо превратить в один составной оператор посредством операторных скобок (BEGIN-END);
Параметр цикла может быть только переменой порядкового типа.
Цикл for может уменьшать параметр. В этом случае синтаксис следующий:
for [параметр] := [конечное значение] downto [начальное значение] do [оператор]
Оператор WHILE (цикл с предусловием)
while [условие] do [оператор]
While, do – служебные слова,
условие – логическое выражение.
Оператор while работает следующим образом: вначале работы проверяется результат логического условия. Если результат истина, то выполняется оператор, после которого осуществляется возврат на проверку условия с новым значением параметров в логическом выражении условия. Если результат ложь, то осуществляется завершение цикла.
При работе с while надо обратить внимание на его свойства:
условия, использованные в while, являются условием продолжения цикла;
в теле цикла всегда происходит изменение значения параметра входящего в выражение условия;
цикл while может не выполняться ни разу, поскольку проверка условия в продолжение цикла выполняется до тела цикла.
В примере ниже выполняется обработка записей формы. Пока не достигнуто окончание набора данных формы, выполнять обработку:
while Self.EOF = False do begin … Self.MoveNext; end;
Оператор REPEAT (цикл с постусловием)
repeat [тело цикла]; until [условие];
Оператор repeat работает следующим образом: сначала выполняются операторы тела цикла, после чего результат проверяется логического условия. Если результат ложь, то осуществляется возврат к выполнению операторов очередного тела цикла. Если результат истина, то оператор завершает работу.
Оператор repeat имеет следующие особенности:
в repeat проверяется условие завершения цикла и если условие выполняется, то цикл прекращает работу;
тело цикла всегда выполняется хотя бы один раз;
параметр для проверки условия изменяется в теле цикла;
операторы тела цикла не надо заключать в операторские скобки (BEGIN-END), при этом роль операторных скобок выполняют repeat и until.
Прерывание цикла
Любой из циклов можно прервать оператором break.
while [условие] do begin … if [условие выхода из цикла] then Break; … end;
Источник: dataexpress.wiki
5. Оператор присваивания
Выполняя первую команду переменной (a) присваивается значение (2) и это значение записывается в ячейку оперативной памяти.
Далее переменной (b) присваивается значение (4), оно также записывается в оперативную память.
В третье строке переменной (а) присваивается новое значение, вычислим:
Теперь в оперативной памяти хранится значение переменной (a=14). Предыдущее значение (2) из памяти стёрлось.
Выполним последнюю строку данного нам алгоритма. (Помним о том, что на данный момент в оперативной памяти хранятся данные (a=14), (b=4).)
Источник: www.yaklass.ru
21)Оператор присваивания.
Важнейшим из простых операторов Паскаля является оператор присваивания. Он позволяет изменять значение переменных в процессе выполнения программы без чего не может обойтись почти ни один алгоритм. Синтаксическая структура этого оператора:
Оператор присваивания состоит из левой и правой частей, которые разделяются знаками присваивания (:=). Левая часть — это переменная любого типа, правая часть — выражение, совместимое по типу с переменной левой части. При выполнении этого оператора вычисляется значение выражения правой части и это значение становится значением переменной левой части. Таким образом, присваивание, это — «передача значения» справа налево.
Следует усвоить, что присваивание не является обычным равенством (почему и используется знак присваивания, отличный от равенства). Действительно, пусть Х — переменная типа integer. Тогда при выполнении последовательности присваиваний Х:=2; Х:=Х+5; переменная Х получит значение 7, в то же время, очевидно, что второе присваивание не является равенством. Заметим, что присваивание такого вида часто используется в программах, и в Турбо Паскале предусмотрен сокращенный вариант записи этих присваиваний (стандартные процедуры inc и dec):
inc(X,j) ~ X:=X + j; dec(X,j) ~ X — j; где j — любое выражение типа integer.
Если j=1, возможна и ещё более короткая запись: inc(X) или dec(X).
Совместимость левой и правой частей присваивания по типу означает либо равенство типов, либо случаи, когда тип выражения правой части автоматически преобразуется к типу левой части. Эти случаи автоматического преобразования типов (для известных нам стандартных типов) исчерпываются следующими:
Тип переменной левой части real, а тип выражения правой части — integer, т.е. преобразование вида real integer.
Тип переменной левой части string, а тип выражения правой части — char, т.е. преобразование вида string char.
Для согласования типа выражения с типом переменной левой части присваивания иногда могут потребоваться явные преобразования типов, которые можно выполнить с помощью стандартных функций Паскаля.
18)Композиция условий и операторов.
Простые операторы, несмотря на свою важность, недостаточны для того, чтобы представлять любые алгоритмы задач. Их использование подобно прямолинейному движению автомобиля на трассе. Очевидно, что вы не сможете далеко уехать, если не будете реагировать на светофоры и другие сигнальные знаки, в том числе указывающие на возможные разветвления на трассе. Аналогично обстоит дело и в программировании: прежде чем выполнять соответствующие действия бывает совершенно необходимо проанализировать (и учесть) те или иные условия, представляемые в Паскале как выражения типа Boolean.
Особое значение приобретают сложные операторы, представляющие композиции условий и операторов (простых или сложных). В Паскале имеются две группы таких композиций (операторы с условиями):
операторы условного перехода (if-then-else и if-then) и
операторы итерационных циклов (while- do и repeat-until).
Каждая из этих групп использует композицию из одного условия и одного или двух операторов и образует новый вид операторов, который способен выбирать (по значению условия) одно из двух действий, либо выполнять повторение (итерацию) действия. Такие композиции весьма важны и без них практически не обходится ни один алгоритм.
2. Операторы условного перехода.
Операторы условного перехода имеют следующую синтаксическую структуру:
Оператор if-then-else выполняется следующим образом: вначале вычисляется значение условия (проверяется условие). Если это значение true — выполняется оператор1, а если значение условия равно false — выполняется оператор2. В качестве оператора1 или оператора2 может быть любой оператор Паскаля (простой или сложный), однако это должен быть один оператор. Если по логике алгоритма необходимо выполнить последовательность из нескольких операторов вместо оператора1 или оператора2, то должен быть использован составной оператор, образуемый заключением последовательности операторов в операторные скобки begin end. Скобки begin end превращают любую последовательность операторов в один оператор.
Оператор if-then является сокращенной формой условного оператора, рассчитанного на тот случай, когда в ветви else используется пустой оператор.
Пустой оператор является одним из простых операторов: он не производит никаких действий и обозначается точкой с запятой (;).
После оператора ветви then (перед ключевым словом else) не должна стоять точка с запятой, т.к. она будет восприниматься как дополнительный (пустой) оператор, что нарушит синтаксическую структуру оператора if-then-else!
В качестве оператора1 или оператора2 в if-then-else может быть использован другой оператор if-then-else. Это — случай вложенных операторов if-then-else. Вложенные операторы if-then-else существенно усложняют читаемость программы, они могут также приводить к неоднозначности их чтения, поэтому следует по возможности избегать использования вложенных операторов if-then-else. Во многих случаях они могут быть заменены оператором выбора из нескольких альтернатив, который мы рассмотрим позднее.
Помимо операторов условного перехода в Паскале имеется также оператор безусловного перехода, имеющий синтаксическую структуру goto метка>.
Оператор goto относится к числу нежелательных для использования операторов, т.к. способен серьёзно усложнить структуру программы, сделав её подобной «блюду спагетти». По этой причине мы не останавливаемся подробнее на этом операторе. Практически во всех случаях можно избежать использования goto , получая хорошо структурированные программы. Исключение составляет только безусловные переходы, для которых в Турбо Паскале предусмотрены специальные формы:
переход к концу программы — halt;
выход из процедуры или функции — exit;
выход из цикла — break;
переход к началу цикла — continue.
Источник: studfile.net
Оператор присваивания
В качестве переменной может быть простая переменная, разыменованный указатель, переменная с индексами или компонент переменной типа запись. Символ := называется значком присваивания. Выражение должно быть совместимо по присваиванию с переменной.
Оператор присваивания заменяет текущее значение переменной значением выражения.
i := i + 1; // увеличивает значение переменной i на 1
В PascalABC.NET определены также операторы присваивания со значками += , -= , *= , /= . Для числовых типов действие данных операторов описано здесь. Кроме того, использование операторов += и *= для строк описано здесь и операторов += , -= и *= для множеств — здесь. Их действие для процедурных переменных описано здесь.
Операторы += , -= , *= , /= имеют следующий смысл: a #= b означает a := a # b , где # — знак операции + , — , * , / .
a += 3; // увеличить a на 3
b *= 2; // увеличить b в 2 раза
Опертор /= неприменим, если выражение слева — целое.
Операторы += , -= , *= , /= могут также использоваться со свойствами классов соответствующих типов в левой части.
Источник: pascalabc.net
Паскаль — Урок 2: Основные операторы, простые действия
В прошлом, первом уроке о паскале мы обсудили структуру программы и самые первые операторы, а также служебные слова. Сегодня я расскажу про основные операторы, с помощью которых уже можно написать первую программу.
Оператор присваивания
Первым, что мы рассмотрим — это оператор присваивания. Без этого оператора мы не сможем обойтись дальше.
Его функция — это присваивания значения переменной после каких либо действий или значения другой переменной.
X-это переменная, пусть она будет равна 2, в программе это будет выглядеть так:
Я думаю, что Вы уже заметили, что на деле она выглядит, как двоеточие со знаком равно (:=).
Операторы сложения, вычитания и умножения
На второе у нас пойдут операторы сложения, вычитания и умножения.
Сложение
С помощью данного оператора мы можем сложить два числа, в программе он пишется, как «+» без кавычек:
Тут мы переменной X присвоили 11, полученное сложением 5 и 6.
Вычитание
В этом операторе тоже ничего сложного нет, он выполняет вычитание двух чисел. В программе обозначается, как «-» без кавычек:
Выше мы x присвоили 3, полученное действием вычитания чисел 7 и 4.
Умножение
Данный оператор умножает два числа друг на друга, обозначается, как «*» также без кавычек:
В примере мы нашей переменной X присвоили число 16, полученное умножением восьми на два.
Операторы деления
Вы уже заметили, что я написал не оператор деления, а операторы. Это связано с тем, что операторов деления — три, и все они работают по разному и выполняют разные действия.
1. Простое деление
Простое деление выполняется с помощью оператора вида /, он просто делит одно число на другое. Данный оператор работает только с типом real!
x:=48 / 5;
В примере мы x присвоили 9,6, посредством деления 48 на 5.
2. Целочисленное деление
Данное делит число только на цело, то есть при таком способе деления невозможно получить десятичную или периодическую дробь. В программе пишется, как «div» без кавычек. Данный оператор работает только с типом integer!
x:=48 div 5;
В данном примере x у нас будет равно в итоге 9, а не 9,6, как это должно получиться при нормальном обычном делении.
3. Получение остатка
Данный способ позволяет получить не само число, которое должно получится, а остаток. Допустим при делении 48 на 5 мы получим 3 при таком способе деления. В программе обозначается, как «mod» без кавычек:
x:=48 mod 5;
Простейший калькулятор
Теперь давайте попробуем написать простейший калькулятор, который выполняет с нашими двумя числами все действия сразу.
var a, b, sum, raz, pro, c: integer;
del: real;
begin
readln (a, b); // считываем два числа
sum:=a+b; // складываем числа
raz:= a-b; // вычтаем
pro:=a*b; // умножаем
del:=a/b; // выполняем простое деление
c:=a div b; //делаем целочисленное деление
a:= a mod b; // находим остаток, при этом меняем значение a
writeln (‘сумма — ‘, sum); // выводим сумму
writeln (‘разность — ‘, raz); // выводим разность
writeln (‘произведение — ‘, pro); // выводим произведение
writeln (‘простое деление — ‘, del); // выводим обычное деление
writeln (‘целочисленное деление — ‘, c); // выводим результат целочисленного деления
writeln (‘остаток — ‘, a); // выводим остаток
end.
Итак, сегодня мы познакомились с операторами сложения, вычитания, умножения, тремя операторами деления, а также оператором присваивания. После сегодняшнего урока вы уже можете создавать свои простейшие программы на счёт.
Теперь я Вам предлагаю скачать исходник данной программы, в котором всё отмечено и подсвечено: [attachment=15:mini-kalkulyator-bez-vybora.pas]
Источник: zedpost.ru