Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Кодирование алгоритма




Приступим к обработке событий. Начнем с нажатия кнопки Вычислить. Активизируйте кнопку, с которой будем работать, затем перейдите к окну Object Inspector и переключитесь на вкладку Events (события). На ней вы обнаружите список всех возможных событий для активного компонента (в данном случае кнопки). Нас интересует событие OnClick, возникающее при нажатии кнопки. Чтобы запрограммировать обработчик этого события, сделайте двойной щелчок мыши в поле значения. Появится окно редактора кода с заготовкой для нашего обработчика.

Рисунок 4.15. Окно редактора

Между procedure и begin впишите объявления переменных, а между begin и end алгоритм вычисления квадратного уравнения.

procedure TForm1.Button1Click(Sender: TObject);

var

a, b, c: Integer;

d, x1, x2: Real;

begin

a:= StrToInt(Edit1.Text);

b:= StrToInt(Edit2.Text);

c:= StrToInt(Edit3.Text);

d:= sqr(b) - 4 * a * c;

if d < 0 then begin

Edit4.Text:= 'Корней нет';

Edit5.Text:= 'Корней нет';

end else begin

x1:= (-b - sqrt(d)) / (2 * a);

Edit4.Text:= FloatToStr(x1);

x2:= (-b + sqrt(d)) / (2 * a);

Edit5.Text:= FloatToStr(x2);

end;

end;

При кодировании исходного кода Delphi будет подсказывать, и помогать выбрать правильный метод или свойство из списка (функция завершения кода). Для активации списка просто введите имя объекта, например Edit1, и поставьте точку, для принудительного вывода списка нажмите Ctrl+пробел, для удаления, если он не нужен Esc.

Рисунок 4.16. Функция завершения кода

Рисунок 4.17. Общий вид

5. Компиляция и исправление синтаксических ошибок

Обычно программа редко сразу начинает работать так, как надо, или работает правильно только на некотором ограниченном наборе исходных данных. Это свидетельствует о том, что в программе есть алгоритмические ошибки. Процесс поиска и устранение ошибок называется отладкой.

Ошибки, которые могут быть в программе, принято делить на три группы:

· синтаксические;

· ошибки времени выполнения;

· алгоритмические.

Синтаксические ошибки, их также называют ошибками времени компиляции (Compile-time error), наиболее легко устранимы. Их обнаруживает компилятор, а программисту остается только внести изменения в текст программы и выполнить повторную компиляцию.

Рисунок 4.18. Ошибка при компиляции

Наиболее часто встречающиеся синтаксические ошибки:

[Error] Unit1.pas(42): ':=' expected but '=' found - Вместо ожидаемого символа (или набора символов, например:=) в тексте программы встречается иное.

[Error] Unit1.pas(43): Missing operator or semicolon – пропущена точка с запятой -;

[Error] Unit1.pas(49): Undeclared identifier: 'x' – Не объявленный идентификатор. Проверьте правильность имени идентификатора. Возможно вы пропустили какой-нибудь символ например x1.

[Error] Unit1.pas(57): ';' expected but '.'found – Неправильно составлены блоки заканчивающиеся на end. Часто ошибка встречается в циклах.

[Error] Unit1.pas(51): ')' expected but ';' found – Пропущена закрывающаяся скобка. Ошибка встречается при вызове методов, процедур или функций с параметрами. Внимательно проверьте количество открывающихся и закрывающихся скобок должно быть одинаковым.

6. Запуск программы

Запуск программы можно выполнить непосредственно из Delphi, не завершая работу со средой разработки. Для этого нужно из меню Run выбрать команду Run или щелкнуть на соответствующей кнопке панели инструментов Debug (рисунок 4.19).

Рисунок 4.19. Запуск программы из среды разработки

При запуске, окно формы исчезает, вместо него появляется характерное Windows приложение. Скрытие формы полезно так как при наличии и формы и запущенного приложения может сбивать с толку и приводить к путанице. При необходимости окно формы можно сделать видимым, для этого нужно перейти на окно редактора формы и нажать клавишу <F12>.С приложением можно делать все стандартные операции, такие как свернуть, развернуть, переместить и т.п. После завершения работы с приложением окно формы вновь становится видимым. Окно приложения можно отличить от окна формы по отсутствию сетки, по появлению приложения на панели задач и более светлому значку (иконки).

Рисунок 4.20. Запущенная программа в среде Delphi

7. Отладка программы и исправление логических ошибок.

Успешное завершение процесса компиляции не означает, что в программе нет ошибок. Убедиться, что программа работает правильно можно только в процессе проверки ее работоспособности, который называется тестирование.

Ошибки времени выполнения, в Delphi они называются исключениями (exception), тоже, как правило, легко устранимы. Они обычно проявляются уже при первых запусках программы и во время тестирования.

При возникновении ошибки в программе, запущенной из Delphi, среда разработки прерывает работу программы, о чем свидетельствует заключенное в скобки слово Stopped в заголовке главного окна Delphi, и на экране появляется диалоговое окно, которое содержит сообщение об ошибке и информацию о типе (классе) ошибки. На рисунке 4.21 приведен пример сообщения об ошибке, возникающей при попытке вместо целочислительного типа использовать вещественный (несоответствие типов).

После возникновения ошибки программист может либо прервать выполнение программы, для этого надо из меню Run выбрать команду Program Reset < F12>, либо продолжить ее выполнение, например, по шагам (для этого из меню Run надо выбрать команду Step), наблюдая результат выполнения каждой инструкции.

Рисунок 4.21

Если программа запущена из Windows, то при возникновении ошибки на экране также появляется сообщение об ошибке, но тип ошибки (исключения) в сообщении не указывается (рисунок 4.22). После щелчка на кнопке ОК программа, в которой проявилась ошибка, продолжает (если сможет) работу.

Рисунок 4.22

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

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

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

В случае неправильной работы программы необходимо видеть реальный порядок выполнения инструкций. Это можно сделать, выполнив трассировку программы. Трассировка — это процесс выполнения программы по шагам (step-by-step), инструкция за инструкцией. Во время трассировки программист дает команду: выполнить очередную инструкцию программы.

Delphi обеспечивает два режима трассировки: без захода в процедуру (Step over) и с заходом в процедуру (Trace into). Режим трассировки без захода в процедуру выполняет трассировку только главной процедуры, при этом трассировка подпрограмм не выполняется, вся подпрограмма выполняется за один шаг. В режиме трассировки с заходом в процедуру выполняется трассировка всей программы, т. е. по шагам выполняется не только главная программа, но и все подпрограммы.

Для того чтобы начать трассировку, необходимо из меню Run выбрать команду Step over или Trace into. В результате в окне редактора кода будет выделена первая инструкция программы. Для того чтобы выполнить выделенную инструкцию, необходимо из меню Run выбрать команду Step over (нажать клавишу <F8>) или Trace into (нажать клавишу <F7>). После выполнения инструкции будет выделена следующая. Таким образом, выбирая нужную команду из меню Run, можно выполнить трассировку программы. Активизировать и выполнить трассировку можно при помощи функциональной клавиатуры. Команде Step over соответствует клавиша <F8>, а команде Trace into — клавиша <F7>.

В любой момент времени можно завершить трассировку и продолжить выполнение программы в реальном темпе. Для этого надо из меню Run выбрать команду Run клавиша <F9>.

При необходимости выполнить трассировку части программы следует установить курсор на инструкцию программы, с которой надо начать трассировку, и из меню Run выбрать команду Run to cursor или нажать клавишу <F4>. Затем, нажимая клавишу <F7> или клавишу <F8>, выполнить трассировку нужного фрагмента программы.

Для трассировки программы используем 3 отладочных окна. Call Stack – Стек вызовов. Отображает иерархию вызовов методов, процедур и функций. Watches – Окно в котором можно отобразить значения переменной во время трассировки. Local Variables – окно отображающее все локальные переменные. Активируем несколько окон отладчика, расположенные в меню View в группе Debug Windows.

Рисунок 4.23

При нажатии на CallStack на экране появляется пустое окно с одноименным названием. Переместите его за заголовок в нижний левый угол окна редактора кода как показано на рисунке 4.25. Таким же образом добавьте окна Watches и LocalVariables.

Рисунок 4.24. Окно Call Stack

Рисунок 4.25. Перемещение окна Call Stack

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

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

Для того чтобы во время выполнения программы по шагам иметь возможность контролировать значение переменной, нужно добавить имя этой переменной в список наблюдаемых элементов (Watch List). Для этого надо из меню Run выбрать команду Add Watch или в окне Watches из контекстного меню выбрать пункт AddWatch (рисунок 4.27) (Добавить наблюдаемый элемент) и в поле Expression появившегося диалогового окна Watch Properties (рисунок 4.28) ввести имя переменной.

Рисунок 4.26. Добавление точки останова

.

Рисунок 4.27. Добавление наблюдаемого элемента

Рисунок 4.28. Добавление наблюдаемого элемента

В качестве наблюдаемого элемента можно указать поле объекта, например Edit1.text.

Запустите программу, заполните поля коэффициентов и нажмите на кнопку вычислить. Программа остановит свое выполнение на точке останова. Далее проведите трассировку программы. Следите за значениями в окнах отладки WatchList и LocalVariables.

Рисунок 4.29. Трассировка программы

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

Рисунок 4.30. Наблюдение значений переменной

Список литературы

1. Информационные системы в экономике: учебник для студентов вузов, обучающихся по специальностям "финансы и кредит", "Бухгалтерский учет, анализ и аудит» и специальностям экономики и управления (060000) / Под ред. ГА. Титоренко. — 2-е изд., перераб. и доп. — М: ЮНИТИ-ДАНА, 2008. — 463 с

2. http://ru.wikipedia.org/wiki/Операционные_системы

3. http://ru.wikipedia.org/wiki/MS-DOS

4. Информатика. Часть 1. Лабораторный практикум / А.Ф. Гумеров, И.А. Ахмадеев. – Набережные Челны: Камский политехнический институт, 2001. – 74 с.

5. http://ru.wikipedia.org/wiki/Windows_XP

6. http://ru.wikipedia.org/wiki/Windows_Server_2008

7. http://ru.wikipedia.org/wiki/Windows_7

8. http://ru.wikipedia.org/wiki/Windows_Azure

9. http://www.windowsazure.com/ru-ru/

10. http://ru.wikipedia.org/wiki/UNIX-подобная_операционная_система

11. http://ru.wikipedia.org/wiki/Unix

12. http://ru.wikipedia.org/wiki/Linux

13. http://ru.wikipedia.org/wiki/Microsoft_Office

14. Работа в MS Office 2007. Текстовый процессор Word 2007: методические указания и задания для выполнения лабораторных работ по дисциплине «Текстовые и табличные процессоры» для студентов специальности 08080165 «Прикладная информатика (в экономике)» / М. С. Кукушкина, О. А. Волкова. – Ульяновск: УлГТУ, 2010. – 76 с.

15. Работа в MS Office 2007. Табличный процессор Excel 2007: методические указания и задания для выполнения лабораторных работ по дисциплине «Текстовые и табличные процессоры» для студентов специальности 08080165 «Прикладная информатика (в экономике)» / М. С. Кукушкина. – Ульяновск: УлГТУ, 2010. – 52 с.

16. Описания лабораторных работ по курсу «Информационные технологии» Microsoft Word, Excel, PowerPoint 2007 и 2010 / Л.Н Часнык. – Нижний Новгород: Нижегородский государственный университет им. Н.И. Лобачевского, 2010. – 57 с.

17. PowerPoint 2007: Методические указания / Т.Г. Шахунянц. – М.: МИИТ, 2011. -17 с.

18. Деловая графика в MS Visio: метод. указ. к лабораторным работам / сост. Н.И. Тебайкина. - Екатеринбург: УрФУ, 2010. – 64 с.

19. http://ru.wikipedia.org/wiki/OpenOffice.org

20. Работа в OpenOffice.org. Табличный процессор Calc: методические указания и задания для выполнения лабораторных работ по дисциплине «Текстовые и табличные процессоры» для студентов специальности 08080165 «Прикладная информатика (в экономике)» /М. С. Кукушкина. – Ульяновск: УлГТУ, 2010. – 47 с.

21. А. Н. Вальвачев, К. А. Сурков, Д. А. Сурков, Ю. М. Четырько. Программирование на языке Delphi: учебное пособие. - 2005.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...