Частина тексту файла (без зображень, графіків і формул):
Міністерство науки і освіти України
Національний університет “Львівська політехніка”
Інститут комп’ютерних наук та інформаційних технологій
кафедра програмного забезпечення
Звіт з лабораторної роботи №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="Неможливо!";
};
}
//---------------------------------------------------------------------------
Результат роботи
Висновок: Оволодів практичними навиками роботи з масивами .
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!