Файл: Стандартные функции языка «Pascal».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.06.2023

Просмотров: 58

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Повторение продолжается до тех пор, пока логическое выражение не примет значение TRUE. Последовательность операторов выполняется, по меньшей мере, один раз, ибо логическое выражение вычисляется после выполнения данной последовательности (поэтому данный цикл называют циклом с постусловием).

При использовании оператора REPEAT . UNTIL необходимо учитывать следующее:

• последовательность операторов должна содержать хотя бы один оператор, влияющий на значение логического выражения;

• для того чтобы цикл завершился, логическое выражение рано или поздно должно принять значение TRUE.

В случае если после UNTIL записать FALSE цикл будет повторяться бесконечное число раз.

Например,

Program Primer;

Var i, s: integer;

Begin

s:=2;

i:=10;

Repeat s:=s+2; i:=i-1;

Until i>5;

Writeln (s);

End.

В случае, когда заранее известно число повторений можно использовать другой оператор повторения - FOR, который записывается в виде:

FOR i:=1 TO n DO оператор;

Вместо величины n может быть записано конкретное целое число.

Например, FOR i:=1 TO 5 DO А:=А+1;

В случае необходимости уменьшения переменной i вместо DO используется служебное слово DOWNTO.

Например, FOR i:= 10 DOWNTO 1 DO

Если необходимо выполнить несколько операторов, используется конструкция BEGIN ... END;

Например,

Program Primer;

Var i; s, a: integer;

Begin

s:=2; a:=10;

For i:=1 To 10 Do Begin

s:=s+2; a:=a-s;

End;

Writeln(s, a);

End.

3. Типы величин языка «Pascal» и операции над ними

В языке «Pascal» существует несколько основных типов величин: числовые (целые и действительные), логические, литерные, табличные.

Типы величин отличаются ограничениями на область значений величины соответствующего типа. Правильный выбор целого типа для величины позволяет экономично расходовать ресурсы памяти компьютера.

3.1. Числовые величины

Числовые величины в языке «Pascal» подразделяются на целые и действительные.

Целые числа (натуральные, им противоположные и ноль) описываются с помощью служебного слова INTEGER.

Над целыми числами можно выполнять сложение, вычитание, умножение, деление, получение остатка от деления.

Результат арифметической операции над целыми операндами есть величина целого типа. Результат выполнения операции деления целых величин есть целая часть частного. Результат выполнения операции получения остатка от деления - остаток от деления целых.

Операции отношения, примененные к целым операндам, дают результат логического типа TRUE или FALSE (истина или ложь).


К аргументам целого типа применимы следующие стандартные функции, результат выполнения которых имеет целый тип: ABS(), SQR().

Следующая группа стандартных функций для аргумента целого типа дает действительный результат: SIN(), COS(), ARCTAN(), LN(), EXPO, SQRT().

Результат выполнения функции проверки целой величины на нечетность ODD() имеет значение истина, если аргумент нечетный, и значение ложь, если аргумент четный.

Вещественные числа на языке «Pascal» описываются с помощью служебного слова REAL.

Над действительными числами можно выполнять следующие арифметические операции, дающие действительный результат: сложение, вычитание, умножение, деление.

К величинам действительного типа применимы все операции отношения.

К действительным аргументам применимы функции, дающие действительный результат: ABS(), SQR(), SIN(), COS(), ARCTAN(), LN(), Exp(), SQRT(), INT(), PI. К аргументам действительного типа применимы также функции TRUNC() и ROUND(), дающие целый результат. Первая из них выделяет целую часть действительного аргумента путем отсечения дробной части, вторая округляет аргумент до ближайшего целого.

3.2. Логические величины

Для описания логических величин используется служебное слово BOOLEAN. Логические величины принимают только два значения: TRUE (истинно) и FALSE (ложно). Результатами обработки логических величин также являются величины логического типа.

Для задания значения логической величине используется оператор присваивания. Например:

Program ff;

Var а, b : Boolean;

Begin

а: = true; b: = false;

End.

Логические выражения строятся из логических величин, функций, выражений, отношений и логических операций.

Основными логическими операциями являются NOT (НЕ), AND (И), OR (ИЛИ). Эти операции являются фундаментом булевой логики, разработанной в XIX веке математиком Джорджем Булем.

Например, (С+1>5) OR (К<10); NOT((A>3) AND (А<= -2).

Операция NOT изменяет значение величины на обратное. Действие операции NOT: Not true = false; Not false = true.

Для простоты запоминания действий операций OR и AND необходимо усвоить два основных правила:

1. Логическое выражение А OR В истинно, если хотя бы одно из условий А или В истинно.

2. Логическое выражение А AND В истинно, когда оба условия А и В истинны.

В ходе исполнения программы в первую очередь выполняется операция NOT, затем AND и в последнюю очередь - OR. Изменить порядок действия можно с помощью скобок. В логических выражениях могут встречаться и арифметические операции: +, -, *, /, mod, div, а также знаки сравнения.


3.3. Литерные величины

Литерные величины предназначены для обработки последовательностей символов. Их подразделяют на символьные и строковые. Символьным называется тип данных, переменные которого хранят один символ. Значениями переменных этого типа являются отдельные символы - буквы, цифры, знаки и т.д. Значениями строковых переменных могут быть последовательности различной длины (от нуля и более, длине 0 соответствует пустая строка).

Символьные переменные на языке «Pascal» описываются типом CHAR.

Значения символьных констант и переменных заключаются в апострофы (одинарные кавычки).

Например, 'A', 'B', 'C', '4', '7', ' ' (пробел).

Если нужен сам апостроф, то он удваивается: В :=’’’’.

Символьные значения можно задавать и их числовыми кодами. Например, код пробела равен 32, код ‘A’ - 65, ‘B’ - 66, ‘C’ - 67, код символа ‘1’ - 48, ‘2’ - 49, ‘.’ - 46 и т.п.

В случае использования кода перед ним записывают знак #.

Над символьными величинами можно выполнять следующие действия: присваивание, ввод и вывод, сравнение. Вывод символьных величин выполняется с помощью стандартных процедур WRITE() и WRITELN(). Ввод символьных переменных выполняется с помощью стандартных процедур READ() и READLN().

Сравнение символьных величин производится по тем же правилам, что и сравнение чисел с использованием знаков отношений =, <>, <, >, <=, >=. В этом случае сравнивает не сами символы, а их коды. Таблица кодов ASCII составлена таким образом, что коды букв (латинских и большинства русских) возрастают при движении в алфавитном порядке, а коды цифр расположены по порядку.

Из двух символов большим считается тот, код которого больше. Например, '1' <'9,' 'A' < 'B', 'б' < 'я'.

«Pascal» также содержит несколько стандартных функций для работы с символьными величинами.

ORD() - определяет код символа. Например, ORD(2)=49.

CHR() - возвращает символ с указанным кодом. Например, CHR(C)=67.

SUCC () - выдает символ со следующим кодом.

PRED () - символ с предыдущим кодом.

Записи вида SUCC(#255) или PRED(#0) приводят к ошибкам в программе.

Переменные строкового типа описываются с помощью служебного слова STRING. Переменная такого типа может хранить любые символы, в т.ч. и буквы русского алфавита. Тип STRING может хранить до 255 символов, то есть максимальная длина строки - 255 знаков.

Основные действия, которые можно выполнять над строковыми переменными: ввод и вывод, присваивание, сравнение, соединение.


Ввод строковых переменных выполняется с помощью стандартных процедур READ() и READLN(). При вводе значений нескольких строковых переменных ввод каждого значения всегда завершают нажатием клавиши ENTER.

Вывод строковых переменных выполняется с помощью стандартных процедур WRITE () и WRITELN() и не отличается от вывода данных других типов.

Процедура WRITE выводит значения в одну строку. При этом выводимые значения необходимо отделять пробелами или иными символами (например, запятой, точкой с запятой), иначе все они будут напечатаны слитно. Процедура WRITELN выводит каждое значение с новой строки (в столбец).

Сравнение строк выполняется посимвольным сравнением кодов соответствующих символов до первого несовпадения. Строки считаются равными, если все символы в них совпадают. Для сравнения строк используются те же знаки отношений, что и для числовых величин.

Из двух строк меньшей считается та, в которой первый отличающий символ имеет код меньше, чем соответствующий символ другой строки. Прописные буквы больше заглавных.

Например, строка ‘стол’ меньше строки ‘стул’ (первые два символа совпадают, третий символ 'о’<‘у’).

Сравнивать можно строки и разной длины. Например, строка ‘пар’ меньше строки ‘парад’, 'ABC' <'ADBA’.

Для определения длины строковой величины используется функция LENGTH (). Например, LENGTH (Информатика)=11.

Функцию LENGTH () можно использовать в команде присваивания.

Строковая величина может не содержать ни одного символа.

Она обозначается двумя подряд идущими символами «» и называется пустым текстом. Ее длина равна 0.

Строковая величина, состоящая из одного пробела, имеет длину 1.

Операция соединения позволяет соединять значения литерных величин и констант. Операция соединения обозначается знаком «+».

Результат операции соединения присваивается величине литерного типа.

Например, 'пар'+ 'о' +'ход' дает в результате 'пароход'.

Также для соединения строк используется функция CONCAT (S1, S2, Sx);. где, S1, S2, ..., Sx - список строк, которые будут сложены.

Эта функция - аналог операции сложения.

Использование сложения строк через «+» лучше, чем использование CONCAT, так как занимает меньше места в программе.

Для определения поиска строки в строке используется функция POS (S, S1); где S - это искомая строка, то есть та, которую функция пытается найти, S1 - строка, в которой производится поиск. Если строка S в S1 не обнаружена, то функция принимает значение ноль.

Функция COPY (S; I; C); - выделяет из строки S подстроку длиной C символов, начиная с позиции I.


Для удаления подстроки длиной C символов в строке S с позиции с номером I используется функция DELETE (S; I; C);

INSERT (X; S; I); - используется для вставки подстроки X в строку S начиная с позиции с номером I.

Преобразование типов подразумевает переход из одного типа к другому. Например, перевод числа типа INTEGER в строку, то есть преобразовать его в тип STRING. При этом надо понимать, что на самом деле переменная не меняет свой тип. Преобразование типов сводится к возможности поместить значение переменной одного типа в переменную другого типа в том виде, в котором оно этой переменной соответствует. То есть, переводя INTEGER в STRING, мы всего лишь будем заполнять переменную типа STRING символами, которые соответствуют цифрам переменной типа INTEGER.

Для взаимного преобразования типов в «Pascal» существует две процедуры:

STR (X; S); - преобразует вещественное число X в строку S.

VAL (S; X; код); - преобразует строку S в вещественное число Х. Код - переменная для указания ошибки. При наличии ошибки указывает номер символа в строке, в котором содержится ошибка, в случае отсутствия таковых устанавливается в 0.

3.4. Массивы

Табличные величины или массивы используются, когда приходится иметь дело с большим количеством однотипных величин.

Массив - это набор элементов одного и того же типа (числа, строки, символы). Массивы можно разделить на одномерные (линейные) и двумерные (прямоугольные).

Для описания массивов используется служебное слово ARRAY. Сам массив задается в виде:

VAR <имя> : ARRAY [диапазон индекса] OF <тип элементов>;

Например, VAR Temp : ARRAY [1..7] OF INTEGER; - массив с именем Temp, состоящий из семи элементов целочисленного типа.

Доступ к отдельным элементам массива осуществляется по индексу.

Например, доступ к третьему элементу - Temp[3], к пятому- Temp[5], и т.д.

Имя массива, так же, как и имена величин, выбирается произвольно.

Инициализация - это присваивание всем элементам массива одного и того же значения. Выполняется в цикле.

Например,

For I:= 1 To 7 Do Temp[I]:=0; { все элементы массива Temp равны 0 }

Ввод элементов массива также осуществляется в цикле:

For I:= 1 To 7 Do Begin

Writeln('Введите ',1,'-ый элемент массива');

Readln(Temp [I]);

End;

Вывод значений элементов массива выполняется аналогично:

For I:= 1 To 7 Do

Writeln(Temp[I]); {вывод всего массива}

Writeln(Temp[6]); {вывод 6-го элемента}

Если для указания положения элемента в таблице используется не один, а два порядковых номера, то такие таблицы называются прямоугольными или двумерными массивами. Первым индексом массива служит строка, вторым - столбец.