4 тақырып. Массивтерді қолданып программалау



бет2/3
Дата19.10.2023
өлшемі131 Kb.
#119244
түріПрограмма
1   2   3
ColCount және RowCount қасиеттері кестедегі бағананың және қатардың санын орнатады, ал FixedCols және FixedRows қасиеттері нақты белгіленген аймақтағы бағанның және қатардың санын береді. Нақты белгіленген аймақ басқа түспен ерекшеленеді, және оған перне тақта арқылы ақпарат енгізуге рұқсат жоқ.


4.3. Тапсырманы орындау реті


Тапсырма: Y = А*B векторының есептеу мәніне программа құрыңыз, мұнда А - өлшемі NxN болатын квадраттық матрица, ал Y, B – N өлшемді бірөлшемді массив. Y векторының элементін

ө рнегі бойынша анықтайды. TEdit компонентіне N мәнін енгізеді, TstringGrid компонентіне А және B мәндерін енгізеді. Қорытынды TButton түріндегі батырманы басқаннан кейін, TStringGrid компонентіне шығарылады.


TStringGrid компонентін баптау


Пішінде TStringGrid компонентін орнату үшін Additional бетінде меню компоненттерінен abc – пиктограммасын тышқан көрсеткішімен шерту қажет. Компоненттердің жиегін ұстап тұрып, оның өлшемін реттеуге болады. Нысандар инспекторында ColCount және RowCount қасиеттерінің мәндерін 2- деп (екі баған және екі қатар), ал FixedCols және FixedRows қасиеттерін 1-деп өзгерту керек (нақты белгіленген аймақтарда бір баған және бір қатар). StringGrid2 және StringGrid3 компоненттері бір ғана бағаннан тұратындықтан, сондықтан оларда: ColCount=1, RowCount=2, FixedCols=0 и FixedRows=1. Үнсіз келісім бойынша TStringGrid компонентіне перне тақтадан ақпаратты енгізуге болмайды, сондықтан StringGrid1 және StringGrid2 компонеттері үшін Options goEditing қасиеттіне True күйін орнату қажет.
Прогамма мәтіні:

#include


#pragma hdrstop
#include"Unit1.h"


#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

fastcall TForm1 ::TForm1(TComponent* Owner)


: TForm(Owner)


/ /
const Nmax=10; // Массивтің максималь өлшемі
typedef double mas2[Nmax][Nmax]; // Екі өлшемді массив түрін хабарлау
typedef double mas1[Nmax]; // Бір өлшемді массив түрін хабарлау
int N=3;


void fastcall TForm1 ::FormCreate(TObject *Sender)
{
//Кестеге қатардың және бағанның санын беру

Edit1 ->Text=FloatToStr(N);


StringGrid1->ColCount=N+1;
StringGrid1->RowCount=N+1;
StringGrid2->RowCount=N+1;
StringGrid3->RowCount=N+1;

//Кестенің сол жақ жоғарғы ұяшығына массив атауын енгізу





StringGrid1->Cells[0][0]="Массив A";
StringGrid2->Cells[0][0]="Массив B";
StringGrid3->Cells[0][0]="Массив Y";
for( int i =1; i<=N;i++)






StringGrid1->Cells[0][i]="i="+IntToStr(i);
StringGrid1->Cells[i][0]="j="+IntToStr(i);
}


void fastcall TForm1 ::Button1Click(TObject *Sender)
N=StrToInt(Edit1->Text);
StringGrid1->ColCount=N+1;
StringGrid1->RowCount=N+1;
StringGrid2->RowCount=N+1;
StringGrid3->RowCount=N+1;
StringGrid1->Cells[0][0]="МассивA";
StringGrid2->Cells[0][0]="Массив B";
StringGrid3->Cells[0][0]="Массив Y";
for(int i=1; i<=N
{
StringGrid1->Cells[0][i]="i="+IntToStr(i);
StringGrid1->Cells[i][0]="j="+IntToStr(i);
}
}
/ /
void fastcall TForm1 ::ButBtn1Click(TObject *Sender)
{
mas2 a ; // Екі өлшемді массив түрін хабарлау
mas1 b,y; // Бір өлшемді массив түрін хабарлау
int i,j;


// StringGrid1 кестесіндегі элементтермен А массивін толтыру
for( i =0; i<=N;i++)
for( j =0; j<=N;j++)
a[i][j]= StrToFloat(StringGrid1->Cells[i+1][j+1]);


// StringGrid2 кестесіндегі элементтермен B массивін толтыру
for( i =0; i<=N;i++)
b[i]= StrToFloat(StringGrid2->Cells[0][i+1]);


// А массивін В массивіне көбейту
for( i =0; i<=N;i++)
{
double s=0;
for( j =0; j<=N; j++)
s+= a[j][i]* b[j];
y[i]=s;
// StringGrid3 кестесіне қортындыны шығару
StringGrid3->Cells[0][i+1]=ToFloatStrF(y[i], ffFixed,8,2);
/ /


Достарыңызбен бөлісу:
1   2   3




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет