bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [20]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » МдЭ » Другое

ОАиП кр1 в4
Подробности о скачивании 10.01.2012, 01:04
Лабораторная работа №1
4.
При x=0.4104, y=-0.875, z=-0.47510-3 s=1.9873.


unit KW1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0,4e4'; //ввод начального значения х
Edit2.Text:='-0,875'; //ввод начального значения y
Edit3.Text:='-0,475e-3'; //ввод начального значения Z
end;

procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z,a,b,c,s : extended;
begin
Memo1.Clear; // очистка окна вывода Memo1
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
z:=StrToFloat(Edit3.Text);
a:=Abs(Cos(x)-Cos(y));
b:=1+2*Power(Sin(y),2);
c:=1+z+Power(z,2)/2+Power(z,3)/3+Power(z,4)/4;
s:=Power(a,b)*c;
Memo1.Lines.Add('Result s='+FloatToStrF(s,ffFixed,7,4));
end;
end.

Лабораторная работа №2
4.



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Math;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
RadioGroup1: TRadioGroup;
Button1: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='2'; Edit2.Text:='5,6'; Memo1.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
x,y,f,s : extended;
begin
Memo1.Clear;
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
case RadioGroup1.ItemIndex of
0 : f:=Cos(x);
1 : f:=Sqr(x);
2 : f:=Sin(x);
end;
if (f>y) then s:=Power(f,3)+ArcTan(x*y)
else
if (f<y) then s:=Power(y,3)+ArcTan(x)
else s:=Power(y+Sqrt(x),3)+0.5;

Memo1.Lines.Add('Result S='+FloatToStrF(s,ffFixed,8,3));
end;
end.

Лабораторная работа №3
4.

4
0.1
1

200



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
Edit1.Text:='0,1';
Edit2.Text:='1';
Edit3.Text:='200';
end;
procedure TForm1.Button1Click(Sender: TObject);
var k,n : integer;
Xn,Xk,x,y,a,s : extended;

begin
Memo1.Clear;
Xn:=StrToFloat(Edit1.Text);
Xk:=StrToFloat(Edit2.Text);
n:=StrToInt(Edit3.Text);
x:=Xn;
s:=0;
repeat

for k:=1 to n do begin

a:=Power(-1,k)*Power(x,2*k)/(2*k);
s:=s+a;
end;
y:=Cos(x);

Memo1.Lines.Add('при x='+FloatToStrF(x,ffFixed,8,4)+' y='+FloatToStrF(y,ffFixed,8,4)+
' s='+FloatToStrF(s,ffFixed,8,4));
x:=x+(Xk-Xn)/n;
until(x>Xk+Xn/2);
end;

end.

Лабораторная работа №4
4. Задан двухмерный массив целых чисел A размером M на N. Найти произведение элементов, расположенных ниже побочной диагонали.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
StringGrid1: TStringGrid;
Button2: TButton;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TMas = array[1..10,1..10] of integer;

var
Form1: TForm1;
A : TMas; // Объявление двухмерного массива
n, m : integer;
i, j : integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
n:=4; // Число строк в массиве
m:=4; // Число столбцов в массиве
Edit1.Text:='4';
Edit2.Text:='4';
StringGrid1.Cells[0,0]:='A';
for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i);
for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin
n:=StrToInt(Edit1.Text); // Число строк в массиве
m:=StrToInt(Edit2.Text); // Число столбцов в массиве
{Задание числа строк и столбцов в таблице}
StringGrid1.RowCount:=N+1;
StringGrid1.ColCount:=M+1;
for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i);
for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);

end;

procedure TForm1.Button2Click(Sender: TObject);
var p : integer;
begin
Memo1.Clear;
{Заполнение массива А элементами из таблицы StringGrid1}
for i:=1 to n do
for j:=1 to m do
A[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
{Расчет}

p:=1;
for i:=1 to n do
for j:=1 to m do
if (i>=-j+n+2) and (j>=-i+m+2) then
p:=p*A[i,j];
{ Вывод результата }

Memo1.Lines.Add('Произведение элементов расположенных ниже побочной диагонали при условии, что диагональ в расчете не участвует : '
+IntToStr(p));

end;

end.

Лабораторная работа №5
4. Определить, является ли заданная матрица N-го порядка магическим квадратом, т.е. такой, в которой сумма элементов во всех строках и столбцах одинакова.


unit pp;

interface
type TMas = array[1..10, 1..10] of integer;
Procedure Matric(A : TMas; n,m : integer; var s,cv,ch,v,h : integer);
implementation
Procedure Matric(A : TMas; n,m : integer; var s,cv,ch,v,h : integer);
var i,j : integer;
begin
h:=0;
v:=0;
ch:=0;
cv:=0;

for i:=1 to n do begin
ch:=ch+A[i,1];
end;
for j:=1 to m do begin
cv:=cv+A[1,j];
end;

j:=1;
repeat
v:=0;
for i:=1 to n do begin
v:=v+A[i,j];
if (v=cv) then
s:=s+1;
end;
j:=j+1;
until (j>=m);

i:=1;
repeat
h:=0;
for j:=1 to m do begin
h:=h+A[i,j];
if (h=ch) then
s:=s+1;
end;
i:=i+1;
until (i>=n);
end;
end.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, Math, pp;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
A : TMas;
n,m : integer;
i,j : integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
n:=4;
m:=4;
Edit1.Text:='4';
Edit2.Text:='4';
StringGrid1.Cells[0,0]:='A';
for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i);
for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
m:=StrToInt(Edit2.Text);
{Задание числа строк и столбцов в таблице}
StringGrid1.RowCount:=N+1;
StringGrid1.ColCount:=M+1;
for i:=1 to n do StringGrid1.Cells[0,i]:='i='+IntToStr(i);
for j:=1 to m do StringGrid1.Cells[j,0]:='j='+IntToStr(j);

end;

procedure TForm1.Button2Click(Sender: TObject);
var h,ch,v,cv,s : integer;

begin
Memo1.Clear;
{Заполнение массива А элементами из таблицы StringGrid1}
for i:=1 to n do
for j:=1 to m do
A[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
{ras4et}
Matric(A,n,m,s,cv,ch,v,h);

Memo1.Lines.Add('Количество строк совпавших с основными(cv,ch) = '+IntToStr(s));
Memo1.Lines.Add('Сумма основной строки горизонтали ch = '+IntToStr(ch));
Memo1.Lines.Add('Сумма основной строки вертикали cv = '+IntToStr(cv));
Memo1.Lines.Add('Сумма последней сравниваемой горизонтальной строки v = '+IntToStr(v));
Memo1.Lines.Add('Сумма последней сравнимаемой вертикальной строки h = '+IntToStr(h));
{ Вывод результата }
if (s=m+n-2)then
Memo1.Lines.Add('Результат: Квадрат магический')
else
Memo1.Lines.Add('Результат: Квадрат не магический');
end;

end.
Категория: Другое | Добавил: ascorn
Просмотров: 1369 | Загрузок: 5
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]