Příkladem je nahrávání v algoritmickém jazyce. Výukový algoritmický jazyk

26.11.2023

Každý programovací jazyk je plný různých klíčových slov, funkcí nebo tříd. Zpravidla všichni používají angličtinu, která popisuje metody nebo argumenty. V některých prostředích existují jednoduše zkratky funkcí stroje. To značně brzdilo vývoj v počátečních fázích. Pro zvýšení rychlosti porozumění byla vytvořena řada speciálních algoritmických programovacích jazyků, které se skládaly ze srozumitelných a přístupných slov a jejich kombinací, srozumitelných i pro netrénovaného člověka.

Trocha historie

Pro komunikaci s prvními počítači se používaly programovací jazyky, které byly co nejblíže strojovému kódu, skládající se z nul a jedniček. Pamatovat si spoustu příkazů byl přirozeně velmi obtížný úkol. Navíc způsob alokace paměti při programování spočíval zcela na bedrech vývojáře. A pokud udělal malou chybu, musel vše předělat znovu.

Velkou roli v přechodu od strojového jazyka k jazyku vhodnějšímu pro člověka sehrál nízkoúrovňový assembler programovacího jazyka. Používala mnemotechnické pomůcky a symboly. To zjednodušilo úkol vývojáře, protože nyní mohl produktivněji budovat své algoritmy z kombinací řídicích instrukcí a číselných kódů. Přes veškerou svou flexibilitu a sílu byl jazyk stále obtížně zvládnutelný.

Pro výuku vývoje a algoritmů ve vzdělávacích institucích začalo zavádění programovacího jazyka BASIC. Obsahoval již mnoho příkazů a klíčových slov, které byly pro studenta srozumitelné. BASIC se stále používá k osvojení základů programování.

S vytvořením prvního algoritmického programovacího jazyka Algol se vývoj algoritmů výrazně zrychlil.

Jaký je algoritmus

Odstoupíme-li od suché teorie a definic, pak je algoritmus sled akcí zaměřených na řešení daného problému. Přes všechnu floridnost výrazu se s tímto pojmem člověk setkává každý den. Chcete-li například pít čaj, musíte dodržovat následující pořadí:

  1. Umístěte konvici na sporák.
  2. Počkejte, až se uvaří.
  3. Do vody nalijte vroucí vodu.
  4. Vložte čajový sáček do šálku.
  5. Přidejte potřebné množství cukru, mléka nebo medu.

Tato sekvence je velmi zjednodušená, ale představuje nejjednodušší algoritmus.

Stejně jako člověk je i počítač schopen vykonávat určitý sled úkolů. Aby jim však jasně rozuměl, je třeba vzít v úvahu, že počítač postrádá mnoho pojmů, které jsou lidem samozřejmé. Kromě toho musí algoritmus přesně popisovat všechny potřebné akce. K tomuto účelu slouží algoritmický jazyk, který vytváří jakýsi most mezi strojem a člověkem.

Vlastnosti a vlastnosti algoritmického jazyka

Algoritmický je formální jazyk, ve kterém jsou popsány algoritmy určené k provádění na počítačích. Obvykle není vázán na žádnou architekturu stroje. To pomáhá výrazně zlepšit a urychlit kódování. Pozoruhodným příkladem je algoritmický jazyk BASIC. Pascal a C se také ukázaly být populární díky své jednoduché syntaxi a rychlosti učení.

Struktura je implementována tak, že procedury popsané v kódu jsou prováděny jedna po druhé. Tedy jeden algoritmus – jeden úkol. Je to podobné jako při vytváření funkcí nebo metod v C a Javě.

Veškerý kód je vytvořen z klíčových slov, která popisují událost nebo proměnnou.

Rozdíly mezi strojovými a algoritmickými jazyky

Výrazným představitelem strojově závislého jazyka je assembler. Programování na něm spočívá v tom, že speciálními značkami označíte překladateli, co je třeba přesunout a kam nebo jakou datovou oblast vyplnit. Vzhledem k tomu, že syntaxe assembleru je více podobná strojové syntaxi, je poměrně obtížné v ní studovat a psát kód. Níže se můžete podívat, jak mohou vypadat příkazy pro různé procesory.

Proto byl vytvořen formální nebo algoritmický jazyk s velkým množstvím lidsky srozumitelných klíčových slov a jmen.

Klíčová slova

Algoritmický jazyk se skládá z klíčových slov, což jsou zkratky pro úplné označení akcí nebo proměnných. To vám umožní zkrátit délku kódu a zároveň jej zachovat srozumitelným.

  • Alg. Tímto klíčovým slovem začíná jakýkoli algoritmus. Popisuje název a v závorce uvádí, jaké argumenty jsou pro výpočet zapotřebí a jaký má být výsledek.
  • Arg. Označuje argumenty algoritmu. Odráží typ a název hodnoty, která bude použita v kódu.
  • Res. Toto klíčové slovo slouží k označení typu a názvu proměnné, do které bude potřeba umístit výsledek výpočtu.
  • Začátek Označuje okamžitý začátek provádění algoritmu. Trvá až do klíčového slova con. Celý interval od „startu“ do „konce“ se nazývá tělo aktuálního algoritmu.
  • Ošidit. Označuje, že algoritmus byl dokončen.
  • Dáno. Hovoří o některých funkcích a nuancích používání algoritmu nebo omezení. Zde můžete například určit, že délky porovnávaných řetězců musí být stejné. Použití klíčového slova „dáno“ je volitelné.
  • Nezbytné. Podrobnější popis toho, co by mělo být získáno jako výsledek provádění algoritmu. Stejně jako „dáno“, lze jej vynechat, ale pro vytvoření srozumitelnějšího a podrobnějšího kódu se jeho použití doporučuje.

Seznam těchto klíčových slov odkazuje na název a tělo algoritmu. A takto vypadají tokeny pro proměnné:

  • Cel. Typ proměnné typu Integer. Jejich rozsah by se měl pohybovat od -32768 do 32767.
  • Věc. Reálná čísla. Například s exponentem nebo zlomkovou částí.
  • Log. Toto klíčové slovo znamená, že bude použita booleovská proměnná, která může přijmout pouze „ano“ nebo „ne“.
  • Sim. To zahrnuje hodnoty s jednotlivými znaky, jako je "a", "3".
  • Lit. Řetězcové proměnné, které mohou obsahovat celé textové řetězce.
  • Tab. Označuje tabulku s daty určitého typu. Je to obdoba pole z jiných programovacích jazyků.

Další funkční slova

Následující seznam slov se používá k uspořádání mechanismů větvení a smyčkování.

  • Pro. Používá se k iteraci přes všechny hodnoty určitého rozsahu. Používá se pro cykly, tj. nepřetržité provádění libovolných procedur s daty.
  • Od a do. Označuje, který konkrétní rozsah hodnot by měl být iterován ve smyčce „for“.
  • sbohem. Používá se také k iteraci více hodnot. Používá se k práci, dokud není splněna určitá podmínka.
  • Nts a kts. „Nts“ v algoritmickém jazyce znamená začátek těla smyčky a „kts“ znamená konec. Mezi těmito dvěma klíčovými slovy jsou zabudovány postupy nezbytné pro výpočet.
  • Li. Toto slovo implementuje strukturu větvení. Tímto způsobem je možné určit průběh programu požadovaným směrem s přihlédnutím k podmínkám.
  • Buď jak buď. Dvě slova, která fungují s „kdyby“. Vestavěný je i odvětvovací mechanismus.
  • Výběr. Pohodlný nástroj pro větvení z několika hodnot stejného typu. Funguje ve spojení s klíčovým slovem „at“ a „jinak“.
  • Všechno. Označuje konec mechanismu větvení.
  • Vstupte. Toto klíčové slovo umožňuje uživateli zadávat proměnné hodnoty během provozu programu pro následné zpracování.
  • Závěr. Zobrazuje data na obrazovce.

Základní jazykové struktury

Algoritmický programovací jazyk pomáhá vytvářet různé struktury, které produkují výpočetní funkce ve vhodné formě. Obecně platí, že každý jazyk může používat několik specifických mechanismů a jejich kombinací.

Následující struktura

Při navrhování tohoto typu struktury dochází ke spouštění kódu přímo řádek po řádku. Obecný příklad lze vyjádřit takto:

alg Součet dvou čísel (arg int a, b, res int S)

výstup "S =", S

V tomto příkladu se vypočítá součet dvou čísel zadaných uživatelem. Na začátku slovo „alg“ označuje, že se algoritmus spouští, a stručně popisuje, co přesně dělá. V závorkách jsou definovány argumenty potřebné pro běh programu a proměnná, která bude sloužit jako kontejner pro uložení výsledků. Dále přichází klíčové slovo „start“, označující okamžité spuštění provádění výrazů a procedur. Vedle "start" můžete také definovat některé přechodné proměnné.

V těle algoritmu klíčové slovo "input" přijímá data od uživatele a zapisuje je do proměnných. Poté se sečtou a jejich součet se přiřadí S. Před ukončením algoritmu se výsledek programu zobrazí na obrazovce pomocí klíčového slova "output". Tento zápis v algoritmickém jazyce je typický pro mnoho dalších programovacích prostředí.

Struktura větvení

Tok programu nemusí být vždy prováděn řádek po řádku. Někdy je potřeba určit nebo změnit hodnotu určité proměnné v závislosti na situaci. Například za předpokladu, že x = 0, nedělte x.

Algoritmický programovací jazyk to dělá pomocí několika variantních konstrukcí a klíčových slov „pokud“, „pak“, „jinak“ nebo „výběr“. Za „if“ je nastavena podmínka, podle které bude určeno kritérium pro přesun do jiné větve. Například takto:

Tímto způsobem můžete měnit hodnoty proměnných v závislosti na dalších faktorech. Tento příklad plně nepokrývá všechny možné implementace. Proto se kromě konstrukce uplatňuje i klíčové slovo „jinak“. Umožňuje vám přejít na jinou větev, pokud podmínka nesplňuje vybraná kritéria.

jinak y = 0

To znamená, že v případě, kdy se x nerovná nule, bude y také resetováno na nulu, bez ohledu na hodnotu, kterou mělo předtím.

Vhodnějším prostředkem k provádění více možností je konstrukce „výběr“. Umožňuje vám třídit několik podmínek. Když se spustí jeden z nich, provede se pro něj určená akce.

při x = 0: y = 0

při x = 1: y = 1

při x = 2: y = 2

Tento příklad demonstruje závislost proměnné y na x. Program projde všechna data a porovná aktuální hodnotu x s ​​hodnotou zadanou v podmínce. Když je nalezena shoda, provede další akci. Tato konstrukce může být také kombinována s klíčovým slovem "else" pro flexibilnější řešení, když není splněna žádná z podmínek.

Cykly

Smyčky hrají v programování velmi důležitou roli. Bez implementace tohoto návrhu se neobejde téměř žádný vývoj. Smyčky obecně řeší problém opakovaného provádění podobných akcí s několika proměnnými. To se hodí například při plnění polí daty pomocí známého vzorce, jejich řazení nebo počítání některých hodnot.

Klíčové slovo „zatímco“ umožňuje uspořádat smyčku, ve které se bude určitá akce opakovat, dokud nebude splněna určitá podmínka. Například:

nts ahoj x<= 3

V tomto příkladu se y bude zvyšovat, dokud nebude x větší než 3. Aby smyčka nebyla nekonečná, je třeba x v každém průchodu změnit směrem nahoru, například o 1, což dělá druhý řádek kódu.

Klíčové slovo „pro“ se použije na určitý rozsah čísel, které je třeba postupně iterovat a provést s nimi určité akce. Tato konstrukce se používá, když je znám konečný počet prvků.

Jeho syntaxe vypadá takto:

nc pro x od 1 do 3

Servisní slova „od“ a „do“ ukazují rozsah hodnot, které je třeba iterovat. V první iteraci x = 1 tedy v důsledku průchodu nabude y také hodnotu 1. Poté řízení opět přejde na začátek a x se nyní bude rovnat 2, respektive y se stane 3.

Pomocí kombinovaných konstrukcí smyček a větvení můžete sestavit nejjednodušší algoritmy pro řešení jednoduchých problémů a získání znalostí o fungování programovacích jazyků.

Standardní vlastnosti

Algoritmický jazyk má standardní funkce, které jsou v něm již zabudovány. Mohou usnadnit některé rutinní operace s čísly a výrazy. Standardní funkce algoritmického jazyka mohou počítat druhé odmocniny, logaritmy, moduly, sinusy, kosiny atd.:

  • absolutní modul - abs(x);
  • druhá odmocnina - sqrt(x);
  • přirozené a desítkové logaritmy - ln(x) a log(x);
  • minimum a maximum ze dvou čísel - min(x,y), max (x,y);
  • sinus, kosinus, tangens, kotangens - sin(x), cos(x), tan(x), ctg(x).

Tyto standardní funkce vám umožňují vyhnout se vytváření „kola“ tím, že vám pomohou implementovat nejjednodušší funkce pomocí standardních nástrojů.

Booleovské výrazy

Booleovské výrazy odrážejí, zda určitá operace splňuje podmínku. Například x > 0 se vyhodnotí jako pravda, když x je 1, 2, 25 nebo jakékoli jiné číslo větší než nula. Algoritmický jazyk obsahuje logické výrazy, které kromě standardních matematických operací mohou používat následující klíčová slova a operátory:

  • A. Znamená, že výrazy, mezi kterými se klíčové slovo nachází, musí splňovat určitou podmínku: (x>0) a (y>0);
  • Nebo. Jeden z výrazů nemusí splňovat podmínku, například (x>0) nebo (y>0);
  • Ne. "Překlopí" logickou hodnotu výrazu. Například tento design Ne(x>0), znamená, že x stále nesmí být větší než nula.

Existují také srovnávací operátoři -<, >, =, které lze kombinovat a vytvářet výrazy jako větší než nebo rovno.

Malý program pro algoritmický jazyk

Chcete-li tomuto procesu porozumět, můžete uspořádat program, který komunikuje s uživatelem. Požádá o číslo a stroj jej odmocní.

Komponenty algoritmického jazyka obsahují mnoho klíčových slov. První věcí, kterou program začíná, je oznámení o algoritmu - alg.

alg Druhá mocnina čísla ()

V závorkách musíte zadat argument, který bude představovat hodnotu od uživatele a výsledek. Nezapomeňte také na deklaraci typů těchto údajů.

Nyní bude stroj vědět, že bude muset interagovat s proměnnou typu integer a výsledkem jeho práce bude S.

První věc, kterou musíte udělat, je zadat data. To se provádí pomocí klíčového slova „input“.

Nyní, přímo v těle algoritmu, musíte popsat řadu příkazů, které budou použity k výpočtu druhých mocnin čísel.

výstup "S =", S

Algoritmický jazyk, jehož příkazy umožňují implementaci přiřazení, se zapisují ve tvaru: =. Proměnná S tedy obsahuje hodnotu součinu x a sebe. Výstupní řádek zobrazuje výsledek na obrazovce. To vše končí klíčovým slovem „con“. Kompletní kód bude nyní vypadat takto:

alg Druhá mocnina čísla (arg integer x, res integer S)

výstup "S =", S

Takto je jednoduchým způsobem implementován algoritmus pro výpočet druhé mocniny zadaného čísla. Program lze zkomplikovat přidáním součtu všech operací. A pak to bude vypadat takto:

alg Druhá mocnina čísla a vypočítejte jejich součet (arg integer x, res integer S)

daný | x > 0

potřeba | S = 1*1 + 2*2+ … + x*x

začít celý

vstup x; S:=0

nc pro a od 1 do x

výstup "S =", S

Tato možnost používá smyčku, přechodnou proměnnou a a stručnou indikaci úkolu v částech „dané“ a „musí“. Nyní, když předáte programu určité číslo, odmocní je a zobrazí součet druhých mocnin všech čísel, která mu předcházejí.

Použití a vývoj algoritmických jazyků

Algoritmický jazyk je běžný ve výukových prostředích pro pochopení základních norem a pravidel programování. Například BASIC, který se vyučuje na mnoha školách. Dokonale odráží všechna paradigmata takového termínu jako imperativní programovací jazyk, ve kterém jsou všechny příkazy prováděny postupně jeden po druhém.

Vzhledem k blízkosti popsaných konstruktů a klíčových slov k lidskému jazyku se psaní kódu stalo mnohem snazším než používání zcela strojově nebo strojově závislých modelů. Rodina programovacích jazyků ALGOL zašla ve svém vývoji nejdále, protože její syntaxe byla prezentována v několika lokalizacích. Bylo možné psát kód i v ruštině.

Obecně platí, že vývoj algoritmických jazyků výrazně ovlivnil programování obecně a umožnil velkému počtu lidí stát se vývojáři. Moderní prostředky jsou stále dostupnější a srozumitelnější. Programovací jazyky na vysoké úrovni obsahují stále více funkcí se smysluplnými názvy a názvy. Hranice jejich použití se stále zmenšují. Do budoucna je tak možná srozumitelnější a přirozenější realizace vývoje.

Část algoritmu ze slova alg ke slovu začátek se nazývá nadpis a část mezi slovy začátek A ošidit- tělo algoritmu.

Ve větě alg za názvem algoritmu jsou v závorkách uvedeny charakteristiky (arg, res) a typ hodnot (int, věc, sim, lit, log) pro všechny vstupní (argumenty) a výstupní (výsledky) proměnné.

Při popisu polí (tabulek) se používá speciální slovo tab, doplněné o páry hranic u každého indexu prvku pole.

Příklad vět alg:

alg Objem a plocha válce (arg věci R, H, res věci V, S)

alg kořeny KvUr(arg things a, b, c, res things x1, x2, res lit t)

alg Vyloučit prvek (arg int N, karta arg res stuff A)

alg Diagonal (arg int N, arg int tab A, rozsvícená odpověď)

Věty se slovy daný A nutné není požadováno. Doporučuje se zapisovat příkazy popisující stav prostředí spouštěče algoritmu, například:

Náhrada Alg (arg svítí Str1, Str2, arg res svítí Text) dáno | délky podřetězců Str1 a Str2 musí být stejné | Všude v řádku Text je podřetězec Str1 nahrazen řetězcem Str2

Alg Počet maxim (arg int N, arg věc karta A, res int K) daný | N>0 potřeba | K - počet maximálních prvků v tabulce A

Alg Resistance (args things R1, R2, args int N, res things R) dané | N>5, R1>0, R2>0 potřeba | R - odpor obvodu

Tady ve větách daný A nutné za znakem "|". zaznamenané komentáře. Komentáře lze umístit na konec libovolného řádku. Nejsou zpracovány počítačovým překladačem, ale výrazně usnadňují pochopení algoritmu.

Příkazy školního programovacího jazyka AJ

Operátor přiřazení. Používá se k vyhodnocení výrazů a přiřazení jejich hodnot proměnným. Obecný tvar operátoru: A:= B, kde znaménko ":=" znamená operaci přiřazení, tzn. příkaz k nahrazení předchozí hodnoty proměnné A, umístěné na levé straně, vypočítanou hodnotou výrazu B, umístěného na pravé straně.


Například, a:=(b+c)*sin(Pi/4);

i:=i+1 .

Pro vstup a výstup příkazy použití dat

· vstup názvy proměnných

· závěr názvy proměnných, výrazy, texty.

Pro větvení Algoritmus používá příkazy - Li A výběr.

Pro organizaci cykly - příkazy Pro A sbohem, popsané níže.

Příklad zápisu algoritmu ve školním jazyce ASL.

Alg Součet čtverců (arg integer n, střih je neporušený S)dáno | n > 0 potřeba | S = 1*1 + 2*2 + 3*3 + ... + n*nstart int i vstup n; S : =0 nc pro i od 1 do n S : =S+i*i kts výstup "S = ", Skon

Algoritmický jazyk - je to systém zápisu a pravidel pro jednotné a přesné zaznamenávání algoritmů a jejich provádění. Algoritmický jazyk je prostředek pro psaní algoritmů v analytické formě, mezistupeň mezi zápisem algoritmu v přirozeném (lidském) jazyce a jeho zápisem v počítačovém jazyce (programovací jazyk).

Existuje rozdíl mezi pojmy „algoritmický jazyk“ a „programovací jazyky“. Za prvé, program napsaný v algoritmickém jazyce nemusí být nutně určen pro počítač. Praktická implementace algoritmického jazyka je v každém konkrétním případě samostatnou záležitostí.

Jako každý jazyk má i algoritmický jazyk svou vlastní slovní zásobu. Základ tohoto slovníku tvoří slova používaná k zápisu příkazů obsažených v příkazovém systému vykonavatele konkrétního algoritmu. Takové příkazy se nazývají jednoduché příkazy. V algoritmickém jazyce se používají slova, jejichž význam a způsob použití je jednou provždy specifikován. Tato slova se nazývají oficiální. Použití funkčních slov činí záznam algoritmu vizuálnějším a forma prezentace různých algoritmů jej činí jednotnějším.

Algoritmus napsaný v algoritmickém jazyce musí mít název. Název je vhodné zvolit tak, aby bylo jasné, jaký problém tento algoritmus popisuje. Chcete-li zvýraznit název algoritmu, napište před něj servisní slovo ALG (ALGORITHM). Za názvem algoritmu (obvykle na novém řádku) jsou jeho příkazy. Pro označení začátku a konce algoritmu jsou jeho příkazy uzavřeny ve dvojici servisních slov START (START) a CON (END). Příkazy se zapisují postupně.

ALG – název algoritmu

série příkazů algoritmu

Algoritmus, který určuje pohyb robota, může například vypadat takto:

ALG – do_skladu

Při konstrukci nových algoritmů lze použít dříve zkompilované algoritmy. Algoritmy, které se používají zcela jako součást jiných algoritmů, se nazývají pomocné algoritmy. Pomocný může být jakýkoli algoritmus z řady dříve zkompilovaných. Je také možné, že se pomocný algoritmus v určité situaci může ukázat jako algoritmus, který sám obsahuje vazbu na pomocné algoritmy.

Velmi často se stává, že při sestavování algoritmů je nutné použít stejný algoritmus jako pomocný, který navíc může být velmi složitý a těžkopádný. Bylo by iracionální, když začínáte pracovat, sestavit a zapamatovat si takový algoritmus pokaždé pro jeho následné použití. Proto se v praxi široce používají tzv. vestavěné (neboli standardní) pomocné algoritmy, tzn. takové algoritmy, které jsou interpretovi neustále k dispozici. K takovým algoritmům se přistupuje stejným způsobem jako k „běžným“ pomocným algoritmům. Robot má vestavěný pomocný algoritmus, který se může přesunout do skladu z libovolného místa na pracovním poli; exekutor programovacího jazyka BASIC má například vestavěný algoritmus „SIN“.

Algoritmus může obsahovat odkaz na sebe jako pomocný, v takovém případě je volán rekurzivní. Pokud je příkaz pro algoritmus, na který se má odkazovat, obsažen v samotném algoritmu, pak se taková rekurze nazývá rovný. Mohou nastat případy, kdy k rekurzivnímu volání daného algoritmu dojde z pomocného algoritmu, který je volán v tomto algoritmu. Tato rekurze se nazývá nepřímý. Příklad přímé rekurze:

ALG – pohyb

hnutí

Volají se algoritmy, ve kterých se pořadí provádění příkazů určuje v závislosti na výsledcích kontroly určitých podmínek větvení. K jejich popisu v algoritmickém jazyce se používá speciální složený příkaz - příkaz větvení. Ve vztahu k robotníkovi může být podmínkou kontrola, zda je robot na okraji pracovního pole (edge/not_edge); kontrola přítomnosti objektu v aktuální buňce (ano/ne) a některé další:

IF podmínka IF podmínka IF hrana

TO série 1 TO série TO vpravo

JINAK epizoda 2 VŠECHNO OSTATNÍ vpřed

Následuje záznam algoritmického jazyka pro příkaz select, který je vývojem příkazu větve:

S podmínkou 1: série 1

POD stavem 2: série 2

SE stavem N: série N

ELSE řada N+1

Algoritmy, ve kterých jsou jednotlivé příkazy nebo série příkazů prováděny opakovaně, se nazývají cyklické. K organizaci cyklických algoritmů v algoritmickém jazyce se používá speciální složený příkaz smyčky. Odpovídá blokovým diagramům typu „iterace“ a může mít následující podobu:

BYE podmínka NC

série PŘED stav

Ve školách studovat základy algoritmizace, tzv. školní algoritmický jazyk (výukový algoritmický jazyk), pomocí slov v ruštině, která jsou srozumitelná pro školáky. Na rozdíl od většiny programovacích jazyků není algoritmický jazyk vázán na architekturu počítače a neobsahuje detaily související se strukturou stroje.

Příklady

Algoritmus v algoritmickém jazyce je obecně psán ve tvaru:

alg název algoritmu (argumenty a výsledky) daný podmínky pro použitelnost algoritmu nutnéúčel algoritmu začátek popis mezimnožstev | sekvence příkazů (tělo algoritmu) ošidit

V záznamu algoritmu byla klíčová slova obvykle podtržená nebo tučně. Pro zvýraznění logických bloků bylo použito odsazení a párová slova začátku a konce bloku byla spojena svislou čárou.

Příklad výpočtu součtu čtverců:

alg Součet čtverců ( arg neporušený n, res neporušený S) daný| n > 0 nutné| S = 1*1 + 2*2 + 3*3 + … + n*n začátek neporušený já | vstup n; S:=0 | nc pro i od 1 do n | | S:= S + i * i | kts | závěr"S =", S ošidit

E-workshop

Na podporu teoretického studia programování v algoritmickém jazyce vytvořili specialisté z Fakulty mechaniky a matematiky Moskevské státní univerzity v roce 1985 editor-kompilátor. "E-workshop"(„E“ - na počest Ershova), což vám umožňuje zadávat, upravovat a spouštět programy v algoritmickém jazyce.

V roce 1986 byla pro „E-workshop“ vydána sada vzdělávacích světů (umělců): „Robot“, „Draftsman“, „Dvounohý“, „Terénní vozidlo“, které vám umožňují jednoduše představit koncepty algoritmu. „E-workshop“ byl implementován na počítačích: Yamaha, Corvette, UKNC a stal se široce rozšířeným.

Tento programovací jazyk byl neustále zdokonalován a popis pozdější verze „E-workshopu“ se objevil v učebnici v roce 1990. Programovací systém KuMir („Sestava vzdělávacích světů“), který podporuje tuto učebnici, byl vydán společností InfoMir v roce 1990. Jazyk tohoto systému se také nazývá „Idol“.

V roce 1995 byl „KuMir“ doporučen Ministerstvem školství Ruské federace jako hlavní vzdělávací materiál pro kurz „Základy informatiky a informatiky“ podle učebnice A. G. Kušnirenka, G. V. Lebedeva a R. A. Svorena. .

Kritika

Je však třeba poznamenat, že algoritmický jazyk, při absenci detailů, které jej přímo spojují s architekturou počítače, nicméně s odkazem na jazyky podobné Algolo implicitně učí školáky spoléhat se na von Neumannovu architekturu strojů. (Architektura von Neumanna je praktickou implementací dřívějšího nápadu zvaného Turingův stroj. Kromě Turingova nápadu existují i ​​další nápady. Nejpopulárnější z nich se nazývá Lambda kalkul: pracoval na něm Alonzo Church. Stroj Lisp je architektura, která je založen na lambda-kalkulu.)

Odkazy

  • A. P. Ershov. Algoritmický jazyk ve školním kurzu základů informatiky a výpočetní techniky. 05.07.1985
  • Fórum o ruských programovacích jazycích a vývojových nástrojích

Nadace Wikimedia. 2010.

Podívejte se, co je „ruský algoritmický jazyk“ v jiných slovnících:

    Algoritmický jazyk je formální jazyk používaný k psaní, implementaci nebo studiu algoritmů. Každý programovací jazyk je algoritmický jazyk, ale ne každý algoritmický jazyk je vhodný pro použití jako jazyk... ... Wikipedie

    Tento výraz má jiné významy, viz Drak (významy). Příklad blokového diagramu algoritmu v jazyce DRAGON dračí diagram DRAGON (Friendly Russian Algorithmic Language That Provides Visibility) visual... ... Wikipedia

    Tento termín má jiné významy, viz Algoritmický jazyk. Akademický algoritmický jazyk je formální jazyk používaný k psaní, implementaci a studiu algoritmů. Na rozdíl od většiny programovacích jazyků není vázán na ... Wikipedii

    Algoritmický jazyk (také ruský algoritmický jazyk, RAYA) je programovací jazyk používaný pro psaní a studium algoritmů. Při studiu informatiky na školách se ke studiu základů algoritmizace používá tzv. algoritmus. školní algoritmus... ... Wikipedie

    Vzdělávací programovací jazyk je programovací jazyk určený k výuce programování specialistů. Takový jazyk musí splňovat hlavní požadavek: jednoduchost. Čím je to jednodušší, tím rychleji to začátečník zvládne. Možnosti takového... ... Wikipedie

    Příklad blokového diagramu algoritmu v dračím diagramu v jazyce DRAGON DRAGON (Friendly Russian Algorithmic Language That Provides Visibility) je vizuální algoritmický jazyk vytvořený jako součást vesmírného programu Buran. Vývoj tohoto jazyka ... Wikipedie

Ministerstvo školství Ruské federace Permská státní technická univerzita

Katedra informačních technologií a automatizovaných systémů

Vikentyeva O.L.

Poznámky z přednášek k předmětu „Algoritmické jazyky a programování“ (Základy jazyka C++, I semestr)

Úvod

První semestr pokrývá základní konstrukce jazyka C a základní programovací technologie (strukturované programování).

Strukturované programování je technologie pro tvorbu programů, která umožňuje dodržením určitých pravidel zkrátit dobu vývoje a počet chyb a také usnadnit možnost úpravy programu.

1.1. Algoritmus a program

Algoritmus je přesný předpis, který definuje výpočetní proces, který jde od proměnných počátečních dat ke konečnému výsledku, tj. je to recept na dosažení cíle.

Soubor nástrojů a pravidel pro prezentaci algoritmu ve formě vhodné pro provádění počítačem se nazývá programovací jazyk, algoritmus napsaný v tomto jazyce se nazývá program.

Nejprve je vždy vyvinut akční algoritmus a poté je napsán v některém z programovacích jazyků. Text programu je zpracován speciálními obslužnými programy - překladači. Programovací jazyky jsou umělé jazyky. Od přirozených jazyků se liší omezeným počtem „slov“ a velmi přísnými pravidly pro psaní příkazů (operátorů). Souhrn těchto požadavků tvoří syntaxi programovacího jazyka a význam každé konstrukce tvoří její sémantiku.

1.2.Vlastnosti algoritmu

1. Hmotnostní měřítko: Algoritmus musí být aplikován nikoli na jeden problém, ale na celou třídu podobných problémů (algoritmus pro řešení kvadratické rovnice musí řešit nejen jednu rovnici, ale všechny kvadratické rovnice).

2. Efektivita: algoritmus musí vést k získání výsledku v určitém počtu kroků (při dělení 1 3 se získá periodický zlomek 0,3333(3); pro dosažení konečného výsledku je nutné stanovit přesnost získání tohoto zlomku , například na 4 desetinná místa).

3. Jistota (determinismus) - každá akce algoritmu musí být srozumitelná svému vykonavateli (instrukce pro domácí spotřebič v japonštině pro osobu, která nemluví japonsky, nejsou algoritmem, protože nemají vlastnost determinismu).

4. Diskrétnost – proces musí být popsán pomocí nedělitelnosti

operace prováděné v každém kroku (tj. kroky nelze rozdělit na menší kroky).

Algoritmy mohou být prezentovány v následujících formách:

1) slovní popis algoritmu.

2) grafický popis algoritmu.

3) pomocí algoritmického programovacího jazyka

1.2. Překladače a interprety

S Pomocí programovacího jazyka je vytvořen text, který popisuje dříve zkompilovaný algoritmus. Abyste získali funkční program, musíte tento text přeložit do sekvence příkazů procesoru, což se provádí pomocí speciálních programů zvaných překladače. Existují dva typy překladatelů: kompilátoři a tlumočníci. Kompilátor překládá text zdrojového modulu do strojového kódu, nazývaného objektový modul, v jednom nepřetržitém procesu. Zároveň nejprve skenuje zdrojový kód programu a hledá syntaktické chyby. Interpret provádí zdrojový programový modul v režimu operátor po operátorovi, podle

postup práce, překládání každého příkazu do strojového jazyka.

1.3.Programovací jazyky

Různé typy procesorů mají různé instrukční sady. Pokud je programovací jazyk zaměřen na konkrétní typ procesoru a zohledňuje jeho vlastnosti, pak se nazývá nízkoúrovňový programovací jazyk. Jazyk nejnižší úrovně je jazyk symbolických instrukcí, který jednoduše představuje každou instrukci strojového kódu ve formě speciálních symbolických zápisů nazývaných mnemotechnické pomůcky. Pomocí nízkoúrovňových jazyků jsou vytvářeny velmi efektivní a kompaktní programy, protože vývojář získá přístup ke všem schopnostem procesoru. Protože Protože instrukční sady pro různé modely procesorů jsou také různé, má každý model procesoru svůj vlastní jazyk symbolických instrukcí a program v něm napsaný lze použít pouze v tomto prostředí. Podobné jazyky se používají k psaní malých systémových aplikací, ovladačů zařízení atd.

Programovací jazyky na vysoké úrovni neberou v úvahu vlastnosti konkrétních počítačových architektur, takže vytvořené programy na zdrojové úrovni lze snadno přenést na jiné platformy, pokud pro ně byly vytvořeny vhodné překladače. Vývoj programů v jazycích na vysoké úrovni je mnohem jednodušší než ve strojových jazycích.

Jazyky na vysoké úrovni jsou:

1. Fortran byl prvním kompilovaným jazykem vytvořeným v r 50. léta 20. století. Implementovala řadu důležitých programovacích konceptů. Pro tento jazyk bylo vytvořeno obrovské množství knihoven, od statistických komplexů až po satelitní ovládání, takže je i nadále používán v mnoha organizacích.

2. COBOL je kompilovaný jazyk pro ekonomické výpočty a řešení. obchodní problémy, vzniklé na počátku 60. let. Cobol poskytl velmi výkonné nástroje pro práci s velkým množstvím dat uložených na externích médiích.

3. Pascal - vytvořen na konci 70. léta švýcarského matematika Niklause Wirtha speciálně pro výuku programování. Umožňuje vám rozvíjet algoritmické myšlení, sestavit krátký, snadno čitelný program, demonstrovat základní algoritmizační techniky a dobře se hodí i pro realizaci velkých projektů.

4. BASIC - vytvořeno v 60. léta i pro výuku programování. Existují pro něj jak kompilátory, tak interpreti a je to jeden z nejoblíbenějších programovacích jazyků.

5. Jazyk C byl vytvořen v 70. letech a původně nebyl považován za masový programovací jazyk. Plánovalo se nahradit assembler, aby bylo možné vytvářet stejně efektivní a krátké programy, ale nebyl závislý na konkrétním procesoru. V mnoha ohledech je podobný Pascalu a má další paměťové možnosti. Je v něm napsáno mnoho aplikačních a systémových programů a také operační systém Unix.

6. C++ je objektově orientované rozšíření jazyka C, které vytvořil Bjarne Stroustrup v roce 1980.

7. Java je jazyk, který vytvořil Sun na počátku 90. léta na bázi C++. Je navržen tak, aby zjednodušil vývoj aplikací C++ odstraněním nízkoúrovňových funkcí. Hlavním rysem jazyka je, že není kompilován do strojového kódu, ale do bajtkódu nezávislého na platformě (každý příkaz zabírá jeden bajt). Tento kód lze spustit pomocí interpretu zvaného Java Virtual Machine (JVM).

2.Struktura programu v C++

Program C má následující strukturu: direktivy #preprocessor

. . . . . . . . .

#preprocesorové direktivy funkce a()

operátoři fungují v ()

operátory

void main () //funkce, kterou začíná provádění programu operátory

popisy

úkoly

funkce prázdný příkaz

kompozitní

přechod

Direktivy preprocesoru - řídí transformaci textu programu před jeho kompilací. Původní program, připravený v SI ve formě textového souboru, prochází 3 fázemi zpracování:

1) převod textu preprocesoru;

2) kompilace;

3) rozložení (editace odkazů nebo sestavy).

Po těchto třech fázích je vygenerován spustitelný kód programu. Úkolem prepro-

procesor - převod textu programu před jeho kompilací. Pravidla pro předzpracování určuje programátor pomocí direktiv preprocesoru. Direktiva začíná znakem #. Například,

1) #define - specifikuje pravidla nahrazování v textu. #define NULA 0,0

Znamená to, že každé použití názvu ZERO v programu bude nahrazeno

2) #zahrnout< имя заголовочного файла>- je určen pro vložení textu z adresáře „Header files“ dodávaného se standardními knihovnami do textu programu. Každá funkce knihovny C má odpovídající popis v jednom ze souborů záhlaví. Seznam hlavičkových souborů je definován jazykovou normou. Použití směrnice include nezahrnuje odpovídající standardní bib

knihovny, ale umožňují pouze vkládat popisy ze zadaného hlavičkového souboru do textu programu. Knihovní kódy jsou zahrnuty ve fázi propojení, tj. po kompilaci. Přestože hlavičkové soubory obsahují všechny popisy standardních funkcí, v kódu programu jsou zahrnuty pouze funkce, které jsou v programu použity.

Po dokončení předzpracování nezůstane v textu programu ani jedna direktiva preprocesoru.

Program je sada popisů a definic a skládá se ze sady funkcí. Mezi těmito funkcemi by vždy měla být funkce s názvem main. Bez něj nelze program spustit. Před názvem funkce je umístěna informace o typu hodnoty vrácené funkcí (typ výsledku). Pokud funkce nic nevrací, pak je zadán typ void: void main(). Každá funkce, včetně main, musí mít sadu parametrů, může být prázdná, pak je v závorkách uvedeno (void).

Za hlavičkou funkce následuje tělo funkce. Tělo funkce je posloupnost definic, popisů a spustitelných příkazů uzavřených ve složených závorkách. Každá definice, popis nebo tvrzení končí středníkem.

Definice - zavádějí objekty (objekt je pojmenovaná paměťová oblast, speciálním případem objektu je proměnná) potřebné k reprezentaci zpracovávaných dat v programu. Příklady jsou

int y = 10; //pojmenovaná konstanta float x ; //proměnná

Popisy - upozorní překladač na vlastnosti a názvy objektů a funkcí popsaných v jiných částech programu.

Operátoři - určují akce programu v každém kroku jeho provádění.

Příklad programu v C:

#zahrnout //direktiva preprocesoru

Kontrolní otázky

1. Z jakých částí se skládá program C++?

2. Jak se liší definice od reklamy?

3. Vyjmenujte fáze vytváření spustitelného programu v C++.

4. Co je to preprocesor?

5. Co je direktiva preprocesoru? Uveďte příklady direktiv preprocesoru.

6. Napište program, který vypíše text „Můj první program v C++“

2. Základní prostředky jazyka SI++ 2.1 Skladba jazyka

V textu v jakémkoli přirozeném jazyce jsou čtyři hlavní prvky: symboly, slova, fráze a věty. Algoritmický jazyk také obsahuje takové prvky, pouze slova se nazývají lexémy (elementární konstrukce), fráze se nazývají výrazy a věty se nazývají operátory. Tokeny se tvoří ze symbolů, výrazy z tokenů a symbolů, operátory ze symbolů výrazů a tokenů (obr. 1.1)

Rýže. 1.1. Složení algoritmického jazyka Prvky algoritmického jazyka jsou tedy:

Identifikátory jsou názvy objektů programu SI. Identifikátor může používat latinská písmena, čísla a podtržítka. Velká a malá písmena se liší, například PROG1, prog1 a Prog1 jsou tři různé identifikátory. První znak musí být písmeno nebo podtržítko (nikoli číslo). Mezery v identifikátorech nejsou povoleny.

Klíčová slova (vyhrazená) slova jsou slova, která mají pro kompilátor zvláštní význam. Nelze je použít jako identifikátory.

- Operační znaky jsou jeden nebo více symbolů, které určují akci na operandech. Operace se dělí na unární, binární a ternární podle počtu operandů zapojených do této operace.

Konstanty jsou neměnné veličiny. Existují celočíselné, reálné, znakové a řetězcové konstanty. Kompilátor identifikuje konstantu jako lexém (elementární konstrukt) a přiřadí ji k jednomu z typů na základě jejího vzhledu.

Oddělovače – závorky, tečka, čárka, mezery.

2.1.1. Konstanty v C++

Konstanta je token, který představuje pevnou číselnou, řetězcovou nebo znakovou hodnotu.

Konstanty jsou rozděleny do 5 skupin:

Celý;

- skutečný (s plovoucí desetinnou čárkou);

Vyčíslitelné;

Charakter;

Tětiva.

Kompilátor vybere token a přiřadí jej jedné nebo druhé skupině a poté interně

tři skupiny ke konkrétnímu typu podle jeho formy zápisu v textu programu a podle jeho číselné hodnoty.

Celočíselné konstanty mohou být desítkové, osmičkové nebo šestnáctkové. Desetinná konstanta je definována jako sekvence desetinných číslic začínající něčím jiným než 0, pokud toto číslo není 0 (příklady: 8, 0, 192345). Osmičková konstanta je konstanta, která vždy začíná 0. Za 0 následují osmičkové číslice (příklady: 016 - desítková hodnota 14, 01). Hexadecimální konstanty jsou posloupností hexadecimálních číslic, kterým předcházejí znaky 0x nebo 0X (příklady: 0xA, 0X00F).

V v závislosti na hodnotě celočíselné konstanty kompilátoru bude to prezentovat jinak

PROTI paměti počítače (to znamená, že kompilátor přiřadí konstantě odpovídající datový typ).

Reálné konstanty mají jinou formu vnitřní reprezentace v paměti počítače. Překladač rozpozná takové konstanty podle jejich typu. Reálné konstanty mohou mít dvě formy reprezentace: pevnou řádovou čárku a pohyblivou řádovou čárku. Typ konstanty s pevnou řádovou čárkou: [číslice].[číslice] (příklady: 5.7, . 0001, 41.) Typ konstanty s pohyblivou řádovou čárkou: [číslice][.][číslice]E|e[+|-][číslice ] ( příklady: 0,5e5, 0,11e-5, 5E3). Při zápisu reálných konstant lze vynechat buď celé číslo nebo zlomkové části, desetinnou čárku nebo znaménko exponentu s exponentem.

Vyčíslitelné konstanty jsou zavedeny pomocí klíčového slova enum. Jedná se o běžné celočíselné konstanty, kterým jsou přiřazeny jedinečné a snadno použitelné zápisy. Příklady: enum ( jeden=1, dva=2, tři=3, čtyři=4);

enum (nula,jedna,dva,tři) – pokud v definici výčtových konstant vynecháte znaménka = a číselné hodnoty, budou hodnoty přiřazeny standardně. V tomto případě dostane identifikátor nejvíce vlevo hodnotu 0 a každý následující se zvýší o 1.

enum ( deset=10, tři=3, čtyři, pět, šest);

enum (neděle, pondělí, úterý, středa, čtvrtek, pátek, sobota-

Znakové konstanty jsou jeden nebo dva znaky uzavřené v apostrofech. Znakové konstanty skládající se z jednoho znaku jsou typu char a zabírají jeden bajt v paměti, znakové konstanty sestávající ze dvou znaků jsou typu int a zabírají dva bajty. Sekvence začínající \ se nazývají řídicí sekvence a používají se:

- Chcete-li znázornit znaky, které nemají grafické znázornění, například:

\a – zvukový signál,

\b – návrat o jeden krok, \n – posun řádku,

\t – horizontální tab.

- Pro znázornění znaků: \ , ’ , ? , “(\\, \’ ,\? ,\”).

- K reprezentaci znaků pomocí hexadecimálních nebo osmičkových kódů (\073, \0xF5).

Řetězcová konstanta je posloupnost znaků uzavřená v uvozovkách.

Řídicí znaky lze také použít v řetězcích. Například: „\nNový řádek“,

“\n\”Algoritmické programovací jazyky na vysoké úrovni\”” .

2.2. Datové typy v C++

Data zobrazují okolní svět v programu. Účelem programu je zpracovávat data. Různé typy dat se ukládají a zpracovávají odlišně. Datový typ definuje:

1) Interní reprezentace dat v počítačové paměti;

2) množina hodnot, které mohou veličiny tohoto typu nabývat;

3) operace a funkce, které lze aplikovat na data tohoto typu.

V V závislosti na požadavcích úlohy programátor vybere typ pro programové objekty. Typy C++ lze rozdělit na jednoduché a složené. Jednoduché typy zahrnují typy, které jsou charakterizovány jedinou hodnotou. C++ definuje 6 jednoduchých datových typů:

int (celé číslo)

znak (znak)

wchar_t (široký znak) bool (booleovský) float (skutečný)

dvojitá (reálná s dvojitou přesností)

Existují 4 specifikátory typu, které určují vnitřní reprezentaci a rozsah standardních typů

krátký (krátký) dlouhý (dlouhý) podepsaný (podepsaný)

nepodepsaný

2.2.1. Zadejte int

Hodnoty tohoto typu jsou celá čísla.

Velikost typu int není definována standardem, ale závisí na počítači a kompilátoru. Pro 16bitový procesor jsou pro něj přiděleny 2 bajty, pro 32bitový procesor - 4 bajty.

Pokud před int předchází krátký specifikátor, pak jsou číslu přiděleny 2 bajty, a pokud je specifikátor dlouhý, pak 4 bajty. Množství paměti přidělené objektu určuje sadu platných hodnot, které může objekt nabývat:

short int - zabírá 2 bajty, má tedy rozsah –32768 ..+32767;

long int – zabírá 4 bajty, má tedy rozsah –2,147,483,648..+2,147,483,647

Typ int je stejný jako typ short int na 16bitových počítačích a typ long int na 32bitových počítačích.

Podepsané a nepodepsané modifikátory také ovlivňují sadu platných hodnot, které může objekt nabývat:

unsigned short int - zabírá 2 bajty, má tedy rozsah 0 ..65536; unsigned long int – zabírá 4 bajty, má tedy rozsah 0..+4 294 967

2.2.2. Zadejte char

Hodnoty tohoto typu jsou prvky konečné uspořádané množiny znaků. Každému znaku je přiřazeno číslo, které se nazývá kód znaku. Pro hodnotu typu znaku je přidělen 1 bajt. Typ char lze použít s podepsanými a nepodepsanými specifikátory. Data se znaménkem mohou ukládat hodnoty v rozsahu od –128 do 127. Při použití dat bez znaménka se hodnoty mohou pohybovat od 0 do 255. Kódování je ASCII (American Standard Code foe International Interchange). Znaky s kódy od 0 do 31 jsou servisní znaky a mají nezávislý význam pouze v I/O příkazech.

Hodnoty typu char se také používají k ukládání čísel ze zadaných rozsahů.

2.2.3. typ wchar_t

Navrženo pro práci se sadou znaků, pro jejichž zakódování nestačí 1 bajt, například Unicode. Velikost tohoto typu obecně odpovídá krátkému typu. Řetězcové konstanty tohoto typu se zapisují s předponou L: L“String #1“.

2.2.4. Zadejte bool

Typ bool se nazývá boolean. Jeho hodnoty mohou nabývat hodnot true a false. Vnitřní forma false je 0, jakákoli jiná hodnota je interpretována jako true.

2.2.5. Typy s plovoucí desetinnou čárkou.

Vnitřní reprezentace reálného čísla se skládá ze 2 částí: mantisy a exponentu. Na počítačích kompatibilních s IBM zabírají hodnoty float 4 bajty, z nichž jeden bit je přidělen pro mantisu, 8 bitů pro exponent a 24 pro mantisu.

Dvojité hodnoty zabírají 8 bajtů, pro exponent a mantisu je přiděleno 11 a 52 bitů. Délka mantisy určuje přesnost čísla a délku řádu jeho rozsahu.

Pokud před dvojitým názvem typu předchází dlouhý specifikátor, jsou pro hodnotu alokovány bajty.

2.2.6. typ neplatné

NA mezi hlavní typy patří také typ void. Sada hodnot tohoto typu je p-

2.3. Proměnné

Proměnná v SI++ je pojmenovaná paměťová oblast, ve které jsou uložena data určitého typu. Proměnná má jméno a hodnotu. Název se používá k označení oblasti paměti, ve které je uložena hodnota. Před použitím musí být deklarována jakákoli proměnná. Příklady:

Celkový pohled na operátor popisu:

[třída paměti] název typu [inicializátor];

Třída paměti může nabývat následujících hodnot: auto, extern, static, register. Třída paměti určuje životnost a rozsah proměnné. Pokud paměťová třída není specifikována explicitně, kompilátor ji určí na základě kontextu deklarace. Životnost může být trvalá - během provádění programu nebo dočasná - během bloku. Rozsah je část textu programu, ze které je povolen normální přístup k proměnné. Obvykle je rozsah stejný jako rozsah. Kromě případu, kdy je ve vnitřním bloku proměnná se stejným názvem.

Const – označuje, že tuto proměnnou nelze změnit (pojmenovaná konstanta). Při popisu můžete proměnné přiřadit počáteční hodnotu (inicializace). Třídy paměti:

auto – automatická lokální proměnná. Auto specifier lze zadat pouze při definování objektů bloku, například v těle funkce. Těmto proměnným je při vstupu do bloku přidělena paměť a při opuštění bloku se uvolňují. Mimo blok takové proměnné neexistují.

extern je globální proměnná, nachází se na jiném místě v programu (v jiném souboru nebo dále v textu). Používá se k vytváření proměnných, které jsou dostupné ve všech programových souborech.

static je statická proměnná, existuje pouze v souboru, kde je proměnná definována.

registr - podobně jako auto, ale paměť pro ně je alokována v registrech procesoru. Pokud to není možné, pak se proměnné zpracují jako auto.

int a; //globální proměnná void main())(

int b;//místní proměnná

extern int x;//proměnná x je definována jinde statická int c;//lokální statická proměnná a=1;//přiřazení ke globální proměnné

int a;//místní proměnná a

a=2;//přiřazení do lokální proměnné::a=3;//přiřazení do globální proměnné

int x=4;//definice a inicializace x

V příkladu je proměnná a definována mimo všechny bloky. Rozsah proměnné a je celý program s výjimkou těch řádků, kde je použita lokální proměnná a. Proměnné b a c jsou lokální, jejich rozsah je blokový. Životnost je různá: paměť pro b je alokována při vstupu do bloku (protože výchozí třída paměti je auto) a je uvolněna při opuštění bloku. Během běhu programu existuje proměnná s (static).

Pokud není počáteční hodnota proměnných během definice explicitně nastavena, kompilátor resetuje globální a statické proměnné na nulu. Automatické proměnné nejsou inicializovány.

Název proměnné musí být v rámci svého rozsahu jedinečný.

Deklarace proměnné může být provedena buď jako deklarace nebo jako definice. Deklarace obsahuje informace o paměťové třídě a typu proměnné, definice spolu s touto informací dává pokyn k alokaci paměti. V příkladu extern int x; - deklarace a zbytek - definice.

2.4 Znaky operací v C++

Operační znaky zajišťují tvorbu výrazů. Výrazy se skládají z operandů, symbolů operátorů a závorek. Každý operand je zase výraz nebo speciální případ výrazu - konstanta nebo proměnná.

Unární operace

& získání adresy operandu

* Odkazování na adresu (odkazování)

- unární mínus, změní znaménko aritmetického operandu

++ Zvýšit o jednu:

operace s prefixem - zvýší operand před jeho použitím

Operace postfix inkrementuje operand poté, co byl použit.

int a=(m++)+n; // a=4,m=2,n=2

int b=m+(++n);//a=3, m=l,n=3

snížit o jednu:

operace s prefixem - redukuje operand před jeho použitím

operace postfix redukuje operand poté, co byl použit

Vypočítejte velikost (v bajtech) objektu typu, který

má operand

má dvě podoby

velikost výrazu

sizeof(float)//4

sizeof(1.0)//8, protože skutečné konstanty jsou ve výchozím nastavení