Portál AbcLinuxu, 20. dubna 2024 06:13


Dotaz: Program v Pascalu

13.1.2009 14:17 TT
Program v Pascalu
Přečteno: 969×
Odpovědět | Admin

Zdravím. Potřeboval bych program, do který nakreslí trojúhelník o rozměrech které si uživatel zadá, jeho kružnici opsanou a vepsanou.

 

A pak úlohu z mat. olympiády

P-I-1 Učebnice

„Píšeme dějiny, týhletý krajiny, jaký to příběh je ..” prozpěvoval si král Zloburtus a rozverně upravoval učebnice dějepisu. Přece jen byly napsány za jeho předchůdce krále Pravdomila III. a ten měl na historii příliš upjaté názory. Třeba tvrdil, že rod Pravdomilů byl starší a urozenější než rod Zloburtusů. Což ovšem nebyla pravda a bylo potřeba vše napravit. To je spousta práce, a tak vás královským rozkazem požádal o program, který by dokázal nahrazovat nevhodná slova slovy vhodnějšími.

Soutěžní úloha

Pro zadaný seznam nevhodných slov a jejich náhrad upravte vstupní text tak, že každý výskyt nevhodného slova v textu nahradíte jeho vhodnějším „ekvivalentem”.

Formát vstupu

Vstupní soubor se jmenuje ucebnice.in. Na prvním řádku souboru se nachází přirozené číslo N (1≤N≤100 000), které udává počet nevhodných slov. Následuje N řádků, přičemž na každém z nich se nacházejí vždy dvě slova oddělená mezerou, která jsou tvořena pouze velkými písmeny. První slovo na každém z těchto N řádků je „nevhodné” a druhé je jeho vhodnější náhrada. Od (N+2)-ého řádku až do konce souboru pak následuje samotný text učebnice. Text je tvořen pouze velkými písmeny anglické abecedy a mezerami (a konci řádků), přičemž souvislé úseky písmen tvoří jednotlivá slova. Můžete předpokládat, že žádné slovo nebude delší než 255 písmen a že N nevhodných slov je navzájem různých.

Formát výstupu

Výstupní soubor se jmenuje ucebnice.out. Výstupem programu je text, ve kterém byla všechna nevhodná slova nahrazena jejich vhodnějšími ekvivalenty. Ostatní slova, tj. zbytek souboru, musí zůstat beze změny. Výstupní text musí též zachovávat mezery mezi slovy a odřádkování podle vstupního souboru.

Příklad

Vstupní soubor ucebnice.in:

 

5
PRAVDOMIL ZLOBURTUS
ZLOBURTUS PRAVDOMIL
DRACKA DRAKA
ZROUNA MRACKA
ZBYTECNA DVOJICE
A PAK HRDINNY PRAVDOMIL PRAVDOMILUJICNE SRAZIL K ZEMI DRACKA ZROUNA
VSE LZE NAJIT VE FILMU HISTORIE RODU PRAVDOMILU

V TETO UCEBNICI BUDE HANEN ZLOBURTUS

Výstupní soubor ucebnice.out:

 

A PAK HRDINNY ZLOBURTUS PRAVDOMILUJICNE SRAZIL K ZEMI DRAKA MRACKA
VSE LZE NAJIT VE FILMU HISTORIE RODU PRAVDOMILU Vše popsané, která část co dělá. Předem moc díky. Prosím zaslat na email thethrasher33@gmail.com

V TETO UCEBNICI BUDE HANEN PRAVDOMIL
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.1.2009 14:27 TT
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Pak ještě jednu úlohu:

Vybalancovaný úsek

Souvislý úsek v posloupnosti celých čísel nazveme, jestliže počet kladných a záporných čísel v úseku se sobě rovnají.

Je dáno celé číslo 1<=N<=1000 a posloupnost N celých čísel. Napište program který určí délku maximálního vybalancovaného úsxeku v dané posloupnosti čísel. Při návrhu programu se zaměřte na dosažení co nejvyšší rychlosti výpočtu.

Příklad: pro N =10 a posloupnost čísel 8 6 4 7 -5 -3 2 0 -1 9 bude výsledkem číslo 7, neboˇˇt nejdelší vybalancovaný úsek 4 7 -5 -3 2 0 -1 ( případně stejně dlouhý vybalancovaný úsek 7 -5 -3 2 0 -1 9) je tvořen sedmi čísly.  

Ještě jednou díky moc, posílejte na thethrasher33@gmail.com

13.1.2009 14:38 tyctor
Rozbalit Rozbalit vše Re: Program v Pascalu

a co za to ponukas ty? :o)

13.1.2009 14:49 TT
Rozbalit Rozbalit vše Re: Program v Pascalu

Tohle docela spěchá šéfe, pak se kdyžtak dohodnem, no... Ale nutně to potřebuju :-)

13.1.2009 15:11 tyctor
Rozbalit Rozbalit vše Re: Program v Pascalu

to zadanie vyzera dost jednoducho, tak to skus zvladnut sam, urcite ti to da viacej ;o)

13.1.2009 15:12 TT
Rozbalit Rozbalit vše Re: Program v Pascalu

Jenže já v tom neumím vůbec nic. Prosíím :)

13.1.2009 15:22 tyctor
Rozbalit Rozbalit vše Re: Program v Pascalu

:o) no ja som v pascale naposledy nieco napisal pred 15 rokmi, takze ja ti nepomozem.

tak snad sa tu niekto ochotny najde

13.1.2009 15:01 mozog | skóre: 28
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin
vobec by ma neprekvapilo, keby to bola domaca uloha do skoly
13.1.2009 15:10 TT
Rozbalit Rozbalit vše Re: Program v Pascalu

To není domácí úloha, to je školní úloha :-D

Jenže my máme učitele, co učí stylem "Tady máte nápovědu, a vyřešte tenhle úkol"

Takže nikdo nic neumí a hledá kde může...

Tak kdyby byl někdo tak hodnej, byl bych mu moc vděčnej...

13.1.2009 15:32 Xerces
Rozbalit Rozbalit vše Re: Program v Pascalu

Není v tom případě lepší změnit učitele, případně školu?

13.1.2009 15:30 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Program v Pascalu
vobec by ma neprekvapilo, keby to bola domaca uloha do skoly

Správne. A vyučovanou témou je "outsourcing" ;-)
13.1.2009 21:37 mozog | skóre: 28
Rozbalit Rozbalit vše Re: Program v Pascalu
Správne. A vyučovanou témou je "outsourcing" ;-)
hmm, to ma nenapadlo :-D
14.1.2009 17:54 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Program v Pascalu
Správne. A vyučovanou témou je "outsourcing" ;-)
Asi tak. Když je někdo dobrej jen ve znásilňování ostatních, tak to dotáhne (bohužel) docela daleko.
In Ada the typical infinite loop would normally be terminated by detonation.
13.1.2009 16:01 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pro zadaný seznam nevhodných slov a jejich náhrad upravte vstupní text tak, že každý výskyt nevhodného slova v textu nahradíte jeho vhodnějším „ekvivalentem”.
l=`head -1 ucebnice.in ` ; tail -q -n +2 ucebnice.in | head -n +$l | sed -e 's, ,/,' -e 's,$,/g,' -e 's,^,s/,' > s ; n=`wc -l < ucebnice.in` ; tail -`echo "$n - $l - 1 " | bc ` ucebnice.in | sed -f s > ucebnice.out; rm s
13.1.2009 16:41 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hele, a to cekas, ze ti nekdo zniceho nic tvoje ulohy jen tak kompletne vyresi? A co by z toho mel? Pripadne co z toho budes mit ty? Zeptat se na neco, si zrovna hrajes a nevis si stim rady neni spatne, ale proste preposlat cele zadani mi prijde trochu mimo.
There is no point in being so cool in a cold world.
Amarok avatar 14.1.2009 08:51 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak to je docela husty. Udajne o tom nic nevis a mate za ukol rovnou grafiku v Pascalu? Co je to za ucitele? A nebo jsi celou dobu pri vyucovani prospal? :D
Pochybuju, ze nekdo bude resit tady kompletni domaci ukoly, kdyz ani nevidime aspon pulku hotoveho kodu. A uplne mimo je jeste k tomu to, ze ani nepises 1) jaky Pascal 2) jaka graficka knihovna 3) ...
GNUniverse - May the source be with you...
14.1.2009 09:16 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin

mi to pripomina toto :-) (puvodem odtud)

Ulohy ve skole jsou na to, aby se jeden naucil uvazovat. Jiste, je jednodussi to zkopirovat odjinud, ale stoji to za to? Pristi uloha bude jeste slozitejsi a s tou uz nehnes vubec. (za predpokladu, ze nestudujes dejepis) Predpokladam, ze ten kantor, co to zadal mohl byt blby jak lopata, ale kdyby to potreboval pro sebe, tak to nebude zadavat studentom. :-) Myslim si, ze vetsinu z toho, co po Vas chce mate probranou (je popoleti, ze?). (alespon ta matemetika neni snad problem, jak nakreslit 3uhelnik - propojis 3 body useckama - a to najdes v helpu...)

Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
14.1.2009 11:34 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Ahoj,

předně by bylo fajn, kdyby jsi příště zadání zbavil toho slovního balastu.

Jedná-li se pouze o celá slova, může dobře posloužit trie, kde si pak ke každému slovu uložíš, čím to chceš nahradit. Pokud najdeš vhodnou hashovací funkci, pak stejně dobře poslouží i hashování. Pokud se má jednat o libovolné podřetězce, bude třeba použít Aho-Corasick stroj -- bude též třeba zvážit, co udělat, když by nahrazením podřetězce vznikl jiný, jenž se má/může také nahradit -- to by se dalo pořešit vhodným použitím zásobníku.

Jinak chtít okomentované řešení poslat soukromě na mail mi přijde jako drzost.

14.1.2009 16:37 sziry
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin

No, tak asi takhle ... vzhledem k tomu že to je matematická olympiáda kde tvůj neúspěch nic neovlivňuje, tak mi přijde skutečně silně neetické (a navíc hloupé - nevyřešíš-li to sám v klidu, nedokážeš podobnou úlohu vyřešit ani v okresním kole) žádat o pomoc. Navíc to nahrazování je skutečně jednoduché ... ale jako jedna z možností jak to řešit ... přestav si jak bys ten případ řešil ty ručně a pokud ti to přijde snadné tak jej implementuj. Programování je o imaginaci, manipulaci s představami/symboly a jsem si jist že tvůj učitel ocení i snahu či případně poradí nějakou cestu jak řešit. Pokud vám nevysvětlil jak programovat tak zauvažuj že na googlu vyhledáš něco jako tutoriál programování pascal, nebo tak něco. A pamatuj že když se naučíš učit iniciativně sám tak to pak na vysoké škole jako když najdeš ;).

15.1.2009 00:31 Míra
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Já bych v tom neviděl problém. Místo zadání sem hoď  řešení a on ti už někdo pomůže s převedením do pascalu...

 

16.1.2009 20:17 fero
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tento priklad bol aj na slovensku kategoria A (vyssia) domace kolo uz to mam vyriesene ak mate zaujem poslem zdrojak. e-mail: mojosoft@centrum.sk

29.1.2009 20:11 TrSek
Rozbalit Rozbalit vše Re: Program v Pascalu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Pozri si www.trsek.com/zadania

31.1.2009 11:17 merlin111 | skóre: 15
Rozbalit Rozbalit vše Re: Program v Pascalu
Námět na řešení

.....dec(ZAPORNE),
Každá ulice je slepá jen do té doby, než si opatříš buldozer.
31.1.2009 18:35 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: Program v Pascalu

doufam, ze ten kantor je co k cemu a tyto stranky zna :-)

Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.