Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алгоритмизация и программирование. Практическое пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
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 заголовок блока описания переменных;
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]