Лабораторная. Лабораторный практикум(часть1) Электронный. Практикум по дисциплине Разработка приложений в визуальных средах для студентов специальностей
![]()
|
2. Постановка задачиРазработать линейное приложение с использованием компонент TLabel, TEdit, TMemo, TButton в соответствии с индивидуальным вариантом задания. 3. Задания1. ![]() 2. ![]() 3. ![]() 4. ![]() ![]() 5. ![]() ![]() ![]() 6. ![]() 7. ![]() ![]() 8. ![]() 9. ![]() 10. ![]() 11. ![]() 12. ![]() 13. ![]() 14. ![]() 15. ![]() 16. Вывести на экран 1 или 0 в зависимости от того, имеют ли три заданных целых числа одинаковую четность или нет. 17. Найти сумму цифр заданного четырехзначного числа. 18. Определить число, полученное выписыванием в обратном порядке цифр заданного трехзначного числа. 19. Вывести на экран 1 или 0 в зависимости от того, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр. 20. Вывести на экран 1 или 0 в зависимости от того, равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа. 21. Вывести на экран 1 или 0 в зависимости от того, есть ли среди первых трех цифр дробной части заданного положительного вещественного числа цифра нуль. 22. Вывести на экран 1 или 0 в зависимости от того, есть ли среди цифр заданного трехзначного числа одинаковые. 23. Присвоить целой переменной ![]() ![]() Присвоить целой переменной ![]() ЛАБОРАТОРНАЯ РАБОТА 2Разработка приложения, реализующего разветвляющийся вычислительный процессЦель лабораторной работы: научиться пользоваться стандартными компонентами организации переключений (TCheckBox, TRadioGroup и др.). Используя компоненты организации переключений разработать интерфейс и программу для заданного разветвляющегося алгоритма. 1. Краткие сведения1.1. Операторы ifucase языка Pascal Для программирования разветвляющихся алгоритмов в языке Pascal используются переменные типа boolean, которые могут принимать только два значения - true и false (да, нет), а также операторы if и case. Оператор if проверяет результат логического выражения или значение переменной типа boolean и организует разветвление вычислений. Оператор case организует разветвления в зависимости от селектора - значения некоторой переменной, например, n целого типа: case n of 0: u:= x + y; 1: u:= x - y; 2: u:= x * y; else u:= 0; end; В соответствии со значением n вычисляется значение переменной u. При этом, если n=0, то u=х+у, если n=1, то u=x-y, если n=2, то u=x*y и, наконец, u=0 при любых значениях n, отличных от 0, 1 или 2. 1.2. Кнопки-переключатели в Delphi При создании программ в Delphi для организации разветвлений часто используются компоненты в виде кнопок-переключателей. Состояние такой кнопки (включено - выключено) визуально отражается на форме. На форме (см. рисунок 2.1) представлены кнопки-переключатели двух типов (TСheckBox и TRadioGroup). Компонент TCheckBox'>CheckBox организует кнопку независимого переключателя, с помощью которой пользователь может указать свое решение типа да/нет. В программе состояние кнопки связано со значением булевской переменной, которая проверяется с помощью оператора if. Компонент TRadioGroup организует группу кнопок – зависимых переключателей. При нажатии одной из кнопок группы все остальные кнопки |отключаются. В программу передается номер включенной кнопки (0, 1, 2,..), который анализируется с помощью оператора case. 1.3. Пример программы Задание: ввести три числа x, y, z. Вычислить по усмотрению или u=sin(x), или u=cos(x), или u=tg(x). Найти по желанию максимальное из трех чисел: max(u, y, z) или max(|u|, |у|, |z|). Создать форму, представленную на рисунке 2.1, и написать соответствующую программу. 1.3.1. Создание формы Создайте форму такую же, как в первом задании, скорректировав текст надписей и положение окон TЕdit. 1.3.2. Работа с компонентом TCheckBox Выберите в палитре компонентов Standard пиктограмму ![]() 1.3.3. Работа с компонентом TRadioGroup Выберите в палитре компонентов Standard пиктограмму ![]() Обратите внимание на то, что в тексте программы появилась переменная RadioGroupl типа TRadioGroup. Теперь при нажатии одной из кнопок группы в переменной целого типа RadioGroup1.Itemlndex будет находиться номер нажатой клавиши, что используется в приведенной программе. 1.3.4. Создание обработчиков событий FormCreate и ButtonlClick Процедуры - обработчики событий FormCreate и ButtonlClick создаются аналогично тому, как и в первой теме. Тексты процедур приведены ниже. Запустите программу и убедитесь в том, что все ветви алгоритма выполняются правильно. Форма приложения приведена на рисунке 2.1. ![]() Рисунок 2.1 – Форма приложения Текст программы: Unit LabRab_2; Interface; Uses Windows, Messages, SysUtils Classes, Graphics, Controls, Forms, Dialogs, SidClrls, ExtCtrIs; Type TForm1 = class(TForm) CheckBoxl: TCheckBox; RadioGroupl: TRadioGroup; Memol: TMemo; Button1: TButton; Edit1: TEdit; Label1: TLabel; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdil; procedure FormCreate(Sender: TObject); procedure ButtonlClick(Sender: TObject); private { Private declarations} public { Public declarations} end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender:TObject); begin Edit1.Text:='0.1'; Edit2.Text:='0.356'; Edit3.Text:='0.0'; Memo1.Clear; Memo1.Lines.Add('Peз-ты ст. гр. 107217 Юртаева Т.А.’); end; procedure TForm1.Button1Click(Sender: TObject); var x, y, z, u, ma : extended; begin // Ввод исходных данных и их вывод в окно Меmo1 x:= StrToFloat(Edit1.Text); Memo1.Lines.Add('x=' + Edit1.Text); y:= StrToFloat(Edit2.Text); Memol.Lines.Add('y=' + Edit2.Text); z:= StrToFloat(Edit3.Text); Memol.Lines.Add(‘z=' + Edit3.Text); // Проверка номера нажатой кнопки и выбор соответствующей ей функции case RadioGroupl.ItemIndex of 0: u:= cos(x); 1: u:= sin(x); 2: u:= sin(x)/cos(x); end; // Проверка состояния кнопки CheckBox1 if CheckBox1.Checked then begin u:= abs(u); y:= abs(y); z:= abs(z) end; // Нахождение максимального из трех чисел if u > y then ma := u else ma := y; if z > ma then ma := z; if CheckBox1.Checked then Memo1.Lines.Add(‘MaxAbs=’ + FloatToStrF(ma, ffFixed, 8, 2)) else Memo1.Lines.Add(‘max=’ + FloatToStrF(ma, ffFixed, 8, 2)); end; end. |