1. Úvod algoritmus a programovací jazyky

GYMNÁZIUM, VLAŠIM, TYLOVA 271

logo

 AutorIng. Marta Bechyňová
Číslo materiálu4_1_INF_01
K dispozici nahttp://www.ivt.mzf.cz/algoritmizace-a-programovani/uvod-do-algoritmu/1-uvod-algoritmus/
Datum vytvoření
  1. 10. 2012
Druh učebního materiálu webová stránka
Ročník1.
Anotacewebová stránka pro osvojení pojmů algoritmus, programování a programovací jazyky.
Klíčová slovaalgoritmus, algoritmizace, programování
Vzdělávací oblastInformační a komunikační technologie
Očekávaný výstupStudenti si osvojí pojem algoritmus, programování a programovací jazyky.
Zdroje a citace[online]. [cit. 2012-10-05]. Dostupné z:http://www.spsemoh.cz/vyuka/algor/index.htm[online]. [cit. 2012-10-05]. Dostupné z: http://k-prog.wz.cz/progjaz/index.php

dum

Úvod do algoritmizace a základní struktury

1. Úvod algoritmus a programovací jazyky

Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských činnostech.

Uživatelé počítače obvykle neovládají počítač přímo, ale využívají k tomu různé programy. (Příkladem lze uvést textový editor, operační systém nebo počítačovou hru.) Tento software musí být vytvořen jinými lidmi, ale ačkoli jsou programy určeny pro různé oblasti, existují společné základy, které se při tvorbě programů obvykle využívají. Právě na tyto základy je zaměřen tento kurz.

Tvorba programů je činností, které se většinou věnují vysoce specializovaní jednotlivci v rámci různých softwarových společností. Po absolvování výuky základů algoritmizace se proto pravděpodobně nestanete skvělými tvůrci programů, pokud však pochopíte principy, bude cíl výuky naplněn. V tom případě totiž budete mít předpoklady pro případné další (a již konkrétnější) studium této oblasti a ani základní pojmy programování vám již nebudou cizí.

Dnes již počítače pronikly téměř do všech oblastí lidské činnosti, používají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá algoritmus (program) a jeho tvorba algoritmizace (programování).

Historie

Algoritmy vznikaly už dávno před zkonstruováním prvních počítačů. Slovo „algoritmus“ vzniklo ze jména perského matematika, který žil v 9. století a jmenoval se Mohammed al-Khowarizmí (v latinském přepise Algoritmus). Zabýval se především pravidly pro aritmetické operace s čísly. Například Eukleidův algoritmus pro výpočet největšího společného dělitele dvou přirozených čísel pochází už z 4. až 3. století před naším letopočtem.

Algoritmus 

Algoritmus je přesný popis, popisující určitý proces, který vede od měnitelných vstupních údajů k požadovaným výsledkům.
Jinými slovy – algoritmus je jednoznačný a přesný popis řešení problému.

Použití:

  • při konstrukci či analýze algoritmů
  • pro dokumentaci, pro zachycení myšlenky

Účel:

  • názornost a přehlednost pro pochopení při algoritmizaci
  • jednoznačný převod z textu programu do vývojového diagramu a naopak
  • spíše nevhodné při návrhu celého (složitějšího) programu

Vstupní údaje

  • informace, ze kterých při řešení úlohy vycházíme, musí splňovat vstupní podmínku

Výstupní údaje

  • nově získané informace, které jsou výsledkem realizace algoritmu, musí splňovat výstupní podmínku

 

Každý algoritmus musí mít tyto vlastnosti:

  • správnost: výsledek, který vznikne použitím algoritmu, musí být správný
  • resultativnost: po konečném počtu kroků dospěje k řešení (vrátí třeba jen chybové hlášení)
  • konečnost: algoritmus se nezacyklí, po určitém počtu kroků skončí
  • determinovanost: v každém kroku je jednoznačně určen způsob pokračování práce algoritmu
  • hromadnost: znamená, že algoritmus lze použít pro řešení obecné úlohy, tj. že nepopisujeme postup jedné úlohy, ale poslouží k řešení libovolné úlohy, která patří do jisté třídy úloh
  • opakovatelnost: algoritmus vede vždy ke stejným výsledkům, jsou-li zadána stejná data

Algoritmus nemusí nutně vyžadovat vstupní údaje a vracet výstupní.

Některé problémy lze řešit více způsoby – různými algoritmy, které se mohou svým postupem značně lišit, ale vždy musí vést ke stejným výsledkům.

Naší snahou je vybrat pro řešení problému co nejefektivnější algoritmus, který řeší problém v co nejkratším čase, je přehledný a srozumitelný.

Algoritmus lze vyjádřit:

  • slovně: jednotlivé kroky postupu jsou vyjádřeny větami v přirozeném jazyce
  • graficky: jednotlivé kroky jsou popsány grafickými značkami se slovním popisem, například pomocí tzv. vývojových diagramů
  • matematicky: soustavou rovnic, vztahem mezi veličinami
  • programem: jednotlivé kroky jsou popsány instrukcemi určitého procesoru

Programování = zakódování algoritmu do zvoleného programovacího jazyka

Algoritmizace = proces vytváření a sestavování algoritmů

Efektivnost algoritmu

danou úlohu řeší více algoritmů, vybíráme efektivnějsší podle určitých kritérií:

  • časové: úloha vyřešena v kratším čase (uvažujeme strojový čas tj. počet instrukcí procesoru)
  • paměťové: spotřeba paměti
  • přehlednost, srozumitelnost: (důležité pro další vývoj a úpravy)

Programovací jazyk = umělý jazyk jenž se používá pro definování sekvence programových příkazů, které lze zpracovat na počítači. Algoritmus má obecnou povahu, zatímco implementace algoritmu v určitém programovacím jazyku je ryze konkrétní.

Dělení programovacích jazyků

Nižší programovací jazyky

jsou jazyky primitivní, jejichž instrukce odpovídají příkazům procesoru. To znamená, že procesor bude vykonávat ty instrukce, které programátor napíše. Jsou závislé na svém procesoru a nepřenositelné na jiný procesor.
V praxi to vypadá tak, že programátor musí vypisovat vše. Pak i jednoduchý program má neúměrně složitý zdrojový kód. Výhodou je, že programátor má takto přístup i k funkcím počítače, které by měl ve vyšším programovacím jazyce nedosažitelné. Lépe tedy využije jeho schopnosti.

Patří sem:

  • strojový kód (to, co uvidíte, když otevřete obsah „exe“ souboru v textovém editoru). Strojový kód = Soubor číslicových instrukcí, které je procesor počítače schopen rozpoznat a uskutečnit.
  • jazyk symbolických adres (Assembler) – je velice blízký strojovému kódu

Vyšší programovací jazyky

jsou podstatně srozumitelnější, jejich struktura je logická, nejsou závislé na strojových principech počítače. Do strojového kódu se převádějí kompilátorem (případně se rovnou spouštějí interpretrem). V praxi je vyšší programovací jazyk vše, co není Assembler (například jazyk C++, Pascal, Basic, Delphi..)

Programovací jazyky dále dělíme na :

  • kompilované
  • interpretované

Kompilované jazyky

jsou nejdříve celé přeloženy a až potom mohou být spuštěny. Jsou rychlejší, mají vyšší nároky na formální správnost kódu. Překládají se kompilátorem, výsledkem překladu je (většinou) .exe soubor. Patří sem většina klasických programovacích jazyků.
Teoreticky může mít jeden programovací jazyk verzi jak  interpretovanou, tak i kompilovanou.

Interpretované jazyky

jsou překládány až za běhu programu. Jsou pomalejší, ale nemají tak velké požadavky. Překládají se interpretem, ten instrukce zároveň při překladu provádí. Hlavní nevýhodou těchto jazyků je, že se musejí vždy spouštět v interpretu. Do této skupiny patří například Basic, skriptovací jazyky (PHP, Python, Perl …).

Další způsoby dělení programovacích jazyků

Programovací jazyky můžeme dále dělit na jazyky, které podporují:

  • programování strukturované (např. Pascal)
  • objektově orientované programování (OOP) – např. Visual Basic, Delphi

Opakování

  1. Co je to algoritmus?
  2. Co jsou vstupní údaje?
  3. Co jsou výstupní údaje?
  4. Vyjmenuj a popiš vlastnosti algoritmu.
  5. Jak lze vyjádřit algoritmus?
  6. Co to je programování?
  7. Co to je algoritmizace?
  8. Vyjmenuj kritéria efektivnosti algoritmu.
  9. Co je programovací jazyk?
  10. Vysvětli rozdíl mezi vyššími a nižšími programovacími jazyky.
  11. Vysvětli rozdíl mezi interpretovanými a kompilovanými programovacími jazyky.

Buďte první, kdo vloží komentář

Přidejte odpověď

Vaše e-mailová adresa nebude zveřejněna.


*