- •1. Дайте определение следующим понятиям: алгоритм, программа, алгоритмический язык, транслятор, компилятор, интерпретатор.
- •2. Опишите общую структуру программы на языке программирования Паскаль (Delphi). Приведите пример оператора присваивания. Опишите и приведите примеры структур операторов ввода и вывода информации.
- •Вещественные типы
- •6. Перечислите основные математические функции в языке Паскаль. Приведите пример использования математической процедуры генерации случайных чисел.
- •Стандартные математические функции
- •7. Объясните назначение условного оператора в языке программирования Паскаль (Delphi). Опишите структуру условного оператора. Приведите пример фрагмента блок-схемы с условием.
- •Условный оператор if
- •8. Объясните назначение оператора выбора (варианта) в языке программирования Паскаль (Delphi). Опишите структуру оператора выбора (варианта). Приведите пример фрагмента блок-схемы с условием.
- •Оператор выбора (варианта)
- •9. Охарактеризуйте сущность логических операций в Паскале, опишите логический тип данных. Приведите таблицы истинности для операций and и or.
- •Логические операции, логический тип данных
- •Операторы организации циклов
- •Оператор повтора for
- •Циклы с неизвестным числом повторений
- •Массив. Одномерные массивы
- •Массив. Многомерные (двумерные) массивы
- •14. Опишите общую структуру процедуры в языке программирования Паскаль (Delphi). Запишите общий вид вызова процедуры. Перечислите варианты формальных параметров.
- •Процедуры
- •15. Опишите общую структуру функции в языке программирования Паскаль (Delphi). Запишите общий вид вызова функции. Перечислите основные отличия процедуры от функции.
- •Функция
- •16. Дайте определение понятия «модуль» (unit). Опишите структуру Unit-a (разделы interface, implementation).
- •1. Структура модуля
- •Заголовок модуля и связь модулей друг с другом
- •Интерфейсная часть
- •Исполняемая часть
- •17. Опишите символьный тип данных в языке программирования Паскаль (Delphi). Приведите пример объявления символьной константы. Перечислите символы, которые могут помещаться в символьную переменную.
- •Символьные переменные
- •Множества
- •20. Дайте определение записи. Напишите структуру объявления записи в языке программирования Паскаль (Delphi). Приведите пример объявления записи. Приведите пример обращения к отдельным полям записи.
- •21. Дайте понятие сортировки. Изложите общие принципы сортировки выбором, вставкой, обменом.
- •Сортировка
- •Сортировка простым обменом (метод «пузырька»)
- •Сортировка выбором
- •Сортировка вставкой
- •22. Дайте определение рекурсии, рекурсивной функции. Кратко опишите достоинства и недостатки рекурсии. Сформулируйте главное требование к рекурсивным подпрограммам.
- •Рекурсия
- •Программирование клавиатуры
- •Понятие стека
- •Понятие очереди
- •Операции с указателями
- •25. Дайте определение файла в Паскале. Перечислите типы файлов. Приведите общие процедуры обработки файлов. Дайте определение текстового файла. Назовите процедуры для работы с текстовыми файлами.
- •Общие процедуры и функции обработки файлов
- •Текстовые файлы
- •Способы представления ориентированного и неориентированного графа
- •Объект, способы описания
- •Свойства характерные для многих компонентов
- •29. Дайте понятие класса в языке программирования Delphi. Приведите отличие классов от других типов. Дайте понятие о структуре класса, его составляющих: полях, методах и свойствах.
- •Классы в Delphi
- •Компоненты
Способы представления ориентированного и неориентированного графа
Графы модно представить с помощью матрицы инциденций, матрицы смежностей и списка пар.
С алгоритмической точки зрения матрица инциденций является одним из самых худших способов представления графа. Более экономным в отношении памяти является способ представления графа с помощью списка пар, соответствующих его ребрам.
Представление графа с помощью матрицы смежности размера n x m, где bij = 1, если существует ребро, ведущее из x в y, и bij = 0 – противном случае. Для нашего орграфа матрица смежности имеет вид:
program my;
const
a : array[1..4, 1..4] of byte=
((0,1,0,1),
(0,0,1,0),
(1,0,0,0),
(1,0,1,0));
var
i,j, x, y : integer;
begin
write('Введите X : ');
readln(x);
write('Введите Y : ');
readln(y);
if a[x,y]=1 then
writeln('Путь существует') else
writeln('Пути нет');
readln;
end.
27. Дайте определение объекта в языке программирования Паскаль (Delphi). Приведите способы описания объекта. Перечислите три фундаментальных принципа, которые лежат в основе объектно-ориентированного программирования (ООП). Раскройте роль конструктора и деструктора.
Разработайте фрагмент программы объявления объекта. Класс – точка. Свойства – X, Y, Color. Конструктор Create. Методы – SetPos(NewX, NewY).
Объект, способы описания
Объект — это совокупность данных, характеризующих его состояние, и процедур их обработки, моделирующих его поведение.
Объект — это тип данных, поэтому он определяется в разделе описания типов. В других языках объектный тип называют классом. Объект похож на тип record, но кроме полей данных в нем можно описывать методы. Внутри объекта описываются только заголовки методов.
type имя = object
[ private ]
описание полей
[ public ]
заголовки методов
end;
ООП характеризуется тремя основными свойствами: инкапсуляцией (encapsulation),наследованием (inheritance) и полиморфизмом (polymorphism).
Инкапсуляция
Инкапсуляция — это объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы — объектными методами.
Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надежность разрабатываемых программ, обеспечивает легкость обмена объектами, переноса их из одной программы в другую.
Наследование
Наследование — это свойство объектов порождать своих потомков. Объект-потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.
Наследование позволяет создавать иерархию классов.
Один и тот же класс может быть потомком одних классов и предком других. У каждого класса может быть любое количество предков, при этом он наследует характеристики всех своих предков.
Полиморфизм
Полиморфизм — это свойство родственных объектов (т. е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами. Изменяя алгоритм того или иного метода в потомках объекта, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т. е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.
Программа это не только фиксированная совокупность объектов. В процессе работы объекты могут создаваться и уничтожаться. То есть, структура программы динамически изменяется в процессе выполнения. Основная цель создания и уничтожения объектов — экономия ресурсов компьютера и, прежде всего, памяти. Следовательно, во все объекты заложены методы их создания — конструкторы и уничтожения — деструкторы.
Конструкторы объектов срабатывают при запуске программы. Деструкторы всех объектов срабатывают при завершении его работы. Но нередко и в процессе выполнения новые объекты создаются и уничтожаются с помощью их конструкторов и деструкторов.
program my;
type
tPoint = object
X, Y : integer;
Color : byte;
constructor Create;
procedure SetPos(NewX, NewY : integer);
end;
constructor tPoint.Create;
begin
X:=0;
Y:=0;
Color:=1;
end;
procedure tPoint.SetPos(NewX, NewY : integer);
begin
X:=NewX;
Y:=NewY;
end;
var
Point : tPoint;
begin
Point.Create;
Point.SetPos(20,30);
end.
28. Укажите назначение основных свойств объектов Delphi (Name, Caption, Visible, Left, Top, Width, Height, Font, Color, Cursor, Enabled, Hint), основных методов (Hide, Show, SetFocus) и основных событий (OnClick, OnDblClick, OnEnter, OnMouseMove).
Разработайте фрагмент программы для определения количества отрицательных элементов одномерного массива. Десять элементов массива вводятся с клавиатуры пользователем.
Все свойства, имеющиеся у выбранного компонента, перечислены в Инспекторе объектов. Задавать и изменять свойства можно через него и программно.
Для того, чтобы в программе присвоить свойству объекта значение необходимо указать имя компонента, поставить «.» а затем указать необходимое свойство. Для большего удобства можно использовать Знаток кода. После имени свойства ставиться знак «:=», а затем значение свойства.