Toto je starší verze dokumentu!


Domácí úkol 1 - obsah sjednocení dvou čtverců (Deadline 6.3. 23:59)

Zadání

Vytvořte aplikaci, která spočítá obsah dvou čtverců sjednocených do jednoho obrazce.

Oba čtverce se zadávají pomocí souřadnic geometrického středu a délky hrany (používáme bezrozměrnou veličinu). Pokud je zadán vstup, který není číslem, aplikace vypíše „Spatny vstup.“ a okamžitě se ukončí. Stejným způsobem reaguje, když je zadána záporná délka hrany. Nulová délka hrany aplikaci nevadí. Pokud ctverce nemají společný ani jeden bod (např. když se nedotýkají ani jedním rohem), aplikace na to zareaguje textem „Ctverce se ani nedotykaji.“. Základní chování aplikace asi nejlépe vysvětlí ukázka chodu. V následujicí ukázce je demonstrováno základní chování aplikace:

Zadejte delku hrany prvniho ctverce: 4

Zadejte x-ovou souradnici stredu prvniho ctverce: 0 
Zadejte y-ovou souradnici stredu prvniho ctverce: 0 
Zadejte delku hrany druheho ctverce: 2 
Zadejte x-ovou souradnici stredu druheho ctverce: 2 
Zadejte y-ovou souradnici stredu druheho ctverce: 2 
Obsah sjednoceni dvou ctvercu je 19. 
 
--------------------------------------------------- 
 
Zadejte delku hrany prvniho ctverce: 4 
Zadejte x-ovou souradnici stredu prvniho ctverce: a 
Spatny vstup. 
 
--------------------------------------------------- 
 
Zadejte delku hrany prvniho ctverce: -4 
Spatny vstup. 
 
--------------------------------------------------- 
 
Zadejte delku hrany prvniho ctverce: 4.0 
Zadejte x-ovou souradnici stredu prvniho ctverce: 0.000 
Zadejte y-ovou souradnici stredu prvniho ctverce: 0.000e-3 
Zadejte delku hrany druheho ctverce: 2.0e+0 
Zadejte x-ovou souradnici stredu druheho ctverce: -2 
Zadejte y-ovou souradnici stredu druheho ctverce: -2e0 
Obsah sjednoceni dvou ctvercu je 19. 
 
--------------------------------------------------- 
 
Zadejte delku hrany prvniho ctverce: 5.23 
Zadejte x-ovou souradnici stredu prvniho ctverce: -10e20 
Zadejte y-ovou souradnici stredu prvniho ctverce: 3e-2  
Zadejte delku hrany druheho ctverce: 4.345643225 
Zadejte x-ovou souradnici stredu druheho ctverce: +3e100 
Zadejte y-ovou souradnici stredu druheho ctverce: -1 
Ctverce se ani nedotykaji. 

Testování

V sekci download jsou k dispozici testovací software (tester) a referenční řešení v binární podobě pro základní platformy. Tester přeloží předložený kód s parametry: -pedantic -pedantic-errors -Wall -Werror. Tyto volby způsobí, že překladač hlídá všechny detaily a pokud se při překladu objeví warning, je automaticky považován za chybu a překlad skončí. Pokud se podaří kód úspěšně přeložit, je pak porovnáván výstup aplikace s výstupem referenčního řešení. Jakákoliv odchylka, třeba i jedna mezera navíc, způsobí neplatnost testu! Během testování máte k dispozici všechny vstupy i informaci, kde došlo k nesrovnalostem. Pro domácí testování je ke stažení k dispozici i sada testovacích vstupů. Zde je třeba upozornit na rozdílnost platforem. V aplikace se používají floating point čísla, takže přesnost se může na různých platformách lišit. Výstupní hodnotu z testované a referenční aplikace se doporučuje porovnávat pouze v rámci jedné platformy!

Tester po skončení běhu napíše procentuální úspěšnost. Doporučuje se testovat na Solarisu, ale stejně tak by měl tester fungovat v jakémkoliv linuxu s nainstalovaným pythonem verze 2.4.6 a vyšším. K úspěšnému chodu je zapotřebí i nainstalovaný překladač g++. Po odevzdání bude váš kód testován stejným testerem, takže každý by měl předem vědět, jaký počet bodů dosáhl.

Pro spuštění testu stačí stáhnout a rozbalit adresář s testerem DU1-tester.tar. Poté v rozbaleném adresáři zavolejte příkaz make (na solarisu volejte gmake) a řiďte se pokyny. V následujícím odstavci je popis testování, kdyby příkaz make z nejakého důvodu nefungoval.

Tester vyžaduje dva parametry z příkazové řádky. Prvním je cesta k referenční aplikaci. Druhým parametrem je přímo testovaný zdrojový kód. Jako referenční aplikaci použijte tu správnou pro danou platformu. Pro solaris je to například refApp.solaris, pro 32 bitové linuxy refApp.linux_32 atd. Testování lze spustit příkazem:

python DU1-tester.py refApp.XXX testovanyZdrojovyKod.cpp 

Místo XXX si samozřejmě doplňte příslušnou platformu.

Testování na OS Windows

Pro OS Windows je referenční řešení k dispozici také, python by tam též fungoval, ale problémem je závislost na nativním přístupu k překladači g++. Kvůli tomu lze ve windows testovat pouze ručně, tedy s referenčním řešením + sadou testovacích vstupů.

Vzdálený přístup z OS Windows

Vzdálené testování na serveru z OS Windows lze pomocí kombinace programů putty a WinSCP. Přes WinSCP lze na Solaris zkopírovat data a přes putty získáte vzdálený terminálový přístup. Jako adresu zadávejte např. sunray1.felk.cvut.cz, nebo sunray3.felk.cvut.cz. Uživatelské jméno a heslo byste měli znát.

Vzdálený přístup z OS Linux

Nejsnažší je použít příkazovou řádku a kombinaci příkazů ssh a scp. ssh slouží pro vzdálený přístup a scp pro kopírování. Přesuňte se do adresáře, kde máte uložen adresář DU1-tester. Pak zadejte příkaz

scp -r DU1-tester [email protected]: 

a po vyzvání buď potvrďte dotaz nebo rovnou zadejte heslo. Tímto byste měli mít celý adresář DU1-tester ve vašem domovském adresáři na Solarisu. Pro vzdálený přístup pak zavolejte příkaz

ssh [email protected] 

a opět zadejte heslo. Pro ukončení vzdáleného přístupu zadejte příkaz exit.

Odevzdání

1) Hotový zdrojový kód pošlete mailem na adresu [email protected] do 26.10.2011 nedpozději do 23:59.

2) Do předmětu napište PJC_DU1!

3) Zdrojový kód pojmenujte vaším uživatelským jménem, např. cernyvi2.cpp.

Odevzdané úkoly, které nesplní všechny předchozí body budou odmítnuty!!!

Download

Tipy

  • Pro načtení a práci s hodnotami použijte datový typ double.

Řešení

Bude zveřejněno až po deadline.

courses/a7b36pjc/ctverce.1330866866.txt.gz · Poslední úprava: 2025/01/03 18:25 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0