girniy.ru |
1
Лабораторная работа №1 Программирование линейных алгоритмовЦель лабораторной работы: изучить основные элементы визуальной среды, освоить использование простейших компонентов DELPHI для ввода/вывода данных, и создать приложение, которое использует линейный алгоритм. 1.1.Визуальная среда DELPHIПри запуске DELPHI на экране появляется панель интерфейса, показанная на рис. 1.1. Среда DELPHI визуально реализуется в виде нескольких одновременно раскрытых на экране монитора окон. Количество, расположение, размер и вид окон может изменяться программистом. Главное окно всегда присутствует на экране и предназначено для управления процессом создания приложения. Главное меню содержит все необходимые средства для управления проектом. Пиктограммы главного меню облегчают доступ к наиболее часто применяемым командам. Палитра Компонентов обеспечивает доступ к набору библиотечных программ среды DELPHI, которые описывают некоторый элемент (компонент), помещенный программистом в окно Формы. Каждый компонент имеет определенный набор свойств, которые программист может выбирать и изменять по своему усмотрению. Например, заголовок окна, надпись на кнопке, размер, цвет и тип шрифта и др. Свойства компонентов приведены в HELP. Окно Инспектора Объектов предназначено для изменения свойств выбранных компонентов и состоит из двух страниц. Страница Properties (Свойства) предназначена для изменения необходимых свойств компонента. Страница Events (События) – для определения реакции компонента на то или иное событие (например, щелчок кнопки “мыши ”). Окно Формы представляет собой интерфейс проектируемого Windows-приложения. В это окно на этапе проектирования приложения помещаются необходимые компоненты, которые разработчик берет из Палитры Компонентов. Каждой Форме проекта соответствует модуль (Unit), текст которого на языке Object Pascal размещается в окне Редактора Кода.
Для создания обработчика события программисту необходимо раскрыть список компонентов в верхней части окна Инспектора Объектов и выбрать необходимый компонент. Затем, на странице Events Инспектора Объектов, нажатием левой клавиши мыши выбрать название обработчика и дважды щелкнуть по его правой (белой) части. В ответ DELPHI активизирует окно Редактора Кода модуля и покажет заготовку процедуры обработки выбранного события. Для каждого обрабатываемого события в тексте модуля организуется процедура (procedure), между ключевыми словами begin и end которой программист на языке Object Pascal записывает требуемый алгоритм обработки события. Переключение между окном Формы и окном Редактора Кода осуществляется кнопкой главного меню с пиктограммой или клавишей F12. 1.2. Пример создания приложенияЗадание: создать Windows-приложение для вычисления выражения . Численные значения данных x, y и z занести с клавиатуры в соответствующие поля панели интерфейса. Один из возможных вариантов панели интерфейса создаваемого приложения показан на рис. 1.2. 1.2.1. Сохранение проекта В процессе проектирования приложения DELPHI создает несколько файлов - проект. Каждый проект целесообразно хранить в отдельной, заранее созданной папке. С помощью подходящего приложения Windows создадим папку и назовем ее, например, LAB1. Для сохранения проекта откройте в главном меню пункт File и щелкните “мышью” на опции Save Project As…(Сохранить проект как…). Сначала DELPHI откроет панель диалога Save Unit1 As (Сохранить модуль как) для сохранения модуля проекта. В этой панели найдем созданную папку LAB1 и сохраним в ней модуль под именем, например, UnLinAlg. Обратите внимание на то, что DELPHI по умолчанию присвоит этому файлу тип Delphi unit c расширением *.pas. Затем откроется панель диалога Save Project1 As . Назовем наш проект, например, PrLinAlg и сохраним его в этой же папке. Здесь DELPHI даст файлу тип Delphi project и расширение *.dpr. Убедитесь в том, что главное окно DELPHI теперь называется PrLinAlg, окно главного файла проекта- PrLinAlg.dpr, а окно модуля проекта- UnLinAlg.pas.
1.2.3. Изменение заголовка ФормыНовая Форма имеет одинаковые имя (Name) и заголовок (Сaption) - FORM1. Начинающим программистам имя Формы менять не рекомендуется, т.к. оно используется в тексте модуля. Для изменения заголовка активизируйте окно Инспектора Объектов и на странице Properties в свойстве Caption замените заголовок Form1 на Лаб. работа №1-Линейный алгоритм. Убедитесь, что одновременно изменился заголовок окна Формы. 1.2.4. Размещение компонентов на ФормеБудем размещать компоненты на Форме так, чтобы они соответствовали панели, показанной на рис 1.2. Рис.1.2Для нанесения надписей на Форму используется компонент Label. Выберите в Палитре Компонентов на странице Standard пиктограмму компонента Label и щелкните на ней “мышью”. Затем в нужном месте Формы щелкните “мышью” - появится надпись Label1. В свойстве Caption Инспектора Объектов замените надпись Label1 на Введите значение X:. В свойстве Font подберите шрифт. Аналогично нанесите на Форму остальные надписи. Щелкнув “мышью” на любом из размещенных компонентов, отрегулируйте его местоположение на Форме и размер. Для ввода/вывода данных в простейших случаях используются компоненты Edit и Memo. Компонент Edit применяется в тех случаях, когда данные представляются одной строкой. Если данные представляют собой несколько строк, то используется компонент Memo. Для создания полей ввода численных значений переменных x, y и z используем компонент Edit. Выберите в Палитре Компонентов на странице Standard пиктограмму и разместите компонент Edit в нужных местах Формы так же, как Вы это делали с компонентом Label.
1.2.5. Написание процедуры обработки события создания Формы (FormCreate)Если программист желает, чтобы при появлении панели интерфейса на экране в соответствующих полях находились начальные значения данных, он должен учесть, что при запуске приложения возникает событие - создание Формы (OnCreate). Создадим процедуру обработки этого события, которая занесет начальные значения переменных x, y, z в поля Edit1, Edit2 и Edit3 соответственно, а в поле Memo1 поместит строку Лабораторная работа №1 – Линейный алгоритм. Для этого дважды щелкните мышью на любом свободном месте Формы. На экране появится текст модуля UnLinAlg, в котором DELPHI автоматически создает заготовку процедуры-обработчика события создания Формы: Procedure TForm1.FormCreate(Sender:TObject). Между операторами begin и end этой процедуры вставьте операторы, которые выполняют необходимые действия (текст модуля приведен в п.1.2.7). 1.2.6. Написание процедуры обработки события нажатия кнопки Button1 (Button1Click)Поместим на Форму кнопку, нажатие которой приведет к вычислению выражения. Выберите в Палитре Компонентов на странице Standart пиктограмму компонента Button. В свойстве Caption Инспектора Объектов замените надпись на кнопке Button1 на Вычислить. В свойстве Font подберите шрифт. Отрегулируйте положение и размер кнопки. Затем дважды щелкните “мышью” на кнопке, после чего курсор установится в тексте процедуры-обработчика события нажатия кнопки Button1 : Procedure TForm1.Button1Click(Sender:TObject). Внимательно наберите операторы этой процедуры, используя текст модуля UnLinAlg.1.2.7. Текст модуля UnLinAlgUnit UnLinAlg; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Memo1: TMemo; Button1: TButton; 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.4'; // начальное значение X Edit2.Text:='8.75e-2'; // начальное значение Y Edit3.Text:='-19.63'; // начальное значение Z Memo1.Clear; // очистка Memo1 // Вывод строки в Memo1: Memo1.Lines.Add('Лабораторная работа №1 - Линейный алгоритм'); end; // Процедура обработки события нажатия кнопки Button1: procedure TForm1.Button1Click(Sender: TObject); var x,y,z,a,b,c,u : extended; // объявление локальных переменных begin x:=StrToFloat(Edit1.Text); // X присваивается содержимое Edit1 y:=StrToFloat(Edit2.Text); // Y присваивается содержимое Edit2 z:=StrToFloat(Edit3.Text); // Z присваивается содержимое Edit3
1.2.8. Работа с приложениемДля запуска созданного приложения нажмите пиктограмму главного меню или клавишу F9. При этом происходит компиляция модулей и, если нет ошибок, компоновка проекта и создание выполняемого файла PrLinAlg.exe. На экране появляется панель интерфейса приложения (рис.1.2). Щелкните “мышью” на кнопке “Вычислить” и в поле Memo1 появляется результат. Измените исходные значения x, y, z в полях Edit и снова нажмите кнопку ”Вычислить”. Убедитесь, что в поле Memo1 отображаются новые результаты. Завершить работу приложения можно нажатием кнопки в правом верхнем углу панели интерфейса.
1.3. Выполнение индивидуального заданияПо указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество и типы исходных данных. В соответствии с этим оформите дизайн панели интерфейса проектируемого приложения, установите необходимое количество полей Edit, тексты заголовков на Форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов. Индивидуальные задания1. При x=14.26, y=-1.22, z=3.5 t=0.564849. 2. При x=-4.5, y=0.75,z=0.845 u=-55.6848. 3. При x=3.74, y=-0.825, z=0.16 v=1.0553. 4. При x=0.4 ,y=-0.875, z=-0.475 w=1.9873. 5. При x=-15.246, y=4.642, z=20.001 =-182.036. |