Několik ukázkových zadání příkladu k první části zkoušky
předmětu PRM046 Programování II
1. ročník bakalářského studijního programu Matematika
letní semestr školního roku 2005/2006
První příklad je jednodnoduchá úloha na práci s ukazateli a spojovými datovými strukturami.
Úlohy nejsou algoritmicky náročné. Požadují se globální deklarace typů a podprogramy realizující
požadované akce nad daty těchto typů. I když to není hlavní aspekt hodnocení,
měl by tento příklad být i syntakticky správný.
Protože jde o technické příklady, je nutné dodržet přesně datové struktury za zadání a je zakázáno požívat pole.
Na tuto úlohu budou studenti mít jednu hodinu.
výklad pojmů:
- nedestruktivní podprogram musí zachovat datové struktury, které dostane pomocí parametrů
- destruktivní podprogram může zničit datové struktury, které dostane pomocí prarametrů, výsledné datové struktury
tedy vytváří jen pomocí přepojování ukazatelů, nesmí volat proceduru new.
- Má-li podprogram realizovat nějakou operaci nad množinami reprezentovanými nějakou datovou strukturou, předpokládáme,
že dostane vstupující množniny zadané pomocí parametrů
a vratí výslednou množinu pomocí parametru (nebo jako funkční hodnotu).
Při tom jak vstupní množiny tak i výstupní množnina jsou reprezentovány stejným typem datové struktury.
Příklady
- Sestavte proceduru, která obrací kruhový spojový seznam.
- Množina čísel je reprezentována datovou strukturou alfa.
Sestavte podprogram realizující destruktivní operaci sjednocení.
- Množina čísel je reprezentována datovou strukturou alfa.
Sestavte podprogram realizující nedestruktivní operaci sjednocení.
- Množina čísel je reprezentována datovou strukturou alfa.
Sestavte podprogram realizující destruktivní operaci průniku.
- Množina čísel je reprezentována datovou strukturou alfa.
Sestavte podprogram realizující destruktivní operaci průniku.
Jako datová struktura alfa může být např.
- uspořádaný jednosměrný lineární seznam prvků množiny končící nilem
- cyklický seznam prvků množiny s hlavou
- binární vyhledávací strom prvků množiny
- atp.