Zadání projektů APR - únor 2003

Datum poslední modifikace: 17.2.2003

Projekt 1,2,3,4


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.

Na začátek zadání


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.

Příklad vstupních dat:

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>

Na začátek zadání


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í.

Na začátek zadání


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