Зарезервированные
(служебные) слова:
absolute
|
div
|
goto
|
nil
|
repeat
|
var
|
and
|
do
|
if
|
not
|
set
|
virtual
|
array
|
downto
|
implementation
|
object
|
shl
|
while
|
asm
|
else
|
in
|
of
|
shr
|
with
|
assembler
|
end
|
inline
|
ot
|
string
|
xor
|
begin
|
external
|
interface
|
packed
|
then
|
|
case
|
file
|
|
private
|
to
|
|
const
|
for
|
interrupt
|
procedure
|
type
|
|
constructor
|
forward
|
label
|
program
|
unit
|
|
destructor
|
function
|
mod
|
record
|
uses
|
|
2.
Идентификаторы (имена)
Идентификаторы – это имена, которые состоят из латинских
букв, цифр и символа подчеркивания и начинаются только с буквы или символа
подчеркивания.
Примеры:
X
|
_Beta
|
программа
|
Y22M
|
5ABC
|
Figure/Fer
|
RAZMER
|
Pascal_Basic
|
INd67
|
index
|
_123
|
Const
|
Gamma
|
Y.22
|
ABCD_1234_EFG
|
Alfa_Beta
|
CH
Gamma
|
Dos.Exec
|
3.
Знаки операций
Формируются из одного
или нескольких специальных символов и предназначены для задания действий по
преобразованию данных и вычислений.
Условное обозначение операции
|
Наименование операции
|
+
|
сложение
|
-
|
вычитание
|
*
|
умножение
|
/
|
деление
|
div
|
деление
целочисленное
|
mod
|
остаток от
целочисленного деления
|
:=
|
присвоение
|
=
|
равно (сравнение)
|
<>
|
не равно
(сравнение)
|
<
|
меньше (сравнение)
|
>
|
больше (сравнение)
|
<=
|
меньше или равно
(сравнение)
|
>=
|
больше или равно
(сравнение)
|
not
|
логическое НЕ
|
and
|
логическое И
|
or
|
логическое ИЛИ
|
xor
|
исключительное
ИЛИ
|
5. Разделители
Формируются из
специальных символов и в основном используются для повышения наглядности текстов
программ. Например: “(“,”)”, “{“,
“}”, “;”, пробел “ ”.
6. Изображения
Группа лексем
обозначает числа, символьные строки и некоторые другие значения.
Представление
чисел
Система типов данных
Turbo Pascal
Общая структура
программы
Соглашения о переменных
Основные
характеристики переменной:
Имя (идентификатор)
|
Alpha
|
Тип переменной
|
Real
|
Значение
|
12.345
|
Адрес
|
$1000 :
$2A34
|
Имя служит для того, чтобы в программе можно было обратиться к этому
объекту (т.е. его идентифицировать).
Задание
типа определяет область
значений и вид внутреннего представления.
Значение переменной присваивается в программе путем считывания
соответствующей константы, либо с помощью оператора присваивания.
Адрес является адресом в памяти, начиная с которого
значение переменной записывается в память.
Var
X : Real; {вещественная переменная}
I, J, K : Integer; {три целые переменные}
S1, S2 : Char; {две символьные переменные}
LOGIC : Boolean; {логическая переменная}
Соглашения о постоянных
Постоянная (константа) - величина, значение которой не
будет изменяться в ходе выполнения программы.
Const
Min =0; {целое число}
Max =500; {целое число}
E =2.7; {вещественное число}
SpecChar =’\’; {символ}
HelpStr =’Нажмите
клавишу F1’; {строка}
OK =True; {логическая константа}
MaxReal =1.7e38; {вещественное число}
{определение констант
как выражения из чисел, некоторых функций языка и определенных ранее простых
констант}
Interval = Max
- Min;
Key = Chr (27);
E2 = E * E;
Типизированные
константы
(переменные со стартовым значением)
Типизированные
константы являются
переменными, которым в той части программы, где описываются константы,
присваивается некоторое начальное значение. Они не только могут описываться как
переменные, их можно использовать в качестве переменных, т.е. им можно
присвоить новое значение.
Const
R : Real = 1.1523;
I : Integer = -10;
S : String[10] = ’Привет ! ’;
Done : Boolean = True;
Операторы Паскаля
Пустой оператор
Не выполняет никаких
операций и ничего не изменяет в данных и в программе.
Он ставится из соображения
синтаксиса там, где синтаксис требует наличие некоторого оператора, а никакой
оператор там стоять не должен.
Составной оператор
If A > 0 Then begin B:= A + 10; Write(A, B) end
Else B:= A – 4;
Оператор присваивания
Правила выполнения оператора присваивания
- Вычисляется
выражение в правой части оператора присваивания.
- Переменной,
указанной в левой части оператора присваивания присваивается вычисленное
значение.
- Переменная и
выражение должны быть совместимы по типу.
Var
I, J : Integer;
X, Y : Real;
A, B : Char;
P, Q : Boolean;
Правильные записи
оператора присвоения:
P := False;
A := ’+’;
X := I + J mod 7;
Q := Odd ( J + I div 5 );
J := Round ( X / 2 );
Y := 275;
Неправильные записи
оператора присвоения:
I := 3.375;
B := ’Ha’;
A := +;
X + 3 := Y;
Выражение – конструкция языка, задающая порядок
выполнения действий над элементами данных.
Выражение состоит из
элементов данных – операндов.
Оператор вызова
процедуры ввода (чтения) данных
обеспечивает ввод
данных для последующей их обработки программой.
Read (параметр1, параметр2, …, параметрN)
где параметр1,
параметр2, …, параметрN – переменные допустимых типов данных.
Числовой
(целый,
вещественный)
|
Считывается одно
число соответствующего формата и значение его присваивается переменной параметр1.
Знаки пробела или
перевода строки перед числом игнорируются
|
Символьный (Char)
|
Считывается один
символ и его значение присваивается переменной параметр1.
|
Строковый (String)
|
При длине N
строковой переменной параметр1 считывается N
символов.
|
Правила
выполнения оператора вызова процедуры Read
·
Для числовых значений параметр1,
параметр2, …, параметрN набираются
на клавиатуре минимум через один пробел.
·
После набора данных для
одного оператора вызова процедуры Read нажимается клавиша ввода Enter.
·
Значения переменных должны
вводиться в строгом соответствии с синтаксисом языка Turbo Pascal.
Если соответствие нарушено, то возникают ошибки ввода-вывода.
·
Строковые (String)
значения при вводе лучше всего располагать в отдельной строке.
Пример
Var A : Integer;
B : Char;
C : Real;
Begin
Read (A, B, C);
End.
Набираем на
клавиатуре:
234R 15.7358 <Enter>
Оператор вызова
процедуры ввода (чтения) строки
обеспечивает ввод
данных для последующей их обработки программой.
ReadLn (параметр1, параметр2, …, параметрN)
Сравнение операторов
вызова процедур Read и ReadLn
Общие свойства:
|
·
Считывает значение в
переменные в том порядке, в каком они указаны в списке ввода.
·
Считывание прекращается
после того, как все переменные этого списка получат значения.
|
Отличие:
|
|
Read
|
после выполнения
курсор находится в той же строке, компьютер готов к считыванию из очередной
позиции текущей строки.
|
ReadLn
|
после выполнения
курсор перемещается на начало следующей строки.
|
Примеры
Var A : Char;
B : Integer;
C : Real;
Read (a, b, c) ReadLn (a, b, c)
Вводимая информация
|
Результат выполнения процедур
|
S <пробел> 35 <пробел> -47.82 <Enter>
|
a = S
b = 35
c = -47.82
|
S <Enter>
35 <Enter>
-47.82
<Enter>
|
a = S
b = 35
c = -47.82
|
S <пробел> 35 <пробел> -47.82 <пробел> 7 <Enter>
|
a = S
b = 35
c = -47.82
|
Read (a, b, c);
Read (d);
23
|
<пробел>
|
74
|
<пробел>
|
9
|
<Enter>
|
82
|
<Enter>
|
|
|
|
|
|
|
|
|
a
|
|
b
|
|
c
|
|
d
|
|
ReadLn (a, b, c);
Read (d);
23
|
<пробел>
|
74
|
<пробел>
|
9
|
<пробел>
|
82
|
<Enter>
|
|
|
|
|
|
|
|
|
a
|
|
b
|
|
c
|
|
d
|
|
Read (a); Read (b); Read (c);
1-ый способ
23
|
<пробел>
|
74
|
<пробел>
|
9
|
<Enter>
|
2-ой способ
23
|
<Enter>
|
74
|
<Enter>
|
9
|
<Enter>
|
ReadLn (a); ReadLn (b); ReadLn (c);
1-ый
способ
23
|
<пробел>
|
74
|
<пробел>
|
9
|
<Enter>
|
2-ой способ
23
|
<Enter>
|
74
|
<Enter>
|
9
|
<Enter>
|
Оператор вызова процедуры
вывода
Выдает на экран
значения параметр1,
параметр2, …, параметрN в стандартной форме.
Write (параметр1, параметр2, …, параметрN)
Выдает на экран
значения параметр1,
параметр2, …, параметрN в стандартной форме и в заключение выполняет
перевод курсора в первую позицию новой строки.
WriteLn (параметр1, параметр2, …, параметрN)
где параметр1,
параметр2, …, параметрN - переменная, константа, выражение любого допустимого типа (целый,
вещественный, логический, символьный, строковый, диапазон и др.).
Примеры
A := 1; B := 2; C := 3;
Write (A); Write (B); Write (C);
Write (A,B,C);
WriteLn (A); WriteLn (B); WriteLn (C);
WriteLn (A,B,C);
WriteLn (B, '@', A, 'сумма', C+A);
Форматный вывод
1.
Параметры определения ширины поля для параметра при печати
Write (параметр1 : длина, параметр2 : длина, …)
Длина – целое выражение, определяющее общий размер
поля для вывода параметра.
Пример
A := 10; B := 2; C := 100;
WriteLn (A, B, C);
WriteLn (A:2, B:2, C:4);
WriteLn (A, B:2, C:2);
X := 421.53;
WriteLn (X);
|
4
|
.
|
2
|
1
|
5
|
3
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
E
|
+
|
0
|
2
|
X := -421.53;
WriteLn (X);
-
|
4
|
.
|
2
|
1
|
5
|
3
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
E
|
+
|
0
|
2
|
X := 421.53;
WriteLn (X : 8);
2.
Параметр определения числа знаков после десятичной точки при печати
Write
(параметр1 : длина : количество, …)
Количество – целое выражение, определяющее, сколько цифр
после десятичной точки выводить для числа с фиксированной точкой.
X := 421.53;
WriteLn (X : 7 : 2);
WriteLn (X : 9 : 4);
WriteLn (X : 6 :
4);
Оператор
условия If
Оператор условия If
выполняется следующим образом:
·
Вычисляется логическое
выражение (булевый тип: True, False),
·
Если значение логического
выражения есть True (истина), выполняется <Оператор-1>, указанный
после Then,
·
Если значение логического
выражения есть False (ложь), выполняется <Оператор-2>, указанный
после Else.
Полная
форма условного оператора If
If
<Логическое выражение> Then <Оператор-1> Else <Оператор-2>;
Блок – схема
Пример
If A>0 Then C:=A
Else C:=
Abs(A);
Сокращенная
форма условного оператора If
If <Логическое
выражение> Then <Оператор-1>;
Блок – схема
Пример
C:= A;
If A>0 Then C:=Abs(A);
Задача 1
Ввести число. Если это число положительное,
то на экран вывести сообщение "Положительное число". Если это число
отрицательное, то на экран вывести сообщение "Отрицательное число".
Исходные данные: А
Блок-схема
Да Нет
Program Trial_1;
Var A : Integer;
Begin
Write ('Введите число'); ReadLn (A);
If A >= 0 Then WriteLn('Положительное число')
Else WriteLn('Отрицательное число')
End.
Задача 2
Исходные
данные: X
Блок-схема
Да Нет
Program Trial_2;
Var X : Integer; Y : Real;
Begin
Write ('Введите число'); ReadLn (X);
If X > 5 Then Y:=1/(X-5)
Else Y:= 5*X;
WriteLn (Y)
End.
Циклические
вычислительные процессы
Если вычислительный
процесс содержит многократные вычисления по одним и тем же математическим
зависимостям, то его называют циклическим процессом.
Многократно
повторяемые участки вычислений называются циклами, а
переменные, изменяющиеся в цикле, - переменными цикла
(параметрами).
Пример
Вычислить значение функции Y = aN,
где а - действительное число с натуральным показателем.
Y
= a * a * a * a * a * … *
a
N
Алгоритм
циклической структуры
- Подготовка
цикла – задание
начальных значений переменным цикла перед первым его выполнением.
- Тело
цикла – действия,
повторяемые в цикле.
- Модификация
переменных цикла
перед каждым новым его повторением.
- Управление
циклом – проверка
условия продолжения (или окончания) цикла и переход на начало тела цикла,
если выполняется условие продолжения цикла (или выход из цикла по его
окончанию).
Блок
- схема циклического процесса с предусловием
Блок
- схема циклического процесса с предусловием
Операторы
повтора
1. В языке Pascal различают три вида операторов цикла:
2. Выражение, управляющее повторениями, должно иметь булевский тип.
3. В случае если число повторений оператора (составного оператора)
заранее неизвестно, а задано лишь условие его повторения (или окончания)
используются операторы while, repeat.
4. Оператор for используется,
если число повторений заранее известно.
Оператор
цикла с параметром ( For )
Число повторений заранее известно.
Предусматривает повторное выполнение <оператора> с
одновременным изменением по правилу арифметической прогрессии значения,
присваемого управляющей переменной.
<переменная> - параметр цикла; является переменной
порядкового типа;
<выражение-1> - выражение определяет начальное значение
параметра цикла;
<выражение-2> - выражение определяет конечное значение
параметра цикла;
<оператор> - выполняемый оператор.
Порядок
выполнения оператора For – to
Правила
организации цикла:
1. Параметр цикла - <переменная>, начальное - <выражение-1>,
конечное - <выражение-2> значения должны быть одинакового типа, их
тип может быть любым скалярным типов, кроме вещественного.
2. Цикл не выполняется вообще, если:
начальное значение больше, чем конечное для For – to
начальное значение меньше, чем конечное для For - downto.
3. По окончании цикла значение переменной цикла не определено и
не может использоваться в дальнейших вычислениях.
4. После ключевого слова Do может стоять только один оператор.
Запрещается
1. Изменять переменную цикла.
For I := 1 to N do
begin
Y := Y * A;
I := I + 2
end;
2. Входить в цикл с
помощью оператора Goto, так как в этом случае начальное и конечное
значения параметра цикла не будет определено.
goto METKA1;
For I := 1 to N do
begin
METKA1: Y := Y * A;
I := I + 2
end;
Пример
1
Вычислить значение функции , где а -
действительное число с натуральным показателем.
Program MULTI_1;
Var A,Y:Real;
I,N: Integer;
Begin
Write(’Введите число А-’);
Readln (A);
Write(’Введите степень числа А - ’);
Readln ( N );
Y:= 1;
For I:= 1 to N do Y:= Y * A;
Write (’Результат -’ , Y )
End.
|
Program MULTI_2;
Var A,Y:Real;
I,N: Integer;
Begin
Write(’Введите
число А-’);
Readln (A);
Write(’Введите степень числа А - ’);
Readln ( N );
Y:= 1;
For I:= N downto 1 do Y:= Y * A;
Write (’Результат -’
, Y )
End.
|
Оператор цикла с предусловием (While)
Предусматривает
повторное выполнение <оператора>.
Перед каждым очередным выполнение производится проверка
значения <логического выражения>, которое служит критерием
повторения.
Если это выражение
имеет значение:
True, то выполняется очередная итерация;
False, то выполнение оператора цикла заканчивается.
Если <логическое
выражение> с самого начала имеет значение False, то цикл не выполняется ни разу.
Пример
Дано число N. Подсчитать
количество цифр данного числа.
Блок - схема циклического процесса с
предусловием
Program DemoWhile;
Var M, N : LongInt;
K : Byte;
Begin
WriteLn (' Введите целое число ');
ReadLn (N); M:= abs(N);
K:= 0;
While M<>0 do
begin
Inc(K);
M:= M div 10
end;
WriteLn ('В числе ', N, ' -- ', K, '
цифр ')
End.
Оператор цикла с постусловием Repeat
Предусматривает повторное выполнение <операторов>.
Отличается от While, тем, что условие проверяется после
выполнения очередной итерации и критерием прекращения цикла является равенство
<логического выражения> константе True.
Если <логическое
выражение> имеет значение False, то цикл повторяется.
Гарантируется хотя бы
одно выполнение цикла.
Пример
Вводит и суммирует любое количество целочисленных значений. Если
введено значение 999, то на экран выводится результат суммирования.
Блок - схема циклического процесса с постусловием
Program DemoRepeat;
Var
X :
Integer;
Sum : Real;
Begin
Sum := 0;
Repeat
Write( '
Значение X= ' );
Readln(X);
If X
<> 999 then Sum:= Sum+X;
until X = 999;
Writeln( ‘ Сумма введенных
чисел = ', Sum );
End.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.