Argumenty z příkazového řádku v C++

Re:Argumenty z příkazového řádku v C++
« Odpověď #60 kdy: 12. 06. 2014, 21:30:50 »
Problem je v tom že ty jejich tutorialy řeší vždycky něco jiného - jejich kód je vždycky odlišný a nikdy mi nedal to co jsem potřeboval jakožto celek. Jen útržky které jsem musel poslepovat. Dám příklad. Místo objektů v tutorialu o třídě nebo vektoru používaj stringy nebo integery. Kdežto já hledám komplexnější řešení. Jejich tutorialy často řeší něco jiného, specifického pro konkrétní problém.

OMG
90% tutoriálů bývá napsaná tak, aby jedince, který se doopravdy chce něco naučit, vedly postupně od jednoduchých věcí ke složitějším.

Tvoje "Kdežto já hledám komplexnější řešení. Jejich tutorialy často řeší něco jiného, specifického pro konkrétní problém." je, troufám si tvrdit, hodně zcestný postoj a jsem hodně žádostiv, zda si s takovým přístupem někde vyděláváš.
Protože si nějak nedovedu představit, že s tímhle můžeš na nějaké škole přežít ...


webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #61 kdy: 12. 06. 2014, 21:32:55 »
hawran diskuse:
Nevím o co ti jde. Dělám čistě ze zájmu ne abych se tím živil.

gamer

Re:Argumenty z příkazového řádku v C++
« Odpověď #62 kdy: 12. 06. 2014, 21:35:44 »
Kód: [Vybrat]
  public:
  void rgb2hsv(const MyColorConverter::RGB &rgb, const MyColorConverter::HSV *hsv){};
  void hsv2rgb(const MyColorConverter::HSV &hsv, const MyColorConverter::RGB *rgb){};

Jo to je spravne, akorad odstran ty stredniky za zavorkami a psat modifikator 'const' u ukazatele je zbytecne, protoze ukazatel je jen cislo ukazujici do pameti, kde se nachazi pozadovana hodnota.

V tomto případě const není zbytečné. Používání const v C++ je hodně zrádné a tvrdím si říct, že 90% programátorů neví, jak to opravdu funguje a jen mechanicky používají něco, co mají naučené. Zásadní pravidlo pro const v C++ je to, že const patří k tomu, co je VLEVO. To znamená, že konstantní je to, co je VLEVO od klíčového slova const. Pouze když VLEVO od const nic není, pak const patří k tomu, co je VPRAVO. Tyto zápisy jsou zcela ekvivalentní:
Kód: [Vybrat]
const Object* obj
Object const* obj
a říkají, že je konstantní instance Object, na kterou ukazuje pointer obj.

Naopak zápis:
Kód: [Vybrat]
Object* const obj
říká, že je konstantní ukazatel obj, ale není konstantní instance Object.

Pokud chci mít konstatní ukazatel i objekt, musím napsat:
Kód: [Vybrat]
const Object* const obj
Object const* const obj
což je obojí ekvivalentní.

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re:Argumenty z příkazového řádku v C++
« Odpověď #63 kdy: 12. 06. 2014, 21:56:06 »
[Gamer]
Aha, diky za vysvetleni - clovek aby se porad ucil. >:( 

Tedy chapu-li to dobre a pochopil-li jsem dobre zamery kolegy Webhouse, pak tam ten modifikator const byt ani nesmy, jinak by mu to nefungovalo. Predpokladam, ze druhy argument te funkce slouzi k predani instance struktury, do niz se ulozi vysledne hodnoty prevodu. S tim modifikatorem se vsak bude ta instance chovat jako konstanta. Prinejlepsim, proste nedojde k ulozeni pozadovanych vysledku a ve vysledku mu to bude davat chybne hodnoty. V horsim pripade asi dojde k behove chybe a asi naslednemu sestreleni aplikace... (i kdyz na windowsech, no...). Pochopil jsem to spravne?

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #64 kdy: 12. 06. 2014, 23:13:16 »
Funkce pro převod barev mají sloužit k převodu barvy pixelu tedy rgb a to domnívám se je konstanta. Teď je otázka jestli využiju také hsv2rgb to snad jedině v případě, že bych chtěl např. stáhnout/zesílit saturaci nebo stáhnout/zesílit jas či snad změnit odstín. O tomto jsem ještě neuvažoval, ale vlastně by to tam být mohlo. V tom případě bych musel nejdříve načíst barvy pixelu, pak je převést na hsv, pak upravit a pak zase převést na rgb. V tom případě by asi hsv v
Kód: [Vybrat]
void hsv2rgb(const MyColorConverter::HSV &hsv, MyColorConverter::RGB *rgb){};byla proměnná, nebo ne? V tom hsv není trvale nic uloženo, bylo by to jen dočasné uložiště než se bude zpracovávat další pixel.


JSH

Re:Argumenty z příkazového řádku v C++
« Odpověď #65 kdy: 13. 06. 2014, 08:08:57 »
Sorry webhope, ale s tímhle přístupem fakt dojdeš akorát k průseru. Nemáš naprosté základy. Vždyť ani neznáš základní pojmy. Takže se vrať k tutoriálům a knihám a uč se, dokud nebudeš chápat, co se tam dějě. A nekopíruj, ale piš ten kod sám. Bez toho se programovat taky nenaučíš. Bude to chtít čas, ale tak to prostě je.
Vybodni se na obrázky, dokud nejsi schopný překopírovat řetězec z jednoho pole do druhého.

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #66 kdy: 13. 06. 2014, 10:40:10 »
JSH: Však vidíš, že píšu vlastní kód. Už jsem to rozjel.

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #67 kdy: 13. 06. 2014, 10:41:24 »
JSH: A jak má asi člověk ten tutoriál přečíst když nemá ten kód kopírovat? Tvoje rady jsou fakt akorád k smíchu. Naštěstí to už mám hotové.

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re:Argumenty z příkazového řádku v C++
« Odpověď #68 kdy: 13. 06. 2014, 11:22:16 »
JSH: A jak má asi člověk ten tutoriál přečíst když nemá ten kód kopírovat? Tvoje rady jsou fakt akorád k smíchu. Naštěstí to už mám hotové.
On ti jenom chtel rict, ze jeste jsi se jeste nenaucil ani hasit vapno, maltu ti mychaji jini. To ze jsi si precetl knizku o tom, jak se delaji rozvody elektriny, jeste neznamena, ze jsi schopen ji spravne rozvest. A ty s timhle uz stavis barak. Jenze trochu zavane vitr a spadne ti na hlavu strecha i se stropem.

Nejdrive se musis naucit alespon fakt zaklady a porozumet trivialnim pojmum. A na techto zakladech pak teprve muzes stavet neco slozitejsiho.

webhope

Re:Argumenty z příkazového řádku v C++
« Odpověď #69 kdy: 13. 06. 2014, 11:41:10 »
D.A. Tiger a další a další:
Jelikož máte problém s vcítěním se do situace druhého člověka nebo prostě jen nečtete co tu píšu tak vám to všem zopakuju ještě polopatě. Už si někde viděl, nebo si to zažil, aby se někde učil nějaký program čistě teoreticky, je jedno jaký program - např. A. Photoshop, A. Illustrator C. Draw, M. Excel, M. Word, nebo linux, bez toho aniž by k tomu byla současně i praxe? Jestli si to nezažil tak já něco podobného zažil na škole ale týkalo se to úplně jiného programu kde nás nejdříve seznamovali s veškerou teorií, jak program Vypadá, z čeho se skládá menu, z čeho se skládají jednotlivé dial. okna na co se má kliknout aby to udělalo to a to. A pak až teprve dejme tomu po dvou nebo třech měsích by byla praxe. Tak já bych chtěl vidět kolik si z toho budete pamatovat třeba po třech měsících a tak bez té praxe a kolik toho budete umět jen tak od ruky a z paměti jak tu po mě žádá JSH. To co tu psal JSH o tom že nemám kopírovat kód je ale absurdní, protože to dělaj úplně všichni co jsou na začátku. Je jedno jestli si ten kód okopírují z CD čka, ze stránky nebo ho opíšou z hlavy. To není z vlastní hlavy ale je to jen učebnicové kopírování, že vezmeš nějakou věc a okopíruješ ji. Ale dokud si ji nevyzkoušíš, tak to nebudeš umět. A když to budeš zkoušet tak budeš dělat chyby. A další úplná z prominutím hovadina co tu někdo psal je, že ty tutoriály jsou psány tak aby rozebraly úplné začátky a že se k tomu postupně dostanu až k tomu co chci. To není pravda, protože většina těch tutoriálů zejména anglických je psaných obecně, takže každý si to musí nakonec rozjet sám na svém systému a ve svém kompilátoru. Takže jiné hlášky vám to hází na Linuxu jiné ve Windowsu jiné když pracuješ s ANSI a jiné když používáš UNICODE. Hovadina to tvrzení teda je a za tím si stojím protože jsem ještě neviděl tutorial, který by řešil všechno postupně i včetně hlášek, které se mohou vyskytnout, když někde uděláš chybu nebo něco zapomeneš, apod. Tyhle hlášky nikde nejsou v žádném tutoriálu vysvětleny, alespoň ne v tom co jsem já dělat pro Visual Studio 2010. Takže já se potřebuju nejprve naučit a pochopit co znamenají ty hlášky. O nějakém psané kódu z paměti nemůže být ani řeč, dokud si to všechno nevyzkouším alespoň jednou. A vážně bych vás teď chtěl vidět jak se učíte něco nového, řekněme pro vás linuxáky - programování ve WinApi za paměti, bez toho že byste si to vyzkoušeli a neudělali ste chyby když to děláte poprvé.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Argumenty z příkazového řádku v C++
« Odpověď #70 kdy: 13. 06. 2014, 12:02:47 »
Tvoje rady jsou fakt akorád k smíchu.

Bohužel rady od JSH k smíchu nikomu nejsou, vyjma Tebe.

DK

Re:Argumenty z příkazového řádku v C++
« Odpověď #71 kdy: 13. 06. 2014, 12:07:32 »
webhope: a tutorial praxi neobsahuje? mas tam modelove priklady, jak na to
na zadne rozumne skole te nebudou tri mesice ucit teorii v programu / programovacim jazyce, aniz bys nedelal praxi (treba uz v prvni hodine zakladu programovani se ucis pracovat s pointery)

co se tyce treba winapi - existuje k nemu dokumentace, takze pro programatora to problem neni... samozrejme je pravdepodobne, ze se tam s nejakym problemem setka, ale diky tomu, ze v tom jazyce umi, tak to pro nej problem nebude, takze to, co se ti tu snazime rict uz hodne dlouho -> dokud nebudes umet zaklady, nepoustej se do nejakych rozsireni

nauc se poradne zaklady, praci s ukazateli (ne, bez toho se fakt nikam nehnes), jak se definuji blbe struktury a nesnaz se to tady obkecavat... neres unicode, v 99% tutorialu bude ANSII, pri programovani konzolovych aplikaci taky budes vetsinou resit jenom tohle

a propos, nikdo (krome nejakych soutezi) po tobe nebude chtit, at to vsechno umis z hlavy... i kdybys neumel syntaxi, tak musis byt schopen najit, jaka je, jak se dana vec pouziva... nechceme te tady odrazovat od programovani, prave naopak, tim, ze budes umet dobre zaklady, pro tebe bude jednodussi se naucit zbytek (pak to totiz dopada tak, ze programy v c++ maji zdrojak podobny tvemu, programatori nevi, jak funguji sablony, michaji dohromady referenci a dereferenci, v jave vsude davaji sychronized a staticke metody, poradne ani nevi, jak se pouzivaji singletony, v php bastli aplikacni logiku s prezentacni vrstvou atd.)

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re:Argumenty z příkazového řádku v C++
« Odpověď #72 kdy: 13. 06. 2014, 12:16:06 »
Ty to stale nechapes, ze?

Hele ty jsi v pozici manika, ktery se rozhodne postavit barak. objedna si stavebni materal, cihly, desky, tramy a smele se pusti do dila. Chvalihodne. Tedy do doby nez nas mily stavar zjisti, ze malta kterou namichal mu zed neudrzi. Tak zastavi kolemjdouciho a pozada ho pomoc. Kolemjdouci mu namicha maltu a pak se opre o mychacku a s udivem sleduje, ze nas stavitel nevi jak spravne na sebe skladat cihly, kantku stavi pomoci tvarnic a otvory pro okna a dvere vysekava krumpacem do hotove zdi.

Kdyz tedy nasemu stavitelovy kolemjdouci poradi, aby zasel na nejblyzsi staveniste, podivat se jak se takovy barak stavy a praci si tam osahal, tak jak mu ji ukazi zkuseni zednici, setka se s odpovedi :"To je mi na hovno, kazdy zednik dela neco jineho, budou do me fedrovat spoustu teorie, ale ja potrebuji praxi a tu neziskam jinak, nez ze si postavim vlastni dum!"

No, co na to rici?

Re:Argumenty z příkazového řádku v C++
« Odpověď #73 kdy: 13. 06. 2014, 12:17:27 »
D.A. Tiger a další a další:
Jelikož máte problém s vcítěním se do situace druhého člověka nebo prostě jen nečtete co tu píšu tak vám to všem zopakuju ještě polopatě. Už si někde viděl, nebo si to zažil, aby se někde učil nějaký program čistě teoreticky,...
A vážně bych vás teď chtěl vidět jak se učíte něco nového, řekněme pro vás linuxáky - programování ve WinApi za paměti, bez toho že byste si to vyzkoušeli a neudělali ste chyby když to děláte poprvé.

Mám vážně obavy, že ty Tvoje programy vypadají stejně, jako ten text ...

JSH

Re:Argumenty z příkazového řádku v C++
« Odpověď #74 kdy: 13. 06. 2014, 12:32:47 »
Vůbec jsi nepochopil, co jsem se snažil říct. Netvrdím, že máš studovat teorii. Právě naopak. Čtení (a kopírování) tutoriálů bez toho aby sis to po malých kouscích sám vyzkoušel je právě jen ta teorie. Když jsem napsal ať ty věci nekopíruješ z tutoriálů ale sám si je napíšeš, tak se ti to nelíbilo.

Praxi v téhle situaci nezískáš tak, že budeš psát "veliký" program na převod obrázku. Praxi získáš tak, že začneš u malých věcí. Napíš si prográmky, ve kterých si vyzkoušíš věci jako definici struktury, vytvoření její instance, předáš ji funkci, vrátíš ji zpět a tak dál. Jedno po druhém. Nic z toho neumíš a chceš dělat něco daleko složitějšího.

Prostě si u každého tutoriálu zkus napsat něco podobného, ale bez kopírování kusů kódu.