Еднодимензионални низи


Еднодимензионални низи Презентација Сара Ристоска 

Низи  

Низи - Mендо 

In C++, an array is a variable that can store multiple values of the same type. For example,

Suppose a class has 27 students, and we need to store the grades of all of them. Instead of creating 27 separate variables, we can simply create an array:

double grade[27];

Here, grade is an array that can hold a maximum of 27 elements of double type.

In C++, the size and type of arrays cannot be changed after its declaration.


C++ Array Declaration

dataType arrayName[arraySize];
int x[6];
  • int - type of element to be stored
  • x - name of the array
  • 6 - size of the array

Access Elements in C++ Array

In C++, each element in an array is associated with a number. The number is known as an array index. We can access elements of an array by using those indices.

// syntax to access array elements
array[index];

Consider the array x we have seen above.

C++ Array Declaration
Elements of an array in C++

Few Things to Remember:

  • The array indices start with 0. Meaning x[0] is the first element stored at index 0.
  • If the size of an array is n, the last element is stored at index (n-1). In this example, x[5] is the last element.
  • Elements of an array have consecutive addresses. For example, suppose the starting address of x[0] is 2120d. Then, the address of the next element x[1] will be 2124d, the address of x[2] will be 2128d and so on.
    Here, the size of each element is increased by 4. This is because the size of int is 4 bytes.

C++ Array Initialization

In C++, it's possible to initialize an array during declaration. For example,

// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};
C++ Array Initialization
C++ Array elements and their data

Another method to initialize array during declaration:

// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};

Here, we have not mentioned the size of the array. In such cases, the compiler automatically computes the size.

C++ Array With Empty Members

In C++, if an array has a size n, we can store upto n number of elements in the array. However, what will happen if we store less than n number of elements.

For example,

// store only 3 elements in the array
int x[6] = {19, 10, 8};

Here, the array x has a size of 6. However, we have initialized it with only 3 elements.

In such cases, the compiler assigns random values to the remaining places. Oftentimes, this random value is simply 0.

C++ Array with empty members
Empty array members are automatically assigned the value 0

How to insert and print array elements?

int mark[5] = {19, 10, 8, 17, 9}
// change 4th element to 9
mark[3]=9 ;
// take input from the user
// store the value at third position
cin>>mark[2];
// take input from the user
// insert at ith position
cin>>mark[i-1];
// print first element of the array
cout<<mark[0];
// print ith element of the array
cout<<mark[i-1];

Take inputs from User and Store Them in an Array

#include <iostream>
using namespace std;
int main() {
    int numbers[5];
    cout << "Enter 5 numbers: " << endl;
    //  store input from user to array
    for (int i = 0; i < 5; ++i) {
        cin >> numbers[i];
    }
    cout << "The numbers are: ";
    //  print array elements
    for (int n = 0; n < 5; ++n) {
        cout << numbers[n] << "  ";
    }
    return 0;
}

Output

Enter 5 numbers: 
11
12
13
14
15
The numbers are: 11  12  13  14  15

Once again, we have used a for loop to iterate from i = 0 to i = 4. In each iteration, we took an input from the user and stored it in numbers[i].

Then, we used another for loop to print all the array elements.

#include <iostream>
using namespace std;
#include <iomanip>
using std::setw;
int main () {
   int n[ 10 ]; // n is an array of 10 integers
    // initialize elements of array n to 0          
   for ( int i = 0; i < 10; i++ ) {
      n[ i ] = i + 100; // set element at location i to i + 100
   }
   cout << "Element" << setw( 13 ) << "Value" << endl;
    // output each array element's value                      
   for ( int j = 0; j < 10; j++ ) {
      cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl;
   }
    return 0;
}

This program makes use of setw() function to format the output. When the above code is compiled and executed, it produces the following result −

Element        Value
      0          100
      1          101
      2          102
      3          103
      4          104
      5          105
      6          106
      7          107
      8          108
      9          109

Типовите податоци: целобројни, знаковни, логички, интервални, реални се нарекуваат прости типови податоци или неструктурни. Овие податоци претставуваат елементарни целини кои не можат да се разложуваат.
Постојат и структурни типови податоци, податоци кои се состојат од основни или прости (неструктурирани) типови на податоци и кои се третираат како сложена целина со точно дефинирана структура.Такви се низа битови, низа знаци, општа низа, множество запис, стек, ред, датотеки.
Податочните структури претставуваат колекција од податочни елементи. Во случај кога се работи со голем број истородни податоци, тие се организираат во посебни типови структури наречени низи (array). Низа претставува непрекината – последователна група на мемориски локации кои го имаат истиот тип. Низите може да содржат броеви или знаци. Во една низа сите податоци мора да бидат од ист тип, значи не е можно во една низа да се чуваат и броеви и знаци.
Низата може да биде еднодимензионална (кога едноставно се нарекува низа), дводимензионална (кога се нарекува матрица заради аналогија со матрици во математиката) и повеќедимензионална.

Декларирање еднодимензионална низа

Како и секоја друга променлива, така и низите мора да бидат декларирани пред да може да се користат. Во C++, низи се декларираат на следниот начин:

tip ime[N];

tip го означува податочниот тип на секој елемент од низата, 
N е бројот на елементи или должина на низата , 
ime е името на променливата преку кое ќе пристапуваме до елементите на низата.
Примери на декларации на низа:

 

Декларација

Име на низата

Тип на елементите

Должина на низата

int ocenka[6];

ocenka

int

6

float a[20];

a

float

20

const int k=5; int a[k];

а

int

5


Полето ( низата ) треба да се декларира за да се обезбеди доволен простор (меморија) за податоците
Името на низата не смее да биде исто со името на друга низа или името на некоја од променливите. На пр., погрешно е да се декларира int a; и int a[15]; во една програма.

Пристап до елементите на еднодимензионална низа 

Елемент на низа се претставува со:    име[индекс], каде што индекс е број од 0 до број_на _елементи−1.

Прв елемент на секоја низа е неговиот нулти елемент. Така, првиот елемент е x[0], a i-тиот елемент е x[i-1]. 

Еднодимензионално поле (низа)

X[0]

X[1]

X[2]

...

...

X[i-1]

Името на низата е X (сите елементи имаат исто име и различен индекс). Редниот број на елементите во низата се вика индекс на елементот.

 Индексот мора да биде

- целобројна константа
- целобројна променлива
- целоброен израз

Елементи во низа

X[3]

целобројна константа

X[a]

целобројна променлива

X[a*3-1]

целоброен израз

 Должина на поле

Должината на декларираното поле не смее да се менува во текот на извршување на програмата.  Ако должината на полето е поголема од бројот на елементи на кои им е придружена вредност, останатите елементи добиваат вредност 0.

 Доделување вредност и иницијализација на низа

На елементите на низата може да се доделат вредности. На пр., вредноста 5 на првиот елемент во низата X се поставува со: X [0]=5;

Доделување вредности на елементите на низа со иницијализирачка листа

Вредностите на сите елементи на низата може да се доделат со иницијализирачка листа, веднаш со декларација. Вредностите кои  се  доделуваат  на  елементите  се ставаат во големи загради и се одделуваат со запирка.

Пример: Доделување вредности на елементите на низата X со иницијализирачка листа:

int X [10]={3,4,2,5,53,3,5,255,5,4};

Доделување вредности на елементите на низа со наредбата for

Пример: Доделување вредности на елементите на низата X со наредбата for (вредностите се внесуваат преку тастатурата):


for (i=0;i<6;i++)
{ cout<<"X ["<<i<<"]=";
      cin>>X [i]; }




Во C++, можеме да го искористиме операторот  sizeof()

       за да откриеме колку бајти зафаќа една низа - sizeof(array),

       но и од колку елементи е составена самата таа низа - преку делење на меморијата која ја зафаќа низата (sizeof(array)) со меморијата која ја зафаќа еден од нејзините елементи (на пример, sizeof(array[0])).

Бидејќи сите елементи зафаќаат иста количина на меморија (затоа што се од ист податочен тип) , оваа едноставна математичка операција

     sizeof(array) / sizeof(array[0])           ќе го даде точниот број на елементи во низата.


Што ќе се отпечати 

1. 
#include<iostream>
using namespace std;
int main()
{
int clenovi[]={8,25,36,44,52,60,75,89};
int vrednost=clenovi[0];
int a=8;
for (int i=1;i<a;++i)
{
if (clenovi[i]>vrednost)
vrednost=clenovi[i]; }
cout<<"vrednost="<<vrednost<<endl;
return 0; }

2. 
 #include <iostream> 
using namespace std;
 int main ()
{ int niza[] = {0, 2, 4, 6, 7, 5, 3};
 int n,
 result = 0;
 for (n = 0 ;n < 5 ;n++)
 { result += niza [n]; }
 cout << result;
 system ("pause");
 return 0;  }

3. 
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{float a[10], suma=0, arsr;
int b=0;
do 
{ cin >>a[b];
  suma=suma+a[b];
  b++;
   arsr=suma/b;
}
while (b<10 && arsr<=10);
for (int i=0; i < b-1;i++)
   for (int j=i+1; j < b;j++)
      if (a[i] > a[j]) swap(a[i],a[j]);
for (int i=0; i < b;i++) cout << a[i] << " ";
cout << endl;
system("PAUSE");
return 0;

4. Дадена е низа од 10 реални броја. Да се најде бројот најблизок до 0 и најдалечен од 0

#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a[10]={2, 3, 15, -14, -12.5, -1.5, 0.2, 11, -25, 4}, najb, najd;
najb=a[0];
najd=a[0];
for (int i=1; i<10;i++)
{
if (abs(a[i])< abs(najb)) najb=a[i];
if (abs(a[i]) > abs(najd)) najd=a[i];
}
cout << "Najblizok do nula e " << najb << endl;
cout << "Najdalecen od nula e " << najd << endl;
return 0;

Збир  на два бинарни броја


No comments: