Programování cyklických výpočetních procesů v přístupu. Cyklické výpočetní procesy

Objektivní:

Naučte se cyklické operátory pro, while, do - while, naučte se skládat a programovat cyklické algoritmy.

Stručný teoretické informace

Smyčkové operátory se používají, když je nutné několik akcí (operátory a operace) opakovat několikrát, a takové části algoritmů se nazývají smyčky.

Pro operátora smyčky

Hlavní forma operátoru smyčky for je

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

operátor;

kde výraz_1 - počáteční hodnota parametru cyklu;

výraz_2 - kontrola stavu pro pokračování cyklu;

výraz_3 - změna parametru cyklu (korekce);

operátor - jednoduchý nebo složený operátor jazyka C.

Operátorovo operační schéma je následující: výraz_1 se vypočítá pouze jednou, potom se zkontroluje výraz_2, a pokud má hodnotu „true“, provede se cyklická část programu, parametr se opraví atd., Dokud výraz_2 nezíská hodnotu „false“.

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

printf („\\ n% d“, k);

V důsledku provedení tohoto operátoru jsou ve sloupci vytištěna čísla od 1 do 4.

Jako parametr smyčky lze použít proměnnou jakéhokoli základního typu.

Například:

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

printf („% c“, ch); // latinka

Je nutné pečlivě kontrolovat strukturu smyček for v programu, aby nevyšla nekonečná smyčka (ze které není východ).

například:

pro (k \u003d 10; k\u003e 6; k ++)

printf („nekonečná smyčka \\ n“);

Ukončete smyčku před plánovaným časem následujícími způsoby:

Další podmínkou;

Pomocí následujících operátorů:

přestávka;- výstup ze smyčky, ve které se nachází přerušení, kontrola je přenesena do prvního provedeného příkazu po smyčce;

exit (int Kod);- ukončení programu;

vrátit se; - ukončení funkce;

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

Brzy dokončení aktuálního kroku cyklu možné s další podmínkou nebo operátorem pokračovat, který přeruší provádění aktuálního kroku smyčky, tj. přeskočí příkazy ze zbytku smyčky a přenese kontrolu do příkazu hlavy smyčky pro opravu parametrů a kontrolu stavu

Je zakázáno přenášet ovládání zvenčí uvnitř smyčky.

Jakýkoli z výrazů ve smyčce for v závorkách může chybět, ale znak „;“ nelze vynechat.

například:

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

put („Ahoj!“);

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

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

While (podmínka)

operátor;

kde operátor

Smyčka se provede, dokud se podmínka stane pravdivou, tj. výraz v závorkách vrátí nenulový výsledek. Toto je smyčka s předpokladem - nejprve se zkontroluje podmínka, poté se provede příkaz. Proto se smyčka while 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;

while (podmínka);

kde operátor Je jednoduchý, složený nebo prázdný operátor.

Operátor dělatzatímco - operátor smyčky s podmínkou, tj. příkaz je proveden jako první a poté je podmínka zkontrolována na true. Jelikož je podmínka ve smyčce do - while kontrolována na konci smyčky, bude smyčka provedena alespoň jednou.

Ve smyčkách typu while a do - while jsou povoleny stejné metody předčasného opuštění smyčky a předčasného ukončení aktuálního kroku smyčky jako v příkazu for, ale v druhém případě je na rozdíl od smyčky for přenesena kontrola ke kontrole stavu. Aby se zabránilo nekonečné smyčce uvnitř smyček while a do - while, je nutné zajistit změnu proměnných obsažených v podmínce.

Například:

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

if (i% 5! \u003d 0) continue;

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 (number_not_0); // Vždy pravda!

Mezi operátory smyčky musí existovat podmínka ukončení.

Vnořené smyčky

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

pro (i \u003d nn; i

pro (j \u003d mn; j

operátor;

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

Příklad:

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

pro (j \u003d 1; j<4;j++)

printf („\\ n% d *% d \u003d% 2d“, i, j, i * j);

printf („\\ n“);

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

Vypočítat. Program by měl tisknout průběžné a konečné výsledky.

Text programu může vypadat

#zahrnout

#zahrnout

put („Enter N“);

scanf („% d“, & N);

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

(// nat a dvojité přiřazení

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

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

Možnosti pro jednotlivé úkoly

Vytvořte program k definování tabulky hodnot funkcí v v libovolném rozsahu [ a,b] změny argumentu xs libovolným krokem h... Hodnoty a, b, hvstoupil z klávesnice. Tabulka musí obsahovat následující sloupce: ordinal, argument value x, hodnota funkce, zpráva o zvýšení nebo snížení funkce, rozdíl dvou sousedních hodnot funkce.

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

1. a \u003d -p; b \u003d p; h \u003d 0,4.

2. a \u003d 0,7; b \u003d 1,8; h \u003d 0,1.

3. a \u003d -0,5; b \u003d 2,5; h \u003d 0,2.

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

5. a \u003d -2; b \u003d 0,8; h \u003d 0,2.

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

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

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

9. a \u003d -p / 2; b \u003d p / 2; h \u003d p / 10.

10. a \u003d -3; b \u003d 3; h \u003d 0,5.

PROGRAMOVÁNÍ CYKLICKÝCH PROCESŮ VÝPOČTU

Základní informace

Proces, ve kterém je jeden příkaz nebo skupina příkazů proveden vícekrát pro různé hodnoty argumentů, se nazývá cyklický proces... VBA používá opakování příkazů k provádění opakovaných akcí, které jsou následujících typů:

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

For counter \u003d start_value That end_value Step step statement_block

Dále s počítadlem

operátory smyčka s předpoklademnebo postcondition, který se používá k uspořádání smyčky s neznámým počtem opakování těla smyčky:

Konstrukce smyčky

Konstrukce smyčky

s podmínkou má formu:

s podmínkou je:

Podmínka Do While

statement_block

statement_block

Stav Loop While

Podmínka Do

statement_block

statement_block

Podmínka Loop Until

Zatímco podmínka

statement_block

Vypracujeme vlastní formulář a vypracujeme program pro stanovení indexu ziskovosti navrhovaného investičního projektu na modernizaci zařízení, pokud je výše počáteční investice (IP) 10 000 tisíc rublů, diskontní sazba r \u003d 10% a odhadované peněžní toky jsou následující:

Peněžní tok (ДПk B), B tisíc rublů

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

Vlastnosti tvarových objektů jsou uvedeny v tabulce 1.

Obr. 1. Formulář „Index ziskovosti

ziskovost

investiční projekt "

vypočteno podle vzorce

.N

DPk

IR \u003d

k \u003d 1 (1+ r)

kde n je počet let, během nichž přijdou peněžní příjmy.

Obr. 2. Tabulka rozdělení peněžních toků

stůl 1

Vlastnictví

Vlastnictví

Titulek \u003d anuitní index

Titulek \u003d Počáteční velikost

ziskovost investice

investice

th projekt

Titulek \u003d Diskontní sazba

Titulek \u003d Index ziskovosti

Titulek \u003d jasný

Titulek \u003d Konec

Chcete-li zpracovat událost kliknutí na tlačítko „Vypočítat“, zadejte následující

Soukromý dílčí výpočet_Click ()

„Nastavení typu proměnných

Dim pv, dp, i, n As Integer

Dim r, s jako svobodný

„Přečíst hodnoty proměnných

pv \u003d Val (txtPV.Text)

r \u003d Val (txtSD.Text) / 100

n \u003d Val (InputBox ("Zadejte počet let, po který

přijít

hotovost

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

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

dp \u003d Buňky (2, i + 2)

„shrnutí

txtIR.Text \u003d Round (s / pv, 2) „zaokrouhlit a vytisknout výsledek

Funkce Round (N, k) zaokrouhlí N na k desetinná místa.

Dále pomocí prvku tlačítka panelu nástrojů Ovládací prvkyumístíme tlačítko „Otevřít formulář“ pod tabulku pro zahájení procedury „Formulář indexu ziskovosti“ (obr. 3). Kód tohoto postupu je:

Soukromý podformulář Profit Index_Click ()

Obr. 3. Stanovení indexu ziskovosti investičního projektu

Pomocí vytvořeného tlačítka „Otevřít formulář“ spusťte formulář a vypočítejte index ziskovosti investičního projektu (obr. 3).

Vypracujeme vlastní formulář a sestavíme program pro vyhledání všech dvouciferných čísel, jejichž součet čtverců je dělitelný 13.

Chcete-li vytvořit tento vlastní formulář, přejděte do editoru VB (zůstaňte ve stejném sešitu MS Excel jako v příkladu 1) a přidejte další formulář (obr. 4).

Vlastnosti tvarových objektů jsou uvedeny v tabulce 2.

Zpracování událostí kliknutí na tlačítko

následující kód:

Soukromý dílčí výpočet_Click ()

Obr. 4. Formulář například 2

Label2.Caption \u003d ""

„Definice první číslice dvouciferného čísla

„Definice druhé číslice dvouciferného čísla

If (i1 ^ 2 + i2 ^ 2) Mod 13 \u003d 0 Pak Label2.Caption \u003d Label2.Caption + Str (i) + ""

Soukromý sub clean_Click ()

Label2.Caption \u003d ""

Soukromý výstup SubForm_Click ()

tabulka 2

Vlastnictví

Titulek \u003d Příklad 2

Titulek \u003d Dvouciferná čísla, součet

čtverce čísel dělitelné 13

TextAlign \u003d 2-fmTextAlignCenter

Titulek \u003d „“

AutoSize \u003d False

Vlastnictví

Titulek \u003d jasný

Titulek \u003d Konec

Na listu „Příklad 2“ umístěte

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 skládat

program pro vás

série součty:

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

k + 2

S \u003d ∑

(− 1)

k \u003d 1

Zůstaňme ve stejném sešitu aplikace Excel,

jako v příkladech 1 a 2. Použití nástroje

Obr. 5. Dvouciferná čísla, součet čtverců

policajti „Nápis“, „Pole“ a „Tlačítko“

jejichž čísla jsou dělitelná 13

žádné nástroje

Elementy

řízení

umístěte odpovídající objekty do listu „Příklad 3“ (obr. 6).

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

Tabulka 3

Vlastnictví

Vlastnictví

Titulek \u003d Součet sérií

Titulek \u003d jasný

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

eps \u003d Val (InputBox ("Nastavit přesnost", "Zadávání dat"))

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

Smyčka txtS.Text \u003d s

Soukromý sub clean_Click () txtS.Text \u003d ""

Tady bude tělo Do While - Loop

vykonat,

období

absolutní

k + 2

n− 1

k + 2

n + 2

hodnota (tj.

(− 1)

−∑

(− 1)

(− 1)

) bude

Obr. 6. Výpočet částky

k \u003d 1

k \u003d 1

překročit stanovenou přesnost 10 P

Podívejme se na práci programu (obr.7).

Budeme se rozvíjet

zvyk

vytvořme program k vyřešení následujícího problému.

Při analýze ekonomických aktivit

nainstalován

další

vzor: v lednu 2004 zisk tohoto

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

následujících 5 let vzrostlo o i% měsíčně,

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

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

Obr. 7. Výsledek výpočtu

předchozí měsíc.

Určete přijaté pre-

součet série

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

Chcete-li vytvořit tento vlastní formulář, přejděte do editoru VB (zůstaňte ve stejném sešitu MS Excel jako v příkladech 1-3) a přidejte ještě jeden formulář (obr.8). Výstup vypočítaných hodnot zisku podniku bude proveden jak v poli objektu ListBox umístěném na formuláři, tak v buňkách listu „Příklad 4“ (obr. 9).

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

Vlastnosti tvarových objektů jsou uvedeny v tabulce 4.

Tabulka 4

Vlastnictví

Vlastnictví

Titulek \u003d Zisk podniku

Titulek \u003d jasný

Titulek \u003d 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:

Soukromý sub calc_Click () Dim i, j jako celé číslo

Dim PrM, prG, sPr jako Single

PrM \u003d Val (InputBox ("Zadejte zisk přijatý v lednu 2004", "Zadání dat"))

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

ListName.AddItem Expression, Index

kde Výraz je položka seznamu, která má být přidána; Rejstřík - pořadové číslo prvku v seznamu (číslování prvků seznamu začíná od 0).

Vlastnost List (LineNumber, ColumnNumber) objektu ListBox vrací (přiřadí) položku seznamu na křižovatce zadaného řádku a sloupce.

Na listu „Příklad 4“ umístěte tlačítko „Otevřít formulář“, čímž vyvoláte formulář „Zisk podniku“ a spustí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í tlačítka Nástroj na panelu nástrojů Formuláře vytvoříte čtyři tlačítka: „Index ziskovosti“, „Dvouciferná čísla“, „Součet sérií“, „Zisk podniky “.

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

Příklad veřejného listu 1 ()

Pracovní listy („Příklad 1“). Aktivujte

ListPr.AddItem "Year", 0

„Nastavit počáteční podpisy a data

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

„Cyklujte roky

„Cyklujte po měsících každého roku

If (i \u003d 4) And (j \u003d 1) Then

PrM \u003d PrM * (1 + j / 100)

Úkol číslo 2

Programování větvících se výpočetních procesů

Objektivní

Získejte programovací dovednosti pro větvení výpočetních procesů. Prozkoumejte podmíněné příkazy, logické proměnné, logické vztahy a operace.

Nechť je na rovině x, y uvedena oblast D. Je nutné určit, zda bod se souřadnicemi (x, y) „spadne“ do oblasti D nebo ne. Pokud zasáhne, je nutné vypočítat funkci a proměnnou M, jejíž hodnota je znamením „zasáhnout“ nebo „nezasáhnout“, přiřadit hodnotu M \u003d 1. Jinak vypočítejte a nastavte M \u003d 2.

Pracovní proces

Algoritmus pro řešení problému:

1. Vypište oblast D a zapište funkce a

2. Napište rovnice definující hranice oblasti

3. Připravte 7 bodů tak, aby některé body byly uvnitř D a některé mimo něj.

4. Napište program k dokončení úkolu.

5. Získejte a zaznamenejte výsledky počítání pro vybrané body.

f 1 \u003d tg (x) / e y f 2 \u003d

(x\u003e 0 a y\u003e 0 a X ** 2 + Y ** 2<=9) или (x<0 и y>0 a y<=x+4) или (x<0 и y<0 и x>(-4) a y\u003e (- 2))

pak bod patří doméně D

1)(1;1)
2)(3;3)
3)(-1;2)
4)(-5;2)
5)(-2;-1)
6)(-5;-3)

Fortran MathCAD
X y z m C z m C
0,1573E + 01 T 1.573
0,0751E + 01 F 0.751
-1 -0,1211E + 01 T -1.211
-5 0,083E + 01 F 0.83
-2 -1 0,394E + 01 T 3.94
-5 -3 0,0282E + 01 F 0.282
-3 0,0271E + 01 F 0.271

PRINT *, "X \u003d?, Y \u003d?"; PŘEČTĚTE si *, X, Y

C \u003d (x\u003e 0..a. Y\u003e 0..a.X ** 2 + Y ** 2<=9).or.(x<0..and.y>0..a.y.<=x+4).or.(x<0..and.y<0..and.x>(-4). A.y\u003e (- 2))

TISK 2, X, Y, Z, C, M

2 FORMÁT ("X \u003d", F7,3,3X, "Y \u003d", F7,3,3X, "Z \u003d", E11,4,3X, "C \u003d", L2,3X, "M \u003d", I2 /)

KONEC PROGRAMU LAB2

FUNKCE F1 (X, Y)

F1 \u003d opálení (x) / exp (x) ** r

FUNKCE F2 (X, Y)

F2 \u003d (sqrt (sin (2 * x + 3 * y) ** 2) ** 1./3.)

print *, "a, b, c \u003d?"; read "(2F7.3)", a, b, c

q \u003d a\u003e b.and.a

a c

w \u003d b\u003e a. a. b

b c

e \u003d c\u003e a.and.c

c b

28.,558.,345. 345.0000


Úkol číslo 3

Programování cyklických výpočetních procesů

Objektivní

Získejte dovednosti v programování cyklických výpočetních procesů. Prozkoumejte krokové smyčky a podmíněné smyčky.

1. Zapište si výpočetní vzorce pro výpočet termínu a konečné částky

2. Vytvořte algoritmus pro výpočet s danou přesností součet konečného počtu členů řady ve specifikovaném variačním rozsahu parametru x s \u200b\u200bdaným krokem. Krok získáte vydělením rozsahu x 10.

3. Vytvořte program pro řešení problému. V programu pro každou hodnotu x zajistěte výpočet přibližného i přesného součtu odpovídající řady y podle vzorce uvedeného v tabulce.

přesnou hodnotu součtu řady a také počet sečtených členů.

Pracovní proces

1. Nastavte začátek x0 cyklu a konec xl cyklu

2. Krok h nastavíme podle vzorce

4. Vytvořte program pro opakované řešení problémů

5. Vytvořte tabulku přijatých dat

Vzorec řady:

Vzorec pro přesný výpočet součtu: π / 4

1.x0 \u003d π / 10 xk \u003d 9 π / 10

3.


real :: a, b, c, eps, h, s, x, x0, xk, y, str

b \u003d (sin * (x) * (2 * n) -1 + sin * ((2 * n-1) * x)) / 4 * n-2

pokud (abs (a)

tisk 2, x, s, y, n; napište (1,2) x, s, y, n

end do 2 format ("x \u003d", f6.3,3x, "s \u003d", e10.3,3x, "y \u003d", e10.3,3x, "n \u003d", i5)

ukončit program lab3


X S (x) y
0.314 0.324 0.785
0.565 0.622 0.785
0.817 0.979 0.785
1.068 1.404 0.785
1.319 1.43 0.785
1.57 -19.257 0.785
1.821 -533.961 0.785
2.072 -8 624 E + 3 0.785
2.324 -9,986 E + 4 0.785
2.575 -8,928E + 5 0.785
2.826 -6,477E + 6 0.785

Laboratorní práce č. 2

"Programování cyklických výpočetních procesů"

Objektivní

Operátory učení smyčky v C ++.

Teoretická část

Cyklus - druh struktury řízení v programovacích jazycích na vysoké úrovni, který je určen k organizaci opakovaného provádění sady pokynů. Smyčku lze také nazvat libovolnou posloupností instrukcí, které lze provádět opakovaně, organizovaným jakýmkoli způsobem.

Je volána sada instrukcí určených k opakovanému provádění tělo cyklu ... Je vyvoláno provedení těla smyčky jednou opakování ... Je volán výraz, který určuje, zda bude iterace provedena znovu, nebo smyčka skončí podmínka ukončení nebo podmínka pro konec cyklu. Volá se proměnná ukládající aktuální číslo iterace čítač iterací cyklus nebo jen čelit cyklus. Smyčka nemusí nutně obsahovat čítač, může existovat více než jedno počítadlo - podmínka pro opuštění smyčky může záviset na několika proměnných změněných ve smyčce.

Provedení jakékoli smyčky zahrnuje počáteční inicializaci proměnných smyčky, kontrolu podmínky ukončení, provedení těla smyčky a aktualizaci proměnné smyčky při každé iteraci. Kromě toho většina programovacích jazyků poskytuje prostředky pro časné ovládání smyčky, například příkazy ukončení smyčky, to znamená odchod ze smyčky bez ohledu na pravdivost podmínky ukončení (v C, přerušení) a operátory pro přeskočení iterace (v C, pokračování).

Existují následující typy cyklů.


1. Bezpodmínečné cykly.Cykly , výstup, který není poskytován logikou programu. Vzhledem ke své atypické povaze programovací jazyky neposkytují speciální syntaktické nástroje pro vytváření nekonečných smyček, proto se takové smyčky vytvářejí pomocí konstrukcí určených k vytváření obyčejných (nebo podmiňovací způsob) cykly. Například C používá smyčku pro (;;) s prázdnými částmi.

2. Podmíněné smyčky.Jedná se o smyčky, jejichž provádění je řízeno nějakou podmínkou kontrolovanou na začátku nebo na konci těla smyčky. Podmíněné smyčky lze tedy předběžně stabilizovat a dodatečně upravit. Smyčka s předpokladem je smyčka, která se provádí, pokud je splněna určitá podmínka zadaná před jejím začátkem. Tento stav je zkontrolován před provedení těla smyčky, takže tělo nemusí být provedeno ani jednou (pokud je podmínka od samého začátku falešná). Ve většině procedurálních programovacích jazyků je implementován operátorem zatímco, proto jeho druhé jméno - while-loop. V C ++ taková smyčka vypadá takto:

zatímco (<условие>)

<тело цикла>

Smyčka s podmínkou - smyčka, ve které je kontrolován stav po provedení těla smyčky. To znamená, že smyčka je vždy provedena alespoň jednou. V Pascalu je tato smyčka implementována operátorem opakujte..do té doby, v C - dělat, zatímco, např .:

<тело цикла>

zatímco (<условие продолжения цикла>);

Existují určité rozdíly v použití podmínky smyčky s podmínkou v různých jazycích. V Pascalu a jazycích z něj odvozených je podmínka takového cyklu interpretována jako podmínka ukončení - smyčka končí, když je podmínka splněna. V C - jak podmínka pokračování (smyčka končí, když je podmínka nepravdivá; takové smyčky se někdy nazývají „bye loop“).

Smyčka ze středu je nejběžnější forma podmíněné smyčky. Syntakticky je taková smyčka formátována pomocí tří konstruktů: začátek smyčky, konec smyčky a příkaz k ukončení smyčky. Počáteční konstrukt definuje bod v programu, ve kterém začíná tělo smyčky, koncový konstrukt definuje bod, kde tělo končí. Uvnitř těla musí být příkaz k opuštění smyčky, když je spuštěna, smyčka končí a ovládací prvek je přenesen na operátora následujícího po konci konstrukce smyčky. Přirozeně, aby se smyčka prováděla vícekrát, neměl by se příkaz exit volat bezpodmínečně, ale pouze když je splněna podmínka ukončení smyčky.

Hlavním rysem tohoto typu smyčky je to, že část těla smyčky umístěná po začátku smyčky a před provedením příkazu exit je vždy provedena (i když je podmínka ukončení smyčky pravdivá při první iteraci) a část těla smyčky umístěná po příkazu exit není provedena, když poslední iterace. Pomocí smyčky s výstupem ze středu můžete snadno simulovat smyčku s předpokladem (umístěním příkazu exit na začátek těla smyčky) a smyčku s postcondicí (umístěním příkazu exit na konec těla smyčky).

Smyčka s čítačem je smyčka, ve které proměnná s určitým krokem změní svou hodnotu z dané počáteční hodnoty na konečnou hodnotu a pro každou hodnotu této proměnné se tělo smyčky provede jednou. Ve většině procedurálních programovacích jazyků je implementován operátorem pro, který označuje počitadlo (tzv. „proměnná cyklu“), požadovaný počet průchodů (nebo mezní hodnotu počitadla) a případně krok, kterým se počítadlo mění.

V některých jazycích, například, C a další pocházeli z tohoto cyklu pronavzdory syntaktické formě smyčky čítače je to ve skutečnosti předem připravená smyčka. To je v C konstrukce smyčky:


pro (i \u003d 0; i< 10; ++i)

Tělo smyčky

je vlastně jiná forma psaní stavby:

zatímco já< 10)

Tělo smyčky

To znamená, že ve struktuře for se nejprve zapíše libovolný příkaz inicializace smyčky, pak - podmínka pokračování a nakonec nějaká operace provedená po každém těle smyčky (nemusí to být změna čítače; může to být úprava ukazatele nebo nějaká zcela cizí operace). U jazyků tohoto druhu lze výše popsaný problém vyřešit velmi jednoduše: proměnná čítače se chová zcela předvídatelným způsobem a po skončení smyčky si zachovává svoji poslední hodnotu.

Organizace smyček v C ++

1. Smyčka for.

Je vhodné použít smyčku for, když je předem znám požadovaný počet iterací. Syntaxe pro tento operátor je:

for (akce před zahájením smyčky;

podmínka pokračování smyčky;

akce na konci každé iterace smyčky) (

instrukce smyčky;

instrukce smyčky 2;

instrukce smyčky N;

U této položky existuje speciální případ (s počítadlem):

for (counter \u003d value; counter< значение; шаг цикла)

tělo smyčky;

Nejprve je čítači přiřazena počáteční hodnota, následovaná středníkem. Poté je nastavena koncová hodnota počitadla smyčky. Jakmile čítač dosáhne stanoveného limitu, cyklus končí. Poté je nastaven krok cyklu - hodnota, o kterou se počítadlo cyklu bude s každým průchodem zvyšovat nebo snižovat.

Příklad: Počítání součtu všech čísel od 1 do 1000.

#zahrnout

pomocí jmenného prostoru std;

int i; // počitadlo smyčky

int součet \u003d 0; // součet čísel od 1 do 1000.

setlocale (0, "");

pro (i \u003d 1; i<= 1000; i++) // задаем начальное значение 1, конечное 1000 и задаем шаг цикла - 1.

cout<< "Сумма чисел от 1 до 1000 = " << sum << endl;

2. Smyčka while.

Organizace cyklu zatímco nebo dělat, zatímcoje vhodné jej použít, když požadovaný počet iterací není předem znám... Syntaxe smyčky zatímco v C ++ vypadá takto.

while (Podmínka) (

Tělo smyčky;

Tato smyčka bude provedena, dokud bude splněna podmínka uvedená v závorkách. Příklad implementace sčítání čísel od 1 do 1000 pomocí while smyčky:

#zahrnout

pomocí jmenného prostoru std;

setlocale (0, "");

zatímco já< 1000)

cout<< "Сумма чисел от 1 до 1000 = " << sum << endl;

3. Smyčka do while

Cyklus dělat, zatímco se liší od zatímcoskutečnost, že při provedení smyčky bude proveden jeden průchod smyčky bez ohledu na podmínku. Program pro řešení problému hledání součtu čísel od 1 do 1000 pomocí smyčky dělat, zatímco:

#zahrnout

pomocí jmenného prostoru std;

setlocale (0, "");

int i \u003d 0; // inicializuje čítač smyček.

int součet \u003d 0; // inicializuje počítadlo součtu.

do (// provést smyčku.

) zatímco já< 1000); // пока выполняется условие.

cout<< "Сумма чисел от 1 до 1000 = " << sum << endl;

1. Vytvořte program v C ++ pro řešení problému odpovídající zvolené možnosti.

2. Zadejte, odlaďte a zkompilujte program. Zkontrolujte, zda funguje správně.

1. Blokové schéma programového algoritmu.

2. Výpis programu s komentáři.

3. Výsledky kontrolních běhů.

Kontrolní otázky

1. Uveďte definici smyčky, těla smyčky, iterace.

2. Co je podmínka ukončení smyčky, iterační čítač?

3. Jaké fáze zahrnuje jakýkoli cyklus?

4. Jak funguje postkondiční smyčka?

5. Jak funguje předběžná smyčka?

6. Jak funguje počítadlo?

7. Jak je smyčka implementována pomocí příkazu for?

8. Jak je smyčka implementována pomocí příkazu while?

9. Jak je smyčka implementována pomocí příkazu do while?

1. Zobrazte následující posloupnost znaků

2. Zadejte posloupnost celých čísel (0 - konec posloupnosti), najděte rozdíl mezi nejmenšími mezi kladnými a největšími mezi zápornými čísly.

3. Zadejte posloupnost N celých čísel, najděte rozdíl mezi součinem lichých čísel a největším mezi zápornými čísly.

4. Zadejte posloupnost celých čísel, 0 - konec posloupnosti. Určete, zda posloupnost obsahuje alespoň dvě čísla, která jsou násobky 3, 5 a 7.

5. Zavádí se posloupnost N celých čísel. Najděte největší počet z násobků 11.

6. Zadejte sekvenci celých čísel, 0 - konec sekvence. Určete, zda posloupnost obsahuje alespoň tři záporná sudá čísla.

7. Zavádí se posloupnost N reálných čísel. Určete nejmenší číslo z čísel větších než 20.

8. Zadejte sekvenci celých čísel, 0 - konec sekvence. Vypočítejte počet kladných násobků 7 a ne násobků 5 a součet záporných prvků posloupnosti.

9. Zavádí se posloupnost N reálných čísel. Určete aritmetický průměr mezi prvky posloupnosti, které jsou násobky 7.

10. Zadejte posloupnost čísel, 0 - konec posloupnosti. Určete, zda sekvence striktně klesá.

12. Zadejte sekvenci celých čísel, 0 - konec sekvence. Určete, zda sekvence obsahuje alespoň dvě sousední kladná čísla.

13. Zavádí se posloupnost N reálných čísel. Určete, zda se v posloupnosti střídají znaky.

14. Zavádí se posloupnost N reálných čísel. Určete rozdíl mezi minimálními kladnými a maximálními zápornými prvky sekvence.

15. Najděte poslední tři násobky čtyř v rozsahu od 1 do N. Vypočítejte součet těchto čísel.

16. Zobrazte následující posloupnost znaků

18. Vypočítejte součin posledních tří čísel, která nejsou násobky 5 v rozsahu od N1 do N2.

19. Vypočítejte aritmetický průměr sudých čísel, která nejsou násobky čtyř v rozsahu od 1 do K.

V programování se často potýkáme s úkoly, ve kterých dochází k procesům, které se opakují. Proto musíme znát a být schopni používat takový koncept jako „ cyklické výpočetní procesy».

Pro začínajícího programátora bude snadné pochopit je pomocí zobecněného příkladu. Kromě toho je důležité si uvědomit, že ve všech programovacích jazycích existují způsoby, jak implementovat smyčky.

Co je to smyčka v programování?

Smyčka - v programování se to nazývá vícenásobné opakování stejných akcí nebo výpočtů, ale podle stejných závislostí s různými hodnotami proměnných.

S konceptem cyklu se setkáváme nejen v programování. V mnoha oblastech našeho života existují cykly.

Například koloběh vody v přírodě je přirozeným cyklem v našem životě.

Nyní se podívejme na obecná pravidla a koncepty používané ve výpočetních cyklech.

Fáze cyklického procesu

Cyklus by měl být obecně realizován ve 4 fázích:
  • Fáze 1 - příprava cyklu (inicializace).
    Nastavení počáteční hodnoty parametru a proměnné smyčky.
    Parametr smyčky - tato hodnota, která počítá počet kroků cyklu (počet opakování cyklu).
    Proměnná smyčky Je hodnota, která mění svou hodnotu v každé fázi cyklu.
    Inicializace Je přiřazení počátečních hodnot k parametru a proměnné smyčky.
  • Fáze 2 - tělo cyklu.
    Toto je vícenásobné opakování akce ve smyčce nebo výpočty pro stejné matematické závislosti s různými hodnotami proměnných.
  • Fáze 3 - úprava (změna) cyklu.
  • Fáze 4 - řízení cyklu.
    Toto je kontrola stavu pro pokračování nebo začátek cyklu.
V Pascalu jsou 3 operátoři smyček, kteří mohou implementovat libovolné algoritmická - cyklická struktura :
  1. Operátor smyčky s parametrem
  2. Operátor smyčky s předpokladem
  3. Operátor smyčky s podmínkou
Podrobně je budeme zvažovat v příštím článku.