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
Laser Game Brno
Laser Game Ostrava

C++ – pole

Google       Google       6. 7. 2007       39 240×

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

Obrázek ke článku Ericsson ConsumerLab Report: rozšířená realita je další úrovní gamingu

Ericsson ConsumerLab Report: rozšířená realita je další úrovní gamingu

Celkem 66 % uživatelů zajímá rozšířená realita v oblasti gamingu. Mezi nimi je i 35 % těch, kteří jinak hry nehrají.
Pro téměř 50 % respondentů by bylo zajímavé zapojení virtuální objektů do reálného světa. Objekty by zůstaly tam, kde je při hře „umístili“.
Až 43 % uživatelů láká využití rozšířené reality ve sportu

Reklama
Reklama
Obrázek ke článku Instalace nejnovější verze Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached na Windows 10

Instalace nejnovější verze Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached na Windows 10

Buďte při vývoji efektivní! Pomocí tohoto návodu během chvíle vytvoříte ze svého počítače lokální webový server. Vyzbrojíte jej vším, co budete při práci potřebovat: Apache 2.4, PHP 7.3, MariaDB 10.3 a Memcached. Je to plná polní pro webové vývojáře s Windows 10. Navíc poradíme, jak mít na localhostu více projektů pomocí VirtualHost.

Obrázek ke článku Do poskytovatele managed hostingových služeb vshosting~ vstupují zahraniční investoři

Do poskytovatele managed hostingových služeb vshosting~ vstupují zahraniční investoři

Po více než roce jednání do vshosting~ vstoupili 3 investiční skupiny z Německa: Pecunalta, BrainWeb Investment a Quines Capital. Jde o investiční skupiny, které mají účast na projektech jako PlusServer (největší managed provider v Německu a jeden z největších v Evropě), PLESK, cPanel, CloudLinux, GoDaddy (největší světový hostingový poskytovatel z USA), či Acronis, pomohou vshosting~ v jeho plánované mezinárodní expanzi na další zahraniční trhy. Ve vshosting~ nyní drží 75% podíl, zbylých 25 % zůstává zakladatelům vshosting~, kterými jsou Damir Špoljarič (CEO) a Jan Martinů (CTO).

Obrázek ke článku Posuňte své znalosti IT na výrazně vyšší úroveň

Posuňte své znalosti IT na výrazně vyšší úroveň

Zájem o IT odborníky je v současnosti v tuzemsku i v zahraničí enormní a vedení firem si moc dobře uvědomuje, jak těžké je získat ty správné. I přesto, že je odborníků na trhu dlouhodobý nedostatek, stále platí, že část z nich je - a bude - placena výrazně lépe než ti ostatní. Proč tedy nebýt mezi nimi?

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