
О.О.П / ООП Лабораторные работы / Лабораторная работа №5 / Лабораторка 5 (оформление)
.docЛабораторна робота №5
Тема: Обробка одновимірних масивів.
Мета: вивчити складений тип даних - масив, основні властивості компоненти StringGrid. Написати і відлагодити програму з використанням одновимірних масивів
|
Свойство |
Описание |
Name |
Имя компонента. Используется в программе для доступа к компоненту и его свойствам |
|
ColCount |
Количество колонок таблицы |
|
RowCount |
Количество строк таблицы |
|
DefaultColWidth |
Ширина колонок таблицы |
|
DefaultRowHeight |
Высота строк таблицы |
|
FixedCols |
Количество зафиксированных слева колонок таблицы. Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте |
|
FixedRows |
Количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте |
|
Cells |
Соответствующий таблице двумерный массив. Ячейке таблицы, находящейся на пересечении столбца с номером col и строки с номером row, соответствует элемент cells [col] [row] |
|
GridLineWidth |
Ширина линий, ограничивающих ячейки таблицы |
|
Left |
Расстояние от левой границы поля таблицы до левой границы формы |
|
Top |
Расстояние от верхней границы поля таблицы до верхней границы формы |
Властивості Align, Constraints, Cursor, Enabled, Font, Height, Hint, ShowHint, Left, ParentColor, ParentFont, ParentShowHint, Name, PopupMenu, Top, Transparent, Visible, Width і деякі інші є загальними для багатьох компонентов.тся загальними для багатьох компонентів .
Программный код проекта
//---------------------------------------------------------------------------
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#include "Unit1.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n=4;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Randomize (); // Зміна початкової адреси для random()
Edit1 ->Text=IntToStr(n);
StringGrid1 ->ColCount=n;
for(int i=0; i<n;i++) // Заповнення масиву А випадковими числами
StringGrid1 ->Cells[i][0] = IntToStr(random(21) - 10);
Label3 ->Hide(); // Приховати компоненту
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
n=StrToInt(Edit1 ->Text);
if(n>10){
ShowMessage("Максимальна кількість 10!");
n=10;
Edit1 ->Text = "10";
}
StringGrid1 ->ColCount=n;
for(int i=0; i<n;i++)
StringGrid1 ->Cells[i][0]=IntToStr(random(21) - 10);
Label3 ->Hide();
Memo1 ->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo1 -> Clear ();
int i, kol = 0, a[10], poz,k=0, t=0;
double min,Sum=0;
int minI=0;
for(i=0; i<n;i++)
{ a[i]=StrToInt(StringGrid1 ->Cells[i][0]);
min=fabs(a[0]); }
for (i=0;i<n;i++)
if (min>fabs(a[i])) {
min=fabs(a[i]);
minI=i;
}
minI=n-1;
for (i=0;i<n;i++) if (a[i]<0){
minI=i;
break;
}
for (i=(minI+1);i<n;i++) k+=fabs(a[i]);
Memo1 -> Show();
Label3 ->Show();
Memo1 ->Lines->Add("Результат: "+IntToStr(k));
}
//---------------------------------------------------------------------------
Код додатку
//---------------------------------------------------------------------------
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#include "Unit1.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int n=4;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Randomize (); // Зміна початкової адреси для random()
Edit1 ->Text=IntToStr(n);
StringGrid1 ->ColCount=n;
for(int i=0; i<n;i++) // Заповнення масиву А випадковими числами
StringGrid1 ->Cells[i][0] = IntToStr(random(21) - 10);
Label3 ->Hide(); // Приховати компоненту
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
n=StrToInt(Edit1 ->Text);
if(n>10){
ShowMessage("Максимальна кількість 10!");
n=10;
Edit1 ->Text = "10";
}
StringGrid1 ->ColCount=n;
for(int i=0; i<n;i++)
StringGrid1 ->Cells[i][0]=IntToStr(random(21) - 10);
Label3 ->Hide();
Memo1 ->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo1 -> Clear ();
int i, kol = 0, a[10], poz,k=0, t=0;
double min,Sum=0;
int minI=0;
for(i=0; i<n;i++)
{ a[i]=StrToInt(StringGrid1 ->Cells[i][0]);
min=fabs(a[0]); }
for (i=0;i<n;i++)
if (min>fabs(a[i])) {
min=fabs(a[i]);
minI=i;
}
minI=n-1;
for (i=0;i<n;i++) if (a[i]<0){
minI=i;
break;
}
for (i=(minI+1);i<n;i++) k+=fabs(a[i]);
Memo1 -> Show();
Label3 ->Show();
Memo1 ->Lines->Add("Результат: "+IntToStr(k));
}
//---------------------------------------------------------------------------
Контрольні питання
-
Дайте визначення масиву.
Маси́в — впорядкований набір фіксованої кількості однотипних елементів, що зберігаються в послідовно розташованих комірках оперативної пам'яті, мають порядковий номер і спільне ім'я, що надає користувач.
-
Які типи даних можна використовувати для оголошення масивів?
За типом поділяється на числовий та символьний
-
Який індекс має перший елемент масиву, що містить десять елементів?
Нуль
-
Що трапиться, якщо в програмі виникне звертання до елементу масиву з індексом, який виходить за оголошені межі?
В масив допишуться нулі кількості індексів елементів за який виходить межа.
-
Як оголошується багатовимірний масив?
a[i][j]
-
Як визначити загальну кількість елементів в масиві xyz, якщо його елементи мають тип long?
Так, як і в звичайному масиві.