Программирование на языке объектно–ориентированного и визуального программирования Delphi

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

Задание 1. Вычисление выражений. Использование стандартных функций. Работа с графикой

 

Цель задания:

  1. Изучение порядка действий при вычислении выражении.
  2. Изучение способов ввода данных с клавиатуры.
  3. Создание графических областей.
  4. Обработка сообщений о положении мыши и вводе точек с ее помощью в графической области.

Постановка задачи.

  1. На форме воспроизвести формулу для вычисления, предусмотреть ввод с клавиатуры любого значения Х и вывод результатов расчета по формуле.
  2. Организовать на форме область, в которой нарисовать графики согласно приведенному варианта.
  3. Пользователь может вводить координаты точки с клавиатуры и/или кликнуть по рисунку с областями, указав точку, относительно координат которой провести проверку принадлежности точки данной области.
  4. Цветом в области графики и комментариями на форме сделать вывод о принадлежности указанной точки областям.

 

Вариант задания:

 

 

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. Построение графиков по таблицам данных

Постановка задачи:

1) Составить программу вычисления значений функции F(X) на отрезке [A,B] в точках X1=А+Н, где Н=(В-А)/М, М - заданное число.

) Построить таблицу, где указать:

 

№ шагаНХ=F(X)=

) По данным таблицы построить график функции F(X) с простановкой значений по обоим осям и возможностью изменения масштаба графика.

Методические указания:

  1. Значение шага Н должно вычисляться один раз.

 

Вариант задания:

 

Номер вариантаФункцияПараметрыАВМ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. Организация циклов в программе

 

Цель задания

  1. Получение навыков в выборе и использовании операторов цикла и таблицы StringGrid.
  2. Знакомство с итерационными процессами

Постановка задачи

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. Знакомство с алгоритмами упорядочения

Постановка задачи:

1.Для конкретного варианта составить массив исходных данных, предусмотрев возможность заполнения массива в виде таблицы в ручную и автоматически.

2.Изучив алгоритмы упорядочения, выбрать один из них. Написать программу, которая работает с любым допустимым набор?/p>