Смекни!
smekni.com

Методические рекомендации по организации изучения дисциплины (стр. 6 из 9)

  1. Тип целой константы представляет собой встроенный целочисленный тип с наименьшим диапазоном, включающий значение данной константы
  2. В случае бинарной операции оба операнда преобразуются к общему типу. Общим типом будет целочисленный тип с наименьшим диапазоном, включающим значение обоих операндов. Действие выполняется в соответствии с точностью общего типа и результатом будет общий тип
  3. Выражение справа в операторе присваивания вычисляется независимо от размера или типа переменной слева
  4. Любые операнды размера в байт преобразуются в операнды размера слово

К логическим типам относятся данные типов Boolean.
Значением каждого данного логического типа могут являться 2 значения: TRUE (1) и FALSE (0).
Для данных логического типа применимы только две операции сравнения: равно и не равно.
Переменные типа Boolean занимают один байт.Предполагается, что тип Boolean имеет порядковые значения 0 и 1.

Символьный тип (char) представляет собой тип данных, предназначенный для хранения одного символа (буквы, знака или кода). В переменную этого типа может быть помещен любой из 256 символов расширенного кода ASCII.
Переменная типа char занимает один байт памяти. Значения типа char задаются в апострофах. Кроме того можно задавать значения используя код из таблицы ASCII. Над данными символьного типа можно выполнять операции сравнения.
Перечисляемый тип определяется как упорядоченный набор идентификаторов, заданный путем их перечисления. При этом список идентификаторов разделенных запятой указывается в круглых скобках. Задается перечисляемый тип в разделе type.
Пример:
type A=(2, 4, 1, 7);
B=('c', 'L', '3', '|');
Значения переменных перечисляемого типа не могут вводиться с клавиатуры и выводиться на экран.
Интервальный тип данных определяется посредством задания подмножества значений одного из ранее определенных типов. Можно использовать все простые типы, за исключением вещественного. При задании диапазона указывается наименьшее и наибольшее значения, разделенные двумя точками. При этом оба значения обязательно одного типа.
К вещественному типу относится подмножество вещественных чисел, представленных в формате с плавающей точкой и фиксированным числом цифр.
В ТП имеется 5 видов вещественных типов:

Тип Диапазон Точность Формат
Real (вещественное) 2.9*10-39..1.7*1038 11-12 знаков 6 байт
Single (с одинарной точностью) 1.5*10-45..3.4*1038 7-8 знаков 4 байта
Double (с двойной точностью) 5.0*10-324..1.7*10308 15-16 знаков 8 байт
Extended (с повышенной точностью) 3.4*10-4932..1.1*104932 19-20 знаков 10 байт
Comp (сложное) -9.2*1018..9.2*1018 19-20 знаков 8 байт


Действия над типами с одинарной, двойной, повышенной точностью и сложным типом могут выполняться только при наличии числового сопроцессора. Поэтому считается что постоянно доступным является только тип Real.


Константы, переменные и оператор присваивания.

Константа - это идентификатор отмечающий значение, которое не может изменяться. Идентификатор константы не может быть включен в свое собственное описание. Константы должны объявляться в декларационной части программы до момента их использования в вычислениях. Эта декларационная часть начинается с зарезервированного слова const. При декларации указывается имя константы, символ равенства и значение этой константы. В ТП применяется 5 видов констант простых типов:

  1. Целочисленные константы. В качестве значений может использоваться любое целочисленное данное в десятичном или шестнадцатеричном формате (year=2003)
  2. Вещественные константы определяются числами, записанными в десятичном формате данных (time=0.2e+4, yyy=304.0)
  3. Символьные константы могут быть определены только посредством символов таблицы ASCII. При этом сам символ заключается в апострофы (var1='A')
  4. Строковые константы определяются произвольной последовательностью символов, заключенных в апострофы (stroke='IBM')
  5. Типизированные константы (переменные с начальным значением) . Каждой типизированной константе ставится в соответствие имя, тип, начальное значение (year1:integer =1995)

Переменной называется элемент программы, который предназначен для хранения, коррекции и передачи данных внутри программы.
Раздел описания переменных начинается с зарезервированного слова var.
Для объявления переменной необходимо указать имя переменной и ее тип. Однотипные переменные могут перечисляться через запятую перед указанием их типа.
Пример:
a: integer;
b: boolean;
c, b: real;
e: integer;
Все переменные делятся на глобальные и локальные. Глобальными являются переменные, объявленные вне процедур и функций, а локальными - объявленные внутри процедур и функций.
ТП накладывает ряд ограничений на использование переменных:

  1. Среди глобальных переменных не может быть двух с одинаковыми идентификаторами;
  2. Среди локальных переменных в пределах одной процедуры или функции не может быть двух с одинаковыми идентификаторами;
  3. В тексте программы любой глобальный идентификатор может дублировать любой локальный идентификатор, т.к. даже при одинаковых именах они хранятся в разных участках памяти.

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

Имя функции Математическое значение Тип результата
a mod b Остаток деления a на b Целое
a div b Целая часть деления a на b Целое
abs (a) |a| Совпадает с типом аргумента
sqr (a) a2 Совпадает с типом аргумента
sqrt (a)
Вещественное
sin (a) sin a Вещественное
cos (a) cos a Вещественное
arctan (a) arctg a Вещественное
ln (a) ln a Вещественное
exp (a) ea Вещественное


При составлении сложных выражений осуществляется приоритет выполнения операций:

  1. not, @
  2. *, /, div, mod, and, shl, shr
  3. +, -, or, xor
  4. =, <>, <=, >=, >, <, in


Операторы ввода/вывода.

ТП содержит четыре оператора ввода/вывода: read, readln, write, writeln.
Оператор read осуществляет ввод данных с клавиатуры и размещение их в стандартном файле ввода input. Вводимые данные размещаются в качестве значений переменных, имена которых перечислены в круглых скобках за оператором read.
read (a, b, c);
Вводятся данные тоже списком, в котором они разделяются пробелом. Ввод заканчивается нажатием Enter. Курсор, отмечающий позицию следующего ввода/вывода остается за последним введенным данным.
Оператор readln выполняет аналогичные действия и переводит курсор на следующую строку.
Оператор write осуществляет вывод на экран или печатающее устройство с одновременным размещением в стандартном файле вывода output. Оператор может выводить сообщение или значение переменной. Сообщения записываются в апострофах. Для вывода значения переменной указывается имя переменной. Сообщения и переменные можно чередовать в одном списке, разделяя их запятыми. Курсор остается за последним выведенным данным.
Оператор writeln выполняет аналогичные действия и переводит курсор на следующую строку.
Операторы write и writeln допускают т.н. форматированный вывод данных.
write (a:5:2);
Первое из чисел указывает сколько экранных знаков отводится под вывод. Второе число указывает количество знаков после запятой в числе и может отсутствовать.

Лекция 6. Управляющие операторы

Безусловные конструкции.

Оператор языка представляет собой неделимый элемент программы, который позволяет выполнять определенные алгоритмические действия. Все операторы можно условно разделить на две группы: простых операторов и структурированных операторов. К простым относятся те операторы, которые не содержат других операторов. К структурированным - те, которые состоят из других операторов.
В ТП 7.0 существует всего один оператор безусловного перехода Goto и четыре безусловных функции: Break, Continue, Exit, Halt.
Оператор безусловного перехода Goto представляет собой простой оператор, используя который можно изменять порядок выполнения операторов в программе. Общий вид оператора безусловного перехода:
goto <метка> , где <метка> - это идентификатор или целое число от 0 до 9999, объявленное в разделе меток label.
Применение оператора безусловного перехода в ТП - программе является нежелательным, т.к. его присутствие нарушает структурную целостность и наглядность. Такую программу трудно читать, отлаживать и модифицировать.
Функция Break позволяет досрочно закончить цикл.
Функция Continue - позволяет начать новую итерацию цикла, даже если предыдущая не была завершена.
Функция Exit - позволяет завершить работу текущего программного блока.
Функция Halt (n), где n - некоторое целое число - позволяет завершить работу программы с кодом завершения n.


3.2. Условные конструкции.

1) неполная форма с одним оператором


2) полная форма с одним оператором

3) неполная форма с несколькими операторами

4) полная форма с несколькими операторами


1) IF условие THEN оператор;
2) IF условие THEN оператор1 ELSE оператор2;
3) IF условие THEN BEGIN
оператор1;
оператор2;

операторN;
END;
4) IF условие THEN BEGIN
оператор1;
оператор2;

операторN;
END ELSE
BEGIN
оператор1;
оператор2;

операторN;
END;

Пример: ввести оценку студента в баллах и сообщить ее название.


Begin
Read(b)
If b=5 then Write('отлично') else
If b=4 then Write('хорошо') else
If b=3 then Write('удовл.') else
If b=2 then Write('неудовл.') else
Write('это не оценка');
End.


Конструкция выбор.

Ситуации, реализующие систему вложенных ветвлений могут быть разрешены с использованием конструкции выбор.
Оператор выбора является структурированным и использует в своей записи операторы case, of, else, end и операторные скобки по необходимости.
В самом общем виде оператор выбора можно записать так:
Case порядковая переменная of
значение1: begin оператор1; оператор2; …; операторN; end;
значение2: begin оператор1; оператор2; …; операторN; end;

значениеM: begin оператор1; оператор2; …; операторN; end;
else begin оператор1; оператор2; …; операторN; end;
end;

Пример: ввести оценку студента в баллах и сообщить ее название.
Begin
Read(b)
Case b of
5: Write('отлично');
4: Write('хорошо');
3: Write('удовл.');
2: Write('неудовл.');
else Write('это не оценка');
end;
End.

Порядковая переменная, значение которой при выполнении программы определяет ветвь в операторе выбора, подлежащую выполнению, может принадлежать любому целочисленному типу. В случае, когда для нескольких значений выполняемые действия одинаковы, их можно указать один раз, а сами значения перечислить через запятую.
Пример: напечатать количество дней во введенном месяце:
Begin
Read(m);
Case m of
янв, мар, май, июл, авг, окт, дек: Write('31');
апр, июн, сен, ноя: Write('30');
фев: Write('28');
else Write ('это не месяц');
end;
End.


3.4. Циклические конструкции.

1. Цикл с предусловием.
Для реализации циклов с предусловием используется составной оператор, включающий оператор while, do, операторные скобки.
В общем виде цикл реализуется записью:
while <условие> do <действие>;
Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки:
while <условие> do
begin
<оператор 1>;
<оператор 2>;
...
<оператор n>;
end;

2. Цикл с постусловием.
Для реализации цикла используется составной оператор, состоящий из операторов repeat и until.
В общем виде цикл записывается так:
repeat
<действие>;
until <условие>;

Пример: задано целое число. Вывести на печать все цифры введенного числа.
1 способ: