- •Конспект лекций
- •1.4 Общая структура программы
- •1.5 Стандартные процедуры и функции
- •1.6 Процедуры ввода/вывода
- •2. Простые типы данных
- •2.1 Целые типы
- •2.2 Вещественные типы
- •2.3 Cимвольный тип данных
- •2.4 Логический тип данных.
- •2.5 Ограниченные типы
- •2.6 Перечислимые типы
- •2.7 Описание типов
- •2.8 Преобразование типов
- •2.9 Порядок вычисления выражений
- •3. Операторы языка Паскаль
- •3.1 Оператор присваивания
- •3.2 Составной оператор
- •3.3 Условный оператор
- •3.4 Оператор выбора case
- •3.5 Оператор цикла с параметром (цикл for)
- •3.6 Оператор цикла с предусловием (цикл while)
- •1 Вариант:
- •2 Вариант:
- •3 Вариант:
- •3.7 Оператор цикла с постусловием (цикл repeat)
- •3.8 Вложенные циклы
- •3.9 Оператор перехода goto
- •4. Массивы
- •4.2 Сортировка элементов массива
- •4.3 Многомерные массивы
- •5. Подпрограммы (процедуры и функции)
- •5.1 Процедуры
- •5.2 Функции
- •5.3 Области действия имен
- •5.4 Параметры процедур и функций
- •5.5 Побочные эффекты при использовании подпрограмм
- •5.6 Передача массивов в подпрограммы
- •5.7 Параметры-костанты
- •5.8 Массивы открытого типа
- •5.9 Рекурсия в подпрограммах
- •6. Строковый тип данных
- •6.1 Описание строк
- •6.2 Операции со строками
- •6.3 Процедуры и функции для работы со строками
- •7. Стандартные модули Турбо-Паскаля
- •7.1 Модули турбо3 и graph3
- •7.2 Модуль overlay
- •7.3 Модуль dos
- •7.4 Модуль system
- •7.5 Модуль printer
- •7.6 Модуль crt
- •7.7 Модуль graph
- •8. Записи
- •8.1 Определение записи
- •8.2 Оператор над записями
- •8.3 Вложенные записи
- •8.4 Массив записей
- •8.5 Записи с вариантами
- •9. Файлы
- •9.1 Определение файла
- •9.2 Процедуры и функции для работы с файлами
- •9.3 Нетипизированные файлы
- •10. Интегрированная среда Турбо Паскаля
- •10.1 Как начать работу с Турбо Паскалем
- •10.2 Ваша первая программа
2.9 Порядок вычисления выражений
Порядок выполнения операций, входящих в выражения, определяется приоритетом операций. Для изменения порядка вычисления используются круглые скобки.
Приоритет операций:
вычисления в круглых скобках ( )
вычисления значений функций
унарные операции not
операции типа умножение *, /, div, mod, and
операции типа сложение +, -, or, xor
операции сравнения >, <, <=, >=, =, <>
Следует учесть, что в отличие от многих других языков программирования в Турбо Паскале логические операции имеют более высокий приоритет, чем операции отношения. В связи с этим, в сложных логических выражениях обычно необходимо расставлять скобки. Если, например, b и с имеют тип INTEGER , то выражение
а = b and с < d
вызовет сообщение о синтаксической ошибке, так как сначала выполнится операция b and с. Правильным будет выражение:
(а = b) and (с < d)
Задачи для самоконтроля
2.1 Вычислить значения выражений
а) 20 div 6; б) 20 mod 6;
в) 2 div 5; г) 2 mod 5;
д) 4 div 0; е) 2.0 mod 2.
2.2. а) Преобразовать арифметическое выражение в линейную форму записи, пригодную для ввода в компьютер. Использовать следующие обозначения операций: умножение *, деление /, возведение в степень ^, т.е. x3 = x^3.
б) Преобразовать линейную форму записи арифметического выражения в «многоэтажное» представление, обычно используемое в математике:
B:=(x/(y+3*(x–y))^2–(y+9)^3/4)/(x^2*y)+9.5*y^2+y*(8+x/(2*y)).
2.3 Какие операторы являются ошибочными?
var x:integer;
y:real;
Begin
x:=3.4; y:=5;
x:=6; y:=2.5;
x:=y;
y:=x;
x:= 6/3;
x:= 6 div 3; y:= 6 div 2;
2.4 Вычислить значения выражений
а) not (6>=4) and (2<8)
б) ((5>=9) or (4>2)) and (6<12)
3. Операторы языка Паскаль
Описывают некоторые действия, которые необходимо выполнить для решения задачи. Тело программы представляет собой последовательность операторов (команд), которые разделяются «;».
Напомним порядок выполнения операторов программы: слева направо сверху вниз.
3.1 Оператор присваивания
Обозначается := . Вызывает вычисление выражения стоящего справа от него, и присваивание вычисленного значения переменной, стоящей слева. Таким образом, с помощью этого оператора в ячейку памяти, имя которой указано слева от знака := , заносится значение, находящееся справа от знака := .
-
Фрагмент программы:
y:=7;
x:=y;
a:=3; b:=25
z:=a+b;
i:=4; j:=8;
res:=(i>0) and (i<100);
k:=sqr(a)+i*j;
Содержимое ячеек памяти (имя указано слева)
после выполнения соответствующей команды присвоения:
7
y
7
x
a
3
25
bz
28
4
8
i j
r
True
es41
k
3.2 Составной оператор
Представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin … end. Структура оператора следующая:
begin
<оператор 1>;
<оператор 2>;
…
<оператор 3>;
end;
Используется, когда необходимо выполнить несколько действий, а синтаксисом языка допускается только один оператор. Само тело программы тоже можно считать составным оператором.