Bankovní úředník se snaží předejít tomu, aby banka zbankrotovala. K bankrotu banky by došlo, pokud by nebyla schopna plnit své smluvní zakázky. Požádá-li tedy klient o vyplacení další části své půjčky, ověří úředník, zda poskytnutím požadované částky klientovi nedojde v budoucnu k bankrotu banky. Pokud by taková situace mohla nastat, odkáže úředník klienta na pozdější dobu.
Můžeme předpokládat, že klient po vyčerpání celé částky ji vrátí celou a natolik rychle, že ostatní klienti mohou do té doby počkat, než obdrží další požadovanou část své půjčky.
Vaším úkolem je napsat program, který pro zadaný stav systému (tj. základní jmění banky, seznam klientů s jejich cílovými požadavky a již vypůjčenými částkami) načte číslo klienta a jeho požadavky na výši vyplacené částky v jednotlivých měnách a odpoví buď POŽADAVEK KLIENTA AKCEPTOVÁN nebo KLIENT ODKÁZÁN NA POZDĚJŠÍ DOBU.
P-II-2
Typizované krychle ve třírozměrném prostoru jsou pro účely uchování
informace v počítači kódovány nezápornými přirozenými čísly složenými
z číslic 1..8. Souřadná soustava, v níž je umístěna základní typizovaná
krychle, má počátek v jejím těžišti a souřadné osy jsou kolmé na stěny
krychle. Souřadné roviny xy, yz a xz ji rozdělí na 8 menších typizovaných
krychlí. Je-li A[x,y,z] bod základní typizované krychle, přiřadíme
menší krychli, která ho obsahuje, podle znamének x, y, z kód dle
následující tabulky:
Kód krychle | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
x | + | - | - | + | + | - | - | + |
y | + | + | - | - | + | + | - | - |
z | + | + | + | + | - | - | - | - |
Tímto způsobem lze postupně dělit typizované krychle bez omezení.
Množina M typizovaných krychlí je souvislá, pokud pro každé 2 krychle A, B z M existuje posloupnost A=C0, C1, C2, .., Ck=B krychlí z M taková, že stěny krychlí Ci a Ci+1 se dotýkají pro všechna i=0,1,..,k-1; k může být i 1 (tj. A a B se dotýkají). Sousedící krychle se musejí dotýkat stěnou, nestačí dotyk hran či rohů.
Vaší úlohou je pro vstupní množinu typizovaných krychlí zadaných svými kódy určit, zda je souvislá. Krychle nemusí být stejné velikosti.
P-II-3
Bílý list papíru o šířce a cm a délce b cm (a<b) je stočen tak, že protilehlé
delší okraje tohoto listu jsou slepeny tak, že vznikne válec (překryv nutný
ke slepení zanedbejte). Na tento válec je postupně pokládáno N obdélníků
různých barev, jejich strany jsou rovnoběžné s okraji papíru. Pokud část
obdélníka (resp. celý obdélník) přesahuje okraj papíru, je oříznut.
Po položení všech obdélníků jsou vidět obrazce různých barev. Dvě oblasti stejné barvy
považujeme za části téhož obrazce, mají-li společný alespoň jeden bod
(tj. stačí dotyk rohem). Vaší úlohou je určit plochu každého z těchto obrazců
a plochu oříznutých částí obdélníků.
Souřadný systém má počátek v levém dolním rohu papíru a osy jsou rovnoběžné
s okraji listu. Zadání je uvedeno v následujícím tvaru:
@
. Hlava T-stroje je umístěna vždy nad určitým
polem pásky a může se pohybovat vlevo nebo vpravo právě o 1 pole.
Výpočet T-stroje probíhá v taktech. Na začátku výpočtu je T-stroj v
počátečním stavu, na pásce je zapsána posloupnost znaků z dané abecedy
(vstupní slovo) a je stanovena poloha hlavy nad páskou. V každém
taktu výpočtu T-stroj přečte znak z pole pásky, nad nímž je umístěna
hlava, a na základě tohoto znaku a stavu řídicí jednotky (konfigurace
T-stroje) se zapíše nějaký znak dané abecedy do stejného pole, změní se
stav řídící jednotky a hlava se může posunout o 1 pole doleva nebo doprava,
případně zůstat na stejném poli. Zapsaný znak nemusí být součástí vstupní
abecedy - je možné používat pomocné symboly. Činnost T-stroje končí v
okamžiku, kdy vykoná instrukci STOP
nebo když není definováno, jak má
jeho činnost pokračovat pro příslušnou konfiguraci (znak+stav stroje).
Pokud se T-stroj zastaví, říkáme, že přepsal vstupní slovo na
výstupní slovo.
T-stroj může rozhodovat problémy, na které jsou možné odpovědi ano/ne. Pokud se stroj při zastavení nachází v určitém pevně stanoveném stavu, je odpověď ano, jinak ne.
Činnost T-stroje lze popsat řídícími strukturami podobnými Pascalu, jmenovitě lze použít podmíněné příkazy a cykly typu repeat a while. Návěští před příkazem značí stav T-stroje. Stav S0 je zpravidla počátečním stavem. Jediná proměnná se jménem znak obsahuje znak pole, nad nímž je hlava. Příkaz STOP ukončí výpočet T-stroje, rovněž tak, není-li uvedena reakce na určitou konfiguraci.
@
.
@
, tj. o 1
pozici za konec čísla (během tohoto přesunu obsah pásky neměníme, tj. pokaždé
na dané pole zapíšeme původní znak). Poté se vrátíme o jednu číslici zpět
a otestujeme ji. Je-li to 1, T-stroj zastavíme ve stavu S2 (odpovídajícím
odpovědi ano), jinak ve stavu S1 a odpověď je ne.
begin
... end