Алгоритмический язык Pascal

Среда Turbo Delphi

Создание и запуск консольного приложения.

Изучение диагностических сообщений Turbo Delphi.

Интегрированная среда программирования Turbo Delphi предназначена для создания 32-разрядных приложений Windows. Эта среда относится к классу визуальных, в которых программисту предоставляется возможность прямо на экране формировать интерфейс разрабатываемого продукта из стандартных элементов управления.

Однако среда позволяет создавать не только приложения Windows, но и консольные приложения. В отличие от обычных приложений Windows консольные приложения для взаимодействия с пользователем используют текстовое окно. В это текстовое окно программа вы водит сообщения пользователю, а пользователь в него же с клавиатуры вводит данные для программы.

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

Главное окно среды при запуске имеет вид, представленный на рис. 2.13. Оно включает заголовок, основное меню, панель быстрого вызова, панель структуры проекта, панель инспектора объектов, Web-страницу приглашения, панель менеджера проектов и палитру инструментов.

Работа в среде осуществляется с использованием основного и вспомогательных меню, а также кнопок панели быстрого вызова. Эти кнопки применяют для ускорения доступа к часто выполняемым операциям. Такие кнопки дублируют соответствующие пункты меню.

Рис. 2.13. Вид главного окна Turbo Delphi

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

Среда создает два файла программы, содержащие проект, которые имеют расширение bdsproj (Borland Developer Studio Project File) и dpr (Delphi Project File). Файл с расширением dpr создается в формате, совместимом с ранними версиями Delphi (в частности, с Delphi 7) и содержит текст основной программы. Файл с расширением bdsproj формируется в формате Delphi Studio и содержит информацию о проекте. Запуск любого из этих файлов в среде Turbo Delphi вызовет открытие проекта. Если сформированный в среде Turbo Delphi проект необходимо запустить в среде Delphi 7, следует работать с файлом, имеющим расширение dpr.

Первый пункт меню File, как и во многих других приложениях Windows, контролирует создание, открытие и сохранение проектов и отдельных файлов. Он содержит следующие подпункты:

New - создание новых проектов, файлов и т.п.;

Open - открытие уже существующих файлов;

Open Project - открытие уже существующих проектов;

Reopen - вызов проектов из списка ранее созданных;

Save - сохранение текущего файла с тем же именем в том же ката­ логе;

Save  as...- сохранение текущего файла с новым именем и/ или на новом месте;

Save  Project  as...- сохранение текущего проекта с новым  именем и/или на новом месте;

Save All - сохранение всех файлов проекта;

Close -закрытие текущего файла;

Close All - закрытие всех открытых файлов;

Print -вывод на принтер текущего файла программы;

Use Unit -добавление в файл ссылки на другой модуль;

Exit -выход из среды.

Пункт меню Edit позволяет выполнить основные операции с текстом программы: удаление, копирование через буфер, вставку и т.п. Пункт меню Search содержит операции поиска в текущем файле и всех файлах проекта. Через меню пункта View осуществляется управление внешним видом окна среды. Пункт меню Project объединяет операции работы с проектом (программой). Команды пункта меню Run осуществляют запуск и отладку программы. Остальные пункты нам пока не понадобятся.

Рассмотрим, как создаются в Turbo Delphi консольные приложения. Консольное приложение - простая программа и для работы с ней не понадобятся панели Инспектора объектов, Менеджера проектов и палитра инструментов. Их можно убрать, щелкнув мышью по крестику в правом верхнем углу каждого из перечисленных окон. Окно структуры проекта используют для навигации по большим программам. К его использованию целесообразно привыкнуть. Страницу приветствия тоже можно удалить, чтобы она не отвлекала внимания.

Создание консольного приложения для вычисления корней квадратного уравнения

1. Для создания заготовки консольного приложения выберите пункт File/New/Other... (пункт File подпункт New и подпункт Other...). На экране появляется окно выбора создаваемых проектов (рис. 2.14).

Выберите пиктограмму Console Application. После этого на экране появится заготовка консольного приложения со стандартным именем Project l (рис. 2.15).

2. В рабочей области на экране теперь два окна: панель структуры и вкладка многооконного редактора текстов программ.

В окне структуры отображается дерево объектов программы: переменных функций, типов, библиотек и т.п. Его используют для быстрого перехода к описанию какого-либо объекта. Если щелкнуть мышью по перекрестию у папки, то мы увидим ссылку только на библиотеку SysUtils. А двойной щелчок по этой ссылке установит курсор на объявление этой библиотеки в программе.

Рис. 2.14. Выбор консольного приложения

Рис. 2.15. Вид окна среды с заготовкой консольного приложения и без неиспользуемых окон

3. Созданный проект следует сохранить. Каждый отдельный проект нужно сохранять в отдельной папке. Поэтому перед сохранением создайте новую папку для этого проекта, допустим, Пример1. Затем используйте пункт меню File/Save. На экране появится диалог Save Project 1as. В дереве файлов найдите созданную папку, задайте имя программы в окне Имя файла, например Examplel , и нажмите на кнопку Сохранить (рис. 2.16). После этого изменится как имя файла проекта, так и имя на вкладке многооконного редактора программ.

Рис. 2.16. Внешний вид диалога сохранения проекта

4. На переименованной вкладке Examplel многооконного редактора программ высвечивается заготовка консольного приложения. В этом окне набирают текст программы. При необходимости можно в других окнах открыть файлы с другими программами или данными с помощью пункта File/Open, но при этом проект может быть открыт только один.

Введите в открытое окно редактора программ выделенный текст:

 

program Examplel;

  {$АРРТУРЕ CONSOLE)

uses SysUtils;

Var A,B,C,D,E,Xl,X2:Single;

Begin

   WriteLn('Input А,В,С: ');

   ReadLn(A,B,C);

   D:=Sqr(B)-4*A*C;

   if D>=O then

   begin

      Е:=2*А;

      Xl:=(-B+Sqrt(D))/Е;

      X2:=(-B-Sqrt(D))/E;

      WriteLn('Xl=',Xl:6:1,' Х2=',Х2:6:1)

   end

   else WriteLn('No result');

   ReadLn;

end.

 

5. Для выполнения программы следует использовать кнопку быстрого вызова Run (зеленый треугольник на панели инструментов), пункт меню Run/Run или клавишу F9.

Если при вводе программы вы допустили синтаксические ошибки, то компилятор выдаст на экране в окне вывода Messages (в нижней части окна среды) на вкладке Build соответствующие сообщения. При этом курсор будет установлен в тексте на место первой ошибки (рис. 2.17).

Рис. 2.17. Вид окна при обнаружении ошибки компиляции

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

6. Если программа введена верно, то на экране появится текстовое окно, в которое будет выведен запрос на ввод чисел. Числа вводят через пробел или каждое число в своей строке, нажимая после ввода числа клавишу Enter. После ввода чисел в то же окно будет выведен результат (рис. 2.18).

Рис. 2.18. Окно консоли с выведенными результатами

При этом вид окна среды за окном консоли изменится, на нем появятся панели режима отладки программы: Call  Stack - стек вызовов,  Watch  List  - список отслеживаемых значений переменных, Local Variables -значения локальных переменных,  Event Log -перечень событий. Особенности работы с этими окнами будут рассмотрены далее.

Изучение диагностических сообщений Turbo Delphi

В таблице 2.5 приведен набор часто встречающихся ошибок, которые делают начинающие программисты. Поочередно внося ошибки в программу, фиксируйте сообщения об ошибках в табл. 2.5. Классифицируйте ошибку, расшифруйте сообщение системы и определите этап выполнения программы (компиляция, компоновка или выполнение), на котором была обнаружена данная ошибка.

В процессе работы в среде Turbo Delphi создаются следующие файлы:

<Имя npoeктa>.bdsproj - файл настроек Borland Developer Studio Project File;

<Имя пpoeктa>.bdsproj. local -файл настроек Delphi;

<Имя проекта> .dpr - исходный файл;

<Имя проекта> .cfg - файл конфигурации - опции компилятора и компоновщика;

<Имя проекта>.ехе - исполняемый файл.

Кроме этого будет создана скрытая папка _history, которая будет хранить копии измененных файлов.

Если в процессе работы создаются библиотечные файлы ( Unit), то они будут иметь расширение <Имя файла>.раs. Все файлы будут созданы в той папке, где был сохранен и сам проект.

Для переноса программы с одной ЭВМ на другую достаточно переписать файлы с расширениями dpr и pas (если они создавались), остальные будут пересозданы в процессе загрузки и запуска приложения.

Средства отладки Turbo Delphi

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

Управление пошаговым выполнением программы. Для входа в режим пошагового выполнения необходимо запустить программу, используя пункт меню Run/Step Over (F8) или Runrace Info (F7). Первый означает, что необходимо выполнить шаг, не заходя в подпрограммы, вызываемые на данном шаге. Второй предполагает, что в подпрограмму надо зайти. Если на данном шаге подпрограммы не вызываются, то соответствующие режимы неразличимы. В дальнейшем используется тот пункт меню, который вызывает необходимую операцию. Кроме того, в состоянии отладки можно:

1.       Run/Run Until Return (Shift+ F8) - завершить выполнение подпрограммы;

2.       Run/Run (F9) - выполнить программу до конца;

3.       Run/Program  Reset (Ctrl+F2) -прекратить процесс отладки.

Для входа в пошаговый режим можно также использовать пункт меню Run То Cursor (F4), при выборе которого программа выполняется до строки, в которой установлен курсор.

Просмотр значений переменных в окне Watch. В режиме пошагового выполнения существует возможность просмотра значений переменных. Для этого следует перейти на панель Watch List (рис. 2.19). Для добавления имени переменной в окно просмотра можно вызвать контекстное меню, щелкнув правой кнопкой мыши в области окна Watch List, и выбрать в нем пункт Add Watch. На экране появится окно Watch Properties. В этом окне вводим имя переменной, например D (рис. 2.20). Тип переменной среда определяет автоматически, однако если переменную необходимо показывать в каком-либо особом виде, то тип следует определить, поставив точку напротив выбранного типа среди указанных на выделенной панели окна.

Рис. 2.19. Окно просмотра значений

Рис. 2.20. Определение имени просматриваемой переменной

Теперь при остановке в любой точке программы в окне Watch List можно видеть значение переменной D в этот момент. В процессе отладки значения переменных просчитывают вручную и сравнивают со значениями, получаемыми в процессе работы программы. Контекстное меню позволяет не только добавить переменную в окно наблюдения, но и скорректировать ее имя (Edit Watch) или указать способ отображения, а также удалить ее (Delete Watch).

Установка контрольных точек. Для установки контрольных точек необходимо щелкнуть мышью по левому полю окна программы напротив оператора, перед выполнением которого необходимо остановить процесс вычислений. В этом место появляется точка, а строка опера­ тора выделяется розовым (рис. 2.21).

Рис. 2.21. Добавление (удаление) точек останова

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

Просмотр текущих значений переменных. Текущие значения переменных во время выполнения программы можно просматривать, указывая во время остановки курсором на соответствующую переменную (рис. 2.22).

Рис. 2.22. Просмотр значений переменных, указанных курсором

Содержание