Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Алгоритмизация и программирование. Практическое пособие
.pdf
21
Рассмотрим подробно работу операторов этой программы:
1) program My4; — оператор дает программе имя My4;
2) uses CRT; — блок подключения модуля для организации
ввода и вывода в текстовое окно;
3) const — заголовок блока назначения констант;
4) a=’Маша’; — оператор назначения константе значения в
виде строки символов;
5) var — заголовок блока описания переменных;
6) b:char; — оператор описания переменной символьного
типа;
7) c,d:string; — оператор описания двух переменных
строкового типа неопределенной длины;
8) f:string[3]; — оператор описания строковой пере-
менной длиной три символа;
9) begin — заголовок блока операторов;
10) write(’Введите символ ’); — оператор вывода
на экран поясняющего текста;
11) readln(b); — оператор ввода с клавиатуры символа
(одного), который станет значением символьной переменной b;
12) c:=’Вася’; — оператор присваивания значения строко-
вой переменной c;
13) d:=a+b+c; — оператор присваивания значения строко-
вой переменной d; строка d формируется следующим образом: к
символьной строке ’Маша’ дописывается символ b, введенный с
клавиатуры, а затем — строка ’Вася’. Допустим, мы ввели оператором ввода с клавиатуры символ +. Тогда значение строковой
переменной d будет ’Маша+Вася’;
14) writeln(’получилось ’,d); — оператор вывода на
экран поясняющего текста и значения строковой переменной d;
15) f:=#136; — оператор присваивания строковой перемен-
ной f значения символа под номером 136 из кодовой таблицы;
16) f:=f+c; — оператор присваивания значения строковой
переменной f, строка формируется следующим образом: к символу, который был значением переменной после предыдущего
присваивания добавится строка символов из переменной c, а затем из полученной строки вырежут первые три символа;
17) writeln(’а теперь ’, f); — оператор вывода на
экран поясняющего текста и значения строковой переменной f;
18) end. — конец операторного блока и программы в целом.

22
const
a=True;
b=False;
Заголовок блока констант
Оператор назначения константе a значения
True (истина)
Оператор назначения константе b значения
False (ложь)
Задание 6
1. Наберите программу My4 из примера 4, сохраните ее.
2. Запустите программу My4 на выполнение. Введите значе-
ние переменной в окне ввода. Изучите работу операторов ввода
и вывода.
3. Постройте по аналогии с My4 свою программу My4а. Введите в программу один оператор назначения строковой константы, операторы описания символьной переменной, строковой переменной неограниченной длины и строковой переменной ограниченной длины, равной 4.
4. Организуйте ввод с клавиатуры значения одной символьной
переменной, затем — значения одной строковой переменной.
5. Сложите строковую константу и символьную переменную,
присвойте значение строковой переменной. Выведите ее значение на экран.
6. Присвойте строковой переменной с фиксированной длиной
значение из кодовой таблицы. Выведите значение переменной
на экран.
7. Добавьте к этой переменной другую строковую переменную. Выведите новое значение на экран.
7. Переменные логического типа.
Операции с ними
7.1. Константы и переменные логического типа могут принимать два значения: True и False (истина или ложь). Этот тип
переменных еще называют Булевским в честь известного математика Джорджа Буля. В памяти логические переменные занимают
наименьшее место из всех типов данных.
7.2. Назначение логических констант производится в блоке назначения констант const:

23
> < >=
<= = <>
больше
меньше
больше
или равно
меньше
или рав-
но
равно
не равно
a:=2.73;
f:=a>2;
Переменной a вещественного типа присваивается
значение 2.73
Логической переменной f присваивается значение
True (истина), так как 2.73>2
Описание логических переменных производится в том же бло-
ке описаний var, что и переменных других типов:
f,g:Boolean;
7.3. Значение логической переменной может быть введено с
помощью оператора ввода read или назначено с помощью оператор присваивания. Справа от знака присваивания должно стоять логическое выражение.
Логическое выражение состоит из логических констант, пе-
ременных и отношений, соединенных знаками логических операций и скобками. (Примеры приведены ниже.)
Отношение состоит из двух арифметических выражений и
знака отношения между ними.
Знаки отношений:
7.4. Примеры отношений:
a>2;
b=c;
sin(d)<=f/3+1;
abs(x)<>y;
При известных значениях числовых переменных a, b, c, d,
x, y все перечисленные равенства и неравенства будут либо ис-
тинны либо ложны. Поэтому значения таких отношений могут
быть присвоены логическим переменным, например:

24
a:=False;
b:=not a;
c:=a and b;
d:=(a or c) and b
Переменной a будет присвоено значение False (ложь)
Переменной b будет присвоено логическое значение, противоположное
значению a, т. е. True (истина)
Переменным с и d , в соответствии с
правилами логических операций «и»,
«или» будет присвоено значение
False
program My5;
uses CRT;
var
a,b:integer;
c,d,f:Boolean;
begin
a:=12;
Оператор назначения имени
Блок подключения модуля
Заголовок блока переменных
Оператор описания переменных
Оператор описания переменных
Заголовок блока операторов
Оператор присваивания
not
and
or
Логическое отрицание «не»
Логическое «и»
Логическое «или»
7.5. В логическом выражении может участвовать несколько
логических переменных и констант, тогда они соединяются знаками логических операций:
Последовательность выполнения логических операций:
1 — not;
2 — and;
3 — or;
4 — отношения.
Порядок выполнения операций: сначала производятся действия
в круглых скобках, потом операции сравниваются попарно и вы-
полняется обладающая более высоким приоритетом. Отношения
заключают в круглые скобки, так как у них низкий приоритет.
7.6. Примеры операторов присваивания с логическими выражениями:
Пример 5:

25
b:=-3;
c:=a<b;
writeln(’c=’,c);
d:=not c;
writeln(’d=’,d);
f:=(a>=0) or (b>=0);
writeln(’f=’,f);
end.
Оператор присваивания
Оператор присваивания
Оператор вывода
Оператор присваивания
Оператор вывода
Оператор присваивания
Оператор вывода
Конец программы
Рассмотрим работу операторов данной программы:
1) program My5; — оператор, именующий программу;
2) uses CRT; — блок подключения модуля для организации
ввода и вывода в текстовое окно;
3) var — заголовок блока описания переменных;
4) a,b:integer; — описание двух целых переменных;
5) c,d,f:Boolean; — описание трех логических переменных;
6) begin — начало операторного блока;
7) a:=12; — присваивание значения целой переменной;
8) b:=-3; — присваивание значения целой переменной;
9) c:=a<b; — оператор присваивания значения логической
переменной c. Сравниваются числа a и b, в нашем примере не-
равенство неверно, следовательно, логической переменной c будет присвоено значение False (ложь);
10) writeln(’c=’,c); — оператор вывода на экран поясняющего текста и значения логической переменной c;
11) d:=not c; — оператор присваивания логической переменной d значения, обратного значению логической переменной
c, в данном случае получит значение True (истина);
12) writeln(’d=’,d); — оператор вывода на экран поясняющего текста и значения логической переменной d;
13) f:=(a>=0) or (b>=0); — оператор присваивания
значения логической переменной f. Первое неравенство в скобках истинно, так как a=12, а второе ложно, так как b=-3. По
правилам логических операций значение всего логического выражения и, соответственно, переменной f будет True (истина);
14) writeln(’f=’,f); — оператор вывода на экран поясняющего текста и значения логической переменной f;
15) end. — конец операторного блока и программы в целом.

26
Задание 7
1. Наберите программу My5 из примера 5, сохраните ее.
2. Запустите выполнение программы My5. Изучите работу опе-
раторов вывода.
3. Постройте по аналогии с My5 свою программу My5а. Вве-
дите в программу операторы описания целых, вещественных и
логических переменных.
4. Введите с помощью операторов ввода численные значения
для целых и вещественных переменных.
5. Составьте из числовых переменных отношения и присвойте
логическим переменным значения, используя эти отношения и
знаки логических операций. Выведите значения полученных логических переменных на экран.
8. Массивы переменных
8.1. Если с переменными одного типа нужно проделать одни и
те же действия, то в этом случае удобно использовать специальный тип данных — массив. Всему набору таких данных присваивается одно имя, а переменные в наборе нумеруются, номер указывается в прямоугольных скобках. Каждый из элементов массива является переменной заданного типа с той лишь разницей, что
к простой переменной обращаются только по имени (например,
а), а к элементу массива — по имени и по номеру:
a[1], a[2], a[3], a[4], a[5] …
8.2. Переменные типа массива описываются следующим образом:
x,y:array[1..7] of integer; ,
где x,y — имена массивов, служебное слово array означает
массив, 7 — число переменных в каждом из двух массивов, of
integer — означает, что каждый элемент массива является це-
лой переменной. Операторы описания массивов отводят в оперативной памяти место для размещения заданного количества переменных заданного типа. Значения элементы массива получают
так же, как обычные переменные, — с помощью операторов ввода или операторов присваивания.

27
program My6;
uses CRT;
var
a:real;
c:array[1..3] of real;
begin
write(’Ввод 3 чисел ’);
readln (c[1],c[2],c[3]);
a:=c[1]+c[2]+c[3];
writeln(’сумма ’,a);
end.
Оператор назначения имени
Блок подключения модуля
Заголовок блока переменных
Оператор описания переменных
Оператор описания массива
Заголовок блока операторов
Оператор вывода
Оператор ввода
Оператор присваивания
Оператор вывода
Конец программы
8.3. Каждый элемент массива может неоднократно использоваться в операторах ввода, вывода или присваивания как обычная
переменная, например:
x[1]:=4;
y[3]:=x[1]+125;
read (x[2],x[3],x[4]);
write (x[1],y[3]);
Пример 6:
Рассмотрим работу операторов данной программы:
1) program My6; — оператор, именующий программу;
2) uses CRT; — блок подключения модуля для организации
ввода и вывода в текстовое окно;
3) var — заголовок блока описания переменных;
4) a:real; — описание вещественной переменной;
5) c:array[1..3] of real; — описание массива из
трех вещественных переменных;
6) begin — начало операторного блока;
7) write(’Ввод 3 чисел ’); — оператор вывода текста
подсказки на экран;
8) readln(c[1],c[2],c[3]); — оператор ввода с кла-
виатуры трех значений для трех элементов массива;
9) a:=c[1]+c[2]+c[3]; — оператор присваивания значения вещественной переменной a. Значение переменной a вычисляется как сумма значений трех элементов массива c;
10) writeln(’сумма ’,a); — оператор вывода на экран
поясняющего текста и значения вещественной переменной a;
11) end. — конец операторного блока и программы в целом.

28
Задание 8
1. Наберите программу My6 из примера 6, сохраните ее.
2. Запустите выполнение программы My6. Изучите работу опе-
раторов ввода и вывода.
3. По аналогии с программой My6 напишите программу
My6а. Постройте операторы описания целой переменной и мас-
сива из шести целых переменных.
4. Введите с помощью операторов ввода численные значения
для всех элементов массива.
5. Присвойте целой переменной значение, равное сумме четных элементов массива минус сумма нечетных элементов. Выведите полученное значение на экран.
9. Условные операторы
Условный оператор реализует разветвление алгоритма. Снача-
ла проверяется логическое условие. Если оно выполнено, производится одно действие, если не выполнено — другое действие
(или никакого). Существуют три разновидности условных операторов:
1) урезанный — если условие выполнено, то производится заданное действие, если нет — то данный оператор не производит
никаких действий; управление передается следующему за условным оператору программы:
if a>0 then
b:=1;
После служебного слова if (если) располагается условие, после служебного слова then (то) — выполняемый оператор. В
данном примере, если численная переменная a больше нуля, то
переменной b будет присвоено значение 1. Если a меньше или
равна нулю, никаких действий произведено не будет, программа
перейдет к выполнению следующего оператора;
2) полный — если условие выполнено, то производится первое
действие, если нет — второе:
if a>0 then
b:=1
else
b:=-2;

29
Внимание! Перед служебным словом else (иначе) в полном
варианте условного оператора точка с запятой не ставится, она
ставится лишь в конце всего оператора.
В этом примере, если численная переменная a больше нуля, то
переменной b будет присвоено значение 1, иначе переменной b
будет присвоено значение — 2;
3) многоальтернативный — начинается со служебного слова
case (случай), организуется с помощью специальной вспомогательной переменной, в случае принятия ею разных значений выполняются разные действия:
case a of
1:b:=0;
4:b:=-100;
5:c:=15;
end;
В этом примере мы используем вспомогательную переменную
а целого типа. Если ее значение равно 1, то будет выполнен оператор присваивания переменной b значения 0, если значение a
равно 4, то будет выполнен оператор присваивания переменной b
значения -100, если значение a равно 5, то будет выполнен оператор присваивания переменной c значения 15. Служебное слово end; в данном случае не является концом программы, а показывает окончание оператора case, состоящего из нескольких
возможных операторов.
В рассматриваемом примере существуют три варианта команд
в зависимости от значения переменной a, с помощью оператора
case можно реализовывать любое конечное количество альтернатив. Кроме того, оператор case можно дополнить альтернативой else и разместить после нее оператор, который будет выполняться, если вспомогательная переменная не примет ни одного из перечисленных значений:
case a of
1:b:=0;
4:b:=-100;
5:c:=15;
7:c:=0;
else
b:=-1;
end;

30
program My7;
uses CRT;
var
a,b,c:real;
begin
write(’Ввод 2 чисел ’);
readln(a,b);
if a>b then
c:=a
else
c:=b;
writeln(’Максимум =’,c);
end.
Оператор назначения имени
Блок подключения модуля
Заголовок блока переменных
Оператор описания переменных
Заголовок блока операторов
Оператор вывода
Оператор ввода
Условный оператор
Оператор присваивания
Оператор присваивания
Оператор вывода
Конец программы
Если переменная a не примет ни одно из значений 1, 4, 5,
7, то будет выполнен оператор, размещенный после служебного
слова else.
В первых двух примерах в качестве возможных операторов
выбраны операторы присваивания. В общем случае в состав оператора case могут входить любые операторы языка Паскаль.
Вспомогательная переменная a в нашем примере была целого типа, поэтому список возможных значений — это числа. Если
в качестве вспомогательной взять символьную переменную g,
то вместо чисел 1, 2, 5, 7 нужно было взять символы в кавычках:
case g of
’ч’:b:=0;
’3’:write(Введите число );
’+’:read (c);
’х’:b:=b+1;
end;
Пример 7:
Рассмотрим работу операторов данной программы:
1) program My6; — оператор, именующий программу;
2) uses CRT; — блок подключения модуля для организации
ввода и вывода в текстовое окно;
3) var — заголовок блока описания переменных;
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
