Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Прикладное программирование. Учебное пособие
.pdf
В компьютере абсолютно точно представляются целые типы. В отличие от
целых типов значение вещественных типов определяет произвольное число
лишь с некоторой конечной точность, зависящего от формата числа. Вещественные числа представляются в компьютере с фиксированной или с плавающей точкой.
Примеры:
2358.8395
0.23588395*104
0.23588395*E4
Особое положение в Паскаль занимает тип Comp, фактически это большое
целое число со знаком. Этот тип совместен со всеми вещественными типами и
может быть использован для большого целого числа. При представлении вещественных чисел с плавающей запятой десятичная точка, всегда подразумевается
перед левой или старшей мантиссой, но при действии с числом сдвигается влево или вправо.
Порядковые типы данных
Порядковые типы объединяют в себе несколько простых типов. К ним относятся:
все целые типы;
символьный тип;
логический тип;
тип-диапазон;
перечисляемый тип.
Общими признаками для порядковых типов являются: каждый из типов
имеет конечное число возможных значений; значение этих типов можно определенным образом упорядочить и с каждым числом сопоставить некоторое
число, являющееся порядковым номером; соседние значения порядковых типов
отличается на единицу.
К значениям порядкового типа может быть применена функция ODD(x),
которая возвращает порядковый номер аргумента x.
11

Функция PRED(x) — возвращает предшествующее значение порядкового
типа. PRED(A) = 5.
Функция SUCC (x) — возвращает следующее значение порядкового типа.
SUCC(A) = 5.
Символьный тип данных
Значениям символьного типа является 256 символов из множества допустимых кодовой таблицей используемого компьютера. Начальная область этого
множества, то есть диапазон от 0 до 127 соответствует множеству кодов ASCII,
куда загружаются символы алфавита, арабских чисел и специальных символов.
Символы начальной области всегда присутствуют на клавиатуре ПК. Старшая
область называется альтернативной, она содержит символы национальных алфавитов и различные специальные символы, и символы псевдографики, не соответствующие коду ASCII.
Значение символьного типа занимает один байт в оперативной памяти. В
программе значении заключаются в апострофы. Так же значения можно задавать в виде его ASCII-коде. В этом случае перед числом, обладающим код символа нужно поставить знак #.
Var
C:Char
C := ’A’
C := #65
Логический (булевский) тип
Имеются два значения булевского типа: Истина (True) и Ложь (False). Переменные данного типа задаются служебным словом BOOLEAN. Значение булевского типа занимают один байт в оперативной памяти. Значениям Истина и
Ложь соответствуют числовые значения 1 и 0.
Тип-диапазон
Есть подмножество своего базового типа в качестве, которого может выступать любой порядковый тип. Тип-диапазон задается границами внутри базового типа.
12

[минимальное-значение]…[максимальное-значение]
5…20
Тип-диапазон можно задавать в разделе Type, как определенный тип, а
можно непосредственно в разделе Var.
При определении тип-диапазона необходимо руководствоваться:
левая граница не должна превышать правую границу;
тип-диапазон наследует все свойства базового типа, но с ограничениями,
связанными и с его меньшей мощностью.
Перечисляемый тип
Данный тип относится к порядковым типам и задается перечислением тех
значений, которых он может перечислять. Каждое значение именуется неким
идентификатором и располагается в списке обрамленным в круглых скобках.
Перечисляемый тип задается в Type:
Type
Peoples = (men, women);
Первое значение — 0, второе значение — 1 и т.д.
Максимальная мощность 65535 значений.
Строковый тип данных
Строковый тип относится к группе структурированных типов и состоит из
базового типа Char. Строковый тип не относится к порядковым типам. Он
определяет множество символьных цепочек произвольной длины до 255 символов.
В программе строковый тип объявляется, словом String. Поскольку String
является базовым типом, он описан в языке и объявление переменной типа
String осуществляется в Var. При объявлении переменной строкового типа за
String в квадратных скобках целесообразно указывать длину строки. Для указания используется целое число от 0 до 255.
Var
Fam: String[15];
13

Указание длины строки позволяет компилятору отвести под данную переменную указанное число байтов в ОЗУ. Если длина строки не указана, то в этом
случае компилятор отведет под значение этой переменной максимальное возможное число байт (255).
Основные операторы языка Паскаль
Оператор является неделимым элементом программы, который дает возможность выполнять определенные алгоритмические действия. Отличием оператора, по отношению к другим элементам, является то, что под ним всегда
подразумевается какое-то действие. В языке Паскаль операторы состоят из
служебных слов. Операторы, используемые в программе, отделяются между
собой и от других элементов программы символом (;). Все операторы языка
Паскаль можно условно разбить на две группы:
простые;
структурированные.
Простые операторы — это операторы, не содержащие в себе других операторов. К ним относятся:
оператор присвоения (:=);
оператор процедуры;
оператор безусловного перехода (GOTO).
Структурированные операторы — это операторы, которые содержат в себе
другие операторы. К ним относятся:
составной оператор;
операторы условий (IF, CASE);
операторы цикла (FOR, WHILE, REPEAT);
оператор присоединения (WITH).
Оператор присваивания
<переменная> : = <выражения>;
: = – знак присваивания
Операторы ввода-вывода
READ (<список ввода>)
14

имя оператора ввода;
список переменных, разделенных запятыми.
WRITE (<список вывода>)
имя оператора вывода;
список переменных вывода, разделенных запятыми.
READLN (a, b, c) — после ввода значений a, b и c курсор перемещается на
следующую строку.
WRITELN — без списка вывода можно использовать для пропуска строк
при оформлении вывода результатов.
В операторе WRITE можно использовать формат вывода значений переменных.
Writeln ( ’_ a = ’ , a:8:3, ’_ b = ’, b:4);
при a = 341.154, b = 2
_ a = _ 341.154 _ b = _ 144
при a = 1.3, b = 144
_ a = _ _ _ 1.300 _ b = _ 144
Операторы условия и перехода
Строки программы на Паскале не нумеруются. Однако строки в программе
могут иметь метки, к которым можно переходить во время исполнения программы.
Метки описываются с помощью ключевого слова label N1, N2 … ; в описательной части программы.
N1, N2, — идентификатор или целое положительное число от 09999.
Формат: GOTO [метка];
GOTO — зарезервированное слово в языке Паскаль, [метка] — это произвольный идентификатор, который позволяет пометить некий оператор программы и в дальнейшем сослаться на него. В языке Паскаль допускается в качестве меток использовать целое число без знаков. Метка располагается перед
помеченным оператором и отделяется от него (:). Один оператор можно помечать несколькими метками. Они так же отделяются друг от друга (:). Перед тем
15

как использовать метку в разделе оператора ее необходимо описать в разделе
LABEL (раздел описания).
Оператор GO TO N; передает управление строке с меткой N.
Действие GOTO передает управление соответствующему помеченному
оператору. При использовании меток нужно руководствоваться следующими
правилами:
метка должна быть описана в разделе описаний и все метки должны быть
использованы;
если в качестве меток используются целые числа, их не объявляют.
Оператор GOTO противоречит принципам технологии структурного программирования. Современные языки программирования не имеют в своем составе такого оператора, и в его использовании нет необходимости. Кроме того в
современных компьютерах используется так называемый конвейерный способ.
Если в программе встречается оператор безусловного перехода, то такой оператор ломает весь конвейер, заставляя создавать его заново, что существенно замедляет вычислительный процесс.
Условный оператор используется в программе для реализации алгоритмической структуры — ветвления. В данной структуре вычислительный процесс
может продолжаться по одному из возможных направлений. Выбор направления обычно осуществляется проверкой какого-либо условия. Существует два
вида структуры ветвления: структура вилка и обход.
В языке Паскаль условный оператор IF это средство организации ветвящегося вычислительного процесса.
Формат: IF [логическое_выражение] Then [оператор_1]; Else [опера-
тор_2];
IF, Then, Else — служебные слова. [оператор_1], [оператор_2] — обыкно-
венные операции языка Паскаль. Часть Else является необязательной (может
отсутствовать).
Оператор IF работает следующим образом: вначале проверяется результат
логического выражения. Если результат Истина(TRUE), то выполняется [опера-
16

тор_1], следующий за служебным словом Then, а [оператор_2] пропускается.
Если результат Ложь(FALSE), то [оператор_1] пропускается, а [оператор_2]
исполняется.
Если часть Else отсутствует, то оператор IF имеет не полную форму:
IF [логическое_выражение] Then [оператор];
В этом случае, если результат Истина(TRUE), то выполняется [оператор],
если Ложь(FALSE), то управление передается оператору, следующему за оператором IF.
На языке программирования оператор имеет вид:
IF < условия > THEN P1 [ ELSE P2 ];
<условие> — логическое выражение;
P1, P2 — простой или составной операторы.
Логические выражения могут быть сложными, составленными с помощью
логических операций:
AND (И)
OR (ИЛИ)
NOT (НЕ).
Оператор выбора CASE предназначен для реализации множественных
ветвлений, поскольку оператор IF может реализовать всего два направления
вычислительного процесса, использовать его для реализации множественных
ветвлений не всегда удобно. Множественное ветвление реализуется оператором
CASE.
Формат: CASE [ключ_выбора] OF
[константа_выбора_1]:[оператор_1];
[константа_выбора_2]:[оператор_2];
…
[константа_выбора_N]:[оператор_N];
ELSE [оператор];
End;
17

CASE, OF, ELSE, END — служебные слова. [ключ_выбора] – это параметр
одного из порядковых типов. [константы_выбора] – константы того же типа,
что и ключ выбора, реализующие выбор. [оператор_1(N)] – обыкновенный оператор. ELSE может отсутствовать.
Оператор выбора работает следующим образом: до работы оператора
определяется значение параметра ключ выбора. Этот параметр может быть либо выражен как переменная в программе, либо другим путем. Затем параметр
ключ выбора последовательно сравниваем с константой выбора. При совпадении значения ключа выбора с одной из констант выбора, выполняется оператор,
следующий за этой константой, а все прочие операторы игнорируются.
В случае не совпадения ключа выбора ни с одним из констант, выполняется оператор, следующий за Else. Часто Else является не обязательной и в случае
несовпадения ключа выбора ни с одной из констант выбора и при отсутствии
Else, управление передается оператору, следующему за оператором CASE.
В операторе CASE нет явной проверки условия, характерного для оператора IF. В тоже время в неявном виде операция сравнения выполняется. CASE
вносит диссонанс в программу на языке Паскаль, поскольку данные оператор
завершается служебным словом End, которому нет парного Begin.
Циклические вычислительные процессы
В большинстве задач, встречающихся на практике, необходимо производить многократное выполнение некоторого действия. Такой многократно повторяющийся участок вычислительного процесса называется циклом.
Если заранее известно количество необходимых повторений, то цикл
называется арифметическим (цикл с параметром). Если же количество повторений заранее неизвестно, то говорят об итерационном цикле.
В итерационных циклах производится проверка некоторого условия, и в
зависимости от результата этой проверки происходит либо выход из цикла, либо повторение выполнения тела цикла. Если проверка условия производится
перед выполнением блока операторов, то такой итерационный цикл называется
18

циклом с предусловием (цикл пока), а если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл до).
Особенность этих циклов заключается в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, а тело цикла с предусловием может ни
разу не выполниться. В зависимости от решаемой задачи необходимо использовать тот или иной вид итерационных циклов.
1. Цикл с параметром
При организации циклов необходимо:
определить параметр цикла и его начальное значение;
изменять значение параметра цикла на каждом шаге итерации;
осуществить проверку выхода из цикла.
FOR i: = N TO K DO P
где i — параметр цикла;
N, K — начальное и конечное значения цикла соответственно;
P — простой или составной оператор;
I, N, K — переменные или константы целого типа.
Шаг изменения i равен 1.
При K<N выполняется цикл с отрицательным шагом -1
FOR i: =N DOWNTO K DO P
Параметр цикла должен быть переменой порядкового типа. Начальное и
конечное значения параметра цикла должны быть того же типа, что и параметр
цикла.
Оператор For существенно отличается от аналогичных операторов в дру-
гих языках программирования. Отличия следующие:
телом оператора For. Оператор может не выполниться ни разу, поскольку
проверка условия продолжения цикла выполняется до тела цикла;
шаг изменения параметра цикла постоянный и равен 1;
тело цикла в операторе For представлено одним оператором. В том слу-
чае, если действие тела цикла требует более одного простого оператора, то эти
19

операторы необходимо превратить в один составной оператор посредством
;;...2;1 PNPP
операторных скобок (BEGIN-END);
Параметр цикла может быть только переменой порядкового типа.
2. Оператор цикла с постусловием
Оператор REPEAT работает следующим образом: сначала выполняются
операторы тела цикла, после чего результат проверяется логического условия.
Если результат ложь, то осуществляется возврат к выполнению операторов
очередного тела цикла. Если результат истина, то оператор завершает работу.
Оператор Repeat имеет следующие особенности:
в Repeat проверяется условие завершения цикла и если условие выполня-
ется, то цикл прекращает работу;
тело цикла всегда выполняется хотя бы один раз;
параметр для проверки условия изменяется в теле цикла;
операторы тела цикла не надо заключать в операторские скобки (BEGIN-
END), при этом роль операторных скобок выполняют Repeat и Until.
Формат оператора:
REPEAT
— тело цикла;
UNTIL <условие>;
где P1, P2, …PN — любые операторы.
3. Оператор цикла с предусловием
Оператор While работает следующим образом: вначале работы проверяется результат логического условия. Если результат истина, то выполняется оператор, после которого осуществляется возврат на проверку условия с новым
значением параметров в логическом выражении условия. Если результат ложь,
то осуществляется завершение цикла.
При работе с While надо обратить внимание на его свойства:
условия, использованные в While, являются условием продолжения цик-
ла;
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
