
- •Вычислительная техника и программирование
- •Вычислительная техника и программирование
- •212005, Г. Могилев, пр. Мира, 43
- •1 Цель преподавания дисциплины
- •2 Требования к контрольным работам
- •3 Пример оформления контрольной работы по четвертому, пятому и шестому пунктам задания
- •Список литературы
- •Приложение а (рекомендуемое)
- •Приложение б (рекомендуемое)
- •Приложение в (рекомендуемое)
- •Приложение г (рекомендуемое)
- •Приложение д (рекомендуемое)
- •Приложение е (рекомендуемое)
3 Пример оформления контрольной работы по четвертому, пятому и шестому пунктам задания
Задача 4. Разработать приложение в Delphi для вычисления
,
исходные данные a,b,c,d.
Форма приложения
Одним из основных элементов приложения является форма, из которой пользователь управляет событиями, происходящими во время работы приложения. Форма приложения представлена на рисунке 1.
Рисунок 1 – Форма приложения
На форме размещены следующие компоненты:
Label1, Label2, Label3, Label4, Label5, Label6 – метки, содержащие статичный текст и несущие информацию о назначении других компонентов;
Edit1, Edit2, Edit3, Edit4, Edit5 – текстовые строки, содержащие значения вводимых и выводимых значений;
Button1, Button2 – кнопки для принятия данных и завершения работы приложения.
Текст программного кода.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit5: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
a,b,c,d,v:real;
str:string;
begin
a:=StrToFloat(edit1.Text);
b:=StrToFloat(edit2.Text);
c:=StrToFloat(edit Text);
d:=StrToFloat(edit4.Text);
v:=(a*Sqrt(Abs(Sin(b*c)+a))-Exp(-a*c))/
Sqrt(Abs(2*b+d));
str:=' v = '+FloatToStrF(v,ffFixed,10,4);
edit5.text:=str;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.
Описание основных операторов, процедур, функций и методов.
В процессе создания программного приложения использовались следующие процедуры, функции и методы:
- StrToFloat(S:String):Extended: - функция, которая преобразует строку в число, возвращаемый результат типа Extended;
FloatToStrF(V:Extended;Format:TFloatFormat;Precision,Digits:Integer):String – функция преобразования числа с плавающей точкой;
Sqrt(x) – возвращает квадратный корень аргумента х;
Abs(х) – возвращает абсолютное значение аргумента х;
Sin(х) – возвращает синус аргумента х;
Exp(х) – возвращает значение ех.
В приложении использованы методы обработки событий, происходящих на форме, код которых создан во время работы приложения
procedure Button1Click(Sender: TObject); - нажатие на кнопку Button1
procedure Button2Click(Sender: TObject); - нажатие на кнопку Button2
Задача
5. Создать приложение для вычисления
интеграла
с заданной точностью. При написании
кода использовать подпрограммы.
Форма приложения.
На рисунке 2 представлена форма после выполнения.
Рисунок 2 - Форма приложения после выполнения расчетов
На форме размещены следующие компоненты:
Label1, Label2, Label3, Label4 – метки, содержащие статичный текст и несущие информацию о назначении других компонентов;
Label5 – метка предназначена для вывода результатов вычислений;
Edit1, Edit2, Edit3 – текстовые строки, содержащие значения вводимых значений;
Button1, Button2 – кнопки для принятия данных и завершения работы приложения.
Текст программного кода.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function F(x:real):real;
begin
f:=sin(x)/x;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,eps:real;
S1,S2:real;
x,h:real;
i,n:integer;
begin
a:=strtofloat(edit1.Text);
b:=strtofloat(edit2.Text);
eps:=strtofloat(edit3.Text);
n:=1;
s2:=0;
repeat
h:=abs(b-a)/n;
x:=a;
S2:=0;
for i:=1 to n do
s2:=S2+F(x+(i-1)*h)*h;
until (s2-s1)<=eps;
Label5.Caption:='Значение интеграла равно '
+floattostrF(s2,ffFixed,8,3);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
end.
Описание основных операторов, процедур, функций и методов.
В процессе создания программного приложения использовались следующие процедуры, функции и методы:
- StrToFloat(S:String):Extended: - функция, которая преобразует строку в число, возвращаемый результат типа Extended;
FloatToStrF(V:Extended;Format:TFloatFormat;Precision,Digits:Integer):String – функция преобразования числа с плавающей точкой;
Abs(х) – возвращает абсолютное значение аргумента х;
Sin(х) – возвращает синус аргумента х;
В приложении использованы методы обработки событий, происходящих на форме, код которых создан во время работы приложения:
procedure Button1Click(Sender: TObject) - нажатие на кнопку Button1
procedure Button2Click(Sender: TObject) - нажатие на кнопку Button2
Function F(x:real):real; - пользовательская функция вычисления значения F(x);
При написании кода использовались следующие операторы:
1) Условный оператор
If <логическое выражение> Then <оператор1>
else <оператор2>;
Если логическое выражение истинно, то выполняется < оператор 1>, в противном случае выполняется <оператор2>.
2) Оператор повтора
Repeat
<оператор1>;
< оператор2>; …
< операторN>
until <логическое выражение >;
Тело цикла выполняется пока значение логического выражения ложно.
Рисунок 3 – Блок-схема алгоритма
Задача
6. Создать приложение для вычисления и
построения графика функции
для
.
Главная форма приложения.
Главная форма приложения для выполнения второй задачи представлена на рисунке 4.
Рисунок 4 – Главная форма
На форме размещены следующие компоненты:
Button1, Button2, Button3 – кнопки для принятия данных и завершения работы приложения.
Текст программного модуля главной формы.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.ShowModal;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form3.ShowModal;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
end.
Описание основных операторов, процедур, функций и методов.
В программном коде использовался метод вызова формы ShowModal – вызов формы для модального выполнения
Форма приложения для вычисления значений функции
Форма приложения для вычисления значений функции приведена на рисунке 5
Рисунок 5 –Форма приложения для вычисления значений функции
На форме размещены следующие компоненты:
Label1, Label2, Label3, Label4, Label5, Label6 – метки, содержащие статичный текст и несущие информацию о назначении других компонентов;
Edit1, Edit2, Edit3– текстовые строки, содержащие значения вводимых и выводимых значений;
StringGrid1 – компонент для вывода табличных данных;
Button1, Button2 – кнопки для принятия данных и завершения работы приложения.
Текст программного кода для вычисления значения функции на заданном интервале.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
StringGrid1: TStringGrid;
Label5: TLabel;
Edit3: TEdit;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
x,x1,x2,dx:real;
y:real;
i:integer;
begin
x1:=StrToFloat(edit1.Text);
x2:=StrToFloat(edit2.Text);
dx:=StrToFloat(edit3.Text);
stringgrid1.Cells[0,0]:='Значения Х';
stringgrid1.Cells[0,1]:='Значения Y';
x:=x1;
i:=0;
while x<=x2 do
begin
i:=i+1;
stringgrid1.ColCount:=i;
y:=2*sin(x)*exp(x/5);
stringgrid1.Cells[i,0]:=floatToStrF(x,ffFixed,6,2);
stringgrid1.Cells[i,1]:=floatToStrF(y,ffFixed,6,2);
x:=x+dx;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
Описание основных операторов, процедур, функций и методов.
В процессе создания программного приложения использовались следующие процедуры, функции и методы:
- StrToFloat(S:String):Extended: - функция, которая преобразует строку в число, возвращаемый результат типа Extended;
FloatToStrF(V:Extended;Format:TFloatFormat;Precision,Digits:Integer):String – функция преобразования числа с плавающей точкой;
В приложении использованы методы обработки событий, происходящих на форме, код которых создан во время работы приложения
procedure Button1Click(Sender: TObject) - нажатие на кнопку Button1
procedure Button2Click(Sender: TObject) - нажатие на кнопку Button2
При написании кода использовался оператор повтора
While <логическое выражение> do <оператор>. При работе оператора While <оператор>, стоящий после зарезервированного слова do выполняется до тех пор, пока <логическое выражение> истинно.
Рисунок 6 – Блок-схема алгоритма
Форма приложения для построения графика функции.
Форма приложения для построения графика функции приведена на рисунке 7.
Рисунок 7 – Форма приложения для построения графика функции
На форме размещены следующие компоненты:
Button1, Button2 – кнопки для принятия данных и завершения работы приложения;
Image1 – компонент для построения графика.
Текст программного кода приложения для построения графика.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function F(x:real):real;
begin
F:=2*sin(x)*exp(x/5);
end;
Procedure Graf;
Var
x1,x2:real;
y1,y2:real;
x,y:real;
dx:real;
l,b:integer;
w,h:integer;
mx,my:real;
x0,y0:integer;
begin
l:=10;
b:=form1.image1.ClientHeight-20;
h:=form1.image1.ClientHeight-40;
w:=form1.image1.Width-40;
x1:=0;
x2:=25;
dx:=0.01;
y1:=f(x1);
y2:=f(x1);
x:=x1;
repeat
y:=f(x);
if y<y1 then y1:=y;
if y>y2 then y2:=y;
x:=x+dx;
until (x>=x2);
my:=h/abs(y2-y1);
mx:=w/abs(x2-x1);
x0:=1;
y0:=b-abs(Round(y1*my));
with form1.Image1.Canvas do
begin
MoveTo(l,b); LineTo(l,b-h);
MoveTo(x0,y0); LineTo(x0+w,y0);
TextOut(l+5,b-h,FloatToStrF(y2,ffFixed,6,3));
TextOut(l+5,b,FloatToStrF(y1,ffFixed,6,3));
x:=x1;
repeat
y:=f(x);
Pixels[x0+Round(x*mx),y0-round(y*my)]:=clRed;
x:=x+dx;
until (x>=x2);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Graf;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
Описание основных операторов, процедур, функций и методов.
В процессе создания программного приложения использовались следующие процедуры, функции и методы:
FloatToStrF(V:Extended;Format:TFloatFormat;Precision,Digits:Integer):String – функция преобразования числа с плавающей точкой;
В приложении использованы методы обработки событий, происходящих на форме, код которых создан во время работы приложения
procedure Button1Click(Sender: TObject) - нажатие на кнопку Button1
procedure Button2Click(Sender: TObject) - нажатие на кнопку Button2
Graf – оператор вызова пользовательской процедуры;
При написании кода использовались следующие операторы:
1) Условный оператор
If <логическое выражение> Then <оператор1>
else <оператор2>;
Если логическое выражение истинно, то выполняется < оператор 1>, в противном случае выполняется <оператор2>.
2) Оператор повтора
Repeat
<оператор1>;
< оператор2>;
…
< операторN>
until <логическое выражение >;
Тело цикла выполняется пока значение логического выражения ложно.
Метод MoveTo(x,y) – перемещение текущей позиции в точку с координатами (х, y).
Метод LineTo(x,y) – вычерчивание прямой линии от текущей позиции до точки с координатами (x,y).