- •Программирование на языке
- •Object pascal в среде delphi
- •(Лабораторные работы)
- •Содержание
- •Лабораторная работа 1. Программирование линейных алгоритмов
- •1.1. Базовые элементы языка Object Pascal
- •1.1.1. Алфавит языка
- •1.1.2. Синтаксис языка
- •1.1.3. Основные типы данных
- •1.1.4. Оператор присваивания
- •1.1.5. Целые типы данных
- •1.1.6. Вещественные (действительные) типы данных
- •1.1.8. Cимвольные типы данных
- •1.1.9. Строкоые типы данных
- •1.1.10. Арифметические вычисления
- •1.2. Интегрированная среда разработчика delphi
- •1.3. Структура программ delphi
- •Interface
- •Implementation
- •1.4. Пример написания программы
- •1.4.2. Изменение заголовка формы
- •1.4.6. Написание программы обработки события
- •1.4.7. Написание программы обработки события
- •2.3. Оператор выбора Case
- •2.4. Составной оператор
- •2.5. Некоторые возможности, предоставляемые Delphi для организации разветвлений
- •Interface
- •Implementation
- •2.7. Индивидуальные задания
- •3.1.2. Организация цикла с помощью оператора repeat
- •3.2. Организация вложенных циклов
- •3.3. Организация прерывания цикла
- •3.4. Алгоритмы, использующие рекуррентную последовательность
- •3.5. Пример написания программы
- •Interface
- •Implementation
- •3.6. Индивидуальные задания
- •Лабораторная работа 4. Программирование с использованием массивов
- •4.1. Работа с массивами
- •4.2. Операции над массивами
- •4.3. Примеры часто встречающихся алгоритмов работы с массивами
- •4.4. Компонент tStringGrid для ввода/вывода массивов
- •4.5. Пример написания программы с использованием tStringGrid
- •Interface
- •Implementation
- •4.6. Компонент tEdit для ввода одномерных массивов
- •4.7. Пример написания программы с использованием tEdit
- •4.7. Компонент tMemo для ввода/вывода одномерных массивов
- •4.8. Пример написания программы с использованием tMemo
- •4.9. Индивидуальные задания
- •Лабораторная работа 5. Программирование с использованием строковых данных
- •5.1. Работа со строками
- •5.2. Пример написания программы
- •Лабораторная работа 6. Программирование с использованием подпрограмм и модулей
- •6.1. Описание подпрограмм
- •6.2. Передача данных через формальные параметры
- •6.3. Процедурные типы
- •6.4. Область видимости переменных
- •6.5. Пример написания программы с использованием процедур
- •Interface
- •Implementation
- •6.6. Использование модулей
- •6.7. Пример написания программы с использованием модуля
- •6.7.1. Создание модуля
- •6.7.2. Подключение модуля
- •Implementation
- •6.8. Индивидуальные задания
- •Лабораторная работа 7. Построение графиков
- •7.1. Компонент tChart
- •7.2. Пример написания программы
- •7.4. Индивидуальные задания
- •Лабораторная работа 8. Работа с файлами
- •8.2. Прямая работа с файлами (классический способ)
- •Доступ к файлам
- •Подпрограммы для работы с файлами
- •Запись и чтение типизированных файлов
- •Запись и чтение нетипизированных файлов
- •8.3. Диалоги открытия и сохранения файлов
- •8.4. Пример написания программы
- •8.5. Индивидуальные задания
- •Средства отладки программ в delphi
- •Литература
7.2. Пример написания программы
Задание: Написать программу, которая с помощью компонента TChart строит
график функции
на отрезке (Хн - Хк) с шагом dX.
Значения Хн, Хк, dX вводятся с клавиатуры в компоненты TLabeledEdit.
Вычисление f(x) для любого Х оформить в виде подпрограммы-функции.
Интерфейс программы приведен на рис. 7.7, а текст - в листинге 7.1.
Рис. 7.7. Интерфейс программы.
Листинг 7.1
unit Gr_ChartU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg, StdCtrls, Buttons, TeeProcs, TeEngine, Chart,
Series;
type
TForm1 = class(TForm)
XXn: TLabeledEdit;
XXk: TLabeledEdit;
ddX: TLabeledEdit;
Chart1: TChart;
BitBtn1: TBitBtn;
Series1: TLineSeries;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//==========================================
Function f(x : real) : real;
// вычисление функции f(x)
begin
if x < -1 then Result := exp(x);
if (x > -1) and (x < 0) then Result := 1/exp(x) + exp(5*ln(x+1));
if x > 1 then Result := exp(-x);
end;
//==========================================
procedure TForm1.BitBtn1Click(Sender: TObject);
// построить
var
Xn, Xk, dX, X : real;
begin
Xn:=StrToFloat(XXn.Text);
Xk:=StrToFloat(XXk.Text);
dX:=StrToFloat(ddX.Text);
Series1.Clear;
X:=Xn;
While X<=Xk do begin
Series1.AddXY(X, f(X),'', clRed);
X:=X+dX;
end;
end;
//---------------------------------------------
end.
7.3. Пример написания программы
Построить график функции (с помощью компонента TChart), которая приведена ниже. В качестве f(x) использовать по выбору (компонент TRadioGroup): cos(x), x2 или sin(x). Значения: у, диапазон (Xнач - Хкон) и шаг dX вводятся с клавиатуры.
Примерный интерфейс программы приведен на рис. 7.7, а фрагмент программы (только функция и обработчик Button1Click() ) - в Листинге 7.2.
Рис. 7.7. Интерфейс программы
Листинг 7.2
//=============================================
Function f(x, y : real; RadioGroup : TRadioGroup) : real;
//фунция
var fx : real;
begin
case RadioGroup.ItemIndex of
0 : fx := cos(x);
1 : fx := sqr(x);
2 : fx := sin(x);
end;
if fx > 0.5 then f := sqr(x+y)-sqrt(y);
if (fx > -0.5) and (fx <= 0.5) then f := sqr(x+y)+power(x*y,3);
if fx < -0.5 then f := sqr(x+y)+ln(y);
end;
//=============================================
procedure TForm1.Button1Click(Sender: TObject);
//построить
var
Xn, Xk, Y, x, dX : real;
begin
Y:=StrToFloat(Edit1.Text); //получаем у
Xn:=StrToFloat(Edit2.Text) ; //получаем Хнач
Xk:=StrToFloat(Edit3.Text); //получаем Хкон
dX:=StrToFloat(Edit4.Text); //получаем шаг dХ
Series1.Clear;
x := Xn;
while x <= Xk do begin
Series1.AddXY(X, f(x,y,RadioGroup1), '', clRed);
x := x + dX;
end;
end;
//--------------------------------------------
7.4. Индивидуальные задания
Варианты заданий взять из лабораторной работы № 2 (пункт 2.7, стр.24).
Диапазон изменения Х, шаг dX и значение Y для графика выбрать самостоятельно. Вычисление функции f(x) для любого Х оформить в виде подпрограммы-функции.