Programování procesů cyklického výpočetního zpracování dat. Ruční tabelování a programování funkcí

Kliknutím na tlačítko "Stáhnout archiv" si zdarma stáhnete potřebný soubor.
Před stažením daný soubor pamatujte si ty dobré eseje, kontrolu, semestrální práce, teze, články a další dokumenty, které jsou nevyzvednuté na vašem počítači. To je vaše práce, měla by se podílet na rozvoji společnosti a prospívat lidem. Najděte tato díla a odešlete je do znalostní báze.
My a všichni studenti, postgraduální studenti, mladí vědci, kteří využívají znalostní základnu při svém studiu a práci, vám budeme velmi vděční.

Chcete-li stáhnout archiv s dokumentem, zadejte do pole níže pětimístné číslo a klikněte na tlačítko "Stáhnout archiv"

Podobné dokumenty

    Sestavení listu výkazu "Prodejny" v Excelu 2013. Práce s rodinnými tabulkami Microsoft Office. Konstrukce výsečového grafu a histogramu, grafy. Vývoj postupů pro tabelování funkcí. Programování uživatelských funkcí ve VBA.

    semestrální práce, přidáno 04.03.2014

    balíček Microsoft kancelář. Tabulkový procesor MS Excel. Vytvoření obrazovky a zadávání dat. Vzorce a funkce. Vysvětlení uživatelských funkcí MS Excel. Fyzikální vyjádření problémů. Nastavení okrajových podmínek pro přípustné hodnoty proměnných.

    semestrální práce, přidáno 6.7.2015

    Vlastnosti použití vestavěných funkcí Microsoft Excel. Vytváření tabulek, jejich plnění daty, vykreslování grafů. Aplikace matematických vzorců pro provádění dotazů pomocí aplikačních balíčků. Technické požadavky do počítače.

    semestrální práce, přidáno 25.04.2013

    Organizace souborů a přístup. operace se soubory. Programování pomocí vestavěných I/O funkcí; lineární, větvené a cyklické výpočetní procesy využívající If-else, operátor výběru případu; pole a matice.

    semestrální práce, přidáno 24.05.2014

    Tabulkový procesor Microsoft Excel - aplikačního programu, určený k automatizaci procesu zpracování ekonomických informací prezentovaných ve formě tabulek; aplikace vzorců a funkcí pro provádění výpočtů; spiknutí.

    abstrakt, přidáno 02.03.2013

    Programování výpočetních procesů v jazyce FORTRAN pro zajištění interakce systému "Člověk-Výroba-Příroda". Použití polí k sestavení cyklů pro výpočet úrovně znečištění životního prostředí, nákladů na zpracování odpadu.

    semestrální práce, přidáno 30.05.2014

    Vytvoření aplikace, která bude vykreslovat grafy funkcí pro daný matematický výraz. Vývoj programu "Generátor matematických funkcí". Vytvoření průvodce funkcí pro zadání matematického výrazu, testování.

    práce, přidáno 16.02.2016

1. Metody konstrukce cyklických výpočetních procesů v programech.

2. Zadáno do počítačeNreálná čísla. Napište program, který zobrazí aritmetický průměr této množiny.

Úvod

Cyklické programy se používají téměř ve všech software. V tomto případě mohou být cykly explicitní a implicitní. Implicitní smyčka je zejména přítomna v obslužných rutinách přerušení, které ve skutečnosti běží v nekonečné smyčce, jejíž tělo je spuštěno přerušením. Podprogramy jsou také cyklické - okenní funkce aplikace pro Windows. Dále jsou uvažovány programy s cyklem, jejichž tělo obsahuje funkční moduly.

Cyklický proces- tento výpočetní proces, ve kterém se výpočty opakovaně provádějí pomocí stejných vzorců pro různé hodnoty argumentu.

Programy, uvědomující si cyklický proces tzv. cyklické programy.

Organizaci cyklu lze rozdělit do následujících fází:

příprava (inicializace) cyklu (AND);

provádění výpočtů smyčky (tělo smyčky) (T);

modifikace parametru (M);

kontrola podmínky pro konec cyklu (U).

Pořadí, ve kterém mohou být tyto kroky, např. T a M, provedeny, se může lišit. V závislosti na umístění testu se v podmínkách ukončení smyčky rozlišují smyčky s dolním a horním zakončením. U smyčky s dolním koncem se tělo smyčky provede alespoň jednou, protože nejprve se provedou výpočty a poté se zkontroluje podmínka ukončení smyčky.


V případě shora ukončené smyčky se tělo smyčky nemusí provést ani jednou, pokud je podmínka ukončení splněna okamžitě.

Smyčka se nazývá deterministická, pokud je předem znám nebo určen počet opakování těla smyčky. Smyčka se nazývá iterační, pokud počet opakování těla smyčky není předem znám, ale závisí na hodnotách parametrů (některých proměnných) zahrnutých do výpočtů.

Tělo smyčky Toto je část programu, která se mnohokrát opakuje.

Parametr cyklu je proměnná, která nabývá nových hodnot při každém opakování smyčky (existují jednoduché a složité smyčky).

Obecná forma cyklus nkrát

Obecně platí, že cyklus n krát je zapsán následovně:

nc počet opakování krát

Obslužná slova nts (začátek cyklu) a kts (konec cyklu) jsou psána přísně pod sebou a jsou spojena svislou čárou. Napravo od tohoto řádku je zapsána opakovaná sekvence příkazů (tělo smyčky).

Počet opakování je libovolné celé číslo.

Když je algoritmus vykonán, sekvence příkazů v těle smyčky se opakuje zadaný početkrát. Pravidla algoritmického jazyka umožňují zadat libovolný celočíselný počet opakování. Může být nula nebo dokonce záporná. Tyto případy nejsou považovány za chybné, pouze se tělo smyčky neprovede ani jednou a počítač okamžitě přistoupí k provedení příkazů napsaných po kts

Celkový pohled na cyklus

Obecně je cyklus napsán takto:

nc bye stav

| tělo smyčky (sekvence příkazů)

Při provádění cyklu počítač opakuje následující kroky:

a) zkontroluje stav zapsaný za servisním slovem;

b) není-li podmínka splněna, pak provádění cyklu skončí a počítač začne provádět příkazy zapsané po kts. Pokud je podmínka splněna, pak počítač provede tělo smyčky, znovu zkontroluje podmínku a tak dále.

Celkový pohled na cyklus pro

nc pro i od i1 do i2

| tělo smyčky (sekvence příkazů)

Zde i je název hodnoty celočíselného typu, i1, i2 jsou libovolná celá čísla nebo výrazy s celočíselnými hodnotami. Tělo smyčky se postupně provádí pro i = i1, i = i1 + 1, i1 + 2, …i = i2.

Pravidla algoritmického jazyka umožňují zadat libovolná celá čísla i1, i2. konkrétně i2 může být menší než i1. tento případ není považován za chybný - pouze tělo smyčky se ani jednou neprovede a počítač okamžitě přistoupí k provedení příkazů zapsaných za kts.

Smyčka n krát a smyčka while

Smyčky n-krát a dosud jsou uspořádány v algoritmickém jazyce téměř stejným způsobem. To není překvapivé, protože oba tyto příkazy nastavují cyklus - opakující se sekvenci příkazů. Servisní slova nts a kts indikují, že se cyklus provádí, a záhlaví cyklu specifikuje specifický mechanismus pro jeho provádění.

Tyto dva cykly však mají jeden podstatný rozdíl. Po spuštění cyklu nkrát počítač ví, kolikrát bude muset opakovat tělo smyčky. Při provádění smyčky tomu tak zatím není: počítač pokaždé kontroluje stav smyčky a nemůže předem určit, kdy provádění skončí. Počet opakování cyklu můžete zjistit až po dokončení cyklu.

Tím je jasné, v jakých případech by se měl který cyklus použít. Pokud je počet opakování znám v době zahájení smyčky, je vhodné použít smyčku nkrát. Pokud počet opakování nelze předem určit, je nutný cyklus.

Například program automatické ovládání má strukturu znázorněnou na obr. jeden. Moduly zahrnuté v cyklu(stejně jako moduly pro obsluhu přerušení), každý s jedním vstupem a jedním výstupem, mají obvykle charakteristickou vlastnost: moduly obsahují statické proměnné, kterým je v aktuálním cyklu přiřazena hodnota, a analýza těchto proměnných se provádí v dalším cyklu. Uvedené proměnné tedy charakterizují stav modulu na konci aktuálního nebo začátku dalšího programového cyklu. V budoucnu budeme uvažovat pouze o takových modulech cyklických programů a budeme je stručně označovat jako MCP.


Obr. 1. Typická struktura řídicí program s nekonečnou smyčkou.

MCP mají různorodou strukturu, jejíž složitost je třeba posuzovat podle zvláštních kritérií. V.V. Lipaev navrhl vhodné a objektivní kritérium pro složitost programových modulů, a to: počet a celkovou délku cest v řídicím grafu modulu. Toto bere v úvahu pouze podmíněné a výběrové příkazy. Toto kritérium však pro MCP se statickou pamětí zjevně nestačí, protože při analýze MCP je nutné pamatovat si hodnoty všech statických proměnných nastavených v předchozím cyklu. Kromě toho neexistují žádná doporučení pro standardizaci algoritmů a programů, kromě dlouho známého strukturovaného programování v běžně používaných programovacích jazycích, jako je C a Pascal. Tento článek navrhuje vyplnit tyto mezery ve vztahu k MCP.

2. Fragmenty modulů cyklických programů

Dvoupólový fragment nebo jen fragment budeme uvažovat o části programu s jedním vstupem a jedním výstupem (včetně operátorů smyčky) za předpokladu, že uvažované MCP jsou strukturované. Nejjednodušší fragment obsahuje jeden operátor. Sekvence fragmentů je také fragment. MCP je zase fragment a skládá se ze sekvence fragmentů.

Pro syntézu struktury modulů, které implementují rozhodovací tabulky, je navržena metoda nezávislých fragmentů. V tomto případě je fragment považován za nezávislý, pokud jej lze vložit kamkoli do sekvence fragmentů modulu. Nezávislost umístění takového fragmentu je způsobena skutečností, že data v něm analyzovaná nejsou tvořena ve specifikované sekvenci fragmentů a data generovaná v nezávislém fragmentu nejsou analyzována v této sekvenci fragmentů. Proto mohou být nezávislé fragmenty prováděny paralelně (pseudoparalelně). Na Obr. 2 znázorněno možné možnosti implementace modulu se dvěma nezávislými fragmenty. V možnostech "a" a "b" jsou fragmenty přeskupeny bez narušení podstaty programu; ve verzi „c“ jsou fragmenty implementovány paralelně.


Obr.2. Možnosti implementace modulu s nezávislými fragmenty:

a) a b) - sekvenční implementace,

c) - paralelní provedení: dvojité vodorovná čára označuje paralelizaci programu, tučná vodorovná čára označuje dokončení paralelních procesů.

Závislý fragment je takový, jehož umístění závisí na umístění jiného fragmentu (fragmentů) v modulu. Budeme rozlišovat mezi horními a dolními závislými fragmenty. Top-dependentní fragment musí být vždy umístěn pod nějakým fragmentem, ve kterém se tvoří proměnné použité v tomto (závislém) fragmentu. Fragment závislý na dně by měl být vždy umístěn nad fragmentem, který používá proměnné generované v tomto fragmentu. Dva závislé fragmenty, z nichž jeden je horní závislý na druhém a druhý závislý na prvním zespodu, se budou nazývat vzájemně závislé fragmenty. Nelze je zaměňovat a nelze je implementovat paralelně. Na Obr. 3 ukazuje příklad modulu se vzájemně závislými fragmenty. Mezi vzájemně závislými fragmenty mohou být další, závislé nebo nezávislé na nich. Obr.3. Modul se závislými fragmenty.

Pevný fragment budeme nazývat závislým fragmentem, jehož umístění v modulu je striktně definováno. Například v modulu pro rozpoznávání znaku zadaného z klávesnice by první měl být spodním závislým fragmentem přímo zadaného znaku. Operátory "start" a "end" modulu jsou pevné fragmenty.

Absolutně nezávislé fragmenty neexistují, už proto, že v každém modulu jsou zmíněny pevné fragmenty začátku a konce. Proto má nezávislý fragment obecně oblast možného umístění omezenou dvěma vzájemně závislými fragmenty. To znamená, že přesnější definice nezávislého fragmentu je následující: nezávislý s ohledem na dva pevné fragmenty je fragment, který může být umístěn kdekoli v sekvenci fragmentů ohraničených nad a pod uvedenými fixními fragmenty.

V programování se často vyskytují úlohy, které vyžadují vícenásobné provedení stejné skupiny programových příkazů s různými hodnotami jejich operandů. Takové procesy se nazývají cyklický nebo jednoduše cykly. Skupina cyklicky se opakujících výroků tvoří tzv tělo smyčky, který může být reprezentován jako jednoduchý nebo složený výraz. Bude voláno jediné provedení těla smyčky opakování.

Tělu smyčky v programu vždy předchází název cyklu, obsahující notaci operátor smyčky a výraz určující (přímo nebo nepřímo) počet iterací. Všimněte si, že tělo cyklu je operandem operátoru cyklu, proto záhlaví a tělo cyklu tvoří nedělitelnou strukturální jednotku programu. Dále s použitím termínu příkaz smyčky“, budeme mít na paměti jak název, tak tělo cyklu.

K organizaci cyklů ve všech programovacích systémech existují specializované smyčkové příkazy, jehož použití ušetří programátorovi nutnost programovat cykly „ručně“. MathCAD podporuje dva druhy takových operátorů − cyklus s předurčením Pro (také zvaný smyčka s počítadlem) A smyčka s předpokladem Zatímco . Struktura těchto operátorů je popsána v tabulce 5.

5.4.1 Provozovatel Pro

Tento operátor by se měl používat v případech, kdy je počet iterací předem určen, tedy předem známý.

Záhlaví cyklu tohoto operátoru (pravý operand) obsahuje proměnnou volanou parametr(nebo pult) cyklus, A seznam hodnot toto nastavení. Počet prvků seznamu také určuje počet iterací - během každé iterace dostává parametr loop další hodnotu ze seznamu uvedeného v záhlaví.

Parametr cyklu má status interní proměnné programu a má všechny její vlastnosti (popsané v odstavci 5.1.4). Parametr smyčky se zpravidla používá na pravé straně výrazů, které jsou součástí těla smyčky, i když není formálně zakázáno jej používat na levé straně výrazů (tedy nalevo od lokálního definiční operátor "f"). Je třeba si uvědomit, že pokud byl parametr změněn v těle smyčky, jeho změněná hodnota bude platná pouze do konce aktuální iterace, protože před další iterací bude parametr stále přijímat další hodnotu ze seznamu uvedeného v hlavička smyčky.

Formálně je povoleno parametr smyčky ve výrazech těla smyčky vůbec nepoužívat - v tomto případě seznam hodnot parametrů nehraje žádnou roli - podstatná je pouze délka tohoto seznamu, která určuje počet (možná nesmyslných) iterací.

Po dokončení poslední iterace se provede příkaz programu následující po příkazu loop. V tomto případě si proměnná použitá jako parametr dokončené smyčky zachová hodnotu, kterou měla v posledním skutečně dokončeném iterací[*]. Všimněte si, že tato hodnota se ne vždy shoduje s poslední hodnotou ze seznamu zadaného v záhlaví smyčky, protože je možné „předčasně“ opustit smyčku, když je spuštěn operátor. Přestávka součástí těla smyčky.

Seznam hodnot parametr smyčky je zapsán v hlavičce smyčky za symbolem " Î “, označující členství v sadě (tento symbol není nutné zadávat „ručně“ – zobrazí se automaticky při zadání operátora Pro ). MathCAD umožňuje použití tři formy položky v tomto seznamu: přímý převod– prvky seznamu jsou explicitně specifikovány oddělené čárkami, parametr přijímá hodnoty ze seznamu v pořadí, v jakém se objevují; ve stylu rozpětí proměnné − prvky seznamu tvoří odpovídající aritmetické řady; pole– prvky seznamu postupně obdrží hodnoty prvků pole v pořadí jejich indexů (nejprve - sloupce zleva doprava, poté - řádky shora dolů).

Tři programy zobrazené na obrázku 21 ilustrují různá použití operátora Pro .

Program fakt(n) vypočítá faktoriál čísla n . Operátor smyčky v tomto programu je součástí složeného výrazu, který je zase operandem podmíněného operátoru v opačném případě. Parametr cyklu k získá hodnoty z celočíselné aritmetické řady.

Program Ch(V,N,p) zpracovává vstupní vektor PROTI , nahraďte ji hodnotou p ty prvky, jejichž indexy jsou dány prvky druhého vstupního vektoru N . V tomto příkladu seznam hodnot parametru smyčky i daný množinou vektorových prvků N . Všimněte si, že oba tyto programy provádějí řízení vstupních dat a blokují provádění hlavního algoritmu, pokud jsou argumenty skutečného programu zadány nesprávně.

Program L(M,z) , uvedené v příkladu v ), je doplněn podrobným komentářem a nevyžaduje vysvětlení. Tento program ilustruje možnost použití více příkazů smyčky, z nichž jeden je součástí příkazů tělo další. Používání vnořené smyčky je typický trik používaný ke zpracování vícerozměrných polí.

Obrázek 21 - Příklady programovacích cyklů Pro


Obrázek 22 znázorňuje použití operátorů Přestávka A Pokračovat v těle smyčky. Tyto operátory jsou zpravidla samy operandy podmíněných operátorů. Li nebo v opačném případě .

Operátor Přestávka ("přerušit") přeruší provedení smyčky a předá řízení příkazu následujícímu po příkazu přerušené smyčky. Všimněte si, že pokud operátor Přestávka přerušen vnořená smyčka, provádění vnější smyčky bude pokračovat.

Operátor Pokračovat ("pokračovat") působí jinak - it přeruší pouze aktuální iteraci smyčky a přenese řízení do hlavičky tohoto cyklu, po kterém dojde k provedení cyklu pokračuje z další iterace (pokud ovšem nebyla přerušená iterace poslední).

Operátor Přestávka povoleno používat a mimo tělesa cyklu. V tomto případě se provádění celého podprogramu přeruší a vrátí se výsledek vyhodnocení posledního skutečně provedeného výrazu podprogramu.

Obrázek 22 - Příklady použití operátorů Přestávka A Pokračovat

Funkce SoučetN(V) sečte pouze ty prvky vektoru, které obsahují skalární data číselného typu, a ignoruje ostatní prvky. Funkce Inverzní (V) vygeneruje vektor, jehož prvky jsou převrácenými hodnotami odpovídajících prvků původního vektoru. V tomto případě, pokud další prvek obsahuje číslo "0" nebo není skalárem číselného typu, cyklus je přerušen. Všimněte si, že operátor Přestávka v posledním příkladu nepřeruší program, ale předá řízení operátorovi vrátit se bezprostředně za operátorem Pro .

5.4.3 Provozovatel Zatímco

Na rozdíl od operátora Pro , záhlaví výpisu Zatímco (v překladu - " až do") neobsahuje výslovné údaje o počtu iterací - obsahuje booleovský výraz, jehož hodnota se automaticky vypočítá před začátkem provedení každé následné iterace[†]. Dokud je tento výraz "pravda", iterace smyčky budou pokračovat; jakmile se po dokončení další iterace výraz stane "false", další iterace cyklu se neprovede a řízení převezme příkaz programu následující za příkazem Zatímco .

Je zřejmé, že pokud je do hlavičky smyčky umístěn stejně nepravdivý logický výraz, tato smyčka neprovede žádnou ze svých iterací, a pokud je tento výraz shodně pravdivý, bude smyčka nekonečná (poslední situace se nazývá smyčkování programy). Aby se takovým situacím předešlo, musí být do počtu operandů logického výrazu zahrnuta jedna nebo více proměnných, které mění své hodnoty. v těle smyčky aby smyčka byla konečná (k zabránění smyčky lze použít i jiné prostředky – např. vynucený výstup ze smyčky operátorem Přestávka ).

Příklady použití operátora Zatímco jsou uvedeny na obrázku 23. Jsou uvedeny tři možnosti řešení stejného problému: každý z programů F0 , F1 A F2 vrátí index prvního z prvků původního vektoruPROTI překračující danou hodnotuz .

První program (např ale ) přidá na počítadlo jedničku k v těle smyčky Zatímco až do dalšího k -tý prvek původního vektoru nepřekročí danou hodnotu z . Poté se cyklus ukončí a program vrátí poslední upravenou hodnotu proměnné k , což je řešení problému. Všimněte si, že na rozdíl od cyklu Pro , pult k zde je nutné zpracovat samostatnými příkazy: inicializujte (tj. přiřaďte mu počáteční hodnotu) před příkazem loop a změňte jeho hodnotu v těle smyčky.

Je snadné vidět, že možnost ale ) programu má významnou nevýhodu: nebrání tomu, aby se program zacyklil v případě, kdy problém nemá řešení, tedy když parametr z přesahuje hodnotu největšího prvku vektoru PROTI . V tomto příkladu k zacyklení v takové situaci skutečně nedojde – to však není zásluha našeho programu, ale systému MathCAD, který řídí výstup vektorového indexu PROTI mimo rozsah a vygeneruje chybovou zprávu.

Tato možnost je osvobozena od tohoto nedostatku b ) programu, ve kterém tělo smyčky obsahuje dodatečnou kontrolu platnosti další hodnoty indexu a násilně přeruší smyčku s operátorem Přestávka v odpovídající situaci s vystavením textové zprávy.

Možná nejúčinnějším způsobem, jak tento problém vyřešit, je v ), který operátor vůbec nepoužívá Zatímco . V tomto programu proměnná k slouží pouze k zachování "čistoty stylu" - k vyloučení zpracování parametru smyčky i mimo operátora Pro .

Obrázek 23 - Příklady programovacích cyklů Zatímco

Objektivní:

Chcete-li studovat cyklické příkazy for, while, do - while, naučte se skládat a programovat cyklické algoritmy.

Stručné teoretické informace

Operátory cyklů se používají, když je potřeba některé akce (operátory a operace) několikrát opakovat a takové úseky algoritmů se nazývají cykly.

příkaz pro smyčku

Základní forma operátoru smyčky for je

pro (výraz_1; výraz_2; výraz_3)

operátor;

kde výraz_1počáteční hodnota parametr smyčky;

výraz_2– kontrola podmínek pro pokračování cyklu;

výraz_3– změna parametru cyklu (oprava);

operátor- jednoduché popř složený operátor jazyk C.

Operační schéma operátoru je následující: pouze jakmile se vypočítá výraz_1, zkontroluje se výraz_2, a pokud je „pravda“, provede se cyklická část programu, opraví se parametr a tak dále, dokud výraz_2 má hodnotu „false“.

Například: pro (k=1; k<5; k++)

printf("\n %d", k);

V důsledku provedení tohoto příkazu se čísla od 1 do 4 vytisknou ve sloupci.

Jako parametr smyčky můžete použít proměnnou libovolného základního typu.

Například:

for(ch='a'; ch<=’z’; ch++) // Вывод на экран букв

printf(“%c”,ch); // latinská abeceda

Strukturu cyklů for v programu musíte pečlivě kontrolovat, abyste neskončili u nekonečné smyčky (ze které není žádný výstup).

Například:

for(k=10;k>6;k++)

printf("nekonečná smyčka \n");

Opusťte smyčku brzy následujícími způsoby:

Další podmínkou;

Pomocí následujících prohlášení:

přestávka;- výstup ze smyčky, ve které se break nachází, řízení se přenese do prvního provedeného příkazu za smyčkou;

exit(intCode);- ukončení programu;

vrátit se;- opuštění funkce;

Použití operátoru nepodmíněného skoku jít do<метка>;

Brzy konec aktuálního cyklického kroku možné pomocí dodatečné podmínky nebo operátoru pokračovat, který přeruší provádění kroku aktuální smyčky, tzn. přeskočí příkazy zbytku cyklu a přenese řízení na příkaz head cyklu, aby opravil parametr a otestoval podmínku.

Je zakázáno přenášet řízení zvenčí dovnitř smyčky.

Kterýkoli z výrazů cyklu for v závorkách může chybět, ale znak ";" nelze vypustit.

Například:

Protože já<3; i++)

klade("Ahoj!");

Smyčkové příkazy while a do-while

Základní tvar cyklického operátoru zatímco:

Zatímco (podmínka)

operátor;

kde operátor

Cyklus se provádí tak dlouho, dokud se podmínka vyhodnotí jako "true", tzn. výraz v závorkách vrátí výsledek bez nuly. Jedná se o cyklus s předběžnou podmínkou - nejprve se zkontroluje podmínka, poté se provede příkaz. Smyčka while se proto neprovede ani jednou, pokud je počáteční výsledek vyhodnocení podmínky 0.

Základní formulář operátora dělat, zatímco:

operátor;

zatímco (podmínka);

kde operátor je jednoduchý, složený nebo prázdný příkaz.

Operátor dělatzatímco je smyčkový operátor s postpodmínkou, tzn. nejprve se provede příkaz a poté se zkontroluje pravdivost podmínky. Protože ve smyčce do-while se podmínka kontroluje na konci smyčky, smyčka se provede alespoň jednou.

V cyklech, jako je while a do–while, jsou povoleny stejné metody předčasného ukončení smyčky a předčasného ukončení aktuálního kroku smyčky jako v příkazu for, ale ve druhém případě je na rozdíl od smyčky for řízení převedeno na kontrolu stavu. Chcete-li zabránit nekonečné smyčce uvnitř smyček while a do-while, musíte zajistit změnu proměnných zahrnutých v podmínce.

Například:

pro (i=1;i<=300;i++) // Печать целых чисел, кратных 5

if (i%5!=0) pokračovat;

printf("%5d",i);

Příklady nekonečných smyček:

operátor;

2) while(number_not_0) // Vždy pravda!

operátor;

operátor;

while(číslo_není_0); // Vždy pravda!

Mezi příkazy smyčky musí být výstupní podmínka.

Vnořené smyčky

V případě vnořených smyček je jedna smyčka uvnitř druhé, například:

for(i=nn;i

for(j=mn;j

operátor;

kde operátor je jednoduchý, složený nebo prázdný příkaz. Vnitřní smyčka bude provedena pro každou hodnotu parametru i, která splňuje podmínku vnější smyčky.

Příklad:

pro (i=1;i<10;i++) // Печать таблицы умножения

for(j=1;j<4;j++)

printf("\n %d*%d=%2d", i, j, i*j);

printf("\n");

Příklad použití příkazu for

Vypočítejte . Program by měl vytisknout mezivýsledky a konečné výsledky.

Text programu může vypadat např

#zahrnout

#zahrnout

puts("Zadejte N");

scanf(“%d”,&N);

pro (s=0, k=1; k<=N; k++) // В заголовке цикла можно выпол-

( // vzít a dvojité přiřazení

printf(" \n k=%d s=%f ", k, s);

printf("\n ODPOVĚĎ: s=%f, Stiskněte libovolnou klávesu...",s);

Varianty jednotlivých úkolů

Napište program pro definování tabulky hodnot funkcí v v libovolném rozsahu [ A,b] změny argumentu X s libovolným krokem h. Hodnoty a, b, h zadané z klávesnice. Tabulka musí obsahovat následující sloupce: sériové číslo, hodnota argumentu X, funkční hodnota, zpráva o rostoucí nebo klesající funkci, rozdíl dvou sousedních funkčních hodnot.

Určete maximální a minimální hodnoty funkce.

1. a=-p; b=p; h = 0,4.

2. a=0,7; b = 1,8; h = 0,1.

3. a = -0,5; b = 2,5; h = 0,2.

4. a = -0,9; b = 2,7; h = 0,3.

5. a=-2; b = 0,8; h = 0,2.

6. a = -1,9; b = 2,7; h = 0,3.

7,a = -0,4 p; b = 0,4 p; h = 0,5.

8. a = -0,3 p; b = 1,3 p; h=p/10.

9. a=-p/2; b=p/2; h=p/10.

10. a = -3; b=3; h = 0,5.

PROGRAMOVÁNÍ CYKLICKÝCH POČÍTAČOVÝCH PROCESŮ

Základní informace

Je volán proces, ve kterém se jeden příkaz nebo skupina příkazů provádí opakovaně s různými hodnotami argumentu cyklický proces. VBA používá příkazy smyčky k provádění opakujících se akcí, které jsou následujících typů:

operátor smyčka s parametrem For - Next , jehož konstrukce se používá, pokud je předem známo, kolikrát se má tělo smyčky opakovat:

For counter = start_value Then end_value Krok krok příkaz_blok

Dále s dámou

operátory smyčka s předpokladem nebo postcondition, které se používají k organizaci smyčky s neznámým počtem opakování těla smyčky:

Design smyčky

Design smyčky

s podmínkou vypadá takto:

s postpodmínkou vypadá takto:

Udělejte podmínku

výpis_blok

výpis_blok

Smyčka při stavu

Dělejte do stavu

výpis_blok

výpis_blok

Stav smyčky do

zatímco podmínka

výpis_blok

Vypracujeme vlastní formulář a sestavíme program pro stanovení indexu ziskovosti navrhovaného investičního projektu na obnovu zařízení, pokud je výše počáteční investice (IP) 10 000 tisíc rublů, diskontní sazba r = 10% a očekávaná hotovost toky jsou následující:

Peněžní tok (CFk B ),B tisíc rublů

Nechte uživatelský formulář vypadat (obr. 1) a hodnoty peněžních toků v 1. - 5. roce se načtou z buněk listu "Příklad 1" (obr. 2).

Vlastnosti objektů formuláře jsou uvedeny v tabulce 1.

Rýže. 1. Formulář „Index ziskovosti

ziskovost

investiční projekt"

vypočítané podle vzorce

∑n

DPk

IR =

k = 1 (1+r)

kde n je počet let, během kterých budou přicházet peněžní příjmy.

Rýže. 2. Tabulka rozdělení peněžních toků

stůl 1

Vlastnictví

Vlastnictví

Titulek = Index pronájmu-

Titulek = Počáteční velikost

investiční životaschopnost

investice

projekt

Titulek = Diskontní sazba

Titulek = Index ziskovosti

Titulek = Jasný

Titulek = Konec

Pro zpracování události stisknutí tlačítka "Vypočítat" zadejte následující

Private Sub calc_Click()

‘nastavení typu proměnných

Dim pv, dp, i, n Jako celé číslo

Dim r, s Jako Single

„číst hodnoty proměnných

pv = Val(txtPV.Text)

r = Val(txtSD.Text) / 100

n = Val(InputBox("Zadejte počet let, během kterých

Přijít

měnový

účtenky", "Zadávání údajů"))

„čtení hodnot peněžních toků

dp = buňky(2, i + 2)

'shrnutí

txtIR.Text = Round(s / pv, 2) 'zaokrouhlit a vytisknout výsledek

Funkce Zaokrouhlit(N, k) zaokrouhlí N na k desetinných míst.

Dále pomocí prvku tlačítka panelu nástrojů Řízení Umístíme pod tabulku tlačítko "Otevřít formulář" pro spuštění procedury "Formulář indexu ziskovosti" (obr. 3). Kód pro tento postup vypadá takto:

Private Sub FormIndexProfitability_Click()

Rýže. 3. Stanovení indexu rentability investičního projektu

Vytvořeným tlačítkem „Otevřít formulář“ spustíme formulář a vypočítáme index ziskovosti investičního projektu (obr. 3).

Vyvineme vlastní formulář a napíšeme program, který najde všechna dvouciferná čísla, jejichž součet druhých číslic je dělitelný 13.

Pro vytvoření tohoto uživatelského formuláře přejdeme do editoru VB (zůstaneme ve stejném sešitu MS Excel jako v příkladu 1) a přidáme další formulář (obr. 4).

Vlastnosti objektů formuláře jsou uvedeny v tabulce 2.

Pro zpracování událostí kliknutí na tlačítko

následující kód:

Private Sub calc_Click()

Rýže. 4. Vytvořte například 2

Label2.Caption = ""

„určení první číslice dvouciferného čísla

„určení druhé číslice dvouciferného čísla

If (i1^2+i2^2) Mod 13=0 Then Label2.Caption = Label2.Caption+Str(i)+" "

Private Sub clean_Click()

Label2.Caption = ""

Private Sub exitForm_Click()

tabulka 2

Vlastnictví

Titulek = Příklad 2

Titulek = Dvojčíslí, součet

čtverce, jejichž číslice jsou dělitelné 13

TextAlign = 2-fmTextAlignCenter

titulek = „ “

autosize=false

Vlastnictví

Titulek = Jasný

Titulek = Konec

Na pracovním listu "Příklad 2" místo

tlačítko "Otevřít formulář" pro vyvolání formuláře

"Příklad 2" a spusťte tento formulář (obr.

Budeme se rozvíjet

Zvyk

rozhraní

a udělat

program pro vás

součty řádků:

výpočty s přesností ε = 10P

k + 2

S = ∑

(− 1)

k = 1

Zůstaňte ve stejném excelovém sešitu

jako v příkladech 1 a 2. Pomocí nástroje

Rýže. 5. Dvouciferná čísla, součet druhých mocnin

policisté „Nápis“, „Pole“ a „Tlačítko“ pa-

počet číslic, který je dělitelný 13

panely nástrojů

Prvky

řízení

umístíme odpovídající objekty na pracovní list "Příklad 3" (obr. 6).

Vlastnosti listových objektů "Příklad 3" jsou uvedeny v tabulce 3.

Tabulka 3

Vlastnictví

Vlastnictví

Titulek = součet řádku

Titulek = Jasný

Chcete-li zpracovat události stisknutí tlačítek "Vypočítat" a "Vymazat", zadejte do modulu "List3 (příklad 3)" následující kód programu:

eps = Val(InputBox("Nastavit přesnost", "Vstup"))

a = (-1) ^ (k + 2) / (f * 2 ^ k) s = s + a

Smyčka txtS.Text = s

Private Sub clean_Click() txtS.Text = ""

Zde bude tělo Do While - Loop

bude provedeno

období

absolutní

k + 2

n− 1

k + 2

n+ 2

velikost (tj.

(− 1)

−∑

(− 1)

(− 1)

) vůle

Rýže. 6. Výpočet součtu

k = 1

k = 1

překročit stanovenou přesnost 10 P

Zkontrolujeme fungování programu (obr. 7).

Budeme se rozvíjet

Zvyk

Pojďme napsat program, který vyřeší následující problém.

Při analýze ekonomické aktivity před

nainstalováno

další

pravidelnost: v lednu 2004 zisk tohoto

podniky činily 573 tisíc rublů. a během

na příštích 5 let navýšeno měsíčně o i%,

kde i je číslo měsíce (tj. v únoru - o 2 %, v březnu

- o 3 %, atd.), ve srovnání s výší zisku v

Rýže. 7. Výsledek výpočtu

předchozí měsíc.

Určete přijaté před

řadové součty

přijetím výše zisku za roky 2004, 2005, ..., 2008, jakož i celkové výše zisku za těchto 5 let.

Pro vytvoření tohoto uživatelského formuláře přejdeme do editoru VB (zůstaneme ve stejném sešitu MS Excel jako v příkladech 1-3) a přidáme další formulář (obr. 8). Výstup vypočtených hodnot zisku podniku bude proveden jak v poli objektu seznamu (ListBox), umístěném na formuláři, tak v buňkách listu "Příklad 4" (obr. 9 ).

Rýže. 8. Formulář „Zisk podniku“ Obr. 9. Tabulka například 4

Vlastnosti objektů formuláře jsou uvedeny v tabulce 4.

Tabulka 4

Vlastnictví

Vlastnictví

Titulek = Zisk podniku

Titulek = Jasný

Titulek = Konec

Poznámka. Vlastnost ColumnCount určuje počet sloupců v objektu ListBox.

Pro zpracování událostí stisknutí tlačítek "Vypočítat", "Vymazat" a "Vy-

move" zadejte následující kód:

Private Sub calc_Click() Dim i, j As Integer

Dim PrM, prG, sPr As Single

PrM = Val(InputBox("Zadejte zisk získaný v lednu 2004", "Vstup"))

ListBox používá k přidání položek do seznamu metodu AddItem

ListName.AddItem Expression , Index

kde Expression je prvek seznamu, který se má přidat; Index je pořadové číslo prvku v seznamu (číslování prvků seznamu začíná od 0).

A vlastnost List (LineNumber, ColumnNumber) objektu ListBox vrátí (přiřadí) prvek seznamu na průsečíku zadaného řádku a sloupce.

Na pracovním listu "Příklad 4" umístěte tlačítko "Otevřít formulář" pro vyvolání formuláře "Enterprise Profit" a spusťte tento formulář (obr. 10).

Nyní můžete do sešitu MS Excel přidat další list s názvem „Obsah“, na kterém například pomocí nástroje Tlačítko na panelu nástrojů Formuláře vytvoříme čtyři tlačítka: „Index ziskovosti“, „Dvouciferná čísla“, „ Řádkový součet“, „Ziskové podniky“.

V editoru VB přidáme nový modul (Vložit → Modul ), do kterého zadáme následující kód:

Veřejný seznam dílčích příkladů1()

Pracovní listy("Příklad 1").Aktivovat

ListPr.AddItem "Rok", 0

‘nastavit počáteční podpisy a data

ListPr.List(0, 1) = "Zisk, tisíc rublů."

„cyklovat po letech

„cyklovat měsíce každého roku

Jestliže (i = 4) A (j = 1) Pak

PrM = PrM * (1 + j / 100)