- •Лекция № 1 Тема: Основы алгоритмизации.
- •1.1 Алгоритм. Свойства алгоритма.
- •1.2 Алгоритмическая конструкция ветвления
- •1.3 Алгоритмическая конструкция цикла.
- •1.4 Этапы решения задач на эвм.
- •Лекция № 2 Тема: Введение в Turbo Pascal. Элементы языка.
- •2.1. История создания языка.
- •2.2. Алфавит tp 7.0.
- •2.4 Константы
- •2.3 Идентификаторы
- •2.5 Выражения
- •Лекция № 3 Тема: Структура программы
- •3 In s6 возвращает true;
- •2*2 In s1 возвращает false.
- •5.1 Условный оператор.
- •5.2 Операторы повторений
- •5.3 Операторы цикла.
- •5.5 Метки и операторы перехода.
- •Лекции №6 Тема: Процедуры и функции.
- •6.1 Локализация имен
- •6.2 Описание программы
- •6.3 Параметры
- •6.4 Рекурсия и опережающее описание
- •Лекция № 7 Тема: Типизированные константы.
- •7.1 Константы простых типов и типа String
- •7.2 Константы - массивы
- •7.3 Константы - записи
- •7.4 Константы - множества
- •7.5 Константы - указатели
- •Лекция № 8 Тема: Файлы
- •8.1 Доступ к файлам
- •8.2 Имена файлов
- •8.3 Инициализация файла
- •8.4 Текстовые файлы
- •Лекция № 9 Тема: Модуль.
- •9.1 Структура модулей
- •9.2 Заголовок модуля и связь модулей друг с другом
- •9.3 Интерфейсная часть
- •9.4 Исполняема часть
- •9.5 Инициирующая часть
- •9.6 Стандартные модули
- •Лекция № 10 Тема: Стандартный модуль crt
- •10.1 Программирование клавиатуры
- •10.2 Текстовый вывод на экран
3 In s6 возвращает true;
2*2 In s1 возвращает false.
Дополнительно к этим операциям можно использовать две процедуры. INCLUDE - включает новый элемент во множество. Обращение к процедуре: INCLUDE (S,I)
Здесь S - множество, состоящее из элементов базового типа TSetBase;
I - элемент типа TSetBase, который необходимо включить во множество.
EXCLUDE - исключает элемент из множества. Обращение: EXCLUDE(S,I)
Параметры обращения - такие же, как у процедуры INCLUDE.
В отличие от операций + и -, реализующих аналогичные действия над двумя множествами, процедуры оптимизированы для работы с одиночными элементами множества и поэтому отличаются высокой скоростью выполнения.
4.3 Строки
Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY[O..N] OF CHAR, однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, где N - максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не больше 255 . Турбо Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно N=255 .
Строка в Турбо Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [0..N] OF CHAR, например:
var
st : String;
begin
...
if st[5] = 'A' then...
end.
Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки, первый значащий символ строки занимает второй байт и имеет индекс 1. Над длиной троки можно осуществлять необходимые действия и таким способом изменять длину. Например, удалить из строки все ведомые пробелы можно следующим образом:
var
st : String;
i : Byte;
begin
i := ord(st [0] ) ; {i - текущая длина строки}
while (i <> 0) and (st[i] = ' ') do
begin
dec(i);
st[0] := chr(i)
end;
.....
end.
Значение ORD(st[0]) , т.е. текущую длину строки, можно получить и с помощью функции LENGTH(st), например:
while (Length(st)<>0) and (st[Length(st)]=' ') do
st[0] := chr(Length(st)-1)
К строкам можно применять операцию «+» - сцепление, например:
st := 'а1 + 'b';
st := st + 'с'; {st содержит "abc"}
Если длина сцепленной строки превысит максимально допустимую длину N, то «лишние» символы отбрасываются. Следующая программа, например, напечатает символ 1:
var
st: String [1] ;
begin
St:='123';
WriteLn(st)
end.
Операции отношения =, о, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов (см. табл.4.1 и прил.2). Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением СНR(0) .
Следующие операции отношения дадут значение TRUE:
'''' < ' . '
'А' > '1'
'Turbo' <' Turbo Pascal'
'Паскаль' >'Turbo Pascal'
Функции и процедуры работы со строками
4.4. Совместимость и преобразование типов
Как уже неоднократно отмечалось, Турбо Паскаль - это типизированный язык. Он построен на основе строгого соблюдения концепции типов, в соответствии с которой все применяемые в языке операции определены только над операндами совместимых типов. При обсуждении операций над вещественными данными мы уже затрагивали проблему совместимости вещественных и целых типов. Аналогичные проблемы возникают при операциях над строками разной длины, строками и символами и т.д. Ниже приводится более полное определение совместимости типов.
Два типа считаются совместимыми, если:
оба они есть один и тот же тип;
оба вещественные;
оба целые;
один тип есть тип-диапазон второго типа;
оба являются типами-диапазонами одного и того же базового типа;
оба являются множествами, составленными из элементов одного и того же базового типа;
оба являются упакованными строками (определены с предшествующим словом PACKED) одинаковой максимальной длины;
один тип есть тип-строка, а другой - тип-строка, упакованная строка или символ;
один тип есть любой указатель, а другой - нетипизированный указатель;
один тип есть указатель на объект, а другой - указатель на родственный ему объект;
оба есть процедурные типы с одинаковыми типом результата (для типа-функции), количеством параметров и типом взаимно соответствующих параметров.
Совместимость типов приобретает особое значение в операторах присваивания. Пусть T1 - тип переменной, а Т2 - тип выражения, т.е. выполняется присваивание T1 := T2. Это присваивание возможно в следующих случаях:
T1 и T2 есть один и тот же тип и этот тип не относится к файлам или массивам файлов, или записям, содержащим поля-файлы, или массивам таких записей;
T1 и T2 являются совместимыми порядковыми типами и значение T2 лежит в диапазоне возможных значений T1;
T1 и T2 являются вещественными типами и значение T2 лежит в диапазоне возможных значений T1;
T1 - вещественный тип и T2 - целый тип; ,
T1 - строка и T2 - символ;
T1 - строка и T2 - упакованная строка;
T1 и T2 - совместимые упакованные строки;
T1 и T2 - совместимые множества и все члены T2 принадлежат множеству возможных значений T1;
T1 и T2 - совместимые указатели;
T1 и T2 - совместимые процедурные типы;
T1 - объект и T2 - его потомок.
В программе данные одного типа могут преобразовываться в данные другого типа. Такое преобразование может быть явным или неявным.
Лекция № 5
Тема: Управляющие конструкции Turbo Pascal
Цель: Ознакомить студентов с управляющими конструкциями языка Turbo Pascal. Дать понятия о операторах цикла с известным числом повторов, с предусловием, с постусловиям, с оператором выбора и оператором безусловного перехода. Научить применять при решении задач.
План:
5.1 Условный оператор.
5.2 Оператор повторений.
5.3 Операторы цикла.
5.4 Оператор выбора.
5.5 Метки и операторы перехода.
