- •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
- •Компоненты
Понятие стека
Стек — линейный список, в котором все добавления и удаления (и обычно всякий доступ) делаются в одном конце списка.
Говорят, что стек функционирует по принципу LIFO (Last In — First Out: "последним пришел — первым вышел"). Примером стековой организации является винтовочный магазин: последний вставленный в него патрон при стрельбе "выйдет" первым.
Важнейшие операции в стеке — включение (insertion) и исключение (deletion).
Для хранения стека в памяти отводится сплошная область. Если в процессе заполнения стека указатель, перемещаясь "вверх", выходит за границу первоначально отведенной области, то происходит переполнение стека (stack overflow).
Стеки находят широкое применение при организации памяти компьютеров.
Понятие очереди
Очередь — линейный список, в котором все добавления производятся на одном конце списка, а все удаления делаются на его другом конце.
Основные операции в очереди — включение и исключение элемента. Другие операции с очередью не определены. Говорят, что очередь функционирует по принципу FIFO (First In — First Out, т. е. "первым пришел — первым вышел"). Та сторона, с которой осуществляется добавление элементов, называется хвостом (или концом) очереди, другая — головой. Для индикации головы и хвоста организуется два указателя: указатель головы (head pointer) и указатель хвоста (tail pointer).
В программировании очереди применяются очень широко — например, при моделировании или диспетчеризации задач в ОС.
Для очереди выделяется конечная последовательность слотов, из которых в каждый текущий момент времени элементами очереди заняты лишь часть последовательных слотов.
Турбо Паскаль предоставляет в распоряжение программиста гибкое средство управления динамической памятью — так называемые указатели.
Указатель — это переменная, значением которой является адрес другой переменной или структуры данных. Как правило, в Турбо Паскале указатель связывается с некоторым типом данных. Такие указатели будем называть типизированными. Для объявления типизированного указателя используется значок ^, который помещается перед соответствующим типом, например:
var
P1 :^Integer;
р2 :^Real;
В Турбо Паскале можно объявлять указатель и не связывать его при этом с каким-либо конкретным типом данных. Для этого служит стандартный тип POINTER, например:
var
р: pointer;
Указатели такого рода будем называть нетипизированными.
Операции с указателями
Для указателей определены только операции присваивания и проверки на равенство и неравенство. В Паскале, в отличие от других языков, запрещаются любые арифметические операции с указателями, их ввод-вывод и сравнение на больше-меньше.
program my;
var
a : array [1..5, 1..5] of real;
i, j : byte;
s : real;
begin
s:=0;
for i:=1 to 5 do
for j:=1 to 5 do
begin
write('Введитечисло [',i,’,’,j,'] : ');
readln(a[i,j]);
if a[i,j]<0 then s:=s+a[i,j];
end;
writeln('s = ', s:0:2);
readln;
end.
25. Дайте определение файла в Паскале. Перечислите типы файлов. Приведите общие процедуры обработки файлов. Дайте определение текстового файла. Назовите процедуры для работы с текстовыми файлами.
Разработайте программу для создания текстового файла из 20 случайно сгенерированных чисел.
Файлы
Файл с точки зрения языка Паскаль - это структурированный тип данных, состоящий из последовательности компонентов в большинстве случаев одного типа и одной длины.
В зависимости от способа объявления в Турбо Паскале можно выделить 3 вида файлов:
• типизированные, которые задаются предложением File of «тип»;
• текстовые, которые задаются предложением Text;
• нетипизированные, которые задаются предложением File.