Zadání projektů APR - únor 2003
Datum poslední modifikace: 17.2.2003
1. Projekt 1 - Výpočty
Vytvořte program, který vypočte a zobrazí, kolik dnů, hodin, minut, sekund a setin sekund uběhlo v rozmezí dvou zadaných dat a časů. Uvažujte možné rozpětí minimálně 400 let.
Formát vstupních dat: <datum1>;<čas1>-<datum2>;<čas2>
datum:dd.mm.rrrr
čas:hh:mm:ss,se
Příklad zadání vstupních dat (uvedený formát nutno dodržet):
12.01.1981;12:06:51,35-09.06.1983;23:07:01,67
<data pro další datumy ve stejném formátu>
!!!! Šikovnější mohou řešit uvádění jednotlivých položek bez předcházejících nul:
12.1.1981;12:6:51,35-9.6.1983;23:7:1,67
Uvažujte přestupné roky.
Přestupný rok je každý rok, jehož letopočet je násobkem čísla 4, s výjimkou celých století, která přestupná nejsou. I zde ale platí ještě jedna výjimka: roky, které jsou násobkem čísla 400 přestupné jsou, ačkoliv to jsou také celá století.
Př.:
přestupné roky: 1200, 1904, 2000,
nepřestupné roky: 1900, 1953, 2003
Pozn.: standardní funkce pro převod řetězce na datum a naopak je možné použít pouze pro ověření správnosti výsledku.
2.Projekt 2 - Matice
Vytvořte program pro řešení osmisměrky.
Formát vstupních dat :
<matice znaků>
<prázdný řádek>
<hledaná slova>
matice znaků: řetězce znaků osmisměrky po řádcích
hledaná slova: několik řádků slov, slova na řádku jsou oddělena mezerou.
Zobrazte tajenku, kterou tvoří nevyškrtaná písmena z matice znaků po řádcích zleva do prava.
Funkčnost programu ověřte na vhodně zvolených datech.
KALTJSHODA
LLPUKLTOAT
AKTAAKAARR
SAANLAKPEA
ARPOVPTOKK
RHOMOLICEA
KOLSPEKESR
ORAOCAALTP
SPOKVSTIAA
MATKAFTKAT
AIAKOSTKAY
ALKA HORA JUTA KAPLE KARPATY KARTA KASA KAVKA KLAS KOSMONAUT KOST KROK LAPKA MATKA OKRASA OPAT OSMA PAKT PATKA PIETA POCEL POVLAK PROHRA SEKERA SHODA SOPKA TAKT TAKTIKA TLAK VOLHA
<data pro další osmisměrku ve stejném formátu>
3. Projekt 3 - Lineární seznamy
Navrhněte a implementujte modul (programovou jednotku) v jazyce Pascal v prostředí Delphi 6 PE nebo Borland Pascal v 7.0. Modul bude exportovat procedury a funkce pro práci s jednosměrně vázanými seznamy. Implementujte: vytvoření seznamu, zrušení seznamu, vložení prvku do seznamu na libovolné místo, vyjmutí prvku ze seznamu z libovolné pozice, zjištění kolik prvků má seznam, zjištění, zda dva seznamy jsou shodné, spojení dvou seznamů v jeden seznam.
Modul doplňte jednoduchým testovacím programem, který umožní práci s více než jedním lineárním seznamem a prokáže správnou funkci ralizovaných operací.
4. Projekt 4 - Řazení
Zvolte tři různé libovolné metody řazení. Vytvořte program, který zobrazí tabulku časové složitosti těchto metod pro vzestupně uspořádané, sestupně uspořádané a náhodně uspořádané záznamy o osobách. Každý záznam bude obsahovat položky: Jméno, Příjmení, Pohlaví a Rok_narození. Klíčovou položkou pro řazení nechť je položka Příjmení, která bude obsahovat znakový řetězec s českou diakritikou. Řazení musí být prokazatelně provedeno podle tohoto klíče podle normy pro české řazení. Řešte ošetření možných chyb při otevírání vstupních souborů.
Vytvořte vhodný program pro demonstraci správného řazení podle normy.
Příklad formátu vstupních dat:
Janů Alena Ž 1954
Januš Jan M 1994
Janu Alena Ž 1954
Janůšek Jan M 1986
Chalupa Jan M 1986
Pinula Jan M 1986
Piňos Josef M 1978
Habrda Jiří M 1986
Ďítě Jan M 1957
Dobrovolný Jan M 1986
Řezáč Jan M 1995
Janula Jan M 1995
Janušová Alena Ž 1957
Janošíková Alena Ž 1952
Pišťáček Jan M 1958
Jánošík Jan M 1999
Piška Jan M 1988
Janoščín Jan M 1925
Píše Jan M 1996
Jánoš Jan M 1995
Pišanová Alena Ž 1957
Janoš Jan M 1995
Píša Jan M 1995
Přečtěte si, jak je to s kódováním češtiny , tabulky znakových sad a také něco o konverzních tabulkách.
Na začátek zadání | Algoritmy a programování | Informace k projektům