Программирование на Object Pascal в среде Delphi (Radio2)

Посмотреть архив целиком

Лабораторная работа №2

Программирование разветвляющихся алгоритмов

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

2.1. Пример создания приложения

Задание: создать Windows-приложение для вычисления выражения

Z=, где по желанию пользователя. В панели интерфейса предусмотреть возможность управления контрольным выводом исходных данных.

Один из возможных вариантов панели интерфейса создаваемого приложения показан на рис. 2.1.

2.1.1. Размещение компонентов на Форме

Будем размещать компоненты на Форме так, чтобы они соответствовали панели, показанной на рис 2.1.

Рис. 2.1


При создании приложений в DELPHI часто используются компоненты в виде кнопок-переключателей. Состояние такой кнопки (включено - выключено) визуально отражается на Форме. На панели (рис. 2.1) представлены кнопки-переключатели двух типов: CheckBox и RadioGroup .

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

Поместите на Форму компоненты Label, Edit и Memo в соответствии с рис.2.1. Выберите в Палитре Компонентов на странице Standard пиктограмму компонента CheckBox и разместите ее в нужном месте Формы. . В свойстве Caption Инспектора Объектов замените надпись CheckBox1 на Контрольный вывод данных. . Чтобы при запуске приложения кнопка CheckBox оказалась включена, cвойство Checked установите равным True.

Выберите в Палитре Компонентов Standard пиктограмму компонента RadioGroup и поместите ее в нужное место Формы. В свойстве Caption измените заголовок RadioGroup1 на f(x). Для размещения кнопок в один столбец, свойство Columns установите равным 1. Дважды щелкните мышьюпо правой части свойства Items - появится строчный редактор списка наименований кнопок. Наберите 2 строки с именами: в первой строке - sin(x), во второй - cos(x) и нажмите ОК. После этого на Форме появится группа из двух кнопок - переключателей с соответствующими надписями. Чтобы при запуске приложения первая кнопка RadioGroup оказалась включена, cвойство ItemIndex установите равным 0.

2.1.2. Создание процедур обработки событий FormСreate и Button1Сlick

Технология создания процедур обработки событий FormСreate и Button1Сlick ничем не отличается от предыдущей работы. Внимательно наберите операторы этих процедур, используя текст модуля UnRazvAlg.

2.1.3. Текст модуля UnRazvAlg

Unit UnRazvAlg;


interface


uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls;


type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label4: TLabel;

Memo1: TMemo;

Button1: TButton;

RadioGroup1: TRadioGroup;

CheckBox1: TCheckBox;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;


var

Form1: TForm1;


implementation

{$R *.DFM}

// Процедура обработки события создания Формы:

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='0.5'; // начальное значение X

Edit2.Text:='1.8'; // начальное значение Y

Memo1.Clear; // очистка Memo1

// Вывод строки в Memo1:

Memo1.Lines.Add(Лабораторная работа №2 - Разветвляющийся алгоритм);

end;

// Процедура обработки события нажатия кнопки Button1:

procedure TForm1.Button1Click(Sender: TObject);

var

x,y,z,fx : extended; // объявление локальных переменных

begin

x:=StrToFloat(Edit1.Text); // X присваивается содержимое Edit1

y:=StrToFloat(Edit2.Text); // Y присваивается содержимое Edit2

fx:=sin(x); // fx присваивается начальное значение

// Выбор функции, соответствующей нажатой кнопке:

case RadioGroup1.ItemIndex of

0:fx:=sin(x);

1:fx:=cos(x);

end;

// Вычисление выражения:

if xthen

z:=fx

else

z:=y;

// Проверка состояния кнопки CheckBox1:

if CheckBox1.Checked then

Memo1.Lines.Add('X = '+Edit1.Text+

' Y = '+Edit2.Text); // контрольный вывод X, Y в Memo1

// Вывод результата в Memo1:

Memo1.Lines.Add(' Z = '+FloatToStrF(z,ffFixed,8,3));

end;

end.


Если нажата первая кнопка RadioGroup1, в переменную целого типа RadioGroup1.ItemIndex заносится нуль, если вторая – единица. Если кнопка CheckBox1 нажата, логическая переменная CheckBox1.Checked имеет значение True, если нет – False.

2.1.4. Работа с приложением

Запустите созданное приложение. Используя все управляющие компоненты панели интерфейса, убедитесь в правильном функционировании приложения во всех предусмотренных режимах работы.

2.2. Выполнение индивидуального задания

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

Индивидуальные задания

Для заданий №1-№15 на панели интерфейса предусмотреть возможность выбора одной из трех функций f(x): sh(x), x2, eX.




1.




2.



3.



4.



5.



6.



7.



8.




Случайные файлы

Файл
113074.rtf
56697.rtf
179983.rtf
73728.rtf
8471-1.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.