Vývojové diagramy - úvod do polí - 18. díl
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vývojové diagramy - úvod do polí - 18. dílVývojové diagramy - úvod do polí - 18. díl

 

Vývojové diagramy - úvod do polí - 18. díl

Google       Google       27. 1. 2012       9 035×

Náplní dnešního dílu budou pole, která nás následně budou provázet po několik dalších dílů. Postupně si ukážeme, co to je pole, k čemu se hodí a samozřejmě si jejich použití budeme demonstrovat na vývojových diagramech.

Reklama
Reklama

Co to je pole a k čemu je dobré? Řekněme, že chceme řešit náš oblíbený problém s průměrem známek studenta. Tentokráte ovšem změněný o to, že si chceme nejprve všechny známky uložit a pak teprve zpracovávat. Tak to je přece jednoduché, vytvoříme si proměnné znamka1, znamka2, znamka3, znamka4... No jo, ale kolik jich vlastně bude? Kolik potřebujeme proměnných? Co když vytvoříme proměnné jenom pro 20 známek a bude jich potřeba 25? Jak vidno zříti, tudy cesta nevede. K tomuto účelu se právě používá pole - k uložení více dat pod jednu proměnnou a jejich rozlišení indexy (bude vysvětleno dále). Místo proměnných znamka1, znamka2, znamka3, znamka4... tak budeme mít pouze jednu proměnnou znamka.

Co je to vlastně proměnná? Proměnná je námi zvolený název, kterému se v průběhu překladu nebo běhu programu přidělí paměť. Je to tedy tak, že námi zvolený název proměnné je jakýsi alias na adresu v paměti. Vytvoříme-li proměnnou A, tak vlastně máme takový šuplíček, na kterém je napsáno "A" a který obsahuje hodnotu proměnné A. Přiřazením hodnoty 5 do proměnné A vlastně provedeme to, že otevřeme daný šuplíček a vložíme do něj hodnotu 5.

Pole je skupina takových šuplíčků v jednom rámu, který je drží všechny pohromadě a nese název proměnné (tj. na rámu je napsáno "A"). Pokud chceme pracovat s polem jako celkem, tak se na něj odkazujeme jménem pole (A). Pokud chceme pracovat s jednotlivými položkami pole (šuplíčky), tak musíme tzv. indexovat - přistupovat k jednotlivým šuplíčkům. To znamená, že pokud chceme vložit hodnotu do jednoho z šuplíčků pole, tak se na něj musíme odkázat - musíme ho zaindexovat.

Index je vlastně pořadové číslo šuplíčku v daném poli. Každý šuplíček má svůj index na sobě napsaný. Indexace se zapisuje jako číslo v hranatých závorkách za jménem proměnné. V případě našeho pole jménem A, které má 5 šuplíčků, se k jednotlivým položkám (šuplíčkům) přistupuje A[1], A[2], A[3], A[4], A[5]. Chceme-li do 3. šuplíčku pole A zapsat hodnotu 100, tak napíšeme A[3] = 100.

Poznámka: jak to tak bývá, tak ani zde není vše jednoznačné. My budeme používat indexování od 1. Některé programovací jazyky ho také používají, jiné mají indexování od 0, v jiných lze rozmezí indexů definovat. Pro začátek je nejjednodušší používat indexování od 1, které je asi i lidsky nejpřirozenější.

K procházení pole budeme používat cykly (většinou) s daným počtem opakování. Jsou na to jak dělané :). Využijeme k tomu index, který v tomto cyklu používáme. Cyklus tak bude (vždy) od 1 do velikosti pole. A v jednotlivých průchodech budeme přistupovat k jednotlivým šuplíčkům pole. Fragment vývojového diagramu, tak jak jej budeme teď často vídat, je na obrázku.

Pole může být samozřejmě libovolného typu, takže můžeme mít pole 4bajtových celých čísel, pole desetinných čísel atd. Datový typ budeme zapisovat stejně jako u jiných proměnných. Rozlišení, že jde o pole provedeme zápisem hranatých závorek za název proměnné. Pokud budeme vědět, s jak velkým polem budeme pracovat, tak do hranatých závorek zapíšeme tuto velikost. V případě, že neznáme, jak velké bude výsledné pole, tak necháme hranaté závorky prázdné. První typ (se známou velikostí pole) je staticky definované pole - velikost známe v době tvorby programu. Druhý typ je pole s dynamickou velikostí pole - velikost pole se mění dle aktuálních potřeb v programu.

Nyní již máme dostatečný teoretický základ, abychom si mohli udělat jednoduchý příklad, ve kterém si ukážeme práci s polem. Nebudeme na začátek dělat nic složitého, prostě si do pole načteme několik čísel a následně je vypíšeme.

Zadání by mohlo znít následovně: vytvořte algoritmus, ve kterém nejprve uživatel zadá 20 čísel a tato čísla následně v opačném pořadí vypíše na obrazovku. Program se bude skládat ze dvou částí: v první bude uživatel zadávat čísla, která se budou ukládat do pole. V druhé části se tato uložená čísla vypíšou v obráceném pořadí.

Výsledný vývojový diagram vidíte na obrázku. Máme definované pole celých čísel X o délce 20 (int X[20]). V prvním cyklu provedeme načtení 20 čísel do pomocné proměnné A, jejichž hodnotu následně uložíme do pole (do příslušného šuplíčku na aktuálním indexu). V druhém cyklu provedeme výpis. Mohli bychom tam mít rozsah od 20 do 1, ale abychom to trochu pozměnili, tak budeme mít jeho rozsah opět od 1 do 20 a výpis v obráceném pořadí vyřešíme matematickou úpravou, tj. odečtením od velikosti pole a protože indexujeme od 1, tak ještě přičteme 1, neboli 20 - I + 1, což je 21 - I, a proto můžeme zapsat X[21 - I].

V příštím díle budeme pokračovat dalšími příklady, kde bude mít pole jednu z hlavních úloh.

×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    
7 hlasů
Google
Autor se věnuje programování za peníze :)

Nové články

Obrázek ke článku RAD Studio a Windows Store

RAD Studio a Windows Store

RAD Studio je první vývojové prostředí se zabudovanou podporou balení aplikací typu Win32 a Win64 pro jejich umístění a šíření prostřednictvím Windows 10 Store.

Reklama
Reklama
Obrázek ke článku Testujte na 2 400+ Android a iOS zařízení

Testujte na 2 400+ Android a iOS zařízení

V dnešní době, kdy většina softwaru pro mobilní aplikace je tvořena a distribuována průběžně, mnohdy do celého světa je třeba zajistit také průběžnou automatizaci testování mobilního softwaru. V případě mobilních aplikací pro Android a iOS začíná být problém, jak testovat na obrovském množství kombinací HW variant, rozměrů, edic operačních systémů různých výrobců v různých částech světa na reálných zařízení. Simulátory a emulátory nejsou většinou to pravé. Pokud již testuji, jak si udělat vlastní beta distribuci opravdovým reálným testerům napříč platformami?

Obrázek ke článku Funkcie main vo Windows API

Funkcie main vo Windows API

V tretej časti seriálu o Windows API budeme hovoriť o funkčných prototypoch main. Funkčný prototyp je tvorený názvom funkcie a typom signatúry, pričom sa vynecháva telo funkcie. 

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý