Programovací jazyky

1

V paměti PC jsou uloženy údaje dvojího druhu:

1. údaje, se kterými chceme vykonat výpočet nebo jiné zpracování (tyto údaje jsou uloženy pomocí datových struktur)

2. informace o tom, které operace a v jakém pořadí se mají s těmito údaji vykonat (algoritmus)

Datové struktury

1. Data

= údaje popisující jevy v reálném světě. Musí být vyjádřena v takové formě, aby bylo možno je zpracovat a dále předat

Základní vlastnosti dat:

  • Datový typ
  • Datová struktura

Datová struktura

= účelné uspořádání datových prvků paměti PC, soubor pravidel a jistých omezení, která určují vztahy mezi jednotlivými typy dat.

Proměnná = místo v paměti PC, kde je uložen jeden údaj (tento údaj se dá měnit, proto proměnná)

Příklad použití datových struktur:

  • dvě proměnné, ve kterých jsou uloženy hodnoty. Pokud chci tyto dvě hodnoty prohodit mezi sebou, musím použít ještě třetí proměnnou jako takové „překladiště“

Příklad použití datových struktur

 

 

 

 

 

 

 

 

Datový typ

představuje:

  • množinu hodnot kterých může proměnná daného typu nabývat (př.: proměnná A typu číslo nemůže obsahovat text)
  • množinu operací proveditelných nad těmito hodnotami (př.: u proměnné A typu text, nemůžu provádět sčítání a jiné operace definované pro čísla)

 

Základní datové typy:

  • textový
    • strukturovaný datový typ složen ze znaků (příkladem znakové sady je ASCII)
    • PC má všechna písmena uložena v sobě jako čísla (například číslo 0061 značí male a). Pomocí znakové sady si operační systém vyhledá podle čísla daný znak, který následně zobrazí. Některé znakové sady nejsou kompatibilní se všemi programy (např.: z důvodu různých druhů kódování češtiny         Unix x MS Windows) a tudíž vznikají problémy při čtení souborů (místo některých písmenek vidíme například čtverečky nebo jiné paznaky). Řešením je tzv. UNICODE, což je 16-ti bitová znaková sada, která umožňuje použití přibližně 65 000 znaků. ASCII je totiž pouze 8 bitová sada (256 znaků). To je hodně málo a není v ní proto možno použít všechny znaky potřebné u různých jazyků (francouzštiny, němčiny, japonštiny, …). Důsledkem toho je, že dokument napsaný například francouzsky se v našich  podmínkách zobrazuje se špatnými znaky.

 

  • číselný
    • podtypy jsou například celé číslo a desetinné číslo
    • číslo může být zobrazeno různým způsobem např.: 3E-7…… 0,0000003 (tento zápis znamená desetinné číslo s trojkou na sedmé pozici za čárkou)

 

  • logický
    • používaný v podmínkách algoritmu (viz dále)

2. Multimediální data

  • volný text (fultextové systémy, aplikace pro právníky)
  • grafika
  • audio
  • video

Algoritmus

= předpis pro řešení dané úlohy

  • představuje souhrn pravidel převádějící vstupní údaje na požadované výstupní údaje
  • může být vyjádřen nezávisle na prostředku, pomocí kterého bude problém řešen (můžu mít určitý algoritmus napsaný třeba na kusu papíru, ač budu nakonec řešit příklad podle tohoto papíru graficky v PC)

Vlastnosti algoritmu:

  • diskrétnost (oddělenost jednotlivých kroků stanoveného postupu)
  • rezultativnost (po konečném počtu kroků by měl vzniknout výsledek)
  • hromadnost (znamená, že algoritmus funguje pro určitou množinu vstupních hodnot. Funkčnost pro konkrétní jednu hodnotu např. program pro sčítání čísel 2+5, by neměl smysl)

Vyjádření algoritmu:

  • slovní předpis (není praktické a přehledné)
  • grafické prostředky (př. vývojové diagramy – použití jednoznačných schematických značek)
  • prostředky programovacího jazyka
  • smíšené prostředky

Realizace algoritmu = postupné provádění konečného počtu operací předepsaným algoritmem.

Probíhá na datových strukturách naplněných konkrétními údaji.

 

Příklad zápisu algoritmu:

Příklad zápisu algoritmu - rozhodovací tabulka

 

 

 

 

 

 

 

Základní řídící struktury:

Sekvence = posloupnost prováděných operací

Posloupnost prováděných operací

 

 

 

 

 

 

 

 

Selekce = větvení

Selekce = větvení

 

 

 

 

 

 

 

 

 

Iterace = opakování, cyklus

  • předpokladem je, že předem víme, kolikrát se má operace provést.

Iterace = opakování, cyklus

 

 

 

 

 

 

 

 

Cyklus s podmínkou:

Cyklus (iterace) s podmínkou

 

 

 

 

 

 

 

 

Cyklus s podmínkou na konci:

 

Cyklus (iterace) s podmínkou na konci

 

 

 

 

 

 

 

 

 

Programovací jazyky

Program = posloupnost instrukcí procesoru, která je připravená v operační paměti k provádění (velmi obrazně řečeno: procesor provádí pouze kroky, které má programem určené…. např. sečti, přesuň  něco někam, atd. Program je tedy posloupnost kroků, které jsou  procesorem postupně vykonávány).

 

Vývoj programovacích jazyků

Programovací jazyky se přibližují vyjadřovacím prostředkům přirozeného jazyka.

Strojový kód

  • program napsaný ve strojovém kódu je reprezentován posloupností číselně vyjádřených instrukcí

Příklad strojového kódu:

Příklad strojového kódu

 

 

 

 

 

(Znaky jsou zde místo čísel proto, že ASCII tabulka pod každým číslem eviduje určitý znak, který poté daný program uživateli zobrazuje)

  • malá produktivita programátora (programy ve strojovém kódu jsou sice o něco rychlejší než programy psané ve vyšších programovacích jazycích, ale programátorovi samotnému trvá déle takovýto program ve strojovém kódu nebo v jazycích nižší úrovně napsat)
  • lze použít pro speciální úkoly (např. ovládání technických prostředků počítače)

Jazyky nižší úrovně (Assemblery)

  • operační (co se má udělat) i adresové (kam nebo s čím se to má udělat) části instrukcí zapsány symbolicky (například instrukce skoku „jump“ vyjádřena jako JMP)
  • programy vázány na konkrétní typ počítače (např. program napsaný v Assembleru u PC nelze převést do Macintoshe – tyto počítače mají totiž jiný procesor, s jinými instrukcemi, které nejsou kompatibilní s instrukcemi procesoru PC)

Vyšší programovací jazyky

  • nezávislé na konkrétním typu počítače (program napsaný např. v jazyku C teoreticky funguje na různých druzích počítače) a na provozovaném operačním systému.

Kompilátor

  • kompilátor převede program, který je bez syntaktických chyb, do posloupnosti instrukcí daného procesoru (syntaktická chyba:  cout << „Zadej cislo: „; -> středník odděluje jednotlivé příkazy. Jeho zapomenutí by byla syntaktická chyba)
  • přeložený program lze opakovaně provádět
  • chyby identifikovány až po překladu (např. dělám-li  program, který má vytvořit součet A+B, a přitom zadám A-B, kompilátor mi jej přeloží, protože z hlediska syntaxe je vše v pořádku, i když po spuštění program dává špatné výsledky oproti očekávání -> sémantická chyba)

Druhy překladačů:

  • Interpret (překládá jednu instrukci za druhou – nepřevádí příkazy do strojového kódu, ale rovnou je vykoná)
  • kompilátor (viz výše)

Postup tvorby programu:

Tvorba programu

 

 

 

 

 

 

 

 

 

 

 

 

Přehled programovacích jazyků

1980 – MODULA2, ADA (použití pro programování řízení NASA), SMALLTALK

1975 – C++, C (například UNIX je naprogramovaný v C)

1970 – PASCAL, PROLOG (programy umělé inteligence)

1965 – BASIC (jazyk pro začátečníky/překladač interpret)

1960 – ALGOL, COBOL (hromadné zpracování dat – přinesl datovou strukturu „záznam“ = datová struktura složená z polí. Položky mohou obsahovat údaje různého typu = heterogenní struktura), LISP

1955 – FORTRAN

Rozdělení jazyků dle toho „co“ a „jak“ budeme řešit

  • procedurální jazyky (programátor popisuje jak chce problém řešit)
  • neprocedurální jazyky (deklarativní př. PROLOG… programátor popisuje co se má řešit)

Vizuální vývojové prostředky

  • Visual Basic
  • Delphi

Programování na internetu

  • HTML (jazyk pro popis vzhledu stránky)
  • Java Script (programovací jazyk pro webové stránky) x Java (programovací jazyk pro tvorbu jakýchkoli programů – ne jen webových stránek)
  • PHP (dynamický web)
  • XML

Druhy programování

  • Strukturované
    • princip abstrakce
    • princip postupu shora dolů
    • použití tří základních řídících struktur (sekvence, selekce, iterace)
  • Objektově orientované
    • objekt je zapsán jako souhrn vlastností a schopností provádět různé činnosti, objekty stejných vlastností tvoří třídu. Objektově orientovaný program je pak tvořen objekty, které spolu vzájemně komunikují.