Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 20. červenec 2008, 14:50:45 Předmět: |
|
|
AdamHlavatovic napsal: |
> ... Teda nevim jak projde ta inicializace ...
Takato inicializacia
kód: |
char str[] = "nejaky retazec"; |
je v c,c++ vcelku bezna a uplne v poriadku. |
hmm kdyz uz ses takovej machr tak bys mohl vedet ze '\0' na konci se dava automaticky a neni treba ji tam explicitne psat.
navic tvuj kod znacne pokulhava kdyz elementu bude vic jak 10 |
|
Návrat nahoru |
|
 |
Yossarian

Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 20. červenec 2008, 14:51:23 Předmět: |
|
|
AdamHlavatovic napsal: |
a) Robi to presne to co tazatel chcel, tj. k retazcu "RateOfFires" to postupne pridava cislice 0 az 9 teda "RateOfFires0", "RateOfFires1", "RateOfFires2", atd..
|
a k cemu to je v takovemto cyklu dobre? a jak dosahnu pridani napr. cisla 10? slozity jak kybl kytu.
AdamHlavatovic napsal: |
b) Pokial nepoznate jazyk c,c++ (co je zrejme s vasej reakcie) tak by ste sa v tomto fore nemal realizovat. |
o tom kdo nezna jazyk C bych pomlcel. Pravdepodobne to budes ty, uz jenom z duvodu, ze
je v tomto pripade ale uplne zbytecne. Kazdy, kdo C zna, a podle reakci ostatnich usoudi ze jej neznaji, tak vi, ze pri neuplne inicializaci statickeho pole jsou neinicializovane cleny nastaveny na 0. howgh. |
|
Návrat nahoru |
|
 |
AdamHlavatovic
Založen: 18. 12. 2007 Příspěvky: 12
|
Zaslal: 20. červenec 2008, 14:57:32 Předmět: |
|
|
znak '\0' sa samozrejme na koniec retazca dava, v mojom kode bude na pozicii 11, ktoru ovsem dalej prepisujem takze preto je tam to str[12] = '\0'. Samozrejme nevylucujem ze kompilator moze doplnit vsetky ostatne znaky znakom '\0' (teda str[11] a str[12]) ale spolahnut sa nato neda.
No a ktomu kodu: preto je v tom cykle for podmienka, i < 10, samozrejme ze ak i je 10 a viac, kod prestava fungovat ale nato ani nebol napisany. Navise,kod plne vyhovuje specifikacii tazatela a to pripojit cislo 5 k retazcu, takze dakujem postaci.
Naposledy upravil AdamHlavatovic dne 20. červenec 2008, 15:00:32, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
Yossarian

Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 20. červenec 2008, 15:00:25 Předmět: |
|
|
AdamHlavatovic napsal: |
ale spolahnut sa nato neda.
|
ale da. je videt, ze opravdu nemas pravo soudit, kdo C umi a kdo ne.
napr.
inicializuje pole na prvky 1, 0, 0, 0, 0
totez plati i u char. PODLE NORMY!  |
|
Návrat nahoru |
|
 |
AdamHlavatovic
Založen: 18. 12. 2007 Příspěvky: 12
|
Zaslal: 20. červenec 2008, 15:05:46 Předmět: |
|
|
ok, mate pravdu ale nic to nemeni na fakte ze kod funguje, ci uz tam je, alebo nieje
|
|
Návrat nahoru |
|
 |
AdamHlavatovic
Založen: 18. 12. 2007 Příspěvky: 12
|
Zaslal: 20. červenec 2008, 15:06:40 Předmět: |
|
|
> je videt, ze opravdu nemas pravo soudit, kdo C umi a kdo ne
na zaklade vasej reakcie "(co dela je zrejme - absolutni nesmysl)" som nato mal plne pravo ze v c nieste velmi skuseny programator.
Naposledy upravil AdamHlavatovic dne 20. červenec 2008, 15:07:59, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 20. červenec 2008, 15:07:41 Předmět: |
|
|
Funguje, ale takovouhle prasárnu by si slušný programátor do projektu nepustil (jak už psal Tutchek).
Ale teda fakt sranda, přijde člověk, napíše megaprasárnu a pak začne poučovat lidi, kteří se programováním zabývají > 10 let 
Naposledy upravil Augi dne 20. červenec 2008, 15:08:47, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
AdamHlavatovic
Založen: 18. 12. 2007 Příspěvky: 12
|
Zaslal: 20. červenec 2008, 15:08:46 Předmět: |
|
|
a vcom to je prasarna, skuste mi to vysvetlit, ak je poziadavka na koniec retazca pripojit jednu cislovku ? |
|
Návrat nahoru |
|
 |
Yossarian

Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 20. červenec 2008, 15:09:11 Předmět: |
|
|
samozrejme ze to funguje. to jsem nikde nepoprel, ale principielne to je prasarna, jak rika augi - to by slusny ( a zkuseny v C ) programator v zivote neudelal. |
|
Návrat nahoru |
|
 |
AdamHlavatovic
Založen: 18. 12. 2007 Příspěvky: 12
|
Zaslal: 20. červenec 2008, 15:11:03 Předmět: |
|
|
> Ale teda fakt sranda, přijde člověk, napíše megaprasárnu a pak začne poučovat lidi, kteří se programováním zabývají > 10 let.
tak potom nechapem tu prvotnu reakciu an moj kod, ze to je absolutny nezmysel (to ze sa vam to nepaci, tak to je uz ina vec) a inak ja mam uz tiez zasebou tych 10 rokov. |
|
Návrat nahoru |
|
 |
AdamHlavatovic
Založen: 18. 12. 2007 Příspěvky: 12
|
Zaslal: 20. červenec 2008, 15:13:53 Předmět: |
|
|
tak potom som tvoju reakciu na moj kod zle pochopil
"to by me pomerne zajimalo, co ten tvuj kod ma delat (co dela je zrejme - absolutni nesmysl)"
a musim sa ospravedlnit, takze mozme vec povazovat za vybavenu. |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 20. červenec 2008, 18:18:27 Předmět: |
|
|
AdamHlavatovic napsal: |
inak ja mam uz tiez zasebou tych 10 rokov. |
Ja byt tebou tak sa tym nechvalim. To sa vobec nehanbis napisat taky kod aky si tu napisal ? To, ze kodis 10 rokov prd znamena, ak si ochotny sa podpisat pod taky kod, aky si tu vyssie uviedol. Co tak vseobecnejsie riesenie ? Ja sa pocas interview tiez stretavam s ludmi co tvrdia, ze su experti a kodia 10 rokov, ale po polozeni 3 otazok je hned jasne, ktora bije...
Augi : Ono to vobec nie je sranda, lebo taky clovek prijde na interview a struha tazkeho frajera aj ked kodi ako morske prasiatko
Interview s nim spravit musime, lebo ma za sebou vela rokov, ale v konecnom dosledku akurat zabijeme pol dna, pretoze technicke otazky nemozeme davat pred samotnym interview, cize aj ked clovek robil pokladnika v tescu 10 rokov, ale do CV si da, ze je C++ expert, tak sa zabije pol dna. |
|
Návrat nahoru |
|
 |
AdamHlavatovic
Založen: 18. 12. 2007 Příspěvky: 12
|
Zaslal: 20. červenec 2008, 19:35:41 Předmět: |
|
|
kód: |
char str[13] = "RateOfFires";
for (int i = 0; i < 10; i++)
{
str[11] = '0' + i;
...
} |
Nie, za tento kod sa vobec nehambym, pri poziadavke ako bola, (spojit retazec "RateOfFires" s jednocifernym cislom (tazatel uvadzal cislo 5)), je toto lepsie riesenie nez pouzitie funkcii s rodiny itoa, alebo ostringstream, lexical_cast a podobne. |
|
Návrat nahoru |
|
 |
ladik-BigBoss

Založen: 28. 07. 2007 Příspěvky: 162
|
Zaslal: 20. červenec 2008, 21:26:07 Předmět: |
|
|
ten kod proste neni znovupouzitelny, skalovatelny a uz vubec ne hezky.
to ze nekdo da prikad: "treba 5". neznamena ze chce jenom cisla jednociferna ci nebude v budoucnu viceciferna potrebovat.
pokud kodis vic jak 10 roku mel bys myslet mnohem vice dopredu nez zacatecnik, kteremu radis a ne se ohanet tim, ze si o vic nerekl.
ja bych spise odpovedel, kdyz uz kodem, takto:
C:
kód: |
int i;
char str[256];
i=5;
sprintf(str, "RatesOfFire%d", i);
|
C++
kód: |
int i;
char str[256];
stringstream strs;
i=5;
strs << "RatesOfFire" << i;
strs >> str;
|
pod tohle se nevaham podepsat, ikdyz by me mnozi vytkli, ze jsem nepouzil snpritf |
|
Návrat nahoru |
|
 |
AdamHlavatovic
Založen: 18. 12. 2007 Příspěvky: 12
|
Zaslal: 20. červenec 2008, 21:32:25 Předmět: |
|
|
> pokud kodis vic jak 10 roku mel bys myslet mnohem vice dopredu nez zacatecnik.
lenze ten kod bola len jednorazovka, pri jeho pisani nebol kladeny doraz na znovupouzitelnost (doleita bola len maximalna jednoduchost a efektivita). Je to cele "nedorozumenie", samozrejme ze poznam ostrstream, sprintf, lexical_cast, popripade ine funkcie na prevod cisla na retazec, ale u takto jednoduchej a uzko specifickej veci skratka niesu potrebne. |
|
Návrat nahoru |
|
 |
|