ЕДНОДИМЕНЗИОНАЛНИ НИЗИ

ЕДНОДИМЕНЗИОНАЛНИ НИЗИ
Во многу проблеми податоците имаат посложена структура и тешко е да се
oбработуваат, ако секој од податоците има различно име.
Пр. Ако сакаме да направиме програма во која ќе внесеме 1000 броја и ќе ги отпечатиме во
обратен редослед, тогаш нашата програма, иако не работи нешто многу сложено, ќе биде
многу голема.
#include <iostream>
using namespace std;
int main( )
{
int broj1;
int broj2;
.
.
int broj1000;
cin >> broj1;
cin >> broj2;
.
.
cin >> broj1000;
cout << broj1000 << endl;
cout << broj999 << endl;
.
.
cout << broj1 << endl;
return 0;
}
Оваа програма има преку 3000 линии (1000 за декларирање + 1000 за внесување на броевите +
1000 за печатење) и во неа се користат 1000 променливи.
Очигледно е дека:
- имињата на променливите се слични и
- променливите се од ист тип
Затоа воведуваме нов тип на променлива – еднодимензионална низа.
Дефиниција: Еднодимензионална низа е структурен тип на податок составена од конечен број
на податоци од ист тип и секој податок во низата има своја позиција.
Пр. Оценките на ученик: мак, мат, анг, гер, ист, гео, физ, хем, био, инф, лик, муз, спорт. Има 14
предмети, но оценките не се од 1 до 14, но се 14 вредности.
 декларирање на еднодимензионална низа:
tipnaelementi ime[brojnaelementi];
елемент на еднодимензионална низа се означува со име[индекс]
индекс e местото на елементот во низата и се означува од 0 до brojnaelementi-1.
Пр.1. int a[5]
1
Се декларира низа со име а, има 5 елементи кои се цели броеви. Елементите се запишуваат со:
а[0], a[1], a[2], a[3], a[4].
Пр.2. float br[25]
к – тиот елемент е br[k], а индексот к има вредност од 0 до к-1. Елементите на низата се
реални броеви.
Пристап до некој елемент од низата е преку индексот на елементот (позицијата на
елементот во низата). Индексот може да биде константа, променлива или израз.
Доделување на вредност на елемент од низа се врши преку наредбите за доделување.
Пр. a[3]= 5
Елементот на трета позиција во низата а има вредност 3. Вредноста што се доделува може да
биде констатна, променлива или израз.
Пр. Програма со која ќе се испечатат елементите на еднодимензионална низа.
# include <iostream>
using namespace std;
int main()
{
int n,i, a[20];
cout<<"vnesi dolzina na nizata"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
cout<<"pecati gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cout<<a[i]<<" ";
return 0;
}
Пр. Програма со која ќе се пресмета збир на елементите во еднодимензионална низа
# include <iostream>
using namespace std;
int main()
{
int n,i;
float s, a[50];
cout<<"vnesi dolzina na nizata"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
s=0;
for (i=0; i<n; i++)
s=s+a[i];
cout<<"zbirot e "<<s;
return 0;
2
}
Пр. Програма со која ќе се испечатат елементите на еднодимензионална низа во обратен
редослед.
# include <iostream>
using namespace std;
int main()
{
int n,i, a[20];
cout<<"vnesi dolzina na nizata"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
cout<<"pecati gi elementite na nizata"<<endl;
for (i=n-1; i>=0; i--)
cout<<a[i]<<endl;
return 0;
}
Пр. Програма со која се пресметува просечен успех на ученик
# include <iostream>
using namespace std;
int main()
{
int n,i,s,a[20];
float s1;
cout<<"vnesi dolzina na nizata"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
s=0;
for (i=0; i<n; i++)
s=s+a[i];
s1=s*1.0/n;
cout<<"prosekot e "<<s1;
return 0;
}
Пр. Програма со која се испитува колку пати буквата А се јавува во низата.
# include <iostream>
using namespace std;
int main()
{
3
char a[100];
int n,i,b;
cout<<"vnesi dolzina na nizata"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
b=0;
for (i=0; i<n; i++)
if (a[i] == 'A') b++;
cout<<"bukvata A se javuva "<<b<<" pati";
return 0;
}
Пр. Програма со која се пресметува посебно збир на парни, посебно збир на непарни броеви
во низа а со н елементи.
# include <iostream>
using namespace std;
int main()
{
int a[100];
int n,i,zp,zn;
cout<<"vnesi dolzina na nizata"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
zp=0;
zn=0;
for (i=0; i<n; i++)
if (a[i]%2 == 0) zp+=a[i];
else zn+=a[i];
cout<<"zbirot na parnite broevi vo nizata e "<<zp<<endl;
cout<<"zbirot na neparnite broevi vo nizata e "<<zn<<endl;
return 0;
}
Пр. Најмал елемент во низа а со н елементи
# include <iostream>
using namespace std;
int main()
{
int a[100];
int n,i,min;
cout<<"vnesi dolzina na nizata"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
4
for (i=0; i<n; i++)
cin>>a[i];
min=a[1];
for (i=1; i<n; i++)
if (a[i]<min) min=a[i];
cout<<"najmal e elementot "<<min<<endl;
return 0;
}
Пр. Најголем елемент во низа а со н елементи и неговиот индекс
# include <iostream>
using namespace std;
int main()
{
int a[100];
int n,i,max, indeks;
cout<<"vnesi dolzina na nizata"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
max=a[1]; indeks=1;
for (i=1; i<n; i++)
if (a[i]>max)
{
max=a[i];
indeks=i;
}
cout<<"najgolem e elementot "<<max<<endl;
cout<<"negovata pozicija e "<<indeks<<endl;
return 0;
}
Пр. Програма со која се пресметува колку броеви од н внесени во низа а се едноцифрени
броеви.
# include <iostream>
using namespace std;
int main()
{
int a[100];
int n,i,b;
cout<<"vnesi dolzina na nizata"<<endl;
5
cin>>n;
cout<<"vnesi gi elementite na nizata"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
b=0;
for (i=0; i<n; i++)
if (a[i] < 10) b++;
cout<<"vo nizata ima "<<b<<" ednocifreni broevi";
return 0;
}
Пр. Програма со која се формира нова низа чии елементи се збир на соодветните елементи од
низите а и б.
# include <iostream>
using namespace std;
int main()
{
int a[100],b[100],c[100];
int n,i;
cout<<"vnesi dolzina na nizite a i b"<<endl;
cin>>n;
cout<<"vnesi gi elementite na nizata a"<<endl;
for (i=0; i<n; i++)
cin>>a[i];
cout<<"vnesi gi elementite na nizata b"<<endl;
for (i=0; i<n; i++)
cin>>b[i];
for (i=0; i<n; i++)
c[i]=a[i]+b[i];
cout<<"nizata c e"<<endl;
for (i=0; i<n; i++)
cout<<c[i]<<" ";
return 0;
}
Пр. Програма со која се внесуваат елементите на една низа и потоа се креираат две нови низи –
првата ги содржи парните броеви, а втората непарните броеви.
#include <iostream>
using namespace std;
int main()
{
int a[50],b[50],c[50];
int i,j,k,n;
cout << "Vnesi broj na elementi vo nizata"<<endl;
cin>>n;
6
for(i=0;i<n;i++)
cin>>a[i];
j=0;
k=0;
for(i=0;i<n;i++)
{
if(a[i]%2==0)
{
b[j]=a[i];
j++;
}
else
{
c[k]=a[i];
k++;
}
}
cout<<"Nizata na parni elementi e "<<endl;
cout<<endl;
for(i=0;i<j;i++)
cout<<b[i]<<" ";
cout<<endl;
cout<<"Nizata na neparni elementi e "<<endl;
for(i=0;i<k;i++)
cout<<c[i]<<" ";
return 0;
}
Пр. Да се најде производот на елементите на низата броеви [ai]n.
#include <iostream>
using namespace std;
int main()
{
int a[50];
int i,p,n;
cout << "Vnesi broj na elementi vo nizata"<<endl;
cin>>n;
p=1;
for(i=0;i<n;i++)
{
cin>>a[i];
p*=a[i];
}
7
cout<<"Proizvodot n elementite e "<<p<<endl;
return 0;
}
Пр. За низата броеви [ai]n, да се пресмета посебно збирот на позитивните и посебно збирот на
негативните елементи.
#include <iostream>
using namespace std;
int main()
{
int a[50];
int i,sp,sn,n;
cout << "Vnesi broj na elementi vo nizata"<<endl;
cin>>n;
sp=0;
sn=0;
for(i=0;i<n;i++)
{
cin>>a[i];
if(a[i]<0) sn+=a[i];
else sp+=a[i];
}
cout<<"Zbirot n pozitivnite elementi e "<<sp<<endl;
cout<<"Zbirot n negativnite elementi e "<<sn<<endl;
return 0;
}
Пр.За две низи од броеви [ai]n и [bi]n, да се пресмета збирот на производите a1b1+a2b2+.....+anbn
#include <iostream>
using namespace std;
int main()
{
int a[50],b[50];
int i,s,n;
cout << "Vnesi broj na elementi vo nizata"<<endl;
cin>>n;
s=0;
cout << "Vnesi ja prvata niza"<<endl;
for(i=0;i<n;i++)
cin>>a[i];
cout << "Vnesi ja vtorata niza"<<endl;
for(i=0;i<n;i++)
cin>>b[i];
8
for(i=0;i<n;i++)
s+=a[i]*b[i];
cout<<"Zbirot na proizvodite e "<<s<<endl;
return 0;
}
Пр. Да се изврши конверзија на цел декаден број во бинарен.
#include <iostream>
using namespace std;
int main()
{
int a[50];
int i,j,ost,n;
cout << "Vnesi broj "<<endl;
cin>>n;
i=0;
while (n!=0)
{
ost=n%2;
a[i]=ost;
n=n/2;
i++;
}
cout<<"binarniot broj e "<<endl;
for(j=i-1;j>=0;j--)
cout<<a[j];
return 0;
}
9