Praktická zkouška z programování
Obecné zadání praktické zkoušky Pro zadanou úlohu zpracujte následující části:
1.
V textovém editoru zapište definici problému neboli zadání úlohy.
2.
Zpracujte nástin řešení dané úlohy. Popište, jak jste postupovali při základní rozvaze, jak budete daný problém řešit, co vše jste museli zjistit a ověřit pro zdárné a správné řešení. Nezacházejte do velkých podrobností a detailů. Řešte jen základní strategii řešení. Volba algoritmu a výběr formy zápisu algoritmu, resp. algoritmizace. Graficky zapište
3.
navržený vývojový diagram, podle kterého napíšete program. 4.
Volba prostředku výpočetní techniky a programovacího jazyka.
5.
Kódování ve vybraném programovacím jazyce. Ve vývojovém prostředí programovacího jazyka zapište zdrojový kód programu. Hotový přiložte v textovém editoru jako přílohu k dokumentaci programu. Tvorba a odladění programu na počítači. Odstraňte všechny syntaktické a sémantické
6.
chyby programu. Vytvořte výsledný program, který bude pracovat pod operačním systémem. Zpracování dokumentace programu. Navrhněte jednoduchý návod na obsluhu hotového
7.
programu (manuál) a napište změny programu do budoucna. --------------------------------
Vytvořte program, který vypočítá kořeny kvadratické rovnice ax2 + bx + c = 0. Program musí pracovat pro libovolnou (tedy i nulovou) hodnotu koeficientů a, b, c. Řešte pomocí výpočtu diskriminantu a jeho vyhodnocení, zda je záporný nebo kladný.
Napište program, který vygeneruje prvních n řádků Pascalova trojúhelníka. Tento trojúhelník chápeme tak, že v i – tém řádku obsahuje koeficienty binomického rozvoje (a + b)i. Jeho začátek má tedy tvar:
1 11 121
1331 14641
o Řešte pomocí práce s jednorozměrnými poli proměnných, které naplníte hodnotami pomocí příkazu cyklu for.
Napište program, který vygenerujte náhodné celé číslo v uživatelsky zadaném intervalu a převeďte jej do dvojkové soustavy. o Doporučení: Použijte matematickou funkci Random, ale nezapomeňte generátor náhodných čísel před použitím inicializovat voláním procedury Randomize.
Vytvořte program, kterému budete postupně zadávat předem neurčený počet známek a on z nich spočítá průměr, který na konci vypíše společně s celkovým počtem známek a statistikou výskytu jednotlivých známek. Ošetřete zadání tak, aby bylo možné zadat pouze známky v rozsahu <1;5> a klávesu "Esc" pro ukončení zadávání. Pro ostatní případy uživatele upozorněte např.: "Chybné zadání". K zadávání známek použijte funkci ReadKey. Po ukončení zadávání a výpisu průměru a počtu známek bude uživatel tázán, zda chce zadávat znovu. o Rada: Ordinální číslo pro klávesu "Esc" je 27. Ordinální čísla numerických kláves jsou o 48 větší než jejich číselná hodnota, tzn.: ordinální číslo klávesy "1" je 49 apod.
Vytvořte funkci s názvem mocnina pro výpočet xn, kde n bude celé číslo a x reálné číslo. Obě čísla budou zadávána jako parametry. Dále napište jednoduchý program, který bude funkci mocnina volat s příslušnými parametry a ověří správnost výpočtu. Hodnoty x a n umožněte zadat uživateli, dále umožněte uživateli výpočet opakovat dle libosti.
Napište program: dvě matice (dvourozměrná pole) s maximálním rozměrem 50x50 prvku typu int (signed nebo unsigned - dle úvahy řešitele). Umožněte načtení dat z klávesnice a vygenerování náhodných hodnot v uživatelem zadaném rozmezí. Konkrétní rozměry matic zadá uživatel. Výstup programu umožněte na obrazovku. Ovládání programu umožněte pomocí jednoduchého menu. Program musí být ošetřen proti chybným vstupům (pozor na rozměry matic při sčítání). Program provede součet těchto matic a ve výsledné matici vyhledá třetí největší prvek. Výstupem programu bude výsledná (sečtená) matice.
Napište program: jednorozměrné pole s maximálním rozměrem 500 prvku typu int (signed nebo unsigned - dle úvahy řešitele). Umožněte načtení dat z klávesnice nebo
vygenerování náhodných hodnot v uživatelem zadaném rozmezí. Konkrétní velikost pole zadá uživatel jako první hodnotu z klávesnice. Výstup programu umožněte na obrazovku. Ovládání programu umožněte pomocí jednoduchého menu. Program musí být ošetřen proti chybným vstupům. Program vyhledá čtvrtý a osmý největší prvek v poli a vrátí jejich hodnoty jako výstup programu. Dále vrátí jejich polohu v poli (např. hodnota 332 a 787, prvek 8. a 65.)
Napište program, který n prvkům pole přiřadí náhodné celočíselné hodnoty od 0 do 100. Počet prvků je maximálně 50. Vytvořte funkce zjišťující maximální a minimální hodnoty, které toto pole obsahuje. Na obrazovku vypište hodnoty jednotlivých prvků pole, minimum a maximum jaké pole obsahuje.
Napište program, který uživateli umožní zadat libovolný text, který uložíte do textového souboru. Následně uložený soubor prohledejte a zjistěte počet výskytů jednotlivých znaků. Tuto statistiku zobrazte jako výstup programu na obrazovku.
Sestavte program, který hledá největšího společného dělitele dvou čísel. Vychází ze známého Euklidova algoritmu, kdy menší číslo se odečítá od většího tak dlouho, dokud si obě nejsou rovna. Výsledná hodnota je pak hledaným největším společným dělitelem.
Napište program, který ze zadané hodnoty průměru vypočítá objem kulového zásobníku na vodu. Výslednou hodnotu nechte vypsat na obrazovku jak v metrech krychlových, tak v litrech. Dále předpokládejme, že tento zásobník je umístěn v pouštní základně, kterou obývá n osadníků, kde n je proměnná, jejíž hodnotu budeme zadávat. Program rovněž vypíše, na kolik dní vystačí voda v zásobníku při spotřebě 10 litrů na osobu a den, kde spotřeba bude konstanta.
Programování a aplikační software
Základy SQL – Využití v databázových aplikacích, základní typy dotazů. Základní struktura dotazu, třídění informací, podmínky zobrazení informací. Dotazy na více tabulek a jejich realizace. Vysvětlete rozdíl mezi dynamickým a konstantním sloupcem.
Tvorba WWW stránek – Charakterizujte jakým způsobem vytváříme HTML stránky, co je to párová a nepárová značka. Objasněte podmínky pro používání značkovacího jazyka a popište základní strukturu HTML dokumentu. Jakým způsobem vytváříme nadpisy, odstavce, seznamy a výčty, vodorovné čáry, obrázky, hypertextové odkazy a tabulky. Vysvětlete pojem META informace a DTD - Dokument Type Definition.
Operační systém – definujte operační systém. Vysvětlete jeho funkci a strukturu. Popište druhy rozhraní a celkovou filosofii operačního systému. Popište princip spuštění počítače, kontrolu technického vybavení počítače (POST). Popište operační systém v návaznosti na jeho typ. Systém pro zpracování v dávkách, systém pracující v režimu sdílení času a systém pracující v reálném čase. Vysvětlete co je kritériem optimality u jednotlivých typů.
Operační systém Windows – charakterizujte grafický režim systému, porovnejte se systémem příkazového řádku. Vysvětlete způsob ovládání tohoto operačního systému pomocí myši, klávesnice a klávesových zkratek. Popište systém Windows a jeho základní programy. Poznámkový blok (WordPad), grafický editor (Malování), multimediální prostředky, systémové nástroje a komunikační prostředky. Popište Hlavní panel, nabídku Start, Vytvoření zástupce na pracovní ploše. Vysvětlete nastavení obrazovky. Ovládací panely. Uživatelské účty a řízení uživatelských účtů. Správa počítače, Nástroje pro správu, Zásady zabezpečení, Instalace programů.
Operační systém Linux obecně – historie OS Linux. Vyjmenujte distribuce OS Linux, příklady použití, oblíbenost. Popište druhy rozhraní a celkovou filosofii operačního systému. Objasněte základní pravidla práce s operačním systémem Linux a jeho další modifikace. Porovnejte s operačním systémem Windows a naznačte jejich výhody a nevýhody.
Algoritmus – vysvětlete pojem algoritmus. Popište základní vlastnosti algoritmu: hromadnost, konečnost a jednoznačnost. Jakými způsoby můžeme zapsat algoritmus. Vysvětlete rozdíl mezi slovním vyjádřením, vývojovým diagramem, rozhodovací tabulkou a programem. Popište výhody a nevýhody jednotlivých způsobů zápisu.
Programování – podrobně popište základní kroky programování. Co znamená definice řešeného problému, nástin postupu řešení, volba algoritmu a výběr formy zápisu, volba prostředku výpočetní techniky a programovacího jazyka, kódování, tvorba odladění programu na počítači a zpracování dokumentace popřípadě aktualizace programu. Vysvětlete důležité pojmy v rámci algoritmizace a programování. Co je proměnná, identifikátor, datový typ, deklarace. Syntaxe a sémantika. Strojový kód a překladač.
Rozdělení programovacích jazyků – objasněte co jsou to strojově orientované jazyky, jaký je rozdíl mezi strojovým kódem a jazykem symbolických instrukcí (asemblerem). Nižší a vyšší programovací jazyky. Rozdělte programovací jazyky podle způsobu překladu zdrojového kódu – jednotlivé přístupy vysvětlete a uveďte příklady. Vysvětlete pojmy strukturované programování (procedurální), objektové programování – třídy, zapouzdření, dědičnost, polymorfismus. Co znamená a obsahuje vývojové prostředí.
Vývojový diagram – definujte jej a popište dohodnuté značky. Vysvětlete co znamená orientovaná a neorientovaná spojnice, mezní značky, ruční zadání vstupních dat, zpracování, vstup/výstup, spojka, větvení, cykly a podprogram. Na jednoduchém přikladu popište tyto značky.
Datové typy a jejich použití– vysvětlete pojem statický a dynamický typový systém. Popište celočíselný typ, typ reálných čísel, znakový typ, typ řetězec a booleovský typ. Na příkladech vysvětlete použití standardních typů dat v některém vámi zvoleném programovacím jazyce, použití srovnejte s ostatními jazyky. Na jednoduchých příkladech vysvětlete jejich syntaktický zápis. Uveďte příklad použití pole (kolekce).
Příkazy a jejich zápis– naznačte co je to příkaz, z čeho se skládá a s čím se vykonává. Objasněte konstrukci výrazu a vysvětlete co je to operand a operátor. Popište aritmetické operátory, logické operátory, řetězcové operátory a relační operátory. Na příkladech vysvětlete příkaz přiřazení a použití operandů a operátorů.
Podmíněný příkaz – objasněte vliv podmínky na větvení programu a podrobně popište syntaktický a vývojový diagram podmíněného příkazu. Na jednoduchých příkladech vysvětlete podmíněný příkaz, složený příkaz a příkaz pro vícenásobné větvení.
Příkazy cyklu – objasněte obecnou konstrukci příkazu cyklu. Popište syntaktický diagram příkaz cyklu FOR. Na jednoduchých příkladech vysvětlete pomocí vývojového diagramu příkaz cyklu FOR. Vývojový diagram přepište do programovacího jazyka.
Příkazy Repeat a While (while, do - while) – porovnejte tyto dva příkazy cyklu a objasněte rozdíly v počtu vykonání těla cyklu při vyhodnocení výrazu. Popište tyto cykly vývojovým diagramem a napište jednoduché příklady v programovacím jazyce.
Relační databázové systémy. Obecná definice databáze. Definujte databázové pojmy „relace“, „atribut“, „spojení“, „vztah“ a vysvětlete je na jednoduchých příkladech. Hlavní objekty databáze a jejich účel.
Autorská práva a licencování programů – objasněte autorské právo z hlediska legislativy. Vysvětlete pojem licence a základní dělení programů podle poskytnuté licence, uveďte příklady použití programů. Popište licenční politiku firmy Microsoft. Porovnejte se zásadami použití programů systému Linux.
Bezpečnost a hygiena práce s PC – vysvětlete pojem ergonomie a v návaznosti na počítače definujte tento pojem. Objasněte jak nejlépe řešit systém člověk – technika – prostředí a popište ideální počítačové pracoviště. Popište jak bezpečně pracovat s internetem, vysvětlete pojem netiketa. Co vše by měl uživatel v počítači nainstalovat a nastavit, aby byl bezpečně připojen k veřejné síti. Vysvětlete pojmy firewall, viry, červy, trojské koně, spyware, spam, phishing, hoax.
Textové editory – vysvětlete postup při formátování textu a použití stylů v dokumentu. Objasněte typografická pravidla pro psaní textových souborů. Na příkladu předveďte použití „Hromadné korespondence“. Vysvětlete přípravu dokumentu k tisku, použití záhlaví a zápatí, práci s tabulkou a grafické prostředí.
Tabulkové procesory – vysvětlete pojem tabulkový procesor. Popište z jakých částí se skládá sešit, co vše můžeme zapsat do buňky. Jakým způsobem adresujeme buňku (relativní, absolutní adresace) a jak dokážeme pojmenovat buňku a oblast buněk. Na příkladu objasněte vytvoření grafu podle tabulky a úpravu vzhledu stránky před tiskem (záhlaví a zápatí).
Databázový procesor – objasněte pojem databáze a vysvětlete její použití v informačních systémech. Popište postup vytvoření tabulky, vlastnosti datových typů, jejich význam a práce s tabulkou (třídění, vyhledávání, nahrazení, filtrovat podle výběru nebo formuláře). Vysvětlete vytvoření dotazu v návrhovém zobrazení a kritéria výběru. Vytvořte vhodný formulář a popište vytvoření a použití sestavy a makra.
Prezentace – vyjmenujte základní pravidla pro tvorbu prezentace. Vysvětlete strategii vytváření prezentace – představa budoucnosti, cíle a úkoly, současná situace, vývoj do dnešních dnů, dostupné možnosti, doporučení. Srozumitelně předveďte práci s jednotlivými snímky, jejich návrh a zpracování. (text, odrážky, obrázky, grafy, tabulky, animace). Názorně ukažte práci s přechody snímků, závěrečnou úpravu prezentace a způsoby uložení.
Práce s Internetem a komunikace – vysvětlete pojem Internet, dále objasněte pojmy World Wide Web (WWW), Internet Service Provider (ISP), Uniform Resource Lokátor (URL), Realy Simple Syndikation feed (RSS). Objasněte pojem podcast a jak poznáme bezpečné internetové stránky. Popište jaké nebezpečí hrozí používáním internetu z hlediska počítačových virů – spyware, malware a další rizika. Co je internetový prohlížeč a jeho možnosti. (nastavení, navigace, záložky, formuláře, vyhledávání, ukládání souborů a tisk. Elektronická komunikace, vysvětlete základní pojmy jako jsou e-mail, SMS, VoIP, IM, virtuální společenství. Vysvětlete bezpečnostní hlediska elektronické komunikace, pojem phishing a co znamená elektronický (digitální) podpis.
Základy počítačové grafiky – popište jaký je rozdíl mezi rastrovým a vektorovým formátem. Vysvětlete formáty GIF, JPG, JPEG, BMP, PNG, PDF. Objasněte pojmy pixel, DPI. Na jakém principu zobrazuje barvy RGB systém a popište jeho vlastnosti. Popište další způsob zobrazení
barev CMY(K) a vysvětlete, kde se používá. Napište příklady programů, ve kterých můžeme vytvořit rastrový obrázek a jejich prohlížeče. Popište základní objekty vektorové grafiky – úsečka, křivka, mnohoúhelník, elipsa a text. Jejich použití, vlastnosti a objasněte pojem vrstvy.
OS Linux uživatelsky - Základní příkazy v OS Linux, historie příkazů. Textové editory a práce s nimi, vytvoření textového souboru, úprava. Práce se soubory a adresáři. Skripty v OS Linux, vytvoření ukázkového skriptu.
Souborový a adresářový systém v OS Linux – souborové systémy používané v OS Linux, uveďte nejpoužívanější souborové systémy, popište vlastnosti a funkce, porovnejte souborové systémy OS Linux a OS Windows. Adresářový systém v OS Linux, popište strukturu a funkci jednotlivých adresářů. Porovnejte adresářovou strukturu OS Linux a OS Windows.
Správa OS Linux – terminály, práce v terminálu, uživatelé v systému Linux, vytvoření uživatele, hesla, skupiny. Uživatelská oprávnění, nastavení práv k souborům a adresářům. Procesy v OS Linux a běh programů.
Virtualizace – objasněte pojem virtualizace, cloud. Uveďte nejpoužívanější programy (systémy) používané k virtualizaci. Vysvětlete pojem hostitel, host. Uveďte příklady použití virtualizace, nasazení v praxi. Vysvětlete výhody a nevýhody virtuálního operačního systému. Na počítači ukažte vytvoření virtuálního PC, instalaci, správu, klonování.
ELEKTRONICKÉ POČÍTAČE Zdroj napájení – Uveďte specifikaci zdroje napájení počítače standardu ATX12V, jaké konektory nabízí a rozdíly v typech konektorů standardu ATX12V verze 1.3 a verze 2.0. Barevné značení jednotlivých napěťových okruhů zdroje napájení. Jaké standardy zdroje napájení ještě znáte? Pevný disk - Vysvětlete princip pevného disku (HD) – způsob zápisu, organizace dat, souborové systémy. Vysvětlete pojem sektor, cluster, stopa, cylindr. Vysvětlete princip SSD, v jakých variantách se vyrábějí, porovnejte s diskem HD, výhody, nevýhody proti pevnému disku. Komunikační rozhraní (interface) diskových zařízení. Kompaktní disk - Vysvětlete princip kompaktního disku (CD) – způsob zápisu, organizace dat. Vysvětlete princip zápisu dat na lisovaných CD discích, na CD-R a CD-RW. Hlavní rozdíly mezi CD a DVD diskem. DVD - Digital Video (Versatile) Disk - Vysvětlete princip DVD disku – způsob zápisu, organizace dat. Vysvětlete princip zápisu dat na lisovaných discích, na DVD-R a DVD-RW. Jaké znáte typy DVD disků? Stručně popište dvouvrstvé DVD. Porovnejte technologii Blue Ray a HDDVD s technologiemi CD a DVD. Sběrnice - Vysvětlete pojem sběrnice, počítač sběrnicového typu, vyjmenujte a popište tři základní typy sběrnic, co je to FSB, HT, QP, PCI, PCI Expres, USB, AGP? Vysvětlete princip sběrnice PCIe 1x Jak se zvyšuje propustnost sběrnice u PCIe 16x? Zobrazovací zařízení I. - Vysvětlete princip zobrazování současných LCD monitorů. Vysvětlete technologii LED-TV. Jaké typy této technologie znáte? Zobrazovací zařízení II. - Vysvětlete princip zobrazování současných plazmových monitorů . Vysvětlete technologii LED-TV. Jaké typy této technologie znáte? Základní deska – jaká zařízení počítače jsou připojena na základní desce prostřednictvím čipu North Bridge, South Bridge a proč. Jaké další porty, sloty a konektory na základní desce znáte? Jaké typy čipových sad znáte? Grafická karta – Vyjmenujte hlavní součásti grafické karty a popište jejich funkce. Jaké výstupy grafická karta umožňuje. Vysvětlete pojmy „pixel“, „vertex“, „unifikovaný shader“, „Texture Mapping Unit“ a „Render Output Unit“. Standardy AT – Vysvětlete pojmy standard AT, ATX, BTX. Vyjmenujte a popište změny v hardware počítače, ke kterým u jednotlivých standardů došlo. Vysvětlete pojmy „Micro AT“, „Mini AT“ a „Standard AT“ a kde se tyto pojmy používají.
Procesor – Základní dělení procesorů (CPU). Řady procesorů Intel a AMD, uveďte hlavní typy nesoucí největší (přelomové) změny a vysvětlete rozdíly ve značení procesorů Intel a AMD. Sledované technické parametry procesorů. Jaké znáte instrukční sady procesorů pro podporu multimedií. Popište rozdíly pojmů slot a socket. Současné typy procesorů firem Intel a AMD. Disková pole – Vysvětlete princip diskového pole RAID, jeho výhody a nevýhody. Schématicky nakreslete a popište disková pole typu RAID0, RAID1, RAID5, RAID10 a vysvětlete jejich výhody a nevýhody z hlediska ochrany (zabezpečení) uložených dat v těchto typech polí. Inkoustová tiskárna – Popište princip tisku pomocí termické (BubbleJet) technologie a piezoelektrické technologie. Vysvětlete výhody a nevýhody jednotlivých jednotlivých tiskových technologií. Vysvětlete pojmy „čipování“ a „skryté značky“ z oblasti počítačových tiskáren. Laserová tiskárna – Popište princip tisku laserové tiskárny. Porovnejte tento princip tisku s principem tisku LED tiskárny. Komunikační rozhraní tiskáren. Vysvětlete pojem „GDI“ tiskárna a uveďte výhody a nevýhody takto označované tiskárny. Skener – Dělení skenerů podle jejich konstrukce. Popište a vysvětlete jak skener pracuje. Uveďte hlavní hardwarový rozdíl mezi skenerem používajícím snímací prvek CCD (Charge Coupled Device) a skenerem používajícím snímací prvek CIS (Contact Image Sensor).
Základní pojmy - význam základních síťových pojmů a zkratek v angličtině: LAN, WAN, VPN, VLAN, WLAN, NIC, MAC, IP, OSI, TCP/IP, FTP, DNS, HTTP, UDP, MAC Topologie sítí členění sítí , zapouzdření dat, paket, segmet, rámec, opakovač, přepínač, směrovač, HUB, kbps, Mbps, Gbps Komunikace v síti síťové modely – OSI, TCP/IP, zapouzdření dat, kroky na jednotlivých vrstvách, srovnání OSI a TCP/IP modelu Pasivní a aktivní prvky sítí kabeláž, konektory, jejich typy, parametry, použití LAN, komponenty na síti, použití WAN, komponenty na síti, HUB, switch, routek, síťová karta, jejich typy, parametry Připojení počítače k lokální síti a k síti Internet aktivních prvků, síťové architektury, modem, DSL, WIFI, klient/server, peer-to-peer Adresace na síti IP adresa, síťová maska, podsítě, výpočet adresy podsítě, rozsah adres, broadcast, přidělování IP adres – NAT, DHCP, DNS, třídy adres, privátní adresy, CIDR
Technologie LAN a WAN, bezdrátové technologie, optika technologie, topologie, Ethernet, CSMA/CA, 10BASE2-10GBASELx, UTP kabel-rollover, crossover, straight, konsole RJ-45, DB-9, kolizní doména, broadcast doména Routování mezi sítěmi Bezpečnost v počítačových sítích Diagnostika počítačové sítě
Správa serverových operačních systému Microsoft softwarové licence produktů, instalace OS serveru, doménový server, instalace a konfigurace Active Directory, DNS, DHCP a ostatních síťových služeb, správa objektu Active Directory, sdílení a zabezpečení prostředků serveru, vzdálená administrace serveru, sledování zatížení serveru, správa disků, správa tiskáren, skupinové politiky, RIS, ostatní serverové produkty, poštovní server – instalace a správa, kalendáře, adresáře
Virtualizace serverů Správa unixových serverů instalace serverového OS Linux, souborový systém, správa uživatelů a skupin, oprávnění, instalace softwaru (balíčky), procesy, programování skriptů, systémové logy, diagnostika systému, init a úrovně běhu, konfigurace zavaděče, instalace a správa síťových služeb
HW a plánování nasazení serveru Správa unixových serverů instalace serverového OS Linux, souborový systém, správa uživatelů a skupin, oprávnění, instalace softwaru (balíčky), procesy, programování skriptů, systémové logy, diagnostika systému, init a úrovně běhu, konfigurace zavaděče, instalace a správa síťových služeb