Масиви

Масива е поредица от фиксиран брой еднотипни елементи, обединени с едно име.
           int A[20]; -    Декларираме масив А от 20 елемента цели числа.
Декларация:
Тип       Име         [размер];
             на масив         на масива
Тип – валиден тип данни (int, double, float ..);
Име – Произволно създадено от вас име, но да не започва с цифра , тире и т.н. ;
Размер – цяло неотрицателно число, константа от дискретен тип;
         int a[20];
         int N=50, a[N];
         double b[N];
         int A [10]; - Декларираме масив А от 10 елемента цели числа.

masiv

Първо декларираме масива int А[5];
След това ако напишем А[0]=5 ;
В първия елемент от масива ще въведем стойност 5 . Броенето на елементите от масива започва от 0. Индексът (или номер подред) се пише между квадратни скоби, а самата стойност се извежда чрез изписване на цялото име на масива и индекса които ни е необходим: cout << A[0]; - ще изведе стойността на първия елемент т.е. 5.
Самото деклариране на масива заделя място от паметта за определен брой елементи.
Стойностите на масива си ги въвеждаме ние. Ето няколко начина:
int a[5]={1,3,5,7,9};
int b[]={2,4,6,8,10,12};
double AB[5]={3.14,5.3,3.3,2,5.67};
В горните примери по време на декларацията се извършва инициализация (задават се начални стойности).
Най-често се използва цикъл за въвеждане на стоиностите на масива :
int i,a[5];
for(i=0;i<5;i++)
{
cin >> a[i];
}
и за извеждане стойностите на масива също се използва цикъл :
for(i=0;i<5;i++)
{
cout << a[i];
}

Пример 1 : Въвеждаме пет числа от клавиатурата,след това ги извеждаме разделени със запетая.

#include<iostream> // for Code Blocks
using namespace std;
int main()
{
int i,a[5];
for(i=0;i<5;i++)
{
cin >>a[i];
}
for(i=0;i<5;i++)
{
cout << a[i] << ",";
}
return 0;
}

Пример 2 : Същия пример от по-горе само че за информация извежда името на масива
и номер подред.

#include <iostream> // for Code Blocks
using namespace std;
int main()
{
int i,a[5];
for(i=0;i<5;i++)
{
cout<< "a["<< i<< "]=>";
cin >> a[i];
}
for(i=0;i<5;i++)
{
cout<< "a["<< i<< "]=>";
cout<< a[i]<< ", ";
}
return 0;
}
Пример 3: Сумиране на елементите на масив.

#include <iostream> // for Code Blocks
using namespace std;
int main()
{
int i,a[5];
int S=0;
for(i=0;i<5;i++)
{
cout<< "a["<< i<< "]=>";
cin >> a[i];
}
for(i=0;i<5;i++)
{
S=S+a[i]; }
cout<< "S="<< S<< endl;
return 0;
}

Пример 4 : Изчислние на средно аритметично на N числа.
Променливата N задава размера на масива.

#include <iostream> // for Code Blocks
using namespace std;
int main()
{
int i,N,a[10000];
double S=0;
cout<< "N=";
cin>> N;// Vavejdate razmera na masiva
for(i=0;i< N;i++)
{
cout<< "a["<< i<< "]=>";
cin >> a[i];
}
for(i=0;i< N;i++)
{
S=S+a[i];
}
cout<< "Sredno aritmeticho ==> "<< S/N<< endl;
return 0;
}

Пример 5 : Въвеждане и извеждане стойностите на двумерен масив.
#include <iostream> // for Code Blocks
#include <iomanip>
using namespace std;
int main()
{
int i,j,n=3;
double a[n][n];
for(i=0;i< n;i++)
{
for(j=0;j< n;j++)
{
cout<< "a["<< i<< ","<< j<< "]=";
cin >> a[i][j];
}
cout<< endl;
}
for(i=0;i< n;i++)
{
for(j=0;j< n;j++)
{
cout<< setw(4)<< "a["<< i<< ","<< j<< "]="<< a[i][j];
}
cout<< endl;
}
return 0;
}

Пример 6 : Въвеждане и извеждане стойностите на двумерен масив.
Примерно въвеждане: 3 реда с по 5 стойности разделени с интервал. В края на реда се натиска Enter.
N:1=>3 4 4 4 4
N:2=>4 4 5 5 5
N:3=>5 5 5 6 6

#include <iostream> // for Code Blocks
using namespace std;
int main()
{
int b=3,c=5;
double a[b][c];
int i,j;
int N[3]={1,2,3};
for(i=0;i< b;i++)
{
cout<< "N:"<< N[i]<< "=>";
for(j=0;j< c;j++)
cin >> a[i][j];
}
for(i=0;i< b;i++)
{
cout<< "N:"<< N[i]<< "=";
for(j=0;j< c;j++)
{
cout<< a[i][j]<< ", ";
}
cout<< endl;
}
return 0;
}
Пример 7 : Примерна таблица за извеждане на среден успех. Използва двумерен масив и масив от символи за съхраняване на имената.
Примерно въвеждане: 3 реда с по 5 стойности разделени с интервал. В края на реда се натиска Enter.
N:1 Alex =>3 3 3 3 4
N:2 Bily =>4 4 5 5 5
N:3 Rocky=>4 4 4 5 5

#include <iostream>// tested on Eclipse on Linux
#include <string.h>
#include <iomanip>
using namespace std;
int main()
{
int b=3,c=5;
double a[b][c],s;
int i,j;
string N[3]={"Alex ","Bily ","Rocky"};
for(i=0;i< b;i++)
{
cout<< "N:"<< i+1<< " "<< N[i]<< "=>";
for(j=0;j< c;j++)
cin >> a[i][j];
}
cout< cout<< " N:"<< setw(20)<< "BEL"<< setw(13)<< "MATH"<< setw(11)<< "INF"<< setw(14)<< "ENGLISH"<< setw(13)<< "HISTORY"<< setw(11)<< "Average"<< endl;
for(i=0;i< b;i++)
{
s=0;
cout<< i+1<< " "<< N[i]<< setw(15);
for(j=0;j< c;j++)
{
cout<< a[i][j]<< setw(12);
s=s+a[i][j];
}
cout<< s/c;
cout<< setw(0)<< endl;
}
return 0;
}

Пример 8 : Извеждане сумата на главният и второстепенния диагонали на квадратна матрица.

masiv

#include <iostream>// tested on Eclipse on Linux
using namespace std;
int main()
{
int n=4,s=0,s1=0;
double a[n][n];
int i,j;
int N[4]={1,2,3,4};
for(i=0;i< n;i++)
{
cout<< "N:"<< N[i]<< "=>";
for(j=0;j< n;j++)
cin >> a[i][j];
}
cout<< endl;
for(i=0;i< n;i++)
{
cout<< "N:"<< N[i]<< "=";
for(j=0;j< n;j++)
{
cout<< a[i][j]<< ",";
}
cout<< endl;
s=s+a[i][i];
s1=s1+a [i][n-i-1];
}
cout<< endl;
cout<< "Gl. Diagonal ===>"<< s<< endl;
cout<< "Vtori. Diagonal ===>"<< s1;
return 0;
}


Благодаря за вниманието Ви !