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

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    354,44 Кб
  • Опубликовано:
    2012-09-15
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программирование на языке объектно–ориентированного и визуального программирования 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;

{$R *.dfm}TForm1.Y(const x: real): Real;:= Sin(arctan(x));;TForm1.btn1Click(Sender: TObject);= 4;= 0.1;: Real;.Caption := FloatToStr(Y(StrToFloat(edt1.Text)));.Clear;:= -Range;x < Range do.AddXY(x, y(x));:= x + Step;;;TForm1.FormCreate(Sender: TObject);:= '.';;TForm1.SetDot(const x, y: Real);.Top := cht2.LeftAxis.CalcPosValue(y) - shp1.Height div 2;.Left := cht2.BottomAxis.CalcPosValue(x) - shp1.Width div 2;(0 < y) and ((x < 0) and (y < x + 1) or (x > 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.      Изучив алгоритмы упорядочения, выбрать один из них. Написать программу, которая работает с любым допустимым набором данных.

.        Входную информацию и результаты счета вывести на экран (предусмотреть возможность распечатки результатов работы на принтере), снабдив их соответствующими заголовками.

.        Подсчитать количество А) сравнений элементов; Б)перестановок элементов.

Содержание отчета:

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

2)      Описание всех действий по созданию приложения.

)        Блок-схема или алгоритм (в том числе сортировки)

)        Математические выкладки

)        Листинг программы и всех модулей

)        Контрольный пример (распечатка изображений экранов, иллюстрирующих работу приложения).

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

1. Исходные данные должны включать и положительные числа, и отрицательные, и нули.

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

1. Дан двумерный массив, содержащий 5 строк и 3 столбца. Элементами массива являются целые числа. Упорядочить массив по не убыванию элементов второй строки.

Код программы:

unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, StdCtrls, ExtCtrls, Printers;= class(TForm): TPanel;: TPanel;: TStringGrid;: TStringGrid;: TPanel;: TRadioButton;: TRadioButton;: TPanel;: TButton;: TEdit;: TLabel;: TLabel;: TEdit;: TButton;: TPanel;: TLabel;: TLabel;: TEdit;: TEdit;: TLabel;: TLabel;: TPanel;: TButton;: TButton;btn1Click(Sender: TObject);btn2Click(Sender: TObject);btn3Click(Sender: TObject);btn4Click(Sender: TObject);: Integer;: Integer;: array of array of Integer;

{ Public declarations };: TForm1;

{$R *.dfm}= 99;TForm1.btn1Click(Sender: TObject);:= StrToInt(edt1.Text);:= StrToInt(edt2.Text);(a, m, n);.RowCount := m;.ColCount := n;.RowCount := m;.ColCount := n;.Enabled := False;.Enabled := True;.Options := StringGrid1.Options + [goEditing];;TForm1.btn2Click(Sender: TObject);, j: Integer;rb1.Checked theni := 0 to m - 1 doj := 0 to n - 1 do[i, j] := StrToInt(StringGrid1.Cells[j, i]);i := 0 to m - 1 doj := 0 to n - 1 do[i, j] := Random(2 * MyRandMax + 1) - MyRandMax;.Cells[j, i] := IntToStr(a[i, j]);;;.Enabled := False;.Enabled := True;.Options := StringGrid1.Options - [goEditing];;TForm1.btn3Click(Sender: TObject);, j, k: Integer;, XchgCount: integer;: integer;.Enabled := False;.Enabled := True;:= 0;:= 0;i := 0 to m - 2 dok := i + 1 to m - 1 do(CmpCount);a[i][1] > a[k][1] thenj := 0 to n - 1 do(XchgCount);:= a[i][j];[i][j] := a[k][j];[k][j] := buf;;;i := 0 to m - 1 doj := 0 to n - 1 do.Cells[j, i] := IntToStr(a[i, j]);.Text := IntToStr(CmpCount);.Text := IntToStr(XchgCount);;TForm1.btn4Click(Sender: TObject);

// Начало печати.BeginDoc;.Canvas.Font.Color := clBlack;.Canvas.TextOut(40, 20, 'Сравнений = ' + edt3.Text);.Canvas.TextOut(40, 40, 'Перестановок = ' + edt4.Text);

// Конец печати.EndDoc;;.

Листинг программы:

Динамический список

Условие задачи

Создать С1-направленный список, упорядоченный по С2, из N С3 С4 и найти элемент, удовлетворяющий условию С5. Вывести созданный список или сообщение: «Список пуст». Для двунаправленных списков - созданный список выводить дважды: в прямом и обратном порядке.

Предусмотреть 1) возможность ввода данных в список из текстового файла; 2) генерации элементов в заданном количестве N; 3) добавления заданного элемента в список в указанном порядке C2.

Для решения задачи создать процедуры: добавления первого элемента в пустой список, добавления очередного элемента в требуемом порядке (в начало/конец/середину), генерация списка (генерация/ввод и вызов процедуры добавления для каждого элемента списка), вывода списка в Memo, поиска в списке, освобождения списка.

Варианты заданий

Вычисляются по правилу: сумма двух последних цифр зачетки. Если сумма больше 15, вариант = сумма минус 15

С1

С2

С3

С4

С5

2

Одно-

По возрастанию кодов символов

Псевдослучайных, от а до я

символов кириллицы

Номер первой гласной буквы

Код программы:

unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Spin;= class(TForm): TButton;: TLabel;: TButton;: TOpenDialog;: TMemo;: TButton;: TEdit;: TLabel;: TButton;: TLabel;: TSpinEdit;: TButton;: TButton;FormCreate(Sender: TObject);FormClose(Sender: TObject; var Action: TCloseAction);ButtonAddClick(Sender: TObject);ButtonAddRandomClick(Sender: TObject);ButtonLoadClick(Sender: TObject);ButtonClearClick(Sender: TObject);ButtonSearchClick(Sender: TObject);ButtonRefreshClick(Sender: TObject);

{ Private declarations }

{ Public declarations };=^TElement;=record:PElement;:char;;: TForm1;,ListEnding:PElement;

{$R *.dfm}CreateList(var ListN,ListK:PElement; I:char);(ListN);:=ListN;^.Data:=I;^.Next:=nil;;AddFirst(var ListN,ListK:PElement;I:char);:PElement;(Elem);^.Data:=I;^.Next:=ListN;:=Elem;;AddLast(ListN:PElement;var ListK:PElement;I:char);(ListK^.next);^.Next^.Data:=I;^.Next^.Next:=nil;:=ListK^.Next;;AddAfter(ListN,ListC,ListK:PElement;I:char);:PElement;(Elem);^.Data:=I;^.Next:=ListC^.Next;^.Next:=Elem;;ClearList(var ListN,ListK:PElement);:PElement;:=ListN;Elem<>nil do:=ListN^.Next;(Elem);:=ListN;;:=nil;;TForm1.FormCreate(Sender: TObject);;:=nil;:=nil;;TForm1.FormClose(Sender: TObject; var Action: TCloseAction);(ListBegining,ListEnding);;Add(var ListN,ListK:PElement;I:char);:PElement;ListN = nil then(ListN,ListK,I)i <= ListN^.Data then(ListN,ListK,I)i >= ListK^.Data then(ListN,ListK,I):=ListN;(ListC^.next^.Data) <= i do:= ListC^.next;(ListN,ListC,ListK,I);;ShowList;:Integer;:PElement;:=0;.Memo.Clear;:=ListBegining;ListC=nil then.Memo.Lines.Add('Пусто');ListC<>nil do(i);.Memo.Lines.Add(IntToStr(i)+') Адрес: '+('%p',[ListC])+' | Элемент: '+ListC^.Data+

' | Следующий: '+Format('%p',[ListC.Next]));:=ListC^.next;;;TForm1.ButtonAddClick(Sender: TObject);:char;:=EditData.Text[1];(ListBegining,ListEnding,I);('Неверный формат ввода');;;;TForm1.ButtonAddRandomClick(Sender: TObject);j:Integer;:char;j:=1 to SpinEdit.Value do:=chr(ord('а')+Random(33));(ListBegining,ListEnding,I);;;;

TForm1.ButtonLoadClick(Sender: TObject);:TextFile;:char;OpenDialog.Execute then(DataFile,OpenDialog.FileName);(DataFile);not Eof(DataFile) do(Datafile,I);(ListBegining,ListEnding,I);;('Некорректные данные');;(DataFile);;

except('Не удалось открыть текстовый файл');

end;('Файл не задан');;;TForm1.ButtonClearClick(Sender: TObject);(ListBegining,ListEnding);;;TForm1.ButtonSearchClick(Sender: TObject);,lastb:PElement;:integer;:boolean;:=ListBegining;:=0;:=false;listC<>nil do(num);(listC^.Data='а')or(listC^.Data='е')or(listC^.Data='и')or(listC^.Data='о')or(l^.Data='у')(listC^.Data='ы')or(listC^.Data='э')or(listC^.Data='ю')or(listC^.Data='я') :=true;;;:=listC^.Next;;f then.Caption:='Номер первой гласной буквы: '+inttostr(num).Caption:='Не найдено';;TForm1.ButtonRefreshClick(Sender: TObject);

begin;;.

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!