- •Программирование наDelphi. Содержание
- •Лабораторная работа №1. Основные этапы создания программ (на примере программы для решения квадратных уравнений)
- •1. Проектирование программы
- •(Рис. 1.1) Программа.
- •2. Создание проекта приложения
- •(Рис. 2.1) Среда Delphi
- •(Рис. 2.2) Панель кнопок среды Delphi
- •(Рис. 2.3)Панель для сохранения и восстановления внешнего вида среды Delphi
- •(Рис. 2.4)Параметры проекта
- •3. Разработка пользовательского интерфейса
- •4. Кодирование алгоритма
- •5. Компиляция и исправление синтаксических ошибок
- •6. Запуск программы
- •7. Отладка программы и исправление логических ошибок.
- •Контрольные вопросы
- •Лабораторная работа №2. Оператор присваивания
- •Задачи по лабораторной работе №2
- •Контрольные вопросы
- •Лабораторная работа №3. Оператор ветвления if
- •Задачи по лабораторной работе №3
- •Контрольные вопросы
- •Лабораторная работа №4. Оператор ветвления case
- •Задачи по лабораторной работе №4
- •Контрольные вопросы
- •Лабораторная работа №5. Циклы с предварительным условием
- •Задачи по лабораторной работе №5
- •Контрольные вопросы
- •Лабораторная работа №6. Циклы с параметром
- •Задачи по лабораторной работе №6
- •Контрольные вопросы
- •Лабораторная работа №7. Массивы
- •Задачи по лабораторной работе №7
- •Контрольные вопросы
- •Лабораторная работа №8. Двумерные массивы
- •Задачи по лабораторной работе №8
- •Контрольные вопросы
4. Кодирование алгоритма
Приступим к обработке событий. Начнем с нажатия кнопки Вычислить. Активизируйте кнопку, с которой будем работать, затем перейдите к окнуObjectInspectorи переключитесь на вкладкуEvents(события). На ней вы обнаружите список всех возможных событий для активного компонента (в данном случае кнопки). Нас интересует событиеOnClick, возникающее при нажатии кнопки. Чтобы запрограммировать обработчик этого события, сделайте двойной щелчок мыши в поле значения. Появится окно редактора кода с заготовкой для нашего обработчика.
(Рис. 4.1) Окно редактора
Между 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.2) Функция завершения кода
(Рис 4.3) Общий вид
5. Компиляция и исправление синтаксических ошибок
Обычно программа редко сразу начинает работать так, как надо, или работает правильно только на некотором ограниченном наборе исходных данных. Это свидетельствует о том, что в программе есть алгоритмические ошибки. Процесс поиска и устранение ошибок называется отладкой.
Ошибки, которые могут быть в программе, принято делить на три группы:
синтаксические;
ошибки времени выполнения;
алгоритмические.
Синтаксические ошибки, их также называют ошибками времени компиляции (Compile-time error), наиболее легко устранимы. Их обнаруживает компилятор, а программисту остается только внести изменения в текст программы и выполнить повторную компиляцию.
(Рис 5.1) Ошибка при компиляции
Наиболее часто встречающиеся синтаксические ошибки:
[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 – Пропущена закрывающаяся скобка. Ошибка встречается при вызове методов, процедур или функций с параметрами. Внимательно проверьте количество открывающихся и закрывающихся скобок должно быть одинаковым.