P7 Počítání vodíků CH3 C=CH-OH CH3. Příklad: CC(CC(C)O)=C je: CH3 CH3 C-CH-CH-OH CH3. jednoduše považujte c za zvláštní druh atomu.

Podobné dokumenty
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

VISUAL BASIC. Práce se soubory

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Funkce, podmíněný příkaz if-else, příkaz cyklu for

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

PHP tutoriál (základy PHP snadno a rychle)

Lekce 01 Úvod do algoritmizace

6 Příkazy řízení toku

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Sekvenční a podmíněné provádění

10 Algoritmizace Příklad 2 Word 2007/ VBA

PROGRAMOVÁNÍ V SHELLU

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Basic256 - úvod do programování Příklady. ing. petr polách

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

PSK3-9. Základy skriptování. Hlavička

Řídicí struktury. alg3 1

C2110 Operační systém UNIX a základy programování

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Lekce 2. Řetězce a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016

Algoritmizace a programování

Typy prstokladů pro tóny durových a mollových stupnic na hmatníku v I. poloze.. s tabulkou s určením dalších tónin v následujících polohách hmatníku

Algoritmizace a programování

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk


Jednoduché cykly

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

1. VSTUP do e-learningu

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Skripty - úvod. Linux - skripty 2

Mezinárodní kolo soutěže Baltík 2010, kategorie C a D

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

P4 Ukecaný program InterLoS 2014

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Programovací jazyk Pascal

Registrace a nastavení účtů do Vodafone OneNet Samoobsluhy, Vodafone evyúčtování.

Poslední nenulová číslice faktoriálu

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

- jak udělat konstantu long int: L long velka = 78L;

53. ročník Matematické olympiády 2003/2004

Řešení úloh z TSP MU SADY S 1

2 Datové typy v jazyce C

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

Uhlovodíky modelování pomocí soupravy základní struktury

Uživatelský manuál. Program OK MIFARE je program pro čtení a zápis dat na karty Mifare S50 (1k) na karty Mifare S70 (4k).

Úvod do programování

Sada 1 - Základy programování

10. ročník. Řešení 1. a 2. sada

Tabulkový procesor. Základní rysy

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

MAXScript výukový kurz

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

2. Svoje řešení pojmenujte podle čísel zadání úloh: uloha1.sgpbprj uloha4.sgpbprj

Celostátní kolo soutěže Mladý programátor 2016, kategorie C

Program a životní cyklus programu

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Part 1

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Stručný návod k programu Octave

Regulární výrazy. Filtry grep, sed a awk.

Poslední aktualizace: 14. října 2011

Proměnné a parametry. predn_08.odt :00:38 1

Úvod do programování. Lekce 1

NPRG030 Programování I, 2010/11

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Zadání soutěžních úloh

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

Základy algoritmizace a programování

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

NPRG030 Programování I, 2016/17 1 / :58:13

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Vánoční turnaj GP Praha 2012

Formátové specifikace formátovací řetězce

Operační systémy. Cvičení 4: Programování v C pod Unixem

Zadání soutěžních úloh

Chemické formáty. Bedřich Košata

Uhlovodíky -pracovní list

Školní kolo soutěže Baltík 2007, kategorie A a B

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

Transkript:

P7 Počítání vodíků V této úloze bude vaším úkolem spočítat počet vodíků v organické molekule. Molekuly dostanete zadané ve formátu SMILES, který vodíky neuvádí, nýbrž jsou doplněny podle jistých pravidel. SMILES je jednoduchý textový formát na popis organických molekul. Jedná se o sérii ASCII znaků, která vyjadřuje hlavní řetězec molekuly, a pomocí odboček a číselných značek vyjadřuje postranní řetězce a cykly. Ve SMILES postupně po sobě následují tyto prvky: Znak určující atom (může být jedno z C, c, O, S, N, P). Nula nebo více číselných značek pro daný atom, tvořených % a dvěma ciframi, tedy v rozsahu %0-%99. Nula nebo více odboček. Odbočka je obalena v uvozovkách. Vazba, kterou je navázaný, je první znak za otevírající závorkou, poté následuje validní SMILES řetězec. Znak určující vazbu danoho atomu na další atom v pořadí (může být - jednoduchá, = dvojná, # trojná). Vodíky se ve SMILES neuvádějí. Víme ale, že z každého typu atomu může vybíhat právě nějaký daný počet vazeb. Proto stačí do výsledné struktury doplnit nejmenší možný počet jednovazebných vodíků tak, aby z každého atomu vybíhal jeho daný počet vazeb: C: (); c: (); O: (); S: (,, 6); N: (, ); P: (, ) Příklad: C je methan (CH), C-C je ethan (CH-CH), C-C-O je ethanol (CH-CH-OH) Odbočky jsou řetězce atomů, které vybíhají z hlavního řetězce molekuly. Mohou být i vnořené. Příklad: CC(=CO)C je: CH C=CH-OH CH Příklad: CC(CC(C)O)=C je: CH CH C-CH-CH-OH CH Malé c představuje uhlík v aromatickém cyklu. Aromatickými cykly se vůbec nemusíte zabývat, jednoduše považujte c za zvláštní druh atomu.

P7 Počítání vodíků (pokračování) Atomy lze označit značkou. Pokud jsou dva atomy označeny stejnou značkou, znamená to, že mezi nimi vede jednoduchá vazba. Díky tomu se dají ve SMILES tvořit cykly. A pozor: čísla jsou jen na jedno použití! Jakmile si dvě čísla najdou kamaráda, tak zmizí a můžou být znovu použita jinde. Pokud tedy je třeba na nějaký atom napojit více cyklů, je třeba mu přidat více čísel. Příklad: C%0 je atom s číslem, C%% je atom s čísly a. Příklad: C%0CCCCC%0 je cyklus šesti uhlíků, neboli cyklohexan. Příklad: C%0CC%0C%0CC%0 je molekula tvořená dvěma spojenými trojúhelníkovými cykly. Úkol je tedy jasný: spočítat vodíky! V přiloženém souboru naleznete 0 molekul, u kterých musíte pro každou každé spočítat počet vodíků. Jako heslo poslouží deset čísel (počet vodíků u každé molekuly) čtených jako znaky ASCII (čímž vznikne název chemické sloučeniny). Zapisujte tedy pouze písmena. P8 Fronta losů 9 09 losů stojí ve frontě na metalový koncert skandinávské losí metalové skupiny IntørLås. Každá písnička potěší určité losy, kteří frontu opustí. V každé iteraci má fronta délku d, losi na pozicích, která je soudělná s touto délkou d, frontu opustí. Pak se všichni posunou a jejich pozice se upraví dle aktuální fronty. Po kolika iteracích zůstane ve frontě pouze jeden los? Jaká byla původní pozice losa, který frontu opustil jako poslední (po něm už zbyl pouze jeden los)? Formát hesla: I<počet iterací>p<původní pozice> (bez závorek).

P9 Polyglot Daleko, daleko na severu jsou dvě skupiny programátorů. První skupina losů programuje v jazyce BasLos, druhá skupina programuje v jazyce PLos. Mezi těmito skupinami panuje velká rozepře, který jazyk je lepší. Ti co programují v jazyce BasLos si myslí, že jazyk PLos je směšný a nepoužitelný. Tohle si myslí i skupina programátoru v PLos o jazyce BasLos. Tahle rozepře trvá už po staletí. V posledních pár letech se ale začla pomaličku formovat třetí, undergroundová, skupina programátorů. Jejich teze je, že oba jazyky jsou krásné a zdrojový kód programu, by měl být napsaný pomocí obou programovacích jazyků. Mají ovšem problém, takový program vymyslet. Ať se snaží sebevíc, nikdy se jim nepodaří. Pomůžete jim? Úkol Jako v každém jazyce, i oni chtějí, aby první program vypsal Hello World. Přesněji, aby jeden jazyk vypsal Hello a druhý World. Mají jednu jedinou podmínku. Nad svým kódem chtějí mít kontrolu, a tak, co který jazyk vypíše, rozhodne to, co dostane na vstupu. Podmínky jsou následující: Jestli na vstupu bude sudé číslo, tak BasLos vypíše Hello a PLos World Jestli na vstupu bude liché číslo, tak BasLos vypíše World a PLos Hello Napište tedy takový program. Interpret obou jazyků (současně) najdete na http://polyglot.honzamrazek.cz Jazyk BasLos Řádky programu jsou implicitně číslovány, první řádek má číslo, na každém řádku je právě jeden příkaz, celý program musí končit příkazem END, za kterým nesmí nic být. Typy. BasLos umí řetězce a čísla. Řetězec začíná uvozovkou a končí buď uvozovkou nebo koncem řádku. Výraz pro čtení vstupu. Převede uživatelský vstup na číslo a uloží ho do proměnné uvedené za středníkem. INPUT Co chcete vlozit? ; x Výraz pro přirazení do proměnné. Vyhodnotí výraz nalevo od středníku a uloží výsledek do proměnné za středníkem. LOSLET co chces ulozit ; x Výraz pro tisknutí. PRINT x

P9 Polyglot (pokračování) For cyklus. Příkaz NEXT x zvětší x o jedna a pokud je x menší rovno horní hranici for cyklu (v příkladu níže je to ). FOR x = TO //code NEXT x Výraz pro podmínku. Jestliže je predikát za IF pravdivý, pak program skočí na řádek daný číslem za THEN. IF podmínka THEN cislo_radku Získaní znaku z řetězce. Z řetězce daného prvním argumentem vrátí řetězec tvořený znakem na pozici dané druhým argumentem. V příkladu níže vráti o. LFT( los, ) Operátory. Čísla sčítame +, odečítáme -. Řetězce a, b zřetězíme a+b. x = y je pravdivé pokud x se rovná y, < a > značí menši než a větší než. Jazyk PLos Každý příkaz musí být ukončen středníkem ;, kromě posledního příkazu v kódu, kde je středník volitelný. Typy. PLos umí řetězce a čísla. Řetězec začíná uvozovkou a končí buď uvozovkou nebo koncem řádku. Výraz pro čtení vstupu. Převede vstup na číslo a uloží ho do proměnné uvedené před =. x = input() Výraz pro tisknutí. print(x) While cyklus. Dokud je predikát v závorkách () pravdivý, bude se vykonávat kód ve složených závorkách {}. while (predikát) {kód} Výraz pro podmínku. Jestliže je predikát v závorkách () pravdivý, vykoná se kód v následujícím bloku ohraničeném složenými závorkami {}. Pokud je predikát nepravdivý a za podmínkou nasleduje else a další blok ohraničený složenými závorkami {}, vykoná se kód v bloku za else. if (predikát) {kód} if (predikát) {kód} else {kód} Operátory. Čísla sčítame +, odečítáme -. Řetězce a, b zřetězíme a+b. x == y je pravdivé pokud x se rovná y, < a > značí menši než a větší než.

L7 Losí pastorale Losík začal navštěvovat hodiny hudební nauky. Naučil se, že souzvukům tří tónů se říká akordy. Ale přestože je sudokopytník, občas se mu nepodaří zahrát správně všechny tři tóny najednou. Pomozte mu doplnit chybějící noty v akordech. Za odměnu z nich můžete získat heslo! Akord je souzvuk minimálně tří tónů. Podle toho, jaké tóny jej tvoří, určujeme, o jaký akord jde. V úloze budeme používat ty nejjednodušší akordy durové a mollové. Na ty stačí tři tóny a jejich možných kombinací je +, tedy poměrně omezený počet akordů. Pro potřeby úlohy budeme řešit pouze kombinace tónů, ne pořadí jejich výšek (např. C, E, G funguje stejně jako G, C, E či C, G, E považujeme je za akord C dur). V zadání níže vidíte čísla a tóny vyznačené žlutou barvou (znějí ve třech hlasech zároveň, takže tvoří akordy) tyto akordy máte za úkol doplnit správnými notami na místech označených čísly. Noty se stejným číslem budou mít vždy stejnou výšku i délku. Každá doplněná nota má s ostatními zároveň znějícími (vyznačenými) tóny tvořit durový nebo mollový akord. Různá čísla odpovídají různým tónům přiřadíte-li např. tón c k číslu, žádné jiné číslo už nebude značit c (ani c, ani c). Pozor na to, že do každého hlasu lze doplňovat tóny jen v rozsahu, uvedeném před každým hlasem. Nyní je třeba zjištěné noty doplnit do tajenky k číslům. Doplňujte je v takové výšce, jakou jste zjistili v zadání, a v takové délce, jaká je v každém políčku naznačena. Doplněná tajenka vám prozradí začátek známé písně zkuste si získanou posloupnost not zazpívat. Heslo je třetí slovo této písně. 6 6 6 6

L8 Myopia S použitím některých naznačených úseček zakreslete do obrazce jednu uzavřenou smyčku. Šipka ukazuje pro dané políčko všechny směry, kterými je to nejblíže k první použité úsečce. V ostatních směrech je tedy nejbližší použitá úsečka dále nebo zcela chybí. Příklad menšího zadání a řešení naleznete na stránce v bookletu Mistrovství světa v Sudoku a logice 06 na adrese http://slovakia06.org/files/wpc/wpc06_instructionbooklet_v. pdf. Jako výsledné heslo zapište pro každý řádek shora dolů počet políček, která se nachází uvnitř smyčky. Pro vzor na straně v odkazovaném bookletu by to bylo 0. 6

L9 Puzzle Vaším úkolem je poskládat puzzle. Tak jednoduché to ale nebude část zadání vám v čase zveřejnění sady přišla mailem na adresu, kterou jste vyplnili při registraci. Prostor na řešení najdete zde: http://goo.gl/qavstk, http://goo.gl/zmx09, http://goo.gl/tahv8, http://goo.gl/ztcokd Úloha je kooperační, tak kooperujte (prosím nesnažte se sabotovat řešení jiným týmům). Výsledné heslo má 6 písmen. 7

S7 Kubické křivky 8

S8?v=Originálna..... 6. 7. 8. 9. 0.... 9

S8?v=Originálna (pokračování) 6 7 8 9 0 P.S.: Táto šifra Vám zničí YouTube históriu. 0

7 6 8 7 S9 Čtyřstěn 6 78 8 6