Типовите податоци: целобројни, знаковни, логички, интервални, реални се нарекуваат прости типови податоци или неструктурни. Овие податоци претставуваат елементарни целини кои не можат да се разложуваат.
Податочните структури претставуваат колекција од податочни елементи. Во случај кога се работи со голем број истородни податоци, тие се организираат во посебни типови структури наречени низи (array). Низа претставува непрекината – последователна група на мемориски локации кои го имаат истиот тип. Низите може да содржат броеви или знаци. Во една низа сите податоци мора да бидат од ист тип, значи не е можно во една низа да се чуваат и броеви и знаци.
Низата може да биде еднодимензионална (кога едноставно се нарекува низа), дводимензионална (кога се нарекува матрица заради аналогија со матрици во математиката) и повеќедимензионална.
Декларирање еднодимензионална низа
Како и секоја друга променлива, така и низите мора да бидат декларирани пред да може да се користат. Во C++, низи се декларираат на следниот начин:
tip ime[N];
tip го означува податочниот тип на секој елемент од низата,
Примери на декларации на низа:
- Полето ( низата ) треба да се декларира за да се обезбеди доволен простор (меморија) за податоците
- Името на низата не смее да биде исто со името на друга низа или името на некоја од променливите. На пр., погрешно е да се декларира 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;
Доделување вредности на елементите на низа со иницијализирачка листа
Вредностите на сите елементи на низата може да се доделат со иницијализирачка листа, веднаш со декларација. Вредностите кои се доделуваат на елементите се ставаат во големи загради и се одделуваат со запирка.
Пример: int X [10]={3,4,2,5,53,3,5,255,5,4};
Пример:
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]) ќе го даде точниот број на елементи во низата.
#include <iostream>
using
namespace
std;
int
main()
{
int
arr[10];
for
(
int
i=0; i<10; i++)
{
cin >> arr[i];
//'i' se dvizi od 0 do 9!
}
int
s = 0;
for
(
int
i=0; i<10; i++)
s += arr[i];
//'i' se dvizi od 0 do 9!
cout <<
"Zbirot e: "
<< s << endl;
return
0;
}
#include <iostream> using namespace std; int main() { int arr[10] = {1, 2, 3, 4, 5}; //izlez: '1 2 3 4 5 0 0 0 0 0' for ( int i=0; i<10; i++) cout << arr[i] << " " ; cout << endl; double niza[] = {10.0, 15.0, 20.0, 25.0, 30.0}; cout << sizeof (niza) << endl; //pechati '40' (5 * 8) cout << ( sizeof (niza)/ sizeof (niza[0])); //pechati '5' return 0; }
|
#include <iostream>
using
namespace
std;
int
main()
{
char
array[] =
"Darko"
;
array[0] =
'M'
;
//obichna niza
cout << array << endl;
//pechati 'Marko'
char
text[100];
cout <<
"Vnesi eden zbor: "
;
cin >> text;
//prochitaj eden zbor
cout << text;
//go pechati vneseniot zbor
return
0;
}
#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:
Post a Comment