Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Recenzije
  • Popunjavanje jednodimenzionalnog pascal niza. Popunjavanje i obrada niza

Popunjavanje jednodimenzionalnog pascal niza. Popunjavanje i obrada niza

Jednodimenzionalni nizovi. Formiranje niza i prikaz njegovih elemenata

Definicija pojma

Niz je zbirka podataka istog tipa sa zajedničkim imenom za sve elemente.

Elementi niza su numerisani i svakom od njih se može pristupiti brojem. Brojevi elemenata niza se inače nazivaju indeksi, a sami elementi niza nazivaju se indeksirane varijable.

a[n ]

- 0. 5

-5.2

0.6

Vector (linearno ili jednodimenzionalni niz) je primjer niza u kojem su elementi numerirani jednim indeksom.

  • As brojevi (indeks) element niza, općenito se koristi izraz redni tip(najčešće je to cjelobrojna konstanta ili varijabla cjelobrojnog tipa: cijeli broj, riječ, bajt ili shortint)
  • Kada se pristupa elementu niza, indeks je naznačen u uglastim zagradama. Na primjer, a, masa.
  • Elementi niza se obrađuju kada se mijenjaju indeksi elemenata. Na primjer, kada koristite izraz, sljedeće varijable su korisne za petlju kroz elemente niza:
    • a[i] - svi elementi;
    • a - elementi koji se nalaze na ravnim mjestima;
    • a - elementi na neparnim mjestima

Opis polja

  • Definiranje varijable kao niza bez prethodnog deklariranja tipa niza
vara,b,c: niz of cijeli broj; var s: niz od cijelog broja; k: niz od cijelog broja;

Bilješka

    • Opis niza je potreban kompajleru da dodijeli memoriju za njegove elemente.
    • Varijabla je definirana kao niz pomoću funkcijske riječi niz(niz). Opseg je naznačen u uglastim zagradama, tj. donja i gornja granica vrijednosti indeksa niza. Gornja granična vrijednost ne može biti manja od donje granice.
    • Ovdje se smatra da su varijable s i k različitih tipova. Da bi se osigurala kompatibilnost, potrebno je koristiti deklaracije varijabli kroz preliminarnu deklaraciju tipa.
    • Ako su tipovi nizova identični, tada u programu jedan niz može biti dodijeljen drugom. U ovom slučaju, vrijednosti svih varijabli u jednom nizu bit će dodijeljene odgovarajućim elementima drugog niza.
    • Na nizovima nema definiranih relacijskih operacija. Možete upoređivati ​​samo dva niza element po element.
  • Preliminarni opis tipa niza
konst n = 5; tip mas = niz od cijelog broja; var a: mas;

Bilješka

    • Elementima niza će se pristupati ovako: a, a, a, a, a (tj. niz sadrži pet elemenata).
    • Korištenje konstanti(u ovom primjeru n) kada se opisuje niz je poželjniji, jer ako se veličina niza promijeni, neće biti potrebe za ispravkama kroz tekst programa.
  • Postavljanje niza na upisanu konstantu
konst x: niz od cijelog broja = (1, 2, 3, 4, 5, 6);

Bilješka

    • U ovom primjeru, ne samo da je memorija dodijeljena za niz, već su ćelije također ispunjene podacima.
    • Elementi niza mogu biti promijeniti tokom programa (kao i sve ukucane konstante).

Popunjavanje niza podacima

§ Za popunjavanje niza podataka (i njihov izlaz), najčešće se koristi petlja sa parametrom za

§ Za popunjavanje niza slučajnim brojevima, koristite funkciju nasumično i proceduru nasumično(inicijalizacija generatora slučajnih brojeva). Format snimanja je: nasumično (B - A) + A, gdje su A i B uzeti iz intervala :4);

Primjer programa za unos i izlaz niza

Formulacija problema. Dobiti zbir elemenata niza koji se sastoji od 10 cjelobrojnih elemenata. Elementi niza se unose sa tastature.

program niz2; var suma: cijeli broj; ja: bajt; a: niz od riječi; početi suma:= 0; zai:= 0 to 9 uradi početi pisati("a[",ja," ] = "); readln(a[i]); zbroj:= zbroj + a[i] kraj; writeln("suma =", suma) kraj.

Primjer programa za rad sa elementima niza

Formulacija problema. Dobijte aritmetičku sredinu elemenata niza. Elementi niza su ispunjeni slučajnim brojevima.

program array3; konst n = 100; var sar: pravi; suma: cijeli broj; ja: bajt; a: niz od cijelog broja; početi suma:= 0; nasumično; zai:= 0 to n uradi početi a[i] := nasumično(100); zbroj:= zbroj + a[i] kraj; sar:= suma/n; writeln("sar =", sar) kraj.

Odjeljci: Računarska nauka

Ciljevi:

  1. Upoznati studente sa mogućnošću popunjavanja i obrade niza.
  2. Kreirajte grafički interfejs za projekat za popunjavanje niza i izračunavanje sume elemenata u datom nizu.
  3. Razvijati kognitivni interes za predmet
  4. Negujte odgovoran odnos prema učenju

TOKOM NASTAVE

1. Ažuriranje lekcije

Organiziranje vremena

Frontalni pregled na prethodnu temu „Pojam niza. Jednodimenzionalni niz"

2. Formiranje vještina i sposobnosti

Objašnjenje novog materijala

Deklaracija niza

Deklarisanje niza je slično deklariranju varijabli; potrebno je samo navesti raspon promjena indeksa. Na primjer, deklariranje jednodimenzionalnog niza cijelih brojeva koji sadrži 10 elemenata radi se na sljedeći način:

A: niz cijelih brojeva;

Osnovni zadaci pri radu sa nizovima

1. Formiranje (punjenje) niza

1.1. prema formulama Za i:=1 do 10 uradite a[i]:= i*i;

1.2. generiraj nasumično Za i:=1 do 10 uradi a[i]:= random(20):

Ugrađena funkcija RANDOM(MAX), vraća nasumični cijeli broj ravnomjerno raspoređen u rasponu od 0 do MAX – 1 (MAX je pristupni parametar)

1.3. unesite sa tastature Za i:=1 do 10 do read(a[i]);

2. Sortirajte niz (uzlazno, silazno);

3. Traženje elemenata u nizu;

4. Odabir elemenata iz niza po uslovu;

Popunjavanje niza nasumično.

Da biste počeli da radite sa nizom, morate ga popuniti, tj. dodijeliti određene vrijednosti elementima niza. Za generiranje niza slučajnih brojeva koristimo funkciju Random(100). Kada pokrenete program, ova funkcija će ispisati pseudo-slučajni niz cijelih brojeva u rasponu od 0 do 100.

Za generiranje nizova slučajnih brojeva koji se međusobno razlikuju, preporučuje se korištenje operatora Randomize

Akcije sa jednodimenzionalnim nizovima

1. Proračun zbira elemenata

Za I:= 1 do 10 Do s:=s+ a[i]; (uobičajeno akumuliranje iznosa u s)

2. Proračun proizvoda

Za I:= 1 do 10 Do r:=r* a[i]; (uobičajena akumulacija proizvoda u p)

3. Potražite element sa datom vrijednošću

3. Napomena Razvoj vještina i sposobnosti u praksi

Projekat “Zbir elemenata u nizu”. Hajde da razvijemo projekat "Zbroj elemenata u nizu", koji će ispuniti niz slučajnim brojevima i izračunati zbir ovih brojeva

Prvo, napravimo proceduru za popunjavanje niza

1. Pokrenite programski sistem Delphi.

2. Rad na projektu počinje kreiranjem grafičkog interfejsa, za to u prozoru Form Builder Kontrolni elementi se postavljaju na obrazac. Za kreiranje grafičkog interfejsa za projekat, na obrazac ćemo postaviti dva tekstualna polja za prikaz numeričkih podataka (jedno za popunjavanje niza, drugo za prikaz zbira) i dva dugmeta za implementaciju procedura događaja: popunjavanje niza i suma

3. With Trake sa alatkama postavite Editl tekstualno polje i dugme za komandu Buttonl na Forml

Sljedeći korak je kreiranje koda procedure događaja. Dvostrukim klikom na dugme za koje treba da kreirate programski kod otvara se prozor Programski kod sa praznim šablonom procedure događaja.

4. Dvaput kliknite na dugme Buttonl, pojavit će se predloška procedura događaja TForml.ButtonlClick: Deklarirajte niz A i opis varijabli Ja, S u odjeljku opisa varijable var

A: niz cijelih brojeva;

procedura TForm1.Button1Click(Pošiljalac: TObject);

Za I:= 1 do 10 Do

A[I] := Random(10);

Edit1.Text:= Edit1.Text +" " + IntToStr(a[i]);

5. Sačuvaj projekat kao

6. Sastavljanje projekta (Project - Compile)

Sada napravimo proceduru za izračunavanje sume elemenata u popunjenom nizu

Korišćenjem Trake sa alatkama Postavimo dugme Button2 i tekstualno polje Edit2 na Forml. Dvostrukim klikom na dugme Button2, za koji treba da kreirate programski kod, otvara se prozor Programski kod sa praznim šablonom procedure događaja.

procedura TForm1.Button2Click(Pošiljalac: TObject);

Za I:= 1 do 10 Do

Edit2.Text:= Edit2.Text +" " + IntToStr(s)

Spremanje projekta cijelog projekta (Save Project).

Hajde da kompajliramo projekat (pritiskom na taster F9).

Kliknite na dugmad Fill Array i Sum.

Rezultati iznosa za različite opcije punjenja biće prikazani u tekstualnom polju

4. Sumiranje

5. Domaći zadatak: Napravite projekat „Proizvod elemenata niza“, koji uključuje popunjavanje niza slučajnim brojevima i mogućnost prikaza proizvoda svih elemenata niza u tekstualnom polju.

Jednodimenzionalni niz je imenovani niz koji se sastoji od numerisanih elemenata istog tipa. Elementi mogu biti bilo koji dostupni Pascal(osim za fajl) tip podataka. Svakom elementu niza se dodjeljuje broj, koji se naziva i indeks. Indeks mora biti redni tip. Jednodimenzionalni niz se može deklarisati kao varijabla:

var<имя переменной>: niz<тип элементов>;

Volim ovo:

tip<имя типа>= niz<тип элементов>;

Evo m je broj prvog elementa, i n- posljednji. Na primjer, ako je raspon specificiran ovako: onda to znači da je definiran jednodimenzionalni niz od 10 elemenata, s indeksima od 1 do 10.

Da biste pristupili elementu niza, morate navesti njegovo ime i broj: mas[i], ovdje je mas ime, i je broj. U programu ispod ćemo deklarisati niz i izvoditi jednostavne operacije nad njegovim elementima.

1
2
3
4
5
6
7
8
9
10
11
12

programski niz_primer;
koristi crt;
var mas, A: niz [ 1 ..10 ] od realnog;
početi
clrscr;
mas[ 1 ] := 32 ;
mas[ 5 ] := 13 ;
mas[ 9 ] := 43 ;
A[ 1 ] := (mas[ 9 ] — mas[ 1 ] ) * mas[ 5 ] ;
napisati (A[ 1 ] : 5 : 2 ) ;
readkey;
kraj.

U određenom smislu, možete raditi sa nizovima kao i sa regularnim varijablama, ali zamislite, na primjer, situaciju u kojoj trebate popuniti niz koji se sastoji od desetina ili hiljada elemenata. Biće zgodnije to učiniti kroz petlju. Sljedeća konstrukcija ispunjava niz brojeva i prikazuje ih na ekranu.

za i:=1 do n do
početi
mas[i]:=i;
napisati(mas[i]:3);
kraj;

Ako želite da se niz sastoji od vrijednosti unesenih s tipkovnice, jednostavno zamijenite dodjelu naredbom read. Postoje i situacije kada morate popuniti niz nasumičnim brojevima. Program u nastavku dodjeljuje nasumične vrijednosti svakom elementu redom.

1
2
3
4
5
6
7
8
9
10
11
12
13
14

program array_random;
koristi crt;
var i: cijeli broj ;
mas: niz [1 ..100] od cijelog broja;
početi
clrscr;
randomize;
za i:= 1 do 100 do
početi
mas[ i] := random(10) ;
napisati (mas[ i] : 2 ) ;
kraj ;
readkey;
kraj.

Problemi vezani za različite vrste algoritama primjenjivih na nizove su široko rasprostranjeni. Među njima su posebno popularne metode pretraživanja i sortiranja elemenata. Ali svaki od ovih algoritama zahtijeva individualno proučavanje, tako da se možete upoznati s njima u drugim člancima:

Algoritmi za sortiranje:

Algoritmi pretraživanja:

Manje složene i istovremeno popularne metode uključuju metode za određivanje broja pozitivnih i negativnih, minimalnih i maksimalnih elemenata. Pogledajmo ih.

Pronalaženje maksimalnog elementa u nizu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

program array_max;
koristi crt;
tip array= niz [ 1 ..10 ] riječi;
var i, max: cijeli broj;
O: masivan;
početi
clrscr;
za i:= 1 do 10 do
početi
write ('Br. stavke', i: 2, '=') ;
pročitaj(A[i]); (unos sa tastature)
kraj ;
max:= A[ 1 ] ; (neka prvi element bude maksimum)
za i:= 1 do 10 do
ako max writeln ;
pisati( 'Maksimalni element =', max) ;
readkey;
kraj.

Da biste napravili program za pronalaženje minimalnog elementa potrebno je samo promijeniti znak< в 15 строке на >.

Određivanje broja pozitivnih elemenata:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Lekcija iz serije: “ Programski jezik Pascal»

Nakon deklarisanja niza, možete raditi s njim. Na primjer, dodijelite vrijednosti elementima niza i općenito ih tretirajte kao obične varijable. Da biste pristupili određenom elementu, morate navesti identifikator niza (ime) i indeks elementa u uglastim zagradama.

Na primjer, unos Mas, A omogućava vam pristup drugom elementu niza MAS i desetom elementu niza A. Kada radite sa dvodimenzionalnim nizom, specificiraju se dva indeksa, sa n-dimenzionalnim nizom - n indeksi.

Na primjer, unos Matr čini dostupnim za obradu vrijednost elementa koji se nalazi u četvrtom redu četvrte kolone niza M.

Indeksirani elementi niza nazivaju se indeksirane varijable. Ne možete ići izvan granica niza. To jest, ako Mas niz ima pet elemenata, onda će pristup šestom ili osmom elementu rezultirati greškom.

Pogledajmo tipične operacije koje se javljaju pri radu s jednodimenzionalnim nizovima.

Popunjavanje jednodimenzionalnog niza vrijednostima

Popunjavanje i izlaz niza može se raditi samo element po element, odnosno prvo možete dodijeliti vrijednost prvom elementu, pa drugom i tako dalje, isto sa prikazivanjem na ekranu - prikazujemo prvi, drugi, treći, i tako do zadnjeg.

Pascal nema sredstva za unos/izlaz elemenata niza odjednom, tako da se vrijednosti unose element po element. Vrijednosti se mogu dodijeliti elementu niza pomoću operatora dodjeljivanja ili uneti s tipkovnice pomoću operatora Read ili Readln. Vrlo je zgodno iterirati kroz sve elemente niza u for petlji.

Načini popunjavanja jednodimenzionalnih nizova:

  1. Unos vrijednosti sa tastature.
  2. Postavljanje vrijednosti u operatoru dodjele pomoću generatora slučajnih brojeva. Ova metoda je prikladnija kada ima mnogo elemenata u nizu (unos njihovih vrijednosti sa tastature traje dosta vremena).
  3. Postavljanje vrijednosti pomoću formule.
  4. Unos elemenata niza iz datoteke

1. Unos vrijednosti elemenata niza sa tastature. Pošto je korišten operator Readln, svaka vrijednost će biti upisana u novom redu.

2. Popunjavanje niza brojevi generisani nasumično iz intervala . Povezujemo senzor nasumičnih brojeva - slučajnu funkciju.

3. Punjenje niz prema formuli. Svakom elementu niza je dodijeljena vrijednost izračunata pomoću formule. Ako je svaki element niza jednak trostrukoj vrijednosti njegovog rednog broja (indeksa), tada će procedura izgledati ovako:

4. Čitanje brojeva iz datoteke. Morate unaprijed kreirati tekstualnu datoteku u koju upišite nekoliko redova, od kojih svaki sadrži 30 brojeva.

Prikaz vrijednosti elemenata niza na ekranu

Zaključak vrijednosti elemenata niz unos na ekran se vrši, kao i unos, element po element u petlji. Za izlaz ćemo koristiti Write ili Writeln operatore. Kao ulazne parametre, u proceduru ćemo proslijediti ne samo niz, već i broj elemenata koje treba izbaciti, počevši od prvog (ovo će nam trebati kada uklanjamo i dodajemo elemente u niz).

Primjer 1. Popunite niz sa tastature i prikažite ga na ekranu.

Rješenje.

Program će koristiti dvije procedure: proceduru Init1 (popunjavanje niza sa tastature) i Print proceduru (prikazivanje niza na ekranu).

Primjer 2. Popunite niz iz tekstualne datoteke i prikažite ga na ekranu. U tekstualnoj datoteci postoji nekoliko redova, svaki red sadrži 30 brojeva.

Naučili ste kako ispuniti jednodimenzionalni niz i prikazati ga na ekranu.

U sljedećoj lekciji nastavit ćemo sa upoznavanjem algoritama za obradu jednodimenzionalnih nizova.

Niz je struktura podataka predstavljena kao grupa ćelija istog tipa, ujedinjenih pod jednim imenom. Nizovi se koriste za obradu velikih količina podataka istog tipa. Ime niza je ono što su pokazivači, reći ću vam malo kasnije. Pojedinačna ćelija podataka niza naziva se element niza. Elementi niza mogu biti podaci bilo koje vrste. Nizovi mogu imati jednu ili više dimenzija. Ovisno o broju dimenzija, nizovi se dijele na jednodimenzionalne nizove, dvodimenzionalne nizove, trodimenzionalne nizove i tako dalje do n-dimenzionalnog niza. U programiranju se najčešće koriste jednodimenzionalni i dvodimenzionalni nizovi, pa ćemo razmotriti samo ove nizove.

Jednodimenzionalni nizovi u C++

Jednodimenzionalni niz je niz sa jednim parametrom koji karakteriše broj elemenata jednodimenzionalnog niza. U stvari, jednodimenzionalni niz je niz koji može imati samo jedan red i n broj kolona. Kolone u jednodimenzionalnom nizu su elementi niza. Slika 1 prikazuje strukturu cjelobrojnog jednodimenzionalnog niza a. Veličina ovog niza je 16 ćelija.

Slika 1 - Nizovi u C++

Imajte na umu da je maksimalni indeks jednodimenzionalnog niza a je 15, ali veličina niza je 16 ćelija, jer numeriranje ćelija niza uvijek počinje od 0. Indeks ćelije je nenegativan cijeli broj pomoću kojeg možete pristupiti svakoj ćeliji niza i izvršiti bilo koju radnju na njoj ( ćelija).

//sintaksa za deklarisanje jednodimenzionalnog niza u C++: /*tip podataka*/ /*ime jednodimenzionalnog niza*/; //primjer deklariranja jednodimenzionalnog niza prikazanog na slici 1: int a;

gdje je int cijeli broj;

A je ime jednodimenzionalnog niza;
16 je veličina jednodimenzionalnog niza, 16 ćelija.

Uvijek odmah iza imena niza stoje uglaste zagrade u kojima je navedena veličina jednodimenzionalnog niza; to je ono po čemu se niz razlikuje od svih ostalih varijabli.

//drugi način da se deklariraju jednodimenzionalni nizovi int mas, a;

Dva jednodimenzionalna niza mas i a su deklarisani sa veličinama 10 i 16, respektivno. Štaviše, u ovoj metodi deklaracije, svi nizovi će imati isti tip podataka, u našem slučaju - int.

// nizovi se mogu inicijalizirati kada su deklarirani: int a = ( 5, -12, -12, 9, 10, 0, -9, -12, -1, 23, 65, 64, 11, 43, 39, -15 ); // inicijalizacija jednodimenzionalnog niza

Inicijalizacija jednodimenzionalnog niza se izvodi u vitičastim zagradama iza znaka jednaki, svaki element niza je odvojen od prethodnog zarezom.

Int a=(5,-12,-12,9,10,0,-9,-12,-1,23,65,64,11,43,39,-15); // inicijaliziranje niza bez određivanja njegove veličine.

U ovom slučaju, kompajler će sam odrediti veličinu jednodimenzionalnog niza. Veličina niza može biti izostavljena samo kada ga inicijalizirate; kada deklarišete niz normalno, veličina niza mora biti specificirana. Hajde da razvijemo jednostavan program za obradu jednodimenzionalnog niza.

// array.cpp: Definira ulaznu točku za aplikaciju konzole. #include "stdafx.h" #include << "obrabotka massiva" << endl; int array1 = { 5, -12, -12, 9, 10, 0, -9, -12, -1, 23, 65, 64, 11, 43, 39, -15 }; // объявление и инициализация одномерного массива cout << "indeks" << "\t\t" << "element massiva" << endl; // печать заголовков for (int counter = 0; counter < 16; counter++) //начало цикла { //вывод на экран индекса ячейки массива, а затем содержимого этой ячейки, в нашем случае - это целое число cout << "array1[" << counter << "]" << "\t\t" << array1 << endl; } system("pause"); return 0; }

// kod Code::Blocks

// Dev-C++ kod

// array.cpp: Definira ulaznu točku za aplikaciju konzole. #include korištenje imenskog prostora std; int main(int argc, char* argv) ( cout<< "obrabotka massiva" << endl; int array1 = { 5, -12, -12, 9, 10, 0, -9, -12, -1, 23, 65, 64, 11, 43, 39, -15 }; // объявление и инициализация одномерного массива cout << "indeks" << "\t\t" << "element massiva" << endl; // печать заголовков for (int counter = 0; counter < 16; counter++) //начало цикла { //вывод на экран индекса ячейки массива, а затем содержимого этой ячейки, в нашем случае - это целое число cout << "array1[" << counter << "]" << "\t\t" << array1 << endl; } return 0; }

IN redovi 10 - 11 Deklarisan je i inicijaliziran cjelobrojni jednodimenzionalni niz pod nazivom array1, čija je veličina 16 ćelija, odnosno takav niz može pohraniti 16 brojeva. Bilo koja obrada niza je moguća samo u sprezi sa petljama. Koju petlju odabrati za obradu niza na vama je da odlučite. Ali najprikladniji je za ovaj zadatak. Koristićemo brojač promenljive brojača za pristup elementima jednodimenzionalnog niza niz1. Uslov za nastavak for petlje sadrži strogi znak nejednakosti, pošto ne postoji šesnaesti indeks u jednodimenzionalnom nizu niza1. A pošto numerisanje ćelija počinje od nule, u nizu se nalazi 16 elemenata.U telu for petlje, cout operator ispisuje elemente jednodimenzionalnog niza (vidi sliku 2).

Obrabotka massiva indeksi element masiva niz1 5 niz1 -12 niz1 -12 niz1 9 niz1 10 niz1 0 niz1 -9 niz1 -12 niz1 -1 niz1 23 niz1 65 niz1 65 niz1 64 niz1113 niz113 niz113 niz1113 pritisnite bilo koji taster. . .

Slika 2 - Nizovi u C++

Hajde da razvijemo još jedan program za obradu jednodimenzionalnog niza u C++. Program mora uzastopno pročitati deset unesenih brojeva sa tastature. Svi uneseni brojevi se zbrajaju i rezultat se prikazuje na ekranu.

// array_sum.cpp: Definira ulaznu točku za aplikaciju konzole. #include "stdafx.h" #include << "Enter elementi massiva: " << endl; int sum = 0; for (int counter = 0; counter < 10; counter++) // цикл для считывания чисел cin >> << "array1 = {"; for (int counter = 0; counter < 10; counter++) // цикл для вывода элементов массива cout << array1 << " "; // выводим элементы массива на стандартное устройство вывода for (int counter = 0; counter < 10; counter++) // цикл для суммирования чисел массива sum += array1; // суммируем элементы массива cout << "}\nsum = " << sum << endl; system("pause"); return 0; }

// kod Code::Blocks

// Dev-C++ kod

// array_sum.cpp: Definira ulaznu točku za aplikaciju konzole. #include korištenje imenskog prostora std; int main(int argc, char* argv) ( int array1; // deklarišemo cijeli niz cout<< "Enter elementi massiva: " << endl; int sum = 0; for (int counter = 0; counter < 10; counter++) // цикл для считывания чисел cin >>niz1; // čitanje brojeva unesenih sa tastature cout<< "array1 = {"; for (int counter = 0; counter < 10; counter++) // цикл для вывода элементов массива cout << array1 << " "; // выводим элементы массива на стандартное устройство вывода for (int counter = 0; counter < 10; counter++) // цикл для суммирования чисел массива sum += array1; // суммируем элементы массива cout << "}\nsum = " << sum << endl; return 0; }

Prije obrade niza, on mora biti deklariran, a veličina jednodimenzionalnog niza je 10, jer je to uvjetovano uvjetom zadatka. U varijabli sum akumuliraćemo zbir elemenata jednodimenzionalnog niza. Prva petlja for ispunjava deklarirani jednodimenzionalni niz brojevima unesenim s tastature, redovi 12 - 13. Varijabla brojača se koristi za sekvencijalni pristup elementima jednodimenzionalnog niza niz1, počevši od indeksa 0 pa sve do 9. uključujući. Druga for petlja prikazuje elemente niza, redovi 15 - 16. Treća for petlja sekvencijalno čita elemente jednodimenzionalnog niza i sabira ih, a zbroj se akumulira u varijabli sum. redovi 17 - 18. Rezultat programa je prikazan na slici 3.

Unesite elementi massiva: 0 1 2 3 4 5 6 7 8 9 array1 = (0 1 2 3 4 5 6 7 8 9 ) sum = 45 Za nastavak pritisnite bilo koji taster. . .

Slika 3 – Nizovi u C++

Prvo je svih 10 brojeva uneseno sekvencijalno, nakon čega je prikazan jednodimenzionalni niz i ispisan je zbir brojeva u nizu.

Dvodimenzionalni nizovi u C++

Do ove tačke, razmatrali smo jednodimenzionalne nizove, na koje se ne može uvijek ograničiti. Recimo da trebate obraditi neke podatke iz tabele. Tabela ima dvije karakteristike: broj redova i broj kolona. Takođe u dvodimenzionalnom nizu, pored broja elemenata niza, postoje karakteristike kao što su broj redova i broj kolona dvodimenzionalnog niza. To jest, vizuelno, dvodimenzionalni niz je obična tabela, sa redovima i kolonama. U stvari, dvodimenzionalni niz je jednodimenzionalni niz jednodimenzionalnih nizova. Struktura dvodimenzionalnog niza, nazvanog a, veličine m sa n prikazana je ispod (vidi sliku 4).

Slika 4 - Nizovi u C++

gdje je, m broj redova dvodimenzionalnog niza;
n je broj kolona dvodimenzionalnog niza;
m * n — broj elemenata niza.

// sintaksa za deklarisanje dvodimenzionalnog niza /*tip podataka*/ /*ime niza*/;

Prilikom deklariranja dvodimenzionalnog niza, kao i kod deklariranja jednodimenzionalnog niza, prije svega, potrebno je navesti:

  • tip podataka;
  • ime niza.

Nakon toga, prve uglaste zagrade označavaju broj redova dvodimenzionalnog niza, a druge uglaste zagrade označavaju broj stupaca dvodimenzionalnog niza. Dvodimenzionalni niz vizualno se razlikuje od jednodimenzionalnog niza drugim parom uglastih zagrada. Pogledajmo primjer deklariranja dvodimenzionalnog niza. Recimo da trebamo deklarirati dvodimenzionalni niz sa brojem elemenata jednakim 15. U ovom slučaju, dvodimenzionalni niz može imati tri reda i pet stupaca ili pet redova i tri kolone.

// primjer deklaracije dvodimenzionalnog niza: int a;

  • a je ime niza cijelih brojeva
  • broj u prvim uglatim zagradama označava broj redova dvodimenzionalnog niza, u ovom slučaju ima 5;
  • broj u drugim uglastim zagradama označava broj kolona dvodimenzionalnog niza, u ovom slučaju ih ima 3.

// inicijalizacija dvodimenzionalnog niza: int a = ( (4, 7, 8), (9, 66, -1), (5, -5, 0), (3, -3, 30), ( 1, 1, 1) );

Ovaj niz ima 5 redova, 3 kolone. nakon znaka dodjeljivanja postavljaju se opće vitičaste zagrade, unutar kojih se stavlja onoliko pari vitičastih zagrada koliko bi trebalo biti linija u dvodimenzionalnom nizu, a te zagrade su odvojene zarezima. U svaki par vitičastih zagrada upišite elemente dvodimenzionalnog niza odvojene zarezima. U svim vitičastim zagradama, broj elemenata mora biti isti. Pošto postoji pet linija u nizu, postoji i pet unutrašnjih parova zagrada. U unutrašnjim zagradama su zapisana tri elementa, jer je broj kolona tri. Grafički, naš niz će izgledati kao dvodimenzionalna tabela (vidi sliku 5).

Slika 5 – Nizovi u C++

U svakoj ćeliji dvodimenzionalnog niza a prikazana je vrijednost, adresa ove ćelije je prikazana u donjem desnom uglu. Adresa ćelije dvodimenzionalnog niza je ime niza, broj reda i broj kolone.

Hajde da razvijemo jednostavan program za obradu dvodimenzionalnog niza, nazvan “Labirint”. Lavirint mora biti izgrađen na osnovu dvodimenzionalnog niza. Veličinu lavirinta biramo po vlastitom nahođenju.

// array2.cpp: Definira ulaznu točku za aplikaciju konzole. #include "stdafx.h" #include < 33; i++) //переключение по строкам { for (int j = 0; j < 20; j++)// переключение по столбцам if (mas[i][j] == 1) { // вывести два раза символ (номер которого 176 в таблице аски) в консоль cout << static_cast(176); cout<< static_cast(176); ) else cout<< " "; // вывести два пробела cout << endl; } system("pause"); return 0; }

// kod Code::Blocks

// Dev-C++ kod

// array2.cpp: Definira ulaznu točku za aplikaciju konzole. #include korištenje imenskog prostora std; int main(int argc, char* argv) ( // 1-uslovno "zidovi lavirinta" // 2-"ispravan put, izlaz iz lavirinta" // 0-"lažna staza" int mas = ( (1, 2,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,), // inicijalizacija dvodimenzionalnog niza ( 1,2,1,0 ,0,1,0,1,2,2,2,1,1,1,1,0,0,0,0,1,), (1,2,1,1 ,0,1,0, 1,2,1,2,2,2,2,1,0,1,1,0,1,), (1,2,2,2,2,2,2, 1,2,1,1 ,1,1,2,1,0,0,1,0,1,), (1,1,1,1,1,1,2,1,2,1,0 ,0,1,2, 1,1,0,1,0,1,), (1,0,0,1,0,0,2,2,2,1,1,0,0,2, 0,0,0,1 ,0,1,), (1,0,1,1,0,1,1,1,1,1,0,0,1,2,1,1,1,1 ,0,1,), (1,0,0,0,0,0,0,0,0,1,1,1,1,2,1,0,0,0,0,1,), (1,1,1, 1,1,1,0,1,1,1,2,2,2,2,1,0,1,1,1,1,), (1,1,0, 0,0,1,0 ,0,1,1,2,1,1,1,1,0,0,0,0,1,), (1,0,0,1,0,0,0 ,0,0,1, 2,2,2,2,1,1,1,1,0,1,), (1,1,1,1,1,1,1,1,1,1, 1,1,1,2 ,1,0,0,0,0,1,), (1,2,2,2,2,2,2,2,2,2,2,2,2,2 ,1,0,1, 1,1,1,), (1,2,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0, 0,0,1,) , (1,2,1,0,0,0,1,2,2,2,1,0,0,0,0,0,1,1,0,1,) , (1,2,1 ,1,1,1,1,2,1,2,1,1,1,0,1,0,0,0,0,1,), (1,2,1 ,2,2,2, 1,2,1,2,2,2,1,1,1,1,1,1,1,1,), (1,2,1,2,1,2, 1,2,1,0 ,1,2,2,2,2,2,2,2,2,1,), (1,2,1,2,1,2,1,2,1,0 ,1,1,1, 1,1,1,1,1,2,1,), (1,2,1,2,1,2,1,2,1,0,0,0,0, 0,0,0,0 ,0,2,1,), (1,2,1,2,1,2,2,2,1,0,1,1,1,1,1,1,0 ,1,2,1, ), (1,2,1,2,1,1,1,1,1,0,0,0,1,0,1,0,0,1,2,1, ), (1,2, 1,2,2,1,0,0,1,1,1,0,0,0,1,0,1,1,2,1,), (1,2, 1,1,2,1 ,1,0,0,0,0,0,1,0,1,0,0,1,2,1,), (1,2,1,1,2,1 ,0,0,1, 1,1,1,1,1,1,1,1,1,2,1,), (1,2,1,1,2,1,1,0,1, 2,2,2,2 ,2,2,2,2,2,2,1,), (1,2,1,1,2,1,0,0,1,2,1,1,1 ,1,1,1, 1,1,1,1,), (1,2,1,1,2,1,0,1,1,2,1,1,1,1,1,1, 1,1,2,2 ,), (1,2,1,1,2,1,0,0,1,2,1,1,2,2,2,2,2,2,2,1 ,), (1,2 ,1,1,2,1,0,1,1,2,1,1,2,1,1,1,1,1,1,1,), (1,2 ,1,1,2, 1,0,0,1,2,1,1,2,1,0,0,0,1,0,1,), (1,2,2,2,2, 1,0,1,1 ,2,2,2,2,0,0,1,0,0,0,1,), (1,1,1,1,1,1,1,1,1 ,1,1,1, 1,1,1,1,1,1,1,1,) ); // dvije petlje - interna i eksterna, pristupaju svakom elementu niza za (int i = 0; i< 33; i++) //переключение по строкам { for (int j = 0; j < 20; j++)// переключение по столбцам if (mas[i][j] == 1) { // вывести два раза символ (номер которого 176 в таблице аски) в консоль cout << static_cast(176); cout<< static_cast(176); ) else cout<< " "; // вывести два пробела cout << endl; } return 0; }

Ispravna i lažna putanja mogu se označiti istim brojem, na primjer, nula, ali radi jasnoće, ispravna putanja je označena brojem 2. Niz je inicijaliziran ručno, samo da bi se program pojednostavio. Pošto program obrađuje dvodimenzionalni niz, potrebne su dvije petlje za prebacivanje između elemenata dvodimenzionalnog niza. Prva petlja for se prebacuje između redova dvodimenzionalnog niza. Pošto u dvodimenzionalnom nizu postoje 33 reda, varijabla brojača i se povećava od 0 do 33, red 46. Unutar prve petlje nalazi se for petlja koja se kreće kroz elemente reda dvodimenzionalnog niza. U tijelu druge for petlje, unarna operacija konverzije tipa podataka se izvodi unutar - static_cast<>() , koji ispisuje broj znakova 176. Operacija konverzije tipa podataka se duplira kako bi se povećala širina lavirinta. Rezultat programa (vidi sliku 6).

Slika 6 – Nizovi u C++

Najbolji članci na ovu temu