Частина тексту файла (без зображень, графіків і формул):
Міністерство науки і освіти України
Національний університет “Львівська політехніка”
Інститут комп’ютерних наук та інформаційних технологій
кафедра програмного забезпечення
Звіт з лабораторної роботи №2
з дисципліни “Об’єктно-орієнтоване програмування ”
Лабораторна робота № 2
"Класові типи. Використання класових типів та управління об'єктами"
Завдання
Написати програму алгоритмічною мовою С++ згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування оформити у вигляді процедури; обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
Розробити два варіанти розв'язку задачі:
використовуючи клас двомірного масиву та функції-члени;
використовуючи клас одномірного масиву, функції-члени та дружні функції.
Впорядкувати елементи рядків матриці за зростанням їх значень методом простої вибірки
fi(aij)-середнє арифметичне значення елементів у кожному стовпці під головною діагоналлю матриці; F(fi(aij))-добуток fi(aij)
Текст програми
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int const n=3;
int st,rjd,mas[n][n];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Edit1->Text=IntToStr(n);
Edit2->Text=IntToStr(n);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Button1->Caption="Створено!";
st=StrToInt(Edit1->Text);
rjd=StrToInt(Edit2->Text);
StringGrid1->ColCount=st;
StringGrid1->RowCount=rjd;
StringGrid2->ColCount=st;
StringGrid2->RowCount=rjd;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit1->Text=IntToStr(n);
Edit2->Text=IntToStr(n);
for (int i=0;i<st;i++)
for (int j=0;j<rjd;j++)
StringGrid1->Cells[i][j]="";
st=1;
rjd=1;
StringGrid1->ColCount=st;
StringGrid1->RowCount=rjd;
Button1->Caption="Побудувати";
Button4->Caption="Прийняти";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
for (int i=0;i<st;i++)
for (int j=0;j<rjd;j++)
mas[i][j]=StrToInt(StringGrid1->Cells[j][i]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
for (int j=0;j<rjd;j++)
for(int k=0;k<st;k++)
for (int i=0;i<(st-1);i++)
if (mas[j][i]>mas[j][i+1])
{int tmp=mas[j][i+1];
mas[j][i+1]=mas[j][i];
mas[j][i]=tmp;
};
for (int i=0;i<rjd;i++)
for (int j=0;j<st;j++)
StringGrid2->Cells[j][i]=mas[i][j];
float sum=0;
if (st==rjd)
{for(int k=1;k<st;k++)
for (int j=0;j<rjd-1;j++)
{for (int i=rjd-1;i<st;i++)
{ sum=sum+mas[0][j];
sum=sum/(st+k-1);
};
};
Label5->Caption="Матриця квадратна. Обрахунок виконано. Середнє значення знайдено";
Edit3->Text=sum;
}
if(st!=rjd)
{Label5->Caption="Матриця не квадратна. Обрахунок не можливий";
Edit3->Text="Неможливо!";
};
}
//---------------------------------------------------------------------------
Результат роботи
Висновок: Оволодів практичними навиками роботи з масивами .