Vnoření (výpočet) - Nesting (computing)
![]() | tento článek potřebuje další citace pro ověření.Červen 2018) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
v počítačová věda a informatika, hnízdění[1] je místo, kde jsou informace uspořádány ve vrstvách, nebo kde objekty obsahují jiné podobné objekty. Téměř vždy to odkazuje podobný nebo rekurzivní struktury v jistém smyslu.
Vnoření může znamenat:
- vnořené hovory:
- pomocí několika úrovní podprogramy
- rekurzivní volání
- vnořené úrovně závorek v aritmetických výrazech
- vnořené bloky imperativu zdrojový kód jako jsou vnořené klauzule if, klauzule while, klauzule opakování do atd.
- skrývání informací:
- definice vnořených funkcí s lexikální rozsah
- vnořené datové struktury, jako jsou záznamy, objekty, třídy atd.
- vnořená virtualizace, nazývané také rekurzivní virtualizace: spuštění a virtuální stroj uvnitř jiného virtuálního stroje
V tabulkách
V tabulkový kalkulátor funkce mohou být vnořené jeden do druhého, takže složité vzorce. Průvodce funkcí OpenOffice.org Calc aplikace umožňuje procházet více úrovní vnoření,[je třeba další vysvětlení ] umožňuje uživateli upravit (a případně opravit) každý z nich samostatně.
Například:
= IF (SUM (C8: G8) = 0, "Y", "N")
V tomhle Microsoft Excel vzorce, je funkce SUMA vnořena do funkce IF. Nejprve vzorec vypočítá součet čísel v buňkách od C8 do G8. Poté rozhodne, zda je součet 0, a zobrazí písmeno Y, pokud je součet 0, a písmeno N, pokud není.
Přirozeně umožnit matematické rozlišení těchto zřetězených (nebo lépe: vnořené) vzorce, vnitřní výrazy musí být předem vyhodnoceny a tento vnější směr je zásadní, protože výsledky, které vnitřní funkce return jsou dočasně použity jako vstupní data pro externí ty.
Z důvodu možného hromadění závorek pouze v jednom řádku kódu, úpravy a detekce chyb (nebo ladění ) se může nějak stát trapné. To je důvod, proč moderní programovací prostředí - stejně jako tabulkové programy - zvýrazňují tučným písmem dvojici odpovídající aktuální pozici pro úpravy. (Automatické) řízení vyvážení otevírací a zavírací závorky známé jako kontrola shody výztuhy.
V programování
Kontrolní struktury
v strukturované programování jazyky, hnízdění souvisí s přiložení z kontrolní struktury jeden do druhého, obvykle označovaný různými odsazení úrovně v rámci zdrojový kód, jak je ukázáno v tomto jednoduchém ZÁKLADNÍ funkce:
funkce LookupCode(kód tak jako tětiva) tak jako celé číslo ztlumit sLine, cesta tak jako tětiva ztlumit ReturnValue tak jako celé číslo cesta="C: Test.dsv" -li Soubor existuje(cesta) pak otevřeno cesta pro vstup tak jako #1 dělat zatímco ne EOF(1) čára vstup #1, sLine -li kód==vlevo, odjet(sLine, 3) pak „Akce, které mají být provedeny Konec -li smyčka zavřít #1 Konec -li LookupCode=ReturnValuekonec funkce
V tomto malém a jednoduchém příkladu je podmíněný blok „if ... then ... end if“ vnořen do bloku „do while ... loop“.
Některé jazyky jako např Pascal a Ada nemají žádná omezení deklarací v závislosti na úrovni vnoření, což umožňuje přesně vnořené podprogramy nebo dokonce vnořené balíčky (Ada). Zde je příklad obou (zjednodušeno od skutečného případu):
- Zbavit se problému globálních proměnných (nelze použít paralelně)- ze sady starých zdrojů, aniž byste museli tento kód měnit- logika nebo struktura.--postup Nesting_example_1 je typ Buffer_type je pole(Celé číslo rozsah <>) z Celé číslo; postup Dekomprimovat( stlačený : v Buffer_type; dekomprimovaný: ven Buffer_type ) je - Zde jsou přeložené starší zdroje: balík X_Globals je index_in, index_out: Celé číslo; - *** ^ Tyto proměnné jsou pro dekomprimaci lokální. - *** Nyní je dekomprimace bezpečná. konec X_Globals; - Metody 1,2,3, ... (specifikace) balík X_Method_1 je postup Dekomprimovat_1; konec X_Method_1; - Metody 1,2,3, ... (kód) balík tělo X_Method_1 je použití X_Globals; postup Dekomprimovat_1 je začít index_in:= stlačený'za prvé; - Zde dekompresní kód, metoda 1 konec Dekomprimovat_1; konec X_Method_1; - Konec původních zdrojů začít X_Method_1.Dekomprimovat_1; konec Dekomprimovat; test_in, otestovat: Buffer_type(1..10_000);začít Dekomprimovat(test_in, otestovat);konec Nesting_example_1;
Datové struktury
Vnořené datové struktury se také běžně vyskytují v programování.
Lisp
V Funkcionální programování jazyky, jako např Lisp, a seznam datová struktura existuje stejně jako jednodušší atom datová struktura.[2]
- Jednoduché seznamy držet pouze atomy.[2]
( A T Ó M S )
Atomy v seznamu jsou A, T, O, M a S.
- Vnořené seznamy držet atomy i další seznamy.[2]
( ( ( N E S T E D ) L Já S T S ) ( C A N ) ( B E ) U N N E C E S S A R Já L Y ( C Ó M P L E X ) )
Viz také
Reference
- ^ https://study.com/academy/lesson/nesting-loops-statements-in-c-programming.html%7Ctitle=Nesting Smyčky a příkazy v programování C.
- ^ A b C Sebesta, Robert W. (2012). Koncepty programovacích jazyků (tisk) (10. vydání). Boston, MA, USA: Addison-Wesley. str. 49. ISBN 978-0-13-139531-2.