Программирование на языке объектно–ориентированного и визуального программирования Delphi
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
Задание 1. Вычисление выражений. Использование стандартных функций. Работа с графикой
Цель задания:
- Изучение порядка действий при вычислении выражении.
- Изучение способов ввода данных с клавиатуры.
- Создание графических областей.
- Обработка сообщений о положении мыши и вводе точек с ее помощью в графической области.
Постановка задачи.
- На форме воспроизвести формулу для вычисления, предусмотреть ввод с клавиатуры любого значения Х и вывод результатов расчета по формуле.
- Организовать на форме область, в которой нарисовать графики согласно приведенному варианта.
- Пользователь может вводить координаты точки с клавиатуры и/или кликнуть по рисунку с областями, указав точку, относительно координат которой провести проверку принадлежности точки данной области.
- Цветом в области графики и комментариями на форме сделать вывод о принадлежности указанной точки областям.
Вариант задания:
1) при Х=-0.7129
2) координаты исследуемой точки: (-0.5;-0.9)
Код программы:
Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, TeEngine, Series, TeeProcs, Chart, StdCtrls, ExtCtrls, TeeFunci,;= class(TForm): TPanel;: TEdit;: TLabel;: TLabel;: TButton;: TChart;: TLineSeries;: TLabel;: TPanel;: TChart;: TShape;: TChartShape;: TEdit;: TLabel;: TEdit;: TLabel;: TButton;: TLabel;btn1Click(Sender: TObject);FormCreate(Sender: TObject);btn2Click(Sender: TObject);cht2Click(Sender: TObject);Y(const x: real): Real;SetDot(const x, y: Real);
{ Public declarations };: TForm1;
0)and(y 0) and (y < - x + 1)) then.Brush.Color := clWhite;6.Caption := Точка пренадлежит области;
end.Brush.Color := clRed;6.Caption := Точка не пренадлежит области;
end;TForm1.btn2Click(Sender: TObject);(StrToFloat(edt2.Text), StrToFloat(edt3.Text));;TForm1.cht2Click(Sender: TObject);, y: Real;:= cht2.BottomAxis.CalcPosPoint(cht2.GetCursorPos.x);:= cht2.LeftAxis.CalcPosPoint(cht2.GetCursorPos.Y);.Text := FloatToStr(x);.Text := FloatToStr(Y);(x, y);;.
Листинг:
Задание 2. Построение таблиц функций
Цель задания:
- Построение графиков по таблицам данных
Постановка задачи:
1) Составить программу вычисления значений функции F(X) на отрезке [A,B] в точках X1=А+Н, где Н=(В-А)/М, М - заданное число.
) Построить таблицу, где указать:
№ шагаНХ=F(X)=
) По данным таблицы построить график функции F(X) с простановкой значений по обоим осям и возможностью изменения масштаба графика.
Методические указания:
- Значение шага Н должно вычисляться один раз.
Вариант задания:
Номер вариантаФункцияПараметрыАВМ3.cos(x)/32*/320
Код программы:
unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, TeEngine, Series, ExtCtrls, TeeProcs, Chart;= class(TForm): TChart;: TLineSeries;: TStringGrid;FormCreate(Sender: TObject);f(const x: Real): Real;
{ Public declarations };: TForm1;
{$R *.dfm}
// 1) Составить программу вычисления значений функции F(X)
function TForm1.f(const x: Real): Real;:= Cos(x);;TForm1.FormCreate(Sender: TObject);
// на отрезке [A,B] в точках X1=А+Н, где Н=(В-А)/М, М - заданное
число.
A = {-PI;}PI / 3;
B = {Pi;}2 * PI / 3;
M = {360;}20;= (B - A) / M;: Integer;: Real;
begin
// 2) Построить таблицу, где указать:
StringGrid1.Cells[0, 0] := № Шага;.Cells[1, 0] := H;.Cells[2, 0] := X =;.Cells[3, 0] := F(X) =;:= A;:= 0;x < B do(i);.RowCount := StringGrid1.RowCount + 1;.Cells[0, i] := IntToStr(i);.Cells[1, i] := FloatToStr(H);.Cells[2, i] := FloatToStr(X);.Cells[3, i] := FloatToStr(f(X)); := x + h;
end;
// 3) По данным таблицы построить график функции F(X) с
// простановкой значений по обоим осям и возможностью
// изменения масштаба графика.i := 1 to StringGrid1.RowCount - 1 do.AddXY(StrToFloat(StringGrid1.Cells[2, i]),(StringGrid1.Cells[3, i]));.FixedCols := 1;.FixedRows := 1;;.
Листинг программы:
Задание 3. Организация циклов в программе
Цель задания
- Получение навыков в выборе и использовании операторов цикла и таблицы StringGrid.
- Знакомство с итерационными процессами
Постановка задачи
1.Используя оператор цикла, найти сумму элементов, указанных в конкретном варианте. Результат напечатать в виде таблицы с указанием № шага, значения текущего члена ряда, суммы ряда в текущем шаге:
№ шагаЗначение текущего члена рядаСумма ряда в текущем шаге
2.Построить график, показывающий изменение всех параметров таблицы.
Вариант задания:
Найти сумму 15 членов ряда, в котором
Код программы:
Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, TeEngine, Series, ExtCtrls, TeeProcs, Chart;= class(TForm): TChart;: TStringGrid;: TLineSeries;: TLineSeries;FormCreate(Sender: TObject);a(const n: Integer): Real;
{ Public declarations };: TForm1;
{$R *.dfm}TForm1.a(const n: Integer): Real;:= Exp(Sqr(Ln(n)))/exp(ln(n)*ln(ln(n)));;TForm1.FormCreate(Sender: TObject);= 2;= 15;= N + FirstN - 1;: Integer;: Real;: Real;.RowCount := N + 1;.FixedCols := 1;.FixedRows := 1;.Cells[0, 0] := № Шага;.Cells[1, 0] := Текущий;.Cells[2, 0] := Сумма;:= 0;i := 1 to N do:= a(i + (FirstN - 1));:= sum + cur;.Cells[0, i] := IntToStr(i);.Cells[1, i] := FloatToStr(cur);.Cells[2, i] := FloatToStr(sum);.AddXY(i, cur);.AddXY(i, sum);;;.
Листинг:
функция графика итерационный массив
Задание 4. Работа с массивами чисел
Цель задания:
- Получение практических навыков в работе с массивами
- Знакомство с алгоритмами упорядочения
Постановка задачи:
1.Для конкретного варианта составить массив исходных данных, предусмотрев возможность заполнения массива в виде таблицы в ручную и автоматически.
2.Изучив алгоритмы упорядочения, выбрать один из них. Написать программу, которая работает с любым допустимым набор?/p>