Конспект лекций

Практикум по дисциплине
"Основы алгоритмизации и программирование"

Правила оформления отчётов по лабораторным работам

Работа 1. Выполнение программ в среде Turbo Pascal
Работа 2. Составление нециклических программ с разветвлениями
Работа 3. Табуляция функций
Работа 4. Составление циклических программ
Работа 5. Способы передачи параметров процедурам
Работа 6. Процедуры
Работа 7. Массивы

Работа 8. Двумерные массивы (матрицы)
Работа 9. Псевдографика
Работа 10. Обработка строк
Работа 11. Множества
Работа 12. Разработка простого интерфейса пользователя (на базе стандартного модуля Crt)
Работа 13. Графика
Работа 14. Работа с таблицами
Работа 15. Задача корректировки последовательного файла
Работа 16. Файлы
Работа 17. Динамические структуры данных
Работа 18. Классы и объекты


Работа 1. Выполнение программ в среде Turbo Pascal

Содержание работы

Задание. Изучить подготовку и выполнение программ в среде Turbo Pascal. Ввести и отладить программу нахождения наибольшего общего делителя двух целых чисел (по алгоритму Евклида).
Содержание отчёта. 1. Схема алгоритма. 2. Текст программы. 3. Тесты.

Подготовка и выполнение программ в среде Turbo Pascal

(Краткий справочник).

=== Выход из Windows (выполняется в конце занятия) ===
Закрыть все приложения, в которых вы работали. Щёлкнуть на кнопке "Пуск", выбрать "Завершение работы", выбрать "Выключить компьютер" и щёлкнуть на кнопке "Да". Подождать когда появится транспорант о завершении работы. После этого, если было соответствующее указание преподавателя, выключить монитор и системный блок.

=== Вход в Windows (выполняется в начале занятия) ===
Включите монитор и системный блок. Подождите сообжения о необходимости ввода Ctrl + Alt + Del. Нажмите. Появится входной диалог. Введите Enter. Зерез 1..2 минуты система будет готова к работе.

=== Вход в систему PASCAL ===
Используя Проводник или программу Far войти в каталог c:\Учебная\BvaPas и запустить файл Go.bat.

=== Сведения по DOS ===
dir - печатать текущий каталог;
dir a:\ - печатать корневой каталог на драйвере a:;
copy Name.Ext a:\ - копировать файл Name.Ext из текущего каталога в корневой каталог на драйвере a:;
copy a:\Name.Ext - копировать файл Name.Ext из корневого каталога на драйвере a: в текущий каталог;

=== Основные команды IDE TPascal ===
Alt + X - выход из системы
Esc - отмена (выход из окна диалога, отмена команды и т.д.)
Tab, Shift + Tab - переключение активных элементов диалога
Enter - выполнить (ввести, подтвердить выбор и т.д.)
Alt + F - вызов меню File
Alt + R - вызов меню Run
Alt + W - вызов меню Window
File | New - создать новое окно редактора текста
File | Open - открыть файл (F3)
File | Save - сохранить файл (F2)
File | Save as - сохранить файл под новым именем
Run | Run - выполнить программу (Ctrl + F9)
Run | Program reset - сброс после ошибки (Ctrl + F2)
Window | Close - закрыть текущее окно (Alt + F3)
Alt + <N> - окно N сделать текущим
Alt + F5 - переключение "IDE - окно вывода"
Ctrl + Break, Ctrl + C - прекратить выполнение программы

=== Основные команды редактора текста ===
Caps Lock - переключение регистра (постоянное)
Shift - переключение регистра (на время удержания клавиши)
<- - удалить предыдущую литеру
Delete - удалить текущую литеру
Enter - вставить строку
Ctrl + Y - удалить текущую строку
Ctrl + K + B - отметить начало блока
Ctrl + K + K - отметить конец блока
Ctrl + K + H - убрать подсветку блока
Ctrl + K + Y - удалить блок
Ctrl + K + C - копировать блок
Ctrl + K + V - переместить блок

Правила составления тестов

Тестирование - это контрольное выполнение программы с целью обнаружения ошибок в ней.

1. Тесты должны быть записаны в форме таблицы (пример):

# теста Вход Ожидаемый выход Фактический выход Результат
1 1 2 3 1 2 3 1 3 2 Нет
2 4 7 2 2 4 7 2 4 7 Да

2. Тестов должно быть достаточно много, чтобы проверялась каждая ветвь программы.

3. Для проверки циклов с переменным количеством раз повторения тела цикла предусмотреть три теста, а именно: с минимальным, максимальным и средним количеством повторений.

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

Работа 2. Составление нециклических программ с разветвлениями

Задание. Составить и отладить программу индивидуального задания.
Содержание отчёта. 1. Схема алгоритма. 2. Текст программы. 3. Тесты.

Работа 3. Табуляция функций

Задание. Составить и отладить программу для табуляции функции индивидуального задания на отрезке (a,b) с постоянным шагом. Сделать оценку оптимального количества шагов табуляции. Оно должно быть по возможности минимальным, но достаточно большим, чтобы на любом шаге табуляции изменение функции не превышало 5% от диапазона изменения функции в пределах всего отрезка (a,b).
Содержание отчёта. 1. Текст программы. 2. График табулируемой функции (при двадцати шагах табуляции). 3. Оптимальное количество шагов табуляции.

Работа 4. Составление циклических программ

Задание. Составить и отладить программу индивидуального задания.
Содержание отчёта. 1. Схема алгоритма. 2. Текст программы. 3. Тесты.

Работа 5. Способы передачи параметров процедурам

Задание. Дана программа:

program BindTst;
var a: Integer;

procedure Bind({var}x: Integer);
begin
x:=x+1;
WriteLn(a,x:3);
end; {Bind}

begin
a:=17;
Bind(a);
WriteLn(a);
end.

Определите выход заданной программы (без var). Уберите скобки комментария, заключающего слово var в заголовке описания программы, и определите выход модифицированной программы (с var). Объясните различие выходов двух вариантов программы.
В этой работе нет индивидуального задания.
Содержание отчёта. 1. Текст программы. 2. Выход программы без var. 3. Выход программы с var. 4. Объяснение различия выходов двух вариантов программы.

Работа 6. Процедуры

Задание. Решение задачи из работы 4 оформить в виде процедуры (функции). Эта процедура не должна иметь глобальных переменных и выполнять каких-либо операций ввода-вывода. Весь необходимый ввод-вывод должен быть сосредоточен в разделе операторов программы. Там же должен находиться и вызов процедуры решения задачи. Предполагается, что обмен данными между вызывающей программой и вызываемой процедурой выполняется только через параметры.
Содержание отчёта. 1. Текст программы. 2. Тесты.

Работа 7. Массивы

Задание. Составить и отладить программу индивидуального задания.
Содержание отчёта. 1. Текст программы. 2. Тесты.

Работа 8. Двумерные массивы (матрицы)

Задание. Составить и отладить программу индивидуального задания.
Содержание отчёта. 1. Текст программы. 2. Тесты.

Работа 9. Псевдографика

Символы псевдографики - это символы с кодами 176..223 кодовой таблицы ЦВМ. Они позволяют "рисовать" простейшие графические изображения, состоящие из линий, двойных линий и т.п.

Задание в этой работе состоит из двух частей - общего и индивидуального.

Общее задание. Составить программу вывода кодовой таблицы для символов псевдографики в наглядной форме. Напомним, что для преобразования кода литеры в данное типа Char и наоборот предназначены стандартные функции Chr и Ord. Следующая программа выводит литеры, коды которых поступают на вход. Для выхода из программы надо ввести число, которое не входит в диапазон 32..255.

program ViewChar;
var Code: Integer;
begin
repeat
   Write('Code: ');
   ReadLn(Code);
   if (Code < 32) or (Code > 255) then Break;
   WriteLn('   Ch = ', Chr(Code));
until False;
end.

Содержание отчёта. 1. Текст программы индивидуального задания. 2. Результат контрольного выполнения программы.

Работа 10. Обработка строк

Задание. Познакомиться со стандартными процедурами языка Pascal Val и Str по справочной системе интегрированной среды (Shift + F1). Составить и отладить программу индивидуального задания.
Содержание отчёта. 1. Текст программы. 2. Тесты.

Работа 11. Множества

Задание. Экспериментально проверить законы булевой алгебры при её интерпретации на множествах. Для этого необходимо составить программу, которая организует ввод множеств-операндов, преобразование их в соответствии с заданным законом и вывод результатов. Сами законы и их номера можно найти в разделе "Введение в булеву алгебру" конспекта лекций. Для получения номера закона вашего индивидуального задания необходимо прибавить число 2 к номеру вашего варианта.
Рекомендации. В качестве базового типа для типа множества рекомендуется выбрать диапазон 1..9. Ввод-вывод множеств целесообразно организовать с использованием процедур.
Содержание отчёта. 1. Текст программы. 2. Тесты.

Работа 12. Разработка простого интерфейса пользователя
(на базе стандартного модуля Crt)

Задание. На базе использования стандартного модуля Crt необходимо разработать диалоговую программу с использованием меню для управления стеком, который реализован в модуле Stack. Его текст приведён в разделе "Модульность" конспекта лекций. С помощью разработанного интерфейса выполните полное тестирование всех процедур модуля Stack.
Содержание отчёта. 1. Текст диалоговой программы. 2. Тесты процедур модуля Stack.

Работа 13. Графика

Задание. Разработать программу для рисования на экране монитора графика функции из индивидуального задания к работе номер 3. Следует позаботиться о достаточно крупном масштабе графика. Продемонстрировать работу готовой программы преподавателю.
Содержание отчёта. 1. Текст программы.

Работа 14. Работа с таблицами

Задание. Разработать ПС "Работа с таблицей".

Эта работа носит комплексный характер. В ходе её выполнения необходимо разработать ПС, которая состоит из программного модуля для выполнения типовых операций с таблицей и реализовать диалоговую программу для работы пользователя с таблицей. Последняя одновременно должна послужить цели тестирования разрабатываемой ПС. Запись таблицы должна состоять не менее чем трёх-четырёх полей и по содержанию относиться к проблемной области в соответствии с индивидуальным заданием. Индивидуальное задание также определяет тип таблицы: упорядоченна или нет.

Модуль ПС должен предусматривать реализацию следующих операций с таблицей: визуализация таблицы, включение новой записи, удаление указанной записи, поиск записи по значению выбранного поля. Если таблица не упорядоточена, то необходимо дополнительно предусмотреть сортировку записей по полю поиска.

Диалоговая программа должна предусмотреть, кроме организации диалога с пользователем, должна предусмотреть обработку ошибок с предоставлением пользователю соответствующих сообщений.

Содержание отчёта. 1. Схема алгоритма диалоговой программы. 2. Спецификация одной из процедур модуля. 3. Текст модуля. 4. Текст программы.

Работа 15. Задача корректировки последовательного файла

Задание. Отладить программы GenFile, ViewVile и Update из раздела "Файлы" конспекта лекций. Сгенерировать пример главного файла и файла корректировки. Выполнить корректировку главного файла. Модифицировать программу ViewFile так, чтобы она выводила информацию в текстовый файл с заданным именем.

Содержание отчёта. 1. Модифицированный текст программы ViewFile. 2. Результат визуалации файлов примера: главного файла, файла корректировки и главного файла после корректировки.

Работа 16. Файлы

Задание. Дополнить модуль для реализации операций с таблицей из работы номер 14 двумя процедурами - для сохранения таблицы в файле и загрузки таблицы из файла. Соответствующим образом доработать диалоговую программу.
Содержание отчёта. 1. Текст изменений модуля. 2. Текст изменений в диалоговой программе. 3. Соображения на тему "Как при разработке ПС учесть возможность её будущей модификации".

Работа 17. Динамические структуры данных

Задание. Модифицируйте диалоговую программу из работы номер 12 так, чтобы обеспечить пользователя информацией о текущем состоянии кучи. С помощью разработанного интерфейса выполните полное тестирование всех процедур модуля Stack из раздела "Введение в динамические структуры данных" конспекта лекций.
Содержание отчёта. 1. Текст диалоговой программы. 2. Тесты процедур модуля Stack.

Работа 18. Классы и объекты

Задание. Необходимо придумать наглядный пример проблемной ситуации, для моделирования которой было бы целесообразно реализовать класс с производным классом. В примере не следует увлекаться большим количеством полей и методов. Хотя бы один метод должен быть виртуальным. Составить программу реализации классов и примера работы с ними.
Содержание отчёта. 1. Описание примера проблемной ситуации на естественном языке 2. Текст программы. 3. Пример выхода программы.


Copyright г Барков Валерий Андреевич, 2000