- •Этапы жизненного цикла программы:
- •Основные характеристики программного продукта:
- •Операции над множествами:
- •Типы файлов. Организация доступа к файлам. Стандартные процедуры и функции для файлов разного типа.
- •Описание такого указателя имеет вид:
- •В Паскале определены стандартные функции для работы с указателями:
- •Структуры данных на основе указателей.
- •Полиморфизм.
- •Пример события в Object Pascal:
Операции над множествами:
Отношения (=,<>,>=,<=)
[1,2,3,4]=[4,3,2,1] - TRUE
[1..3]=[1,2,3] – TRUE
[1,2,3]<>[4,3,2,1] – TRUE
[1..3]<>[1..5] – TRUE
[1,2,3,4]>=[1,2] – TRUE
[1..3]>=[1..2] – TRUE
[1,2] <=[1,2,3,4]– TRUE
Объединение множеств (+) – множество, состоящее из элементов обоих множеств
[1,2,3]+[1,4,5]=[1,2,3,4,5]
[‘a’..’d’]+[‘e’..’z’]=[‘a’..’z’]
Пересечение множеств (*) – множество, состоящее из элементов одновременно входящих множеств
[1,2,3]*[1,2,5,6,7]=[1,2]
[‘a’..’z’]*[‘b’..’r’]=[‘b’..’r’]
Разность множеств (-) – множество, которое содержит элементы первого множества, не входящие во второе множество
[1,2,3,4]-[1,3,4]=[2]
[‘a’..’z’]-[‘d’..’z’]=[‘a’..’c’]
Проверка принадлежности множеству
2 in [1,2,3] – TRUE
‘a’ in [‘b’..’z’] – FALSE
Добавить новый элемент во множество можно следующими способами:
При помощи операции объединения a:=a+[5]
При помощи процедуры include(m,a), где m – множество, a-переменная.
include(a.5)
Исключить элемент из множества можно следующими способами:
a:=a-[5]
При помощи процедуры exclude(m,a), где m – множество, a-переменная.
exclude(a.5)
Пример: Дана строка. Сохранить в ней только первые вхождения символов, удалив все остальные.
program MnStr;
uses crt;
var m : set of char;
s : string;
i : byte;
begin
clrscr;
write('Строка: ');
readln(s);
m :=[];
i := 1;
while i <= length(s) do
if s[i] in m then delete(s, i, 1)
else begin m:=m+[s[i]]; i := i + 1 end;
writeln(s);
readkey;
end.
Определение типа запись. Правила работы с записями
Запись – это структура данных, состоящая из фиксированного числа разнотипных компонентов, называемых полями записи.
Задать тип можно следующим образом:
Type Anketa1=Record
FIO:String[50];
Pol:Char;
Dat:String[6];
Adres:String[50];
Curs:1..5;
Grip:1..10;
Strip:Real;
End;
Var Student,Student1:Anketa1;
Поля записи могут иметь любой тип, в частности сами могут быть записями.
В программе могут использоваться массивы записей.
Например: Var Student:Array[1..10]of Anketa1;
Можно определить константу типа запись, определив значение каждого из полей.
Например: Const St:Anketa1=(FIO:’Иванов’, Pol:’м’, и т.д);
К каждому элементу записи можно обратиться следующим образом: <имя переменной>.<имя поля>
Student.fio;
Обращение к записи в целом, а не только к ее отдельным элементам, допускается только в операторе присваивания, если они одинакового типа: Student:=Student1;
Однократно присваивать значение удобно при помощи обычного оператора присваивания Student.curs:=4
Многократно обращаться к полям записи можно при помощи оператора присоединения, который имеет следующий вид:
With <переменная типа запись> do <оператор>
Так же в Pascal можно описать тип запись, содержащий несколько вариантов структуры. Записи такого типа называются записями с вариантами, они являются средством объединения похожих, но не идентичных по форме записей.
Пример: В массиве хранятся данные об учениках класса: фамилия, имя, отчество, адрес (улица, дом, квартира) и домашний телефон (если есть). Вывести список учеников, до которых нельзя дозвониться.
