Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник ПППН_ОАиП_Delphi_ПО_2005-2006.doc
Скачиваний:
29
Добавлен:
19.08.2019
Размер:
3.77 Mб
Скачать

Практическая работа № 2 Управляющие структуры Delphi. Программирование ветвящихся алгоритмов. Инструкция If

Цель работы:

  1. Изучить структуру простого проекта на языке Delphi.

  2. Усвоить применение инструкции if.

Краткие теоретические сведения

Условный оператор If

Выбор действий в зависимости от выполнения условия может быть реализован при помощи инструкции if. Записывается инструкция так:

If условие Then

Begin

{инструкции, которые надо выполнить,

если условие выполняется, истинно}

End

Else

Begin

{инструкции, которые надо выполнить,

если условие не выполняется, ложно.}

End;

Инструкция If выполняется следующим образом:

    1. Вычисляется значения условия (условие – это выражение, значение которого может быть равно true или false).

    2. Если условие выполняется (значение выражения условие равно true ), то выполняются инструкции следующие за словом then, находящиеся между begin и end. Если условие не выполняется (значение выражения условие равно false ), то выполняются инструкции следующие за словом else (находящимся между begin и end).

Задание 1.

Создать программу вычисления значения функции: .

Порядок выполнения работы

  1. Загрузите систему Delphi.

  2. Создайте новый проект.

  3. Сохраните Ваш еще пустой проект в отдельную папку.

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

Рис.1.

  1. Вернитесь в визуальную среду программирования.

  2. Разработайте программу для расчета функции:

,

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

  1. В обработчик события OnClick для кнопки “Рассчитать” внесите следующий код:

procedure TForm1.Button2Click(Sender: TObject);

var x,y:real;

begin

x:=StrToFloat(form1.Edit1.text);

if х<=0 then

y:=x*x

else y:=x*x*x;

form1.Label1.Caption:=FloatToStr(y);

end;

Полужирным шрифтом здесь выделены те строчки, которые вы пишете вручную.

  1. Сохраните проект, запустите его на исполнение и ознакомьтесь с работой программы.

Задание 2 (обязательное для самостоятельного индивидуального выполнения)

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

Варианты заданий:

Содержание отчета:

  1. Постановка задачи

  2. Тексты процедур – обработчиков событий, разработанных в приложении Delphi

Практическая работа № 3 Реализация ветвящихся алгоритмов для решения прикладных задач

Цель работы:

  1. Получить практические навыки работы с ветвящимися алгоритмами в Delphi.

Краткие теоретические сведения

Условный оператор If

Выбор действий в зависимости от выполнения условия может быть реализован при помощи инструкции if. Записывается инструкция так:

If условие Then

Begin

{инструкции, которые надо выполнить,

если условие выполняется, истинно}

End

Else

Begin

{инструкции, которые надо выполнить,

если условие не выполняется, ложно.}

End;

Инструкция If выполняется следующим образом:

    1. Вычисляется значения условия (условие – это выражение, значение которого может быть равно true или false).

    2. Если условие выполняется (значение выражения условие равно true ), то выполняются инструкции следующие за словом then, находящиеся между begin и end. Если условие не выполняется (значение выражения условие равно false ), то выполняются инструкции следующие за словом else (находящимся между begin и end).

Задание 1.

  1. Создать программу для расчета корней квадратного уравнения, придерживаясь следующей формы

Порядок выполнения работы

  1. Измените заголовок формы на “Решение квадратного уравнения” (свойство Caption для формы).

  2. Разместите рамку для внешнего оформления . Используйте компонент GroupBox (вкладка Standard) . По умолчанию рамка будет иметь имя GroupBox1. (Проследите, чтобы рамка была достаточно большой).

  1. Измените заголовок рамки (свойство Caption для GroupBox1), впишите слова: “Ввод исходных данных”.

  1. Измените цвет заголовка “Ввод исходных данных” на синий. Для этого щелкните по кнопке с многоточием в свойстве Font. Выберете синий цвет, подходящий, достаточно крупный шрифт нажмите Ok.

  1. Аналогично разместите на форме вторую рамку. По умолчанию она будет иметь имя GroupBox2. Впишите в нее заголовок “Корни уравнения”. Измените шрифт на более крупный и цвет на сиреневый.

  1. Разместите поверх рамки GroupBox1 надписи c помощью компонента Label “Введите коэффициенты квадратного уравнения”, “х”, “2”, “+”, “х”, “+”,“=0” (см. рисунок). Измените их шрифты и цвета по своему усмотрению.

  1. Разместите поверх рамки GroupBox1 три поля ввода (компонент Edit, вкладка Standard). По умолчанию они будут называться Edit1, Edit2, Edit3. Edit1 будет использован для ввода коэффициента А, Edit2 – коэффициента B, Edit3 – коэффициента С.

  1. Разместите поверх рамки GroupBox2 две надписи, по умолчанию они будут называться Label8 и Label9. Измените их шрифт на более крупный, а цвет на сиреневый.

  1. Создайте две кнопки “Найти корни” и “Выход”.

  1. Для кнопки “Найти корни” создайте обработчик события:

procedure TForm1.Button1Click(Sender: TObject);

var d, a, b, c, x1, x2:real;

begin

a:=StrToFloat(form1.Edit1.Text);

b:=StrToFloat(form1.Edit2.Text);

c:=StrToFloat(form1.Edit3.Text);

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

if d<0 then

begin

MessageDlg('Внимание! Нет действительных корней!',mtInformation,[mbOk],0);

form1.Label8.Caption:='';

form1.Label9.Caption:='';

end;

if d=0 then

begin

MessageDlg('Один действительный корень!',mtInformation,[mbOk],0);

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

x2:=x1;

form1.Label8.Caption:='Первый корень х1 = '+FloatToStr(x1);

form1.Label9.Caption:='Второй корень х2 = '+FloatToStr(x2);

end;

if d>0 then

begin

MessageDlg('Два действительных корня!',mtInformation,[mbOk],0);

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

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

form1.Label8.Caption:='Первый корень х1 = '+FloatToStr(x1);

form1.Label9.Caption:='Второй корень х2 = '+FloatToStr(x2);

end;

end;

  1. Создайте обработчик события Activate для формы Form1:

procedure TForm1.Form1Activate(Sender: TObject);

begin

form1.Edit1.SetFocus; // размещает курсор в поле Edit1 после активации формы

end;

  1. Сохраните форму и проект (File / Save all).

  1. Выполните Ваш проект (Run / Run).

Задание 2 (дополнительное для самостоятельного индивидуального выполнения)

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

Диалог с пользователем организовать, придерживаясь следующей формы:

Содержание отчета:

  1. Постановка задачи

  2. Тексты процедур – обработчиков событий, разработанных в приложении Delphi

Литература:

  1. В.Попов. Паскаль и Дельфи.— СПб.: Питер, 2003.

  2. Фаронов В.В. Система программирования Delphi. – СПб.: БХВ-Петербург, 2003.