C++ – pole
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++ – poleC++ – pole

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín

C++ – pole

Google       Google       6. 7. 2007       33 617×

Dneska si preberieme jednoduché polia v C++ pekne pomaly, aby ste ich pochopili.

Reklama
Reklama

Úvod do polí

Pole je forma dát, ktoré môžu obsahovať niekoľko hodnôt rovnakého typu. Poľu je možné uložiť napr.: 365 hodnôt typu int, keď spracuvávate údaje o dňoch v roku. Každá hodnota prezentuje samostatný prvok a počítač ich ukľadá za sebou.

Pole je vytvarané pomocou deklaračného príkazu. Deklarácia poľa by mala obsahovať tri informácie:

  1. Typ hodnoty, ktorá má byť uložená do každého prvku.
  2. Meno poľa.
  3. Počet prvkov poľa.
V jazyku C++ sa to prevedie pridaním premennej hranaté zátvorky:

int days[365]; // vytváram pole int s 365 prvkami

Každý prvok je samostatnou premennou, ktorú môžeme považovať za jednoduchú premennú. Takto vyzerá obecný typ deklarácie poľa:

 menoTypu menoPola[pocetPrvkov]; 

Výraz pocetPrvkov musí byť typu const alebo konštantný vyraz, pre ktorý sú všetky hodnoty v dobre prekladu známe. Čiže nemôže to byť premenná, ktorú meníme za behu programu. Ale neskôr si ukážeme, ako obísť pomocou operátoru new.

Veľa užitočných vlastností vyplýva zo skutočnosti, že k prvkom poľa sa pristupuje pomocou indexov, čiže jednotlivo. Indexi číslujú jednotlivé prvky (premenné). Pole v C++ začína od nuly a končí pri indexe (pocetPrvkov-1). Napr.: začína na days[0] a končí na days[364]. Deklarácia poľa dovoľuje vytvoriť veľa premenných jednou deklaráciou. Identifikáciu a prístup k jednotlivým prvkom obstarávajú indexy. Môžeme si ukázať príklad na cukríkoch:

//pole1.cc -- jednoduche pole
#include 
using namespace std;
int main() {
	int cukrik[3];  //vytvoril som pole s troma prvkami
	cukrik[0]=7;
	cukrik[1]=8;
	cukrik[2]=10;

	int cenaCukrik[3] = { 20, 25, 40}; //vytvaram a inicializujem pole
	
	cout << "Celkovy pocet fajnych cukrikov je ";
	cout << (cukrik[0]+cukrik[1]+cukrik[2]) << "\n";
	cout << "Balicek kde je "<< cukrik[0]<< " cukrikov stoji "<< cenaCukrik[0];
	cout << " korun za jeden cukrik. \n";
	int vsetko=cukrik[0]*cenaCukrik[0]+cukrik[1]*cenaCukrik[1]+cukrik[2]*cenaCukrik[2];
	cout << "Vsetky cukriky v balickoch by stali : "<< vsetko << "\n";
	cout << "Velkost pola s cukrikmi je "<< sizeof(cukrik) << " bajtov. \n";
	cout << "Velkost jedneho prvku je "<< sizeof(cukrik[0]) << " bajtov. \n";
	return 0;
}
Očakávaný výstup:
Celkovy počet fajných cukríkov je 25
Balicek kde je 7 cukrikov stojí 20 korun za jeden cukrik.
Všetky cukríky v balíckoch by stáli: 740
Veľkosť poľa s cukríkmi je 12 bajtov.
Veľkost jedného prvku je 4 bajty.
Program najprv vytvára trojprvkové pole cukrik. Jeho prvky sú očíslované od 0 do 2, prvky sú typu int. Môžeme si povedať, že tento postup je zdĺhavý. Preto v C++ dokáže inicializáciu prvkov aj deklaračnom príklade. Ako sme si ukázali:

int cenaCukrik[3] = { 20, 25, 40}; //vytvaram a inicializujem pole

jednoducho poskytuje zoznam hodnôt oddelených čiarkou a uzatvorený zloženými zátvorkami. Ďalej program používa hodnoty poľa v niekoľkých výpočtoch. Táto časť programu možno vyzerá neprehľadná, ale to vyriešime v ďalších kurzoch, ked sa naučíme cykly. Spomenme si ešte na operátor sizeof, ktorý vracia veľkosť typu alebo dátového objektu v bajtoch. Požil som ho, aby som Vám dokázal, že pole ma vážne prvky nášho poľa typu int.

Pravidlá inicializácie poľa

V C++ je niekoľko pravidiel, ktoré určujú kedy ich môže používať a čo sa stane, ak počet prvok neodpovedá počtu hodnôt v inicializácii. Pole je možné inicializovať iba v definícii. Príklad:


int karty[4]={3, 6, 8, 10}; //spravne
int karty2[4]; //spravne
karty2[4]={3, 6, 8, 10};  //nespravne
karty2=karty;  //nespravne

Stále môžeme pre priradenie používať indexy. Pri inicializácii sa dá dodať aj menej hodnôt ako má pole. Napr.: inicializácia iba dvoch prvých hodnôt:

float jotelTips[5]={5.0, 13.9}; 

Pri čiastočnej inicializácii nastaví prekladač ostatné prvky na nulu. Je jednoduché inicializovať všetky prvky na nulu napr.:

float jotejTips[5]={0};

Ak pri inicializácii poľa necháme hranaté zátvorky prázdne prekladač si sám spočíta prvky poľa. Napr.:

short things[]={1, 5, 3, 8};

Nie je najlepšie nechať počítanie prvok na prekladači nie je to dobrý zvykom programátora.

Záverom a úloha.

Prebrali sme si základy polí ešte to nie je všetko čo polia dokážu ale všetko príde postupne, dneska nebudem zadávať domácu úlohu. Stačí to pochopiť a môžeme sa vrhnúť ďalej.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor rád robi vsetko co ho napadne vramci IT.

Nové články

Reklama
Reklama
Obrázek ke článku NopCommerce – datová vrstva a přístup k datům – 2. díl

NopCommerce – datová vrstva a přístup k datům – 2. díl

V minulém článku jsme si představili platformu NopCommerce z globálního pohledu. V dnešním díle se již zaměříme na konkrétní část systému, a to datovou vrstvu. Představíme si základní stavební kameny systému v podobě doménových objektů. Ukážeme si, jakým způsobem rozšířit doménové objekty a jakým způsobem přistupuje NopCommerce k nastavení systému a modulů.

Obrázek ke článku Seznamte se s open source platformou NopCommerce – 1. díl

Seznamte se s open source platformou NopCommerce – 1. díl

Hledáte e-commerce řešení, které si dokážete přizpůsobit podle vašich požadavků? Chcete čistý a srozumitelný kód, se kterým bude radost pracovat? Prozkoumejte s námi možnosti open source projektu NopCommerce. Seriál programování pod NopCommerce vám pomůže překonat první kroky nejistoty a úspěšně zvládnout vývoj pod platformou NopCommerce.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý