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

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

 
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

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

Google       Google       27. 1. 2012       11 648×

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 Otevřené bankovnictví usnadní život nejen jednotlivcům, ale i firmám.

Otevřené bankovnictví usnadní život nejen jednotlivcům, ale i firmám.

Většina lidí by ráda obsluhovala své bankovní účty z jednoho místa. Díky evropské směrnici o platebních službách PSD2 by se brzy mohlo jednat o realitu. Některé tuzemské banky již služby takzvaného otevřeného bankovnictví umožňují, nejpozději od září by měly svá API rozhraní zpřístupnit vývojářům třetích stran. To otevírá prostor pro fintech firmy a start-upy, ale třeba i vývojáře ERP a fakturačních systémů, kteří by díky propojení svých produktů s bankami významně ulehčili klientům při správě financí.

Reklama
Reklama
Obrázek ke článku Velké srovnání TOP e-shopových řešení!

Velké srovnání TOP e-shopových řešení!

Předmět případové studie je ​středně velký e-shop​ s počtem produktů do 5 000, který chce expandovat na slovenský trh a potřebuje ​druhou jazykovou mutaci v eurech ​na vlastní doméně.

Výběr vhodného systému závisí na mnoha aspektech a měl by být pečlivě zvážen na základě potřeb a konkrétních požadavků plánovaného nebo migrovaného e-shopu.

Obrázek ke článku Master Data Management a jak nám pomůže

Master Data Management a jak nám pomůže

Master Data (česky také kmenová data) jsou data sdílená napříč různými systémy, nemění se příliš často a netransakční. Jedná se o informace o obchodních partnerech, produktech, vlastních pracovnících. Objednávky, faktury, účetní zápisy do této oblasti nespadají.

Obrázek ke článku Startup DoDo zajistí městskou logistiku pro RunCzech

Startup DoDo zajistí městskou logistiku pro RunCzech

Startup DoDo se stává důležitým partnerem RunCzecha na významných běžeckých závodech včetně 25. ročníku Volkswagen Maratonu Praha se bude starat o logistické zázemí. Lídr v oblasti městské logistiky bude mimo jiné zásobovat občerstvovací stanice a pomůže rovněž se zajištěním televizních přenosů ze závodů.

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