..

Сайт города Попасная.
 

 

 

Интернет издания:

ПОПАСНЯНСКАЯ ПРАВДА

 



 

 

 

 

3. Операторы

3.1. Оператор присваивания

Оператор присваивания записывает в переменную значение выражения, в качестве которого может использоваться и константа, и переменная, и результат вычисления функции, и группа операций. Оператор имеет вид: переменная := выражение; Знак := называется операцией присваивания. Слева от операции присваивания должен указываться идентификатор одной переменной простого типа, справа - выражение в любом допустимом виде. Оператор присваивания выполняется следующим образом: сначала вычисляется значение выражения, после этого оно записывается в переменную, находящуюся слева от знака операции присваивания. Тип значения, расположенного справа от операции присваивания, должен совпадать с типом переменной. Преобразования типа при выполнении операции присваивания не выполняются, за исключением следующих случаев: допускается присваивать целое значение вещественной переменной и переменной любого целочисленного типа. Если в программе определены следующие переменные:

Var
nl:Integer;
n2:Word;
г:Real;
c,d:Char;
l:Boolean;
то допустимо выполнять операции присваивания:
nl:=n2;
30
nl:= n2 div 10;
nl:=sqr(n2*3);
r:=n2/10;
r:=nl;
r:=sqrt(n2);
c:='A';
l:=(nl<l) And (d>Ord(5));

При выполнении допустимого оператора n1:=n2 значение n2 может выходить за пределы типа Integer, при этом либо в n1 будет записано другое значение, например, -32768 вместо 32768, либо программа будет аварийно остановлена. Результат зависит от настройки опции (пункт Options главного меню) компилятора (подпункт Compile) "Range Checking". При выполнении оператора r:=n1 значение переменной n1 автоматически преобразуется к типу Real, после чего записывается в переменную r. В операторе n1:=n1+1 сначала вычисляется результат арифметического выражения n1+1, после чего он присваивается переменной n1; в результате значение переменной n1 увеличивается на 1. Выполнение остальных операторов пояснения не требуют. Приведенные ниже операторы не соответствуют правилам, принятым в Turbopascal: n1:= r; - переменной целого типа запрещается присваивать вещественное значение без преобразования типа; c:=n1; - переменной символьного типа запрещается присваивать числовое значение; n1:=n1/n2; - типичная ошибка: результатом такой операции деления всегда является вещественное значение, даже если числа делятся нацело.

Задания:

1. Какие из приведенных ниже операторов присваивания неверны?
Var
N,M:Byte;
N1,M1:ShortInt; А,В:Real;
S1,S2:Char;
Log:=Boolean;
Begin
N:=n1+M;
B:=S1+S2;
Log:= ('a' >'0') And True;
A:=Ord(Sl)-6;
Log:=(N='l') Xor (Sl='Stop' ); End.

2. Поменяйте значения двух переменных, используя дополнительную переменную.
3. Поменяйте значения двух переменных, не используя дополнительную переменную. Пример одной из возможных реализаций программы приведен ниже:
Var
First,Second:Byte;
Begin
{Заладим значения переменных прямо в программе.}
First:=l; Second:=2; {Добавим к первой переменой значение второй.}
First:=First+Second;
{Если теперь мы из получившейся суммы вычтем значение второй переменной, то останется значение первой переменной.}
Second:=First-Second;
{Теперь во второй переменной находится значение первой, а в первой - их сумма. Вычтем из первой переменной вторую.}
First:=First-Second; {Обмен значений переменных завершен.}
Write(First,Second);
End.

3.2. Оператор условия

Реализовать алгоритм с помощью последовательно выполняющихся операторов удается далеко не всегда. Рассмотрим, например, задачу выбора максимального из двух введенных чисел. Для ее решения необходимо сравнить эти числа и, в зависимости от результата сравнения, вывести на экран первое или второе число. Выбрать необходимое действие можно с помощью оператора условия, который имеет вид If условие Then Оператор1 Else Оператор2. Под условием понимается любое выражение логического типа. Если условие выполняется (значение выражения - true), то выполняется Оператор1, иначе Оператор2. Условный оператор реализует ветвление. If, Then и Else являются зарезервированными словами. Используем оператор условия в программе, определяющей максимальное число из двух введенных целых чисел.

Программа 3.1.

Var n1,n2:Integer;
Begin
Write('Введите два числа ');
Readln(n1,n2);
If nl>n2 Then Writeln('максимум = ',n1)
Else Writeln('максимум = ',n2);
End.

Условие, проверяемое в операторе
If n1>n2 Then Writelnl('максимум = ', n1)
Else Writeln('максимум = ', n2);

состоит в том, истинно ли утверждение, что значение переменной n1 больше, чем значение переменной n2. Если это так, то выполнится первый оператор - Writeln('максимум = ',n1), и на экран будет выведено значение переменной n1. Если же условие не выполняется, то есть n1 меньше или равно n2, то выполняется второй оператор - Writeln('максимум = ', n2); и на экран выводится значение переменной n2. Обратите внимание, что перед Else точка с запятой не ставится. В языке Pascal определено две разновидности (или формы) операторов условия. Рассмотренный оператор называется полным оператором. Сокращенный оператор условия имеет вид If условие Then оператор. Оператор, расположенный после слова Then, будет выполнен только при выполнении условия, иначе никакие действия не выполняются. После зарезервированных слов Then и Else разрешается помещать только по одному оператору.

Задания:

1. Внимательно изучите приведенную ниже программу и ответьте на вопрос.
Var A:Byte;
Begin
Writeln('?');
Readln(A);
A:=A mod 2;
If A<=0 Then Writeln ('да')
Else Writeln ('нет'); End.

Эта программа служит для:
а) определения того, что введенное число является положительным,
б) определения того, что введенное число является четным,
в) определения того, что введенное число является целым,
г) решения задачи, отличной от перечисленных выше задач.
2. Составьте программу, обеспечивающую ввод трех чисел и выводящую наименьшее из них.
Указание: сначала найдите минимум из первых двух чисел, а затем минимум из уже найденного минимума и третьего числа. Заметим, что данный способ можно использовать для отыскания минимума или максимума для произвольного количества чисел (метод текущего минимума или максимума).
3. Введите три числа. Выведите значения по убыванию.
Указание: воспользуйтесь алгоритмом сортировки.

 

Вернуться к оглавлению

 
Popasnaya.com.ua Web-Source 2003 - 2004 / babelyuk jr / All Rights Reserved