- •Реализация алгоритмов в среде Delphi Сборник заданий для лабораторных работ
- •Введение
- •Лабораторная работа №1. Реализация простейших циклических алгоритмов в консольном приложении среды Delphi
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •Лабораторная работа №2. Решение задач обработки массивов в консольном приложении среды Delphi
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •Лабораторная работа №3. Проектирование алгоритмов с использованием подпрограмм и их отладка в консольном приложении
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •Лабораторная работа №4. Решение задач с параметрами-подпрограммами и модулями в консольном приложении Delphi
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •Лабораторная работа №5. Разработка простейших оконных приложений в среде Delphi
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •ПриМер основного обработчика индивидуальнойзадачи
- •Лабораторная работа №6. Создание оконных приложений обработки матриц в среде Delphi
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •ПриМер обработчиков приложения индивидуальной задачи
- •Лабораторная работа №7. Программирование открытия и сохранения файлов с использованием стандартных диалоговых окон
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •ПриМер обработчиков приложения индивидуальной задачи
- •Лабораторная работа №8. Разработка оконных приложений, использующих автономные модули
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •ПриМер автономного модуля
- •Некоторые обработчики приложения, вычисляющего сумму элементов одномерного массива
- •Лабораторная работа №9. Разработка оконных приложений, осуществляющих графический вывод
- •1. Подготовка к работе
- •Задание и рекомендации по его выполнению
- •Пример обработчика вывода графических примитивов
- •Пример обработчика, формирующего массивы координат точек серий для вывода графиков функций с помощью Chart
- •Лабораторная работа №10. Обработка исключительных ситуаций
- •1. Подготовка к работе
- •2. Задание и рекомендации по его выполнению
- •Приложение 1. Пример проекта отчета по консольному приложению Условие
- •Состав данных
- •Форма ввода
- •Приложение 2. Пример проекта отчета по оконному приложению Условие
- •Состав данных
- •Блок-схема алгоритма
Лабораторная работа №1. Реализация простейших циклических алгоритмов в консольном приложении среды Delphi
Цель работы:приобретение навыков создания, сохранения и отладки программ в режиме консольного приложения среды Delphi; освоение приемов проектирования простейших циклических алгоритмов
Продолжительность работы:2 часа
1. Подготовка к работе
Перед началом выполнения работы студент должен:
Разработать проект отчета по решению предлагаемой задачи ([1] 1.3.1.N+1, где N – номер студента по журналу группы). Проект отчета должен содержать (см. также приложение 1):
номер и условие задачи;
состав данных задачи;
формы ввода и вывода;
блок-схему алгоритма решения задачи;
текст паскаль-программы;
тесты.
Необходимо иметь два теста. Один тест представляет собой специально подобранные значения исходных данных, для которых несложно оценить значение результатов, и результаты для этих исходных данных. Второй тест – это расширенный тест для проверки правильности работы программы с помощью трассировки; в него входят вычисленные (например, с помощью калькулятора) значения переменных программы для каждого шага алгоритма.
Набрать текст паскаль-программы в блокноте (программа NotePad).
Ознакомиться со средствами отладки программ в консольном приложении, например, по пособию [2].
2. Задание и рекомендации по его выполнению
Запустите Delphi и создайте новое консольное приложение.
Для создания нового консольного приложения надо через главное меню Delphi набрать команду File/New/Otherи в появившемся диалоговом окнеNewItemsвыбрать значокConsole Application(консольное приложение).
Система Delphi выдаст окно (см. рис. 1) текстового редактора консольного приложения с заготовкой паскаль-программы, имеющей автоматически сгенерированное имя Project1(Project2, и т. д.).
Из подготовленного в блокноте текста программы через буфер обмена вставьте в консольное приложение описание переменных и операторы раздела действий (см. рис. 1). При этом нельзя удалять директиву компилятора {$APPTYPE CONSOLE}и предложениеuses Sysutils.Строка комментариев//Insert user code hereможет быть удалена.
Сохраните приложение в своей папке на рабочем диске компьютера.
Сохранение осуществляется с помощью главного меню File/Save allили соответствующей кнопкой панели инструментов (найдите ее, используя подсказки среды Delphi). В появившемся диалоговом окне следует указать нужную папку и имя файла (совпадающее с именем, указанным в инструкцииprogram). Среда Delphi приписывает программе расширение.dpr. Одновременно создаются два файла с расширениями.dofи.cfg, характеризующие конфигурацию и настройки среды Delphi. При переносе программы в другую папку или на другой компьютер последние два файла переносить необязательно. Рекомендуется для каждого проекта приложения Delphi иметь отдельную папку.
Откомпилируйте и выполните приложение. Для проверки правильности программы используйте первый тест.
Компиляция и запуск программы осуществляется активизацией пункта главного менюRun/Run, или кнопки панели инструментов (имеющей вид зеленого треугольника), или нажатием функциональной клавишиF9.
При обнаружении ошибок в программе на этапе компиляции среда выдает сообщение об ошибке в окне, примыкающем снизу к окну с текстом программы (см. рис. 2). При двойном щелчке мыши на сообщении об ошибке строка программы, содержащая рассматриваемую ошибку, выделяется коричневой полосой. Необходимо понять, в чем состоит ошибка, проанализировав текст сообщения об ошибке и указанный фрагмент программы, исправить ошибку и снова запустить программу.
Ошибки, выявляемые на этапе компиляции, называются синтаксическими, так как их причиной является формальное несоответствие текста программы синтаксису языка Паскаль.
Иногда одна ошибка приводит к генерации двух сообщений. Такая ситуация показана на рис. 2. Потеря апострофа, закрывающего текстовую строку, вызвала два сообщения об ошибке: первое говорит о незаконченной строке, второе – о том, что следующий оператор (Readln) появился до завершения предыдущего. Иногда ошибка находится не в выделенной строке, а в соседних строках; если сделать двойной щелчок на втором сообщении об ошибке (см. рис. 2), то получим именно такой случай.
В некоторых ситуациях место ошибки находится далеко от выделенной строки. Дело в том, что маленькая ошибка в одном операторе может повлиять на правильность других операторов, и привести к нескольким ошибкам; эти ошибки-следствия и будут обнаружены компилятором. Поэтому при анализе ошибок нужно помнить о логике программы, иначе исправления могут привести к формально верной (с точки зрения правил Паскаля) программе, которая, однако, будет реализовывать алгоритм, не соответствующий условию задачи.
После успешного прохождения компиляции автоматически начинается выполнение программы, и на экране возникает экран консольного приложения (см. рис. 3). В этот экран выводится все то, что запрограммировано с помощью оператораWriteln, и в него же вводятся значения исходных данных. Обратите внимание на операторReadlnпрограммы на рис. 2. Он необходим для задержки экрана консольного приложения с результатами работы программы (см. рис.3). Проанализировав программу рис. 2 и результаты рис. 3, скажите, соответствуют ли они друг другу.
Когда Ваша программа успешно пройдет компиляцию, Вы должны будете ввести в окно консольного приложения исходные данные первого теста (см. раздел «Подготовка к работе») и сравнить полученные результаты с тестовыми. Однако ввод исходных данных не всегда приводит к получению результата. Труд программиста требует вдумчивого отношения к задаче, внимания и аккуратности. Что-то не предусмотрено – и Ваша программа выдает сообщение об ошибке. Например, неграмотно введены исходные данные, или в ходе программы происходит деление на ноль, или извлечение корня из отрицательного числа. Такие ошибки называются ошибками при выполнении программы.
Обратите внимание, что для выявления рассмотренных выше ошибок Вы ничего не делаете – их обнаруживает среда Delphi, а все Ваши усилия направлены только на их исправление. Наконец, сообщений об ошибках больше нет (Delphi всем довольна), и Вы получили значения выходных данных. Хорошо, если они совпали с тестовыми результатами! При несовпадении придется искать ошибки – и в программе, и в тесте. Такие ошибки гораздо труднее обнаружить, чем те, о которых сообщает среда. Если Вы не сможете их выявить с помощью внимательного просмотра программы (говорят: визуального контроля), придетсятрассироватьпрограмму. Как это делается, изложено в следующем пункте.
Проверьте программы с помощью трассировки, используя второй тест.
Перечисленные возможности среды Delphi понадобятся для организации трассировки.
Создание точки останова:щелчок на левом поле около оператора, при этом на поле ставится красная точка, а оператор закрашивается красной полосой.
Организации трассировки программы:
F8– пошаговое выполнение программы (без захода в подпрограммы);
F4– запуск программы до места, указанного курсором.
Просмотр значений переменных в ходе трассировки:Ctrl‑F5илиCtrl‑F7.
Принудительное завершение программы(если нормальное невозможно):Run/ProgramResetилиCtrl‑F2.
Зафиксируйте результаты отладки программы в отчете и покажите их преподавателю. После приема работы выйдите из среды (например, командой File/Exit), предварительно сохранив последний вариант программы.