Nejčastěji jsou instrukce psány ve formě záznamu v algoritmickém jazyce. Je to nutné pro přesné předepsání všech kroků a jejich provedení. Mezi školním algoritmickým jazykem a programovacími jazyky jsou zřejmé rozdíly. Jako vykonavatel v první verzi zpravidla působí nejen počítač, ale i jiné zařízení, které je schopno vykonávat práci. Jakýkoli program napsaný v algoritmickém jazyce nemusí být vytvořen technologií. Zavedení všech návodů do praxe je čistě samostatnou záležitostí. Popis algoritmu v algoritmickém jazyce bude také zvažován níže. Pomůže to pochopit zařízení tohoto systému.

Studium ve škole

Ve školách se často vyučuje algoritmický jazyk, nejčastěji známý jako učební jazyk. Dostalo se mu velkého rozšíření díky tomu, že používá slova, která jsou pro každého studenta nejsrozumitelnější. Podobný jazyk se syntaxí v ruštině byl zaveden již dávno, konkrétně v polovině 80. let. Sloužil k tomu, aby školákům poskytl základ a učil je kurs informatiky bez počítače. Tento jazyk vyšel v roce 1985 v jedné z učebnic. Byl také několikrát přetištěn pro speciální knihy, které byly určeny pro výuku v 9. a 10. ročníku. Celkový náklad publikace činil 7 milionů výtisků.

Sekvence zápisu algoritmu

Nejprve si musíte zapsat kombinaci písmen ALG. Následuje název algoritmu. Poté, po START, musíte popsat řadu příkazů. Operátor KOH znamená konec programu.

Popis algoritmu v algoritmickém jazyce:

Společnost ALG

START

otočit o 90 stupňů doleva

KOH

Při psaní klíčová slova musí být podtržené nebo tučné. K označení logických bloků by se mělo používat odsazení, a pokud existují dvojice počátečních a koncových slov, použijte vertikální lišta, což označuje spojení.

Sestavení algoritmů

Staré záznamy lze použít k zápisu nových instrukcí. Takové instrukce se nazývají pomocné. Takovým algoritmem může být kterýkoli ze všech dříve popsaných, zkompilovaných. Existuje také možnost, že tento systém bude používat další algoritmus, který sám obdržel odkaz na pomocné systémy.

Často je při vytváření instrukce potřeba použít pouze jeden algoritmus jako dodatečný. Proto mohou být záznamy často složité a těžkopádné. Je však třeba poznamenat, že možnost provést doporučení je jednodušší než několikrát přepisovat stejné záznamy.

Proto se v praxi často používá standardní pomocný algoritmus, který je neustále podřízen uživateli. Instrukce může mít odkaz jak na sebe, tak na kteroukoli jinou. Pro takové akce jsou navrženy příkazy algoritmického jazyka. Takové instrukce se nazývají rekurzivní.

Příkaz bind-to-self se nachází v samotném systému. Taková rekurze je přímá. Nepřímý je takový, kdy je algoritmus volán v jakékoli jiné pomocné instrukci.

Algoritmy, které mají určitou sekvenci příkazů, se mohou neustále měnit v závislosti na výsledcích provádění speciálních částí programu. Takové systémy se nazývají větvení. Chcete-li je vytvořit, musíte použít speciální příkaz větve. Má zkrácené a úplné pravopisné schéma. Často existují cyklické algoritmy, které provádějí speciální instrukce několikrát.

E-workshop

S cílem zlepšit studium teorie gramatického jazyka vytvořili odborníci z Mekhmat Moskevské státní univerzity v roce 1985 speciální překladač. Říkalo se tomu „E-workshop“. S ním bylo možné zadávat, upravovat a spouštět programy. Určitý soubor interpretů byl propuštěn v následujícím roce. Mluvíme o „Robotovi“, „Drafter“, „Dvounohém“, „ATV“. To umožnilo jednoduchou a snadnou implementaci algoritmů. Tento kompilátor se stal velmi populárním a byl používán na některých počítačích. Dost na dlouhou dobu Tento programovací jazyk byl vylepšen a změněn. V roce 1990 se v učebnici objevila jeho pozdější verze.

Modla

Nyní školní algoritmický jazyk zažívá svůj druhý zrod poté, co byl vyvinut speciální balíček "Kumir" pro Windows a Linux. Systém pracuje s několika interprety. Klasické mezi nimi jsou "Robot", "Drafter". Stejný balíček je součástí instalace linuxový soubor"Škola". Tento systém byl vyvinut speciálně na objednávku Ruské akademie věd. Je distribuován zdarma a volně. Během několika posledních let byl popsaný jazyk aktivně navrhován k použití v USE jako jeden z

Přiřazení jazyka

Algoritmický jazyk se používá k řešení poměrně široké škály problémů. Je vhodný pro zvládnutí jak matematiky, tak cvičení z jiných předmětů. Nutno podotknout, že slouží i k usnadnění studia podobných témat studentům.

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

Nejznámějším zástupcem strojově závislých jazyků je "Assembler". Při programování na něm musí člověk díky speciálním operátorům jasně naznačit překladateli, které paměťové buňky má naplnit nebo přenést. Vzhledem k tomu, že syntaxe "Assembleru" je co nejblíže počítačové formě psaní, je poměrně obtížné ji studovat. Proto se algoritmický jazyk vyučuje ve škole, stejně jako na začátku programování v prvním ročníku vysoké školy.

Standardní vlastnosti

Algoritmický jazyk má speciální standardní funkce, které získaly status „vestavěné“. Právě díky nim můžete snadno psát mnoho operací s čísly a výrazy bez provádění rutinních zápisů. Program v algoritmickém jazyce je poměrně jednoduchý. Běžné funkce vám umožní vypočítat druhou odmocninu, logaritmy, moduly a tak dále. Nejoblíbenější vestavěné metody jsou následující:

  • absolutní modul abs(X);
  • druhá odmocnina sqrt(X);
  • přírodní a ln(X), lg(X);
  • minimum a maximum min (X,Y), max (X, Y);
  • goniometrické funkce sin(X), cos(X), tg(X), ctg(X).

Díky tomu bude každý programátor nebo jen člověk, který se učí pracovat s algoritmickým jazykem, schopen snadno napsat matematický problém, aniž by se musel uchylovat k vymýšlení kola. Je tedy třeba poznamenat, že tento jazyk je docela pohodlný. Je snadné pochopit a také velmi snadno pochopit. Není divu, že byla zařazena do školních osnov. Studenti se to rádi učí.

Algoritmus je přesný a srozumitelný příkaz pro umělce, aby provedl sekvenci akcí zaměřených na vyřešení problému.

Název „algoritmus“ pochází z latinské podoby jména středoasijského matematika al-Khwarizmiho – Algorithmi. Algoritmus je jedním ze základních pojmů informatiky a matematiky.

Provádění algoritmu je nějaký abstraktní nebo skutečný (technický, biologický nebo biotechnický) systém schopný provádět akce předepsané algoritmem.

Interpret se vyznačuje:

elementární akce;

příkazový systém;

Prostředí (nebo prostředí) je „biotopem“ interpreta. Například pro performera Robota ze školní učebnice je prostředím nekonečné buněčné pole. Součástí prostředí jsou i stěny a zastíněné cely. A jejich umístění a pozice samotného Robota určují konkrétní stav prostředí.

Každý exekutor může vykonávat příkazy pouze z nějakého přesně specifikovaného seznamu – příkazového systému exekutora. Pro každý příkaz musí být specifikovány podmínky použitelnosti (ve kterých stavech prostředí může být příkaz vykonán) a popsány výsledky provedení příkazu. Například příkaz „nahoru“ robota lze provést, pokud nad robotem není žádná zeď. Jeho výsledkem je posunutí Robota o jednu buňku nahoru.

Po vyvolání příkazu provede exekutor odpovídající elementární akci.

Selhání exekutoru nastane, pokud je zavolán příkaz, když je pro něj stav prostředí neplatný.

Umělec obvykle neví nic o účelu algoritmu. Provádí všechny přijaté příkazy, aniž by se ptala „proč“ a „proč“.

V informatice je univerzálním vykonavatelem algoritmů počítač.

Hlavní vlastnosti algoritmů jsou následující:

Srozumitelnost pro interpreta -- tzn. Vykonavatel algoritmu musí vědět, jak jej provést.

Diskrétnost (nespojitost, separace) - tzn. algoritmus by měl představovat proces řešení problému jako postupné provádění jednoduchých (nebo předem definovaných) kroků (fází).

Jistota -- tzn. každé pravidlo algoritmu musí být jasné, jednoznačné a nenechávat žádný prostor pro svévoli. Díky této vlastnosti je provedení algoritmu mechanické povahy a nevyžaduje žádné další instrukce nebo informace o řešeném problému.

Účinnost (nebo konečnost). Tato vlastnost spočívá v tom, že algoritmus musí vést k řešení problému v konečném počtu kroků.

Masový charakter. To znamená, že algoritmus řešení problému je vyvíjen v obecné podobě, tzn. měl by být použitelný pro určitou třídu problémů, které se liší pouze v počátečních datech. V tomto případě lze počáteční data vybrat z určité oblasti, která se nazývá oblast použitelnosti algoritmu.

V praxi jsou nejběžnější následující formy reprezentace algoritmů:

verbální (nahrává v přirozeném jazyce);

grafika (obrázky z grafických symbolů);

pseudokódy (poloformalizované popisy algoritmů v podmíněném algoritmickém jazyce, včetně prvků programovacího jazyka a frází přirozeného jazyka, obecně přijímané matematické notace atd.);

programové (texty v programovacích jazycích).

Verbální způsob zápisu algoritmů je popisem po sobě jdoucích fází zpracování dat. Algoritmus je uveden v libovolné prezentaci v přirozeném jazyce.

Například. Napište algoritmus pro nalezení největšího společného dělitele (GCD) dvou přirozených čísel.

Algoritmus může být následující:

nastavit dvě čísla;

pokud jsou čísla stejná, vezměte kterékoli z nich jako odpověď a zastavte se, jinak pokračujte v algoritmu;

určit největší z čísel;

nahraďte větší z čísel rozdílem mezi větším a menším z čísel;

opakujte algoritmus z kroku 2.

Popsaný algoritmus je použitelný pro jakákoli přirozená čísla a měl by vést k řešení problému. Přesvědčte se sami pomocí tohoto algoritmu k určení největšího společného dělitele čísel 125 a 75.

Verbální metoda není široce používána z následujících důvodů:

takové popisy nejsou přísně formalizovatelné;

trpí upovídaností záznamů;

umožňují nejednoznačný výklad jednotlivých předpisů.

Grafický způsob prezentace algoritmů je kompaktnější a vizuálnější než verbální způsob.

V grafickém znázornění je algoritmus znázorněn jako sekvence vzájemně propojených funkčních bloků, z nichž každý odpovídá provedení jedné nebo více akcí.

Takový grafické znázornění se nazývá vývojový diagram nebo vývojový diagram.

Ve vývojovém diagramu každý typ akce (zadávání počátečních dat, výpočet hodnot výrazu, kontrola podmínek, řízení opakování akcí, dokončení zpracování atd.) odpovídá geometrickému útvaru reprezentovanému jako symbol bloku. Symboly bloků jsou propojeny přechodovými čarami, které určují pořadí, ve kterém se akce provádějí.

Tabulka 1 uvádí nejčastěji používané znaky.

Blok „proces“ se používá k označení akce nebo sekvence akcí, které mění hodnotu, formu prezentace nebo umístění dat. Pro zlepšení viditelnosti diagramu lze několik samostatných bloků zpracování spojit do jednoho bloku. Prezentace jednotlivých operací je vcelku volná.

Blok "rozhodnutí" se používá k označení přechodů řízení podle podmínky. Každý blok „rozhodnutí“ musí specifikovat otázku, podmínku nebo srovnání, které definuje.

Blok "modifikace" se používá k uspořádání cyklických struktur. (Slovo modifikace znamená modifikace, přeměna). Uvnitř bloku je zapsán parametr cyklu, u kterého je uvedena jeho počáteční hodnota, okrajová podmínka a krok změny hodnoty parametru pro každé opakování.

Blok "předdefinovaný proces" se používá k označení volání pomocných algoritmů, které existují autonomně ve formě některých nezávislé moduly a pro volání na rutiny knihovny.

Pseudokód je systém notace a pravidel navržený k jednotnému zápisu algoritmů.

Zaujímá střední pozici mezi přirozenými a formálními jazyky.

Na jednu stranu se blíží běžnému přirozenému jazyku, takže v něm lze psát a číst algoritmy jako prostý text. Na druhou stranu jsou v pseudokódu použity některé formální konstrukce a matematická symbolika, což přibližuje zápis algoritmu obecně přijímané matematické notaci.

Pseudokód nepřijímá přísná syntaktická pravidla pro psaní příkazů vlastní formálním jazykům, což usnadňuje psaní algoritmu ve fázi návrhu a umožňuje použití širší sady příkazů určených pro abstraktního vykonavatele. V pseudokódu však obvykle existují některé konstrukce, které jsou vlastní formálním jazykům, což usnadňuje přechod od psaní v pseudokódu k psaní algoritmu ve formálním jazyce. Zejména v pseudokódu, stejně jako ve formálních jazycích, existují pomocná slova, jejichž význam je určen jednou provždy. V tištěném textu jsou tučně a v ručně psaném textu podtržené. Neexistuje jediná nebo formální definice pseudokódu, takže jsou možné různé pseudokódy, které se liší v sadě služební slova a základní (základní) struktury.

Příkladem pseudokódu je školní algoritmický jazyk v ruské notaci (school AL), popsaný v učebnici A.G. Kushnirenko a kol., "Základy informatiky a počítačového inženýrství", 1991. Tento jazyk bude jednoduše označován jako "algoritmický jazyk".

Základní funkční slova

Celkový pohled na algoritmus:

název algoritmu alg (argumenty a výsledky)

vzhledem k podmínkám použitelnosti algoritmu

potřebují cíl algoritmu

začátek popisu mezihodnot

| sekvence příkazů (tělo algoritmu)

Část algoritmu od slova alg po slovo start se nazývá nadpis a část uzavřená mezi slovy začátek a konec se nazývá tělo algoritmu.

V klauzuli alg jsou za názvem algoritmu v závorkách charakteristiky (arg, res) a typ hodnoty (celé číslo, věc, sim, lit nebo log) všech vstupních (argumentů) a výstupních (výsledků) proměnných. uvedeno. Při popisu polí (tabulek) se používá záložka servisní slovo doplněná o hraniční dvojice pro každý index prvků pole.

Příklady alg vět:

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

alg Roots QvUr(arg w, b, c, res w x1, x2, res lit t)

alg Vyloučit prvek (arg integer N, arg res karta položky A)

alg Diagonal (arg integer N, arg integer tab A, res rozsvícená Otvet)

Nabídky jsou poskytovány a nesmí být závazné. Doporučuje se psát příkazy, které popisují stav prostředí vykonavatele algoritmu, například:

arg substituce (arg lit Str1, Str2, arg res lit Text)

daný | délky podřetězců Str1 a Str2 jsou stejné

potřeba | všude v řádku Text je podřetězec Str1 nahrazen řetězcem Str2

alg Počet maxim (arg integer N, arg real tab A, res integer K)

daný | N>0

potřeba | K - počet maximálních prvků v tabulce A

alg odpor (arg real R1, R2, arg integer N, res real R)

daný | N>5, R1>0, R2>0

potřeba | R - odpor obvodu

Zde ve větách se uvádí a je třeba za znakem "|" komentáře se zaznamenávají. Komentáře lze umístit na konec libovolného řádku. Nejsou zpracovávány překladačem, ale výrazně usnadňují pochopení algoritmu.

Algoritmy lze reprezentovat jako nějaké struktury sestávající ze samostatných základních (tj. hlavních) prvků.

Při takovém přístupu k algoritmům by samozřejmě studium základních principů jejich konstrukce mělo začít studiem těchto základních prvků.

K jejich popisu použijeme jazyk algoritmických schémat a školní algoritmický jazyk.

Logická struktura každého algoritmu může být reprezentována kombinací tří základních struktur:

Následující,

větvení,

Charakteristickým znakem základních struktur je, že mají jeden vstup a jeden výstup.

Ministerstvo školství Ruská Federace Státní technická univerzita v Permu

oddělení informační technologie a automatizované systémy

Vikentyeva O.L.

Abstrakt přednášek z předmětu "Algoritmické jazyky a programování" (Základy jazyka C++, I semestr)

Úvod

První semestr se zabývá základními konstrukcemi jazyka C a základní programovací technologií (strukturované programování).

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

1.1. Algoritmus a program

Algoritmus je přesný předpis, který definuje výpočetní proces od změny počátečních dat ke konečnému výsledku, tj. je receptem na dosažení nějakého cíle.

Sada nástrojů a pravidel pro prezentaci algoritmu ve formě vhodné k provedení počítač 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 servisními programy - překladateli. 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 smyslem každé konstrukce je její sémantika.

1.2 Vlastnosti algoritmu

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

2. Efektivita: algoritmus by měl vést k 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é specifikovat přesnost získání tohoto zlomku, například až na 4 desetinná místa).

3. Definičnost (determinismus) - každá akce algoritmu by měla být svému vykonavateli jasná (návod pro domácí spotřebič v japonštině pro osobu, která nemluví japonsky, není algoritmus, protože nemá 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 reprezentová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 instrukcí procesoru, což se provádí pomocí speciální programy, kterým se říká překladatelé. 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, který se nazývá objektový modul, v jednom nepřetržitém procesu. Zároveň se nejprve podívá do zdrojového kódu programu při hledání syntaktických chyb. Interpret spouští zdrojový modul programu v režimu operátor po operátorovi, podle

průběh 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 symbolů nazývaných mnemotechnické pomůcky. S pomocí nízkoúrovňových jazyků vznikají velmi efektivní a kompaktní programy, protože vývojář získá přístup ke všem možnostem procesoru. Protože instrukční sady pro různé modely procesory jsou také různé, pak má každý model procesoru svůj vlastní assembler a program v něm napsaný lze použít pouze v tomto prostředí. Tyto jazyky se používají k psaní malých systémových aplikací, ovladačů zařízení a tak dále.

Programovací jazyky na vysoké úrovni proto neberou v úvahu zvláštnosti konkrétních počítačových architektur vytvořené programy na zdrojové úrovni lze snadno přenést na jiné platformy, pokud jsou pro ně 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 je první kompilovaný jazyk vytvořený v 50. léta 20. století. Implementovala řadu důležitých programovacích konceptů. Pro tento jazyk byl vytvořen velké množství knihovny od statistických sad po satelitní správu, takže je i nadále používán v mnoha organizacích.

2. COBOL - Kompilovaný jazyk pro ekonomické výpočty a řešení obchodní úkoly, vyvinuté na počátku 60. let. Cobol implementoval 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í, budovat krátké, dobře čitelný program, demonstruje základní techniky algoritmizace, 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 kompilátory a interpreti, je to jeden z nejoblíbenějších programovacích jazyků.

5. C - vznikl v 70. letech nebyl zpočátku považován za masový programovací jazyk. Bylo plánováno nahradit assembler, aby bylo možné vytvářet stejně efektivní a krátké programy, ale nezávisely na konkrétním procesoru. V mnoha ohledech je podobný Pascalu a má další funkce pracovat s pamětí. Obsahuje mnoho aplikovaných a systémové programy, a operační systém Unix.

6. C++ je objektově orientované rozšíření jazyka C vytvořené Bjarnem Stroustrupem v roce 1980.

7. Java je jazyk, který na začátku vytvořil Sun 90. léta na bázi C++. Je navržen tak, aby zjednodušil vývoj aplikací v C++ tím, že z něj odstraní nízkoúrovňové funkce. hlavní rys jazyk spočívá v tom, ž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, Java Virtual Machine (JVM).

2. Struktura programu v C++

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

. . . . . . . . .

# funkce direktiv preprocesoru a ()

operátory funkcí v ()

operátory

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

popisy

úkoly

funkce prázdného příkazu

kompozitní

přechod

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

1) převod textu preprocesoru;

2) kompilace;

3) rozložení (úprava odkazu nebo sestavení).

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

cessor - transformace textu programu před jeho kompilací. Pravidla předzpracování definuje programátor pomocí direktiv preprocesoru. Direktiva začíná znakem #. Například,

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

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

2) #zahrnout< имя заголовочного файла>- je určeno pro vložení textu z katalogu "Hlavní soubory" dodávaného se standardními knihovnami do programového textu. 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 připojeny ve fázi propojení, tedy po kompilaci. Ačkoli v hlavičkové soubory obsahuje všechny popisy standardních funkcí, v kódu programu jsou obsaženy pouze ty funkce, které jsou v programu použity.

Po předběžném zpracování nezůstanou v textu programu žádné direktivy preprocesoru.

Program je sada popisů a definic a skládá se ze sady funkcí. Mezi těmito funkcemi musí vždy existovat funkce s názvem main. Bez něj nelze program spustit. Před názvem funkce je uvedena 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 (void) je uvedeno v závorkách.

Tělo funkce následuje za hlavičkou funkce. Tělo funkce je posloupnost definic, deklarací a spustitelných příkazů rovnátka. Každá definice, popis nebo prohlášení 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 dat zpracovávaných v programu. Příkladem je

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 - definují akce programu v každém kroku jeho provádění

Příklad programu C:

#zahrnout //direktiva preprocesoru

Kontrolní otázky

1. Jaké jsou části programu C++?

2. Jak se liší definice od deklarace?

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í možnosti jazyka C++ 2.1 Skladba jazyka

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

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

Identifikátory jsou názvy objektů C-programu. V identifikátoru lze použít latinská písmena, čísla a podtržítka. Rozlišují se velká a malá písmena, 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á (vyhrazená) slova jsou slova, která mají pro překladač speciální význam. Nelze je použít jako identifikátory.

- Znaky operace jsou jeden nebo více symbolů, které definují operaci 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é hodnoty. Existují celočíselné, reálné, znakové a řetězcové konstanty. Překladač rozlišuje konstantu jako token (elementární konstrukt) a podle vzhledu ji přiřadí k jednomu z typů.

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

2.1.1. Konstanty v C++

Konstanta je token, který představuje reprezentaci pevné číselné, řetězcové nebo znakové hodnoty.

Konstanty jsou rozděleny do 5 skupin:

Celý;

- reálný (s plovoucí desetinnou čárkou);

vyjmenovaný;

Symbolický;

Tětiva.

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

tři skupiny k určitému typu podle jeho formy zápisu v textu programu a podle číselné hodnoty.

Celočíselné konstanty mohou být desítkové, osmičkové a šestnáctkové. Desetinná konstanta je definována jako posloupnost desetinných číslic, která nezačíná na 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ě kompilátoru celočíselných konstant prezentovat to jinak

PROTI paměti počítače (tj. kompilátor přiřadí konstantě vhodný datový typ).

Reálné konstanty mají jinou formu vnitřní reprezentace v paměti počítače. Překladač rozpozná takové konstanty podle jejich tvaru. Reálné konstanty mohou být reprezentovány ve dvou formách: s pevnou řádovou čárkou a s pohyblivou řádovou čárkou. 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, .11e-5, 5E3). V zápisu reálných konstant lze vynechat buď celé číslo nebo zlomkovou část, případně desetinnou čárku nebo znaménko exponentu s exponentem.

Výčtové konstanty jsou zavedeny pomocí klíčového slova enum. Jedná se o běžné celočíselné konstanty, kterým je přiřazen jedinečný a snadno použitelný zápis. 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í znakem \ se nazývají escape sekvence, používají se:

- Chcete-li znázornit znaky, které nemají grafické zobrazení, 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. Data různé typy ukládat a zpracovávat jinak. Datový typ definuje:

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

2) množina hodnot, které mohou hodnoty 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 zvolí typ pro programové objekty. Typy C++ lze rozdělit na jednoduché a složené typy. Jednoduché typy jsou typy, které se vyznačují jedinou hodnotou. C++ definuje 6 jednoduchých datových typů:

int (celé číslo)

znak (znak)

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

double (skutečné s dvojitou přesností)

Existují 4 typové specifikátory určující 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 mu přiděleny 2 bajty, pro 32bitový procesor 4 bajty.

Pokud je před int krátký specifikátor, pak jsou číslu přiděleny 2 bajty, a pokud je specifikátor dlouhý, pak 4 bajty. Sada závisí na množství paměti přidělené objektu. povolené hodnoty, které může objekt přijmout:

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. typ char

Hodnoty tohoto typu jsou prvky konečné uspořádané sady znaků. Každému znaku je přiřazeno číslo, které se nazývá kód znaku. Pod hodnotou typ postavy 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 -128 až 127. Znaky bez znaménka mohou ukládat hodnoty v rozsahu 0 až 255. Kódování používá ASCII (American Standard Code foe International Interchange). Symboly s kódy od 0 do 31 jsou symboly služeb a mají nezávislý význam pouze v příkazech I/O.

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 které kódování nestačí 1 bajt, jako je Unicode. Velikost tohoto typu zpravidla odpovídá krátkému typu. Řetězcové konstanty tohoto typu se zapisují s předponou L: L"String #1".

2.2.4. typ bool

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

2.2.5. typy s plovoucí desetinnou čárkou.

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

Hodnoty typu double zabírají 8 bajtů, 11 a 52 číslic je přiděleno pro objednávku a mantisu. Délka mantisy určuje přesnost čísla, zatímco délka exponentu určuje jeho rozsah.

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

2.2.6. prázdný typ

NA mezi hlavní typy patří také typ void. Sada hodnot tohoto typu je prázdná.

2.3. Proměnné

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

Celkový pohled na operátor popisu:

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

Třída úložiště může nabývat následujících hodnot: auto, extern, static, register. Třída úložiště definuje životnost a rozsah proměnné. Pokud není třída úložiště explicitně specifikována, pak ji kompilátor určí na základě kontextu deklarace. Životnost může být konstantní - 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řípadů, 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 je automatická lokální proměnná. Auto specifier lze zadat pouze při definování objektů bloku, například v těle funkce. Paměť je těmto proměnným přidělena při vstupu do bloku a uvolněna při opuštění bloku. Mimo blok takové proměnné neexistují.

extern je globální proměnná, nachází se jinde v programu (v jiném souboru nebo později 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 jsou proměnné považovány za automatické.

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;//definování 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 odlišná: paměť pod b je alokována při vstupu do bloku (protože výchozí třída paměti je auto), uvolňuje se při jejím opuštění. Proměnná s (static) existuje, když je program spuštěn.

Pokud proměnné nejsou explicitně inicializovány, když jsou definovány, kompilátor nastaví 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 třídě úložiště a typu proměnné a definice spolu s těmito informacemi dává pokyn k přidělení úložiště. 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ů, operátorových znaků 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ískat adresu operandu

* Odkazování na adresu (dereference)

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

++ Zvýšení jednotky:

operace s prefixem - inkrementuje 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 na jeho použití

operace postfix snižuje operand poté, co byl použit

výpočet velikosti (v bajtech) pro objekt typu, že

má operand

má dvě podoby

velikost výrazu

sizeof(float)//4

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

Ve školách studovat základy algoritmizace, tzv. školní algoritmický jazyk (výukový algoritmický jazyk), používající slova srozumitelná studentovi v ruštině. Na rozdíl od většiny programovacích jazyků není algoritmický jazyk vázán na architekturu počítače, neobsahuje detaily související se zařízením stroje.

Příklady

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

alg název algoritmu (argumenty a výsledky) daný podmínky použitelnosti algoritmu nutné cíl algoritmu brzy popis mezihodnot| sekvence příkazů (tělo algoritmu) ošidit

Při psaní algoritmu byla klíčová slova obvykle podtržena nebo zvýrazněna tučně. Pro zvýraznění logických bloků bylo použito odsazení a dvojice slov začátku a konce bloku byla spojena svislou čárou.

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

alg Součet čtverců ( arg Celý n, střih Celý S) daný| n > 0 nutné| S = 1*1 + 2*2 + 3*3 + … + n*n brzy Celý 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

Pro posílení teoretického studia programování v algoritmickém jazyce vytvořili specialisté z Mekhmat Moskevské státní univerzity v roce 1985 editor-kompilátor "E-workshop"("E" - na počest Ershova), který vám umožňuje zadávat, upravovat a spouštět programy v algoritmickém jazyce.

V roce 1986 byla vydána sada tréninkových světů (interpretů) pro „E-cvičení“: „Robot“, „Drafter“, „Dvounohý“, „Terénní vozidlo“, které vám umožňují jednoduše představit pojmy algoritmu. "E-workshop" byl implementován na počítačích: Yamaha, Corvette, UKNC a byl široce používán.

Tento programovací jazyk byl neustále vylepšován a v učebnici z roku 1990 se objevil popis pozdější verze „E-workshopu“. Programovací systém "KuMir" ("Sada 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á „KuMir“.

V roce 1995 byl "KuMir" doporučen Ministerstvem školství Ruské federace jako hlavní vzdělávací materiál pro kurz "Základy informatiky a počítačového inženýrství" podle učebnice A. G. Kushnirenka, G. V. Lebedeva a R. A. Svorenyi. .

Kritika

Je však třeba poznamenat, že algoritmický jazyk, při absenci podrobností, které jej přímo spojují s architekturou počítače, nicméně odkazuje na Algolo - jako jazyky, implicitně učí studenty spoléhat se na von Neumannovu architekturu strojů. (Von Neumannova architektura je praktickou implementací dřívější myšlenky zvané Turingův stroj. Kromě Turingova nápadu existují i ​​jiné nápady. Nejpopulárnější z nich se nazývá Lambda Calculus: pracoval na něm Alonzo Church. Lisp Machine je architektura, která je založena na Lambdě - kalkul.)

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 draku jazyka DRAKON schématu DRAKON (Friendly Russian Algorithmic Language That Provides Visibility) visual ... ... Wikipedia

    Tento termín má jiné významy, viz Algoritmický jazyk. Učící se algoritmický jazyk je formální jazyk používaný k psaní, implementaci a učení 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ý k psaní a studiu algoritmů. Při studiu informatiky na školách studovat základy algoritmizace, tzv. š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 jazyce DRAKON dračí diagramy DRAKON (Friendly Russian Algorithmic Language That Provides Visibility) je vizuální algoritmický jazyk vytvořený v rámci vesmírného programu Buran. Rozvoj daný jazyk... Wikipedie

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 psaním algoritmu v přirozeném (lidském) jazyce a psaním 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ákladem tohoto slovníku jsou slova používaná k záznamu 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í jsou jednou provždy stanoveny. Tato slova se nazývají oficiální. Použití obslužných slov činí záznam algoritmu vizuálnějším a forma prezentace různých algoritmů je jednotná.

Algoritmus napsaný v algoritmickém jazyce musí mít název. Název je vhodné volit tak, aby bylo jasné, jaké řešení daný algoritmus popisuje. Pro zvýraznění názvu algoritmu je před něj napsáno servisní slovo ALG (ALGORITHM). Za názvem algoritmu (obvykle s nový řádek) zaznamenejte jeho příkazy. Pro označení začátku a konce algoritmu jsou jeho příkazy uzavřeny ve dvojici servisních slov BEGIN (START) a KON (END). Příkazy se zapisují postupně.

ALG - název algoritmu

sérii instrukcí algoritmu

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

ALG - do_skladu

Při konstrukci nových algoritmů lze použít dříve zkompilované algoritmy. Algoritmy, které jsou zcela použity jako součást jiných algoritmů, se nazývají pomocné algoritmy. Pomocným může být jakýkoli algoritmus z dříve zkompilovaných. Není také vyloučeno, že pomocným algoritmem může být v určité situaci 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í, začít pracovat, pokaždé sestavit a zapamatovat si takový algoritmus pro jeho následné použití. Proto jsou v praxi široce používány tzv. vestavěné (neboli standardní) pomocné algoritmy, tzn. takové algoritmy, které jsou interpretovi neustále k dispozici. Odvolání na tyto algoritmy se provádí stejným způsobem jako na "obyčejné" pomocné algoritmy. Robot provádějící výkon může mít vestavěný pomocný algoritmus, který se přesune do skladu odkudkoli z pracovního pole; pro exekutor programovacího jazyka BASIC je to například vestavěný algoritmus "SIN".

Algoritmus se může označovat jako pomocník, v takovém případě se nazývá rekurzivní. Pokud je příkaz pro volání algoritmu sám pro sebe v algoritmu samotném, pak se taková rekurze nazývá rovný. Existují případy, kdy rekurzivní volání tohoto algoritmu pochází pomocný algoritmus, ke kterému se v tomto algoritmu přistupuje. Tento druh rekurze se nazývá nepřímý. Příklad přímé rekurze:

ALG - pohyb

hnutí

Algoritmy, při jejichž provádění se určuje sekvence příkazů v závislosti na výsledcích kontroly určitých podmínek, se nazývají větvení. K jejich popisu v algoritmickém jazyce se používá speciální složený příkaz - příkaz větvení. Pokud jde o robota, podmínkou může být 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

DO série1 DO série DO vpravo

ELSE série2 VŠE OSTATNÍ vpřed

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

AT Stav 1: Série 1

AT Stav 2: Série 2

AT N stav: N série

ELSE Řada N+1

Algoritmy, při jejichž provádění se opakovaně provádějí jednotlivé instrukce nebo série instrukcí, se nazývají cyklické. Pro organizaci cyklických algoritmů v algoritmickém jazyce se používá speciální příkaz složený cyklus. Odpovídá vývojovým diagramům typu „iterace“ a může mít následující podobu:

BYA podmínka NC

série PŘED stav