- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::FormCreate(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
Void __fastcall tForm1::Button1Click(tObject *Sender)
{
exit(0);
}
//---------------------------------------------------------------------------
Результат работы программы:
Ответ: Работу программы проверили для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрали произвольно (n=10). Значения S и Y для заданного аргумента x практически совпадают, т.к. значение S(x) является рядом разложения функции Y(x).
Z=|Y(x) – S(x)|.
ЗАДАНИЕ 4
По заданию лабораторной работы №3 написать программу расчета выбранной функции Y(x) или S(x) (желательно и |Y(x)–S(x)|), вид которой в свою очередь передается в качестве параметра в функцию вывода (Out_Tabl).
Текст программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TMemo *Memo1;
double a,b,h,s,y=1,x,r,z;
int k,t,n;
void Out_Tabl(double x)
{
r=1;t=0;s=0;
for (k=0;k<n;k++)
{
if (k==0) t=1;
else t=t*k;
r=(cos((k*M_PI)/4)/t)*pow(x,k);
s=s+r;
}
y=exp(x*cos(M_PI/4))*cos(x*sin(M_PI/4));
z=fabs(y-s);
Form1->Memo1->Lines->Add(FloatToStrF(s,ffFixed,6,6)+" "+FloatToStrF(y,ffFixed,6,6)+" "+FloatToStrF(z,ffFixed,6,15));
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
h=StrToFloat(Edit3->Text);
n=StrToInt(Edit4->Text);
Memo1->Lines->Add(" S Y Z ");
for(x=a;x<b;x+=h)
Out_Tabl(x);
}
//---------------------------------------------------------------------------
Void __fastcall tForm1::Button1Click(tObject *Sender)
{
exit(0);
}
//---------------------------------------------------------------------------
Результат работы программы:
Ответ: Для вывода результата использовали функцию пользователя Out_Tabl.
ЗАДАНИЕ 5
Написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. Предусмотреть возможность ввода данных как с клавиатуры, так и с использованием функции random().
При создании оконного приложения скалярный (простой) результат выводить в виде компоненты Label, а массивы вводить и выводить с помощью компонент StringGrid.
В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить: Сумму элементов массива, расположенных до последнего положительного элемента.
Текст программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <stdlib.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int i,n,ch,s=0;a[10];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
randomize();
n=StrToInt(Edit1->Text);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
s=0;ch=0;
for(i=0;i<n;i++)
a[i]=StrToInt(StringGrid1->Cells[i][0]);
for(i=n;i>0;i--)
if (a[i]>0) {ch=i;
break;}
for(i=0;i<ch;i++)
s=s+a[i];Form1->Label3->Caption=" "+IntToStr(s);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
n=StrToInt(Edit1->Text);
StringGrid1->ColCount=n;
ch=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
for (i=0;i<n;i++)
StringGrid1->Cells[i][0]=IntToStr(random(100)-50);
}
//---------------------------------------------------------------------------
Результат работы программы:
Ответ: Предусмотрели возможность ввода массива как с клавиатуры, так и с использованием функции random(). Вычислили сумму элементов массива, расположенных до последнего положительного элемента.
ЗАДАНИЕ 6
Написать программу по обработке динамических массивов. Размеры массивов вводить с клавиатуры. При создании оконного приложения скалярный (простой) результат выводить в виде компоненты Label, а массивы вводить и выводить с помощью компонент StringGrid, в которых 0-й столбец и 0-ю строку использовать для отображе-ния индексов массивов. Из матрицы размером N☓M получить вектор B, присвоив его k-му элементу значение 1, если k-я строка матрицы симметрична, иначе значение 0.
Текст программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n,m,**a,*b,i,j,pr,tp1,tp2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Edit1->Text="0";
Edit2->Text="0";
StringGrid1->ColCount=n+1;
StringGrid1->RowCount=m+1;
StringGrid1->Cells[0][0]="Матрица N*M";
for(i=1;i<=n;i++)
{
StringGrid1->Cells[0][i]="i="+IntToStr(i);
StringGrid1->Cells[i][0]="j="+IntToStr(i);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if(Edit1->Text=="")
{
ShowMessage("Ошибка!Требуется ввести числовое значение!");
Edit1->Text="0";}
n=StrToInt(Edit1->Text);
m=StrToInt(Edit2->Text);
StringGrid1->ColCount=n+1;
StringGrid1->RowCount=m+1;
StringGrid2->RowCount=m;
StringGrid1->Cells[0][0]="Матрица N*M";
for(i=1;i<=n+1;i++)
StringGrid1->Cells[0][i]="i="+IntToStr(i);
for(i=1;i<=m+1;i++)
StringGrid1->Cells[i][0]="j="+IntToStr(i);
}
//---------------------------------------------------------------------------
