Anonymní profil DM – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil DM – Programujte.comAnonymní profil DM – Programujte.com

 

Příspěvky odeslané z IP adresy 90.180.131.–

Offtopic › KSP - Programátorská džungle
28. 12. 2009   #121830

Ahoj,

Pro ty co neznají ksp, tak se jedná o Korespondenční seminář z programování pro středoškoláky, který pořádá Matfyz. Během školního roku je 5 sérií úloh, můžete se přidat kdykoli a začít řešit klidně i uprostřed roku. Jedná se hlavně o úlohy algoritmické, např. použití dynamického programování nebo drobnosti v teorii grafů. Na stránkách získáte zadání úloh, vyřešíte je a pošlete řešení a obratem vám dojdou opravená řešení a přidělené body. Pro řešitele se dvakrát ročně pořádají soustředění. Doporučil bych zkusit řešit každému, kdo chce jít studovat informatiku na nějakou kvalitní vysokou školu. Kdo je úspěšný řešitel ksp, ten bude mít první ročník nejen na matfyzu o něco jednodušší. Právě probíhá třetí série, zapojte se ještě dnes ;-)

Možná je pro dost lidí šok, když jsou v okolí za IT guru, protože dovedou napsat klikátko ve VS nebo nakódit stránky v php, že tady jsou za zelenáče. Myslím, že umístění je až druhořadá věc, nejdůležitější je dozvědět se něco nového. A aspoň si každý může zkusit porovnat síly s lidmi, kteří reprezentují ČR na IOI(olympiáda v informatice).

Ale pro ty, kteří chtějí začít pěkně zlehka, tu máme novou úžasnou formu řešení úloh. Jmenuje se Programátorská džungle https://ksp.mff.cuni.cz/dzungle/. Jedná se téměř o rpg, pohybujete se v dungeonu, kde musíte řešit informatické problémy, abyste se dostali dál. A jste to vy, kdo sbírá zkušenosti a zlepšuje se. Způsob řešení je dost podobný Google Code Jam, dozvíte se úlohu, napíšete řešení v libovolném jazyce, stáhnete testovací data a odešlete vámi spočtený výsledek. Programátorská džungle je pro každého, nejen pro středoškoláky.

Informace o KSP najdete na adrese: https://ksp.mff.cuni.cz/ https://ksp.mff.cuni.cz/about/intro.html
Programátorskou džungli najdete na adrese: https://ksp.mff.cuni.cz/dzungle/ https://ksp.mff.cuni.cz/dzungle/

Funkcionální programování › Scheme
29. 11. 2009   #120213

Tak to je tím, že cons spojí hlavu a ocas. Tedy z (cons '(0 1) '(2 3)) udělá '((0 1) 2 3). Asi bys chtěl něco jako (cons '(0 1) '( '(2 3))) z čeho ti vznikne '( '(0 1) '(2 3) ). Mně se už nedaří napsat nic rozumného v schemu, takže radím jen teoreticky :D

C / C++ › Funkce any2dec
29. 11. 2009   #120209

[seznam]i bys rozhodně neměla v cyklu měnit. Je to krajní mez.[/seznam]
[seznam]většinou chceš použit proměnnou, kterou máš v cyklu, tedy brát prvky na indexech o[/seznam]
[seznam]test je pole charů, nepotřebuješ je přetypovávat[/seznam]
[seznam]nepotřebuješ umocňovat, pokud znáš Hornerovo schéma, vylepší ti to časovou složitost[/seznam]
[seznam]je potřeba na začátku si vynulovat proměnné[/seznam]
[seznam]možná bych tu funkci pojmenoval hex2dec ;)[/seznam]

vysl = 0;

for (o = 0; o < i ; o++){
cislo = prevod[(test[o]];
vysl *= 16;
vysl += cislo;
}

Funkcionální programování › Scheme
29. 11. 2009   #120180

Nějaký podrobnější popis čeho se snažíš docílit?

Jinak ten druhý map by možná taky měl být v lambdě. Jsem zvyklý z haskellu na currying a už si moc nepamatuju scheme.

Java › Applet - zápis na lokálu neb…
28. 11. 2009   #120158
Java › Jak na build.xml
28. 11. 2009   #120155

Eclipse si určitě generuje vlastní build.xml, takže by mělo stačit se jen podívat do složky s projektem. Pokud se ho chceš naučit psát manuálně, tak pak se podívej na manuál antu http://ant.apache.org/manual/using.html

C / C++ › Google Go
18. 11. 2009   #119529

Tak oni upravili i syntaxi tomu, aby měli rychlý kompilátor. V C/C++ záleží u spousty věcí na kontextu. Zajímavě vypadá klíčové slovo go :-)

C / C++ › pomoc se strome
30. 10. 2009   #118105

Chytrá metoda je vracet si ukazatel na upravený podstrom. Něco takového:

struct uzel* odebrat(struct uzel* u, int cislo) {

if (u == NULL) { return u; }
if (cislo < uzel->data) {
uzel->levy = odebrat(uzel->levy, cislo);
} else if (cislo > uzel->data) {
uzel->pravy = odebrat(uzel->pravy, cislo);
} else {
if (uzel->levy == NULL) {
struct uzel* vratit = uzel->pravy;
free(uzel);
return vratit;
} else if (uzel->pravy == NULL) {
struct uzel* vratit = uzel->levy;
free(uzel);
return vratit;
} else {
...Error...
}
}
}
Taková funkce se pak volá
koren = odebrat(koren, cislo)
Dobrý nápad je si ji zaobalit nějakou, která se o to stará sama.

C / C++ › Práce s poli
30. 10. 2009   #118089

Tak to bohužel v C/C++ nejde, ale můžeš ho inicializovat třeba takto:

int pole[3] = {5,5,5};

Python › Existence souboru
30. 10. 2009   #118084

K21 napsal:
Nevim, jestli se da odpovedet slusne. Zkusim to.

Tady neni potreba ani ten Google, staci ti interpreter Pythonu, schopnost psat na pocitaci a spustit program, pripadne si precist chybovou hlasku.

Jo a jinak: ano, musi.


Plácáš nesmysly. Co takhle říct o modulu os.path a některých jeho hezkých funkcích jako exists, isfile, isdir, atd? Proč být na tazatele zlý, když třeba chtěl vědět jestli neexistuje lepší způsob než ten, který ho napadl.

Java › oop, java - ebook/kniha/e-le…
30. 10. 2009   #118083

Určitě bych doporučil Thinking in Java od Bruce Eckela. Kniha začíná kapitolou o OOP, takže pochopíš oč jde, ještě předtím než uvidíš nějaký kód.

Java › okna
30. 10. 2009   #118082
Java › Logicka chyba
30. 10. 2009   #118081

Děláš tam blbosti s proměnnýma hltotal a sltotal. Jsou zbytečně inicializované třikrát a hlavně v každém cyklu při načítání. Takže každý cyklus začínáš s sltotal = 0. Akorat pri posledním načteš 4, pak provedeš rangeCheck, kde máš sltotal = sltotal + slmark, takže to bude sltotal = 4+4. To samé s hltotal. Takže nakonec máš 8+8+1 = 17. Vyndej ty total před for cyklus a přičítej až při kontrole mezí a bude ti to fungovat.

Java › Rekurzivní nalezení kombinac…
30. 10. 2009   #118080

Tebe v podstatě nezajímá co je v té matici, chceš najít všechny permutace indexů.
Příklad jak to třeba udělat rekurzivně: Budeš mít pole velikosti n. Do něj si budeš značit, jestli jsi už daný index použila, na začátku nebude použito nic. Rekurzivně pak budeš přidávat vždy nový index a jakmile dojdeš na konec, tak si jej zapamatuješ.
Pseudokód(ne tak úplně ;-):

n = 4

pouzite = n * [False]

def vsechnyPermutace(permutace, delka):
global n, pouzite
for j in range(n):
if pouzite[j]:
continue
else:
pouzite[j] = True
vsechnyPermutace(permutace+[j], delka+1)
pouzite[j] = False
if n == delka:
print permutace

Místo vypsání permutace ty budeš chtít vzít si prvky, které budou v matici na pozicich m[i][permutace[i]].

Java › jednoducha databaze
30. 10. 2009   #118079

Udělej si třídu reprezentující každý záznam. Jednotlivé položky budeš mít uložené v poli/seznamu/... Budeš mít texťák a do něj budeš psát jednotlivé záznamy oddělené znakem, který se v nich nebude objevovat. Můžeš mít třeba každý záznam na nový řádek a ve formátu id|firma|barva. Ale v ascii tabulce je na tohle myšleno a existují znaky 0x1E Record Separator a 0x1F Unit Separator.

Při spuštění programu si pak otevřeš tento soubor, načteš jeho obsah, rozparsuješ a uložíš do vnitřní reprezentace.

Ale hezčí by bylo mít to buď v té databázi(SQLite) anebo třeba v xml souboru. ;-)

DM
Offtopic › Odkud se učíte programovat?
11. 10. 2009   #117066

Měl jsem na mysli hlavně algoritmy a teorii. Jazyky se dají naučit odkudkoli. Ale když se chce někdo naučit opravdu programovat tak mu nezbývá než zabrousit do knih jako Introduction to Algorithms z MIT.

DM
Offtopic › Odkud se učíte programovat?
11. 10. 2009   #117024

Ahoj,

Chtěl bych se zeptat středoškoláků, kteří se učí programovat, z jakých serverů kromě programujte.com se ještě učíte anebo na nich získáváte nové poznatky? Jaké jsou hodně navštěvované a lze na nich nalézt spoustu informací?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý