Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.docx
Скачиваний:
15
Добавлен:
27.10.2018
Размер:
322.84 Кб
Скачать

19. Основные понятия языка Паскаль. Типы данных.

Понятие Описание Пример

Алфавит языка = 1)Буквы латинского алфавита 2)Цифры 3)Специальные символы 4)Зарезервированные слова = A…Z; a…z 0…9; +;-;/;*;$;{};<>;[] и т.д. Begin; end; real

Идентификаторы = Имена объектов (констант, типов данных, переменных, функций, программ) = Pi Test My_ Program A1; b; a

Элементы данных = 1)Константа – ячейка памяти, значение которой в ходе выполнения программы остается постоянным 2)Переменная – ячейка памяти, значение которой может изменяться в ходе выполнения программы. = 45; Pi A; b; A1; x

Комментарий = Предназначен для внесения в текст программы пояснений. Ограничивается символами {} или (* *) = {Стороны треугольника} (*Это комментарий*)

Типы данных.

Тип данных. Обозначение. Описание. Пример.

Целые числа = integer = Целые числа в интервале = [- 32767; 32767] 457, -568, 0, -7

Действительные числа = real = Значение с плавающей точкой, содержащее мантиссу (до 11 значащих цифр) и экспоненту (степень числа 10 (от до ) = 0.4,-1.8, 0.17E+3, 21E-4

Символьный тип = char = Символьные константы содержат один символ, заключенный в апострофы. = ‘A’, ‘e’, ‘2’

Строковый тип = string = Строка символов длиной не более 255

Логический тип = boolean = Константы логического типа имеют два возможных значения TRUE (истина) и FALSE (ложь) = 5<3 - TRUE.

20. Структура программы на языке Паскаль. Основные функции, служебные слова. Выражения и вычисления на языке Паскаль. Примеры.

Структуру программы следующим образом:

Program ... ; { Заголовок программы }

Uses ... ; { Подключение модулей }

Label ... ; { Раздел объявления меток }

Const ... ; { Раздел объявления констант }

Type ... ; { Раздел объявления новых типов }

Var ... ; { Раздел объявления переменных }

Procedure ... ; { Описание своих процедур }

Function ... ; { Описание своих функций }

Begin { начало основной программы }

...;

{ Операторы }

...;

End.

Обязательной частью является лишь тело программы, которое начинается словом begin, а заканчивается словом end с точкой. Операторы в Паскале разделяются точкой запятой. Заголовок программы является хотя и необязательным, но желательным элементом и состоит из зарезервированного слова program и идентификатора - имени программы, за котором следует точка с запятой. Порядок объявлений и описаний не регламентируется.

Стандартные функции и процедуры языка Паскаль для работы со строками и символами

Символы

Chr(x : byte) : Char - Возвращает символ ASCII кода х

Ord(c : Char) : Byte - Возвращает ASCII-код символа c

UpCase(c : Char) : Char - Переводит символы 'a'..'z' в верхний регистр

Pred(c : Char) : Char - Выдает предшествующий c символ

Succ(c : Char) : Char - Выдает последующий за c символ

Строки

Length(s : String) : Byte - Возвращает длину строки s

ConCat(s1, s2, s3 ... sn : String) : String - Возвращает конкатинацию (слияние) строк s1...sn

Copy(s : String; start, len : Integer) : String - Возвращает подстроку длиной len, начинающуюуся с позиции start строки s

Delete(VAR s : String; start, len : Integer) - Удалает подстроку длиной len начиная с позиции start строки s

Insert(VAR s : String; SubS : String; start : Integer ) - Вставляет в s подстроку SubS, начиная с позиции start

Pos(SubS, s : string) : byte - Ищет вхождение подстроки SubS в s и возвращает номер первого символа SubS в s, или 0, если s не соержит SubS

Процедуры преобразования

Str(X :F :n; s : string) - Преобразует числовое значение X в строковое s, возможно создание формата для х

Val(S : String; var X; errCode : integer) - Преобразует строку цифр S в числовое значение X, при неудачном преобразовании errCode содержит номер позиции символа в строке, который не удалось преобразовать (то есть он не является цифрои или десятичной точкой)

Модуль для работы со строками

Содержит ряд функций для работы со строковыми переменными. Функции разбиты на насколько групп:

Функции проверки:

Функции, начинающиеся с Is... предназначены для проверки принадлежности символов строки к определенным группам. Все они возвращают логическое значение (True/False). Функция Is... проверяет, "является ли символ Ch..."

* Function IsAlpha(Ch: Char): Boolean;

... алфавитным (прописная или строчная буква)

* Function IsDigit(Ch: Char): Boolean;

... цифрой от '0' до '9'

* Function IsAlnum(Ch: Char): Boolean;

... алфавитно-цифровым (цифра или прописная/строчная буква)

* Function IsAscii(Ch: Char): Boolean;

... символом Ascii ($00 .. $7E)

* Function IsLower(Ch: Char): Boolean;

... строчной буквой (русского или латинского алфавита)

* Function IsUpper(Ch: Char): Boolean;

... прописной буквой (русского или латинского алфавита)

* Function IsXDigit(Ch: Char): Boolean;

... шестнадцатеричной цифрой ('0' .. '9' и прописная/строчная 'a' .. 'f')

Функции преобразования:

* Function StrLower(s: String): String;

Преобразует в строке S все прописные буквы в строчные (корректно работает с символами кириллицы)

* Function StrUpper(s: String): String;

Преобразует в строке S все строчные буквы в прописные (корректно работает с символами кириллицы)

Функции сравнения строк.

Все эти функции возвращают результат типа strResult:

CODE

Type

strResult = (strLess, strEqual, strMore);

* Function StrCompare(s1, s2: String): strResult;

Посимвольное сравнение двух строк

* Function StrPartCompare(s1, s2: String; n: Byte): strResult;

Функция аналогична StrCompare, но сравнивает только максимум N символов двух строк

* Function StrIgnoreCompare(s1, s2: String): strResult;

Функция аналогична StrCompare, но при сравнении строк игнорирует различие между строчными и прописными буквами

* Function StrIgnorePartCompare(s1, s2: String; n: Byte): strResult;

Функция аналогична StrPartCompare, но при сравнении строк игнорирует различие между строчными и прописными буквами

Функции поиска:

* Function StrPos(s, subs: String; Var Ch: Char): Byte;

Функция ищет в строке S первое вхождение любого символа, присутствующего в строке Subs. В случае успеха (хотя бы один символ из Subs присутствует в S), функция вернет позицию в строке S, в которой встретился символ, который вернулся в Ch. В случае, если ни один символ из Subs в строке S не встречается, функция возвращает 0 и Ch = #0.

* Function RevPos(subs, s: String): Byte;

Функция производит поиск последнего вхождения подстроки Subs в строку S. Если Subs не содержится в S, функция вернет 0.

* Function bmSearch(start: Integer; Const s, p: String): Integer;

Функция поиска подстроки P в строке S по алгоритму Бойера-Мура (поиск будет осуществляться начиная с позиции start строки S)

Описание простого варианта алгоритма Бойера-Мура

Дополнительные функции:

* Function StrRevert(s: String): String;

Функция "переворачивает" строку S (изменяет порядок символов в строке на обратный)

* Function StrDelLeadSpace(s: String): String;

Function StrDelEndSpace(s: String): String;

Эти функции удаляют из строки все начальные (StrDelLeadSpace) и конечные (StrDelEndSpace) пробелы.

* Function StrOneSpace(s: String): String;

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

* Function GetWords(s: String; Var mas: TWords): Byte;

Функция разбивающая строку S на массив слов Mas и возвращающая количество найденых слов. Реализация функции - см. выше...

* Function isPalindrom(Const s: String): Boolean;

Функция проверяет, является ли переданная ей в качестве параметра строка "палиндромом" (т.е. строкой, читающейся одинаково и слева направо и справа налево).

Служебные слова.

Выражения и вычисления.

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

Математические операции

Символ операции Название операции Пример

* умножение 2*3 (результат: 6)

/ деление 30/2 (результат: 1.5E+01)

+ сложение 2+3 (результат: 5)

- вычитание 5-3 (результат: 2)

div целочисленное деление 5 div 2 (результат: 2)

mod остаток от деления 5 mod 2 (результат: 1)

Логические операции

NOT - логическое отрицание ("НЕ")

AND - логическое умножение ("И")

OR - логическое сложение ("ИЛИ")

XOR - логическое "Исключающее ИЛИ"

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

A B not A A and B A or B A xor B

true true false true true false

true false false true true

false true true false true true

false false false false false

Операции отношения

К операциям отношения в Турбо Паскаль относятся такие операции, как:

> - больше

< - меньше

= - равно

<> - не равно

>= - больше или равно

<= - меньше или равно

Приоритет операций

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

унарная операция not, унарный минус -, взятие адреса @

операции типа умножения: * / div mod and

операции типа сложения: + - or xor

операции отношения: = <> < > <= >= in

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]