Теоретичні відомості
Масиви
Комп’ютерний практикум 2
1.Мета. Навчитися створювати масиви та виконувати перетворення в них.
2.Задачі:
1) вміти створювати масиви (вектор, матриця);
2) вміти знаходити найменший та найбільший елементи масиву;
3) вміти виконувати перетворення з масивами;
4) розробити псевдокод до кожного завдання;
5) розробити блок-схему до кожного завдання;
6) розробити програму за варіантом;
7) проаналізувати отримані результати;
8) оформити звіт.
3.1. Масиви – це упорядкована послідовність елементів одного типу. Окремі змінні в масиві називаються елементами масиву. Кожний елемент масиву має свій номер (індекс), за яким можна звертатися до значення елемента. Індекс - це число чи арифметичний вираз цілого типу. Перший індекс масиву дорівнює нулю. Максимальний індекс плюс один дорівнює розмірності масиву.
Масив в С++ визначається як:
тип_даних ім’я_масиву [конст_вираз-1] [конст_вираз-2] ... [конст_вираз-n],
наприклад, int F[10], float c1[12][12], char array[7].
Індексація елементів масиву починається з нуля, тобто останній елемент масиву має індекс на 1 менший, ніж кількість елементів масиву.
Елементи масиву можуть бути ініціалізовані. Для цього слід після опису масиву написати символ «=» і задати у фігурних дужках список значень елементів масиву. Константний вираз у квадратних дужках може бути опущено, якщо в об’явленні масиву його елементи задаються. Елементи списку відокремлюються один від одного комами. Список не повинен вміщувати порожні елементи, однак можуть бути задані не всі елементи масиву (кінцеві), наприклад, char M[]={‘a’,’r’,’r’,’a’,’y’}, або int s[6]={0,2,4,6}. Для двомірних масивів (матриць) заповнення значень відбувається по рядкам, наприклад,
float d[2][2]={1.02,1.12,
1.14,1.2}.
Під час звернення до елементів масиву вказується ім’я масиву та індекс. Кожний індекс записується в квадратних дужках. Елементи багатомірних масивів зберігаються в пам’яті в порядку збільшення самого правого індекса. Наприклад,
int mas[10],
mas[0] | mas[1] | mas[2] | mas[3] | mas[4] | mas[5] | mas[6] | mas[7] | mas[8] | mas[9] |
char str[5][4]
str[0][0] | str[0][1] | str[0][2] | str[0][3] | str[0][4] |
str[1][0] | str[1][1] | str[1][2] | str[1][3] | str[1][4] |
str[2][0] | str[2][1] | str[2][2] | str[2][3] | str[2][4] |
str[3][0] | str[3][1] | str[3][2] | str[3][3] | str[3][4] |
str[4][0] | str[4][1] | str[4][2] | str[4][3] | str[4][4] |
Приклади використання масивів.
3.1.1.Знайти суму елементів вектора.
{
int i,n=10;
float a[10]={1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.90,9.01,1.97},S=0;
for(i=0;i<n;i++)
S=S+a[i];
Edit1->Text=FloatToStr(S);
}
3.1.2.Знайти добуток елементів матриці
{
int i,j,n=3;
float a[3][3]={1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.90,9.01},P=1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
P=P*a[i][j];
Edit1->Text=FloatToStr(P);
}
3.1.3.Знайти найбільший елемент вектора
{
int i,j,n=3;
float a[9]={1.23,2.34,9.01,6.78,3.45,4.56,5.67,7.89,8.90},P;
P=a[0];
for(i=1;i<n;i++)
if(P<a[i])
P=a[i];
Edit1->Text=FloatToStr(P);
}
3.1.4.Знайти найменший елемент матриці.
{
int i,j,n=3;
float a[3][3]={1.23,2.34,9.01,6.78,3.45,4.56,5.67,7.89,8.90},P;
P=a[0][0];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(P>a[i][j])
P=a[i][j];
Edit1->Text=FloatToStr(P);
}
3.1.5.Скільки елементів масиву належать заданому проміжку?
{
int i,j,n=3,k=0;
float x[3][3]={1.23,2.34,9.01,6.78,3.45,4.56,5.67,7.89,8.90},a=1,b=5.8;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(x[i][j]>=a&&x[i][j]<=b)
k++;
Edit1->Text=FloatToStr(k);
}
3.2. Робота з декількома формами.
Для того щоб підключити декілька форм слід виконати послідовність дій: File-> New->Form.
Після чого в кожному з .h файлі в рядку
extern PACKAGE TForm1 *Form1,*Form2,*Form3;
вписати відповідні форми.
Для переходу на форму в .cpp файлі необхідно записати такі команди
Form2->Visible=true; //2 форма видима і перехід на неї
Form1->Visible=false; // 1 форма невидима