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.

Старайтесь давать файлам осмысленные имена вместо однообразных Unit1 и Project1, предлагаемых DELPHI.

Чтобы избежать потери файлов проекта в аварийных ситуациях связанных, например, с выключениием питания, зависании системы и т.д., рекомендуется периодически сохранять проект, используя пиктограмму главного меню или опцию Save All в меню File.


1.2.2. Настройка окон

Чтобы работать с окном, необходимо сделать его активным, щелкнув “мышью” в любом месте окна. У активного окна заголовок становится выделенным, например, на рис. 1.1 активным является окно Редактора Кода.

Окна Формы и Редактора Кода модуля в правом верхнем углу имеют кнопки управления, которые предназначены: -для свертывания окна в пиктограмму, -для разворачивания окна на весь экран и возвращения к исходному размеру , -для закрытия окна.

С помощью “мыши”, захватывая одну из кромок окна или выделенную строку заголовка, отрегулируете нужные размеры окон Формы, Редактора Кода, Инспектора Объектов и их положение на экране.

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.

Для вывода результатов используем компонент Memo. Выберите в Палитре Компонентов на странице Standard пиктограмму , поместите компонент Memo на Форму и откорректируйте его местоположение и размеры.

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. Текст модуля UnLinAlg

Unit 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

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

a:=sqrt(x)-y*y*y;

b:=sin(a)/cos(a);

c:=Exp(5*Ln(b));

u:=c+exp(y/z)*sin(z*z);

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

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

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

Memo1.Lines.Add(' U = '+FloatToStrF(u,ffFixed,8,3));

end;


end.

Данные, с которыми работают компоненты Edit и Memo, имеют тип String. Поэтому в процедуре TForm1.Button1Click при присваивании содержимого полей Edit1,Edit2,Edit3 переменным X,Y,Z c помощью функции StrToFloat осуществляется преобразование данных типа String в действительные значения с плавающей точкой типа Extended. Если необходимо работать с данными целого типа, используется функция StrToInt.

При выводе данных в Memo1 используется метод Add свойства Lines, причем для преобразования данных из действительного значения в строковое и управления формой представления выводимого результата используется функция FloatToStrF.


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

Для запуска созданного приложения нажмите пиктограмму главного меню или клавишу F9. При этом происходит компиляция модулей и, если нет ошибок, компоновка проекта и создание выполняемого файла PrLinAlg.exe. На экране появляется панель интерфейса приложения (рис.1.2).

Щелкните “мышью” на кнопке “Вычислить” и в поле Memo1 появляется результат. Измените исходные значения x, y, z в полях Edit и снова нажмите кнопку ”Вычислить”. Убедитесь, что в поле Memo1 отображаются новые результаты. Завершить работу приложения можно нажатием кнопки в правом верхнем углу панели интерфейса.

В случае нештатного функционирования приложения восстановить первоначальный режим работы с проектом можно путем выбора в меню Run опции ProgramReset или нажать клавиши Ctrl+F2.

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.



Лабораторная работа №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 xxk;

end;

end.


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

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

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

В заданиях с №1 по №15 необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для значений x от до с шагом . Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x).


S(x) n Y(x)

1


0.1


1


16



2


0.1


1


10


3


0.1


1


12


4


0.1


1


8



5


0.1


1


14


6


0.1



1

8


7


0.1


1


12


8


0.1


1


10



9


0.1


1


14


10


0.1


0.5


15



11


0.1


0.8


10



12


0.1


1


8





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

Программирование АЛГОРИТМОВ с использованием массивов

Цель лабораторной работы: освоить применение компонента StringGrid и создать приложение, в котором используются массивы.

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

Задание: создать Windows-приложение для вычисления вектора x={x1,x2,…,xm},равного p-й строке матрицы A={aij}(xj=apj, j=1,2,…,m) и вектора y={y1,y2,…,yn}, равного q-му столбцу матрицы A={aij}(yi=aiq, i=1,2,…,n) (n6,m8). В панели интерфейса предусмотреть возможность управления размерностью массивов.

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


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

При работе с массивами ввод и вывод информации на экран удобно организовывать с помощью компонента StringGrid.


Рис. 4.1



Компонент StringGrid используется для отображения информации в виде таблицы. Таблица содержит две зоны – фиксированную и рабочую. Фиксированная зона служит для вывода наименований строк и столбцов рабочей зоны и управления их размерами с помощью “мыши”. Фиксированная зона выделена другим цветом и в нее запрещен ввод информации с клавиатуры. Количество строк и столбцов фиксированной зоны устанавливается в свойствах FixedRows и FixedCols, соответственно.

Рабочая зона содержит RowCount строк и ColCount столбцов информации, которую можно изменять как программно, так и с помощью “мыши” или клавиатуры.

Доступ к информации в программе осуществляется с помощью свойства Cells[ACol, ARow: integer]: string, где ACol-номер столбца, а ARow – номер строки таблицы, причем нумерация начинается с нуля.

Пиктограмма компонента StringGrid находится на странице Additional Палитры Компонентов. Так как в нашем задании для всех компонентов StringGrid фиксированная зона не используется, в Инспекторе Объектов значения свойств FixedCols и FixedRows установите равными 0. В соответствии с заданием установите предельные значения количества строк n и столбцов m для компонента StringGrid1: ColCount=8, а RowCount=6 (восемь столбцов и шесть строк). Для компонента StringGrid2 ColCount=1, RowCount=8, а для компонента StringGrid3 ColCount=1, RowCount=6.

По умолчанию в компонент StringGrid запрещен ввод информации с клавиатуры, поэтому для компонента StringGrid1 необходимо в Инспекторе Объектов дважды щелкнуть “мышью” на символе + свойства +Options и в открывшемся списке опций установить значение goEditing в True.

Для удобства работы с компонентами SpinEdit установите для компонента SpinEdit1 значения свойств: MinValue=1, MaxValue=6, а для компонента SpinEdit2: MinValue=1, MaxValue=8.

4.1.2. Создание процедур обработки событий SpinEdit1Change и SpinEdit2Change

События SpinEdit1Change и SpinEdit2Change возникают при любом изменении значения в поле редактора SpinEdit1 и SpinEdit2 соответственно. Создадим процедуры обработки этих событий, в которых присвоим значения n и m, полученные из полей редакторов SpinEdit, свойствам ColCount и RowCount компонентов StringGrid. Это позволит управлять размерами таблиц StringGrid с помощью компонентов SpinEdit без дополнительных кнопок, так как изменение значений в поле редактора SpinEdit сразу приведет к изменению размера таблиц StringGrid. Дважды щелкните “мышью” на компоненте SpinEdit1 – курсор установится в тексте процедуры-обработчика события SpinEdit1Change: procedure TForm1.SpinEdit1Change(Sender: TObject). Внимательно наберите операторы этой процедуры, используя текст модуля UnMas(см. п.4.1.3). Аналогичным образом создайте процедуру-обработчик события SpinEdit2Change: procedure TForm1.SpinEdit2Change(Sender: TObject).



Информация о работе «Программирование на Object Pascal в среде Delphi»
Раздел: Информатика, программирование
Количество знаков с пробелами: 62207
Количество таблиц: 3
Количество изображений: 0

Похожие работы

Скачать
49877
5
0

... в среде Delphi). Задачи использовались как с данного сайта, так и из других источников – книг и семинарских занятиях по информатике в МГОУ. Курс завершается разработкой игры. Программное обеспечение: свободно распространяемая версия объектно-ориентированной среды программирования Delphi. Методы обучения: метод проектов, лекции, проблемный метод, частично-поисковый метод. Контроль знаний и умений ...

Скачать
17314
1
5

... // ... if(condition1) { j = 4; goto label1; } // ... for(j = 0; j < 10; j++) { // ... label1: // ... if(condition2) { i = 6; goto label2; } } // ... label2: // ... } 2.2       Разработка программы В среде программирования Borland Delphi создадим новое приложение (пункт меню File New Application). ...

Скачать
135570
16
5

... химических соединений, которые могут представлять ценность как сырье и использоваться в виде дополнения к шахте. 7. заключение В результате дипломного проектирования была разработана программа «АРМ менеджера по продажам в автосалоне «A-Motors», предназначенная для для регистрации и ведения учета продаж автомобилей. Программа предназначена для того, чтобы облегчить рутинный труд менеджера ...

Скачать
3767
0
0

... ситуация другая. Учитель на уроке работает с 10-15 учащимися. Осуществить должный контроль за усвоением материала всеми учащимися, если в классе есть компьютеры, без привлечения автоматизированных средств обучения затруднительно. Автором разработана обучающая программа «Учимся программировать на Паскале». Программа написана на языке Object Pascal в среде Delphi 6 и может работать на компьютерах ...

0 комментариев


Наверх