Číslo funkcie

Programovacie jazyky, rady, poradňa...
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Číslo funkcie

Príspevok od používateľa Viper »

Sorry že sa pýtam takú blbosť ale neviem to a chcem to vedieť: Môj problém mám funkciu ktorá by ma mala posúvať medzi funkciami na vypisovanie to je nepodstatné ale ide o to že mám funkcie otazka1(),otazka2()...Tak až do desať a potrebujem niečo takéto

Kód: Vybrať všetko

   //dalej
    int i = 0;
    i++;
    otazka+i();
Aby som sa medzi otázkami posúval ale neviem ako to docieliť samozrejme môže to urobiť cez if() ale chcel by som niečo "elegantnejšie".
Dakujem
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Číslo funkcie

Príspevok od používateľa BX »

Keď už potrebuješ takúto hnusnosť, tak si môžeš jednoducho spraviť funkciu s argumentom int a podľa toho v switch priradzuj príslušnú funkciu.
A buď ju vykonaj na mieste, alebo pokračuj v hnusnostiach a vráť si ukazateľ na ňu.
(Predpokladám, źe sa bavíme o C++?)
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: Číslo funkcie

Príspevok od používateľa Viper »

tak to skôr switch alebo to if() ale čo ja viem ak by nato bola nejaká dobrá funkcia niečo ako pri item QString::number(i) a tak ak ma chápeš nebolo by to lepšie riešenie?

//autoeditácia príspevku (11 Máj 2012, 21:48)
áno C++ s Qt
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Číslo funkcie

Príspevok od používateľa audiotrack »

aký jazyk?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Číslo funkcie

Príspevok od používateľa BX »

Viper takto, ty si v C++ s kľudným svedomím môžeš vytvoriť pole ukazateľov na funkcie a vykonávať ich v cykle. Ale kto by toto robil?! Skús sem nadhodiť problém, prídeme radšej na nejaké normálnejšie riešenie :)
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: Číslo funkcie

Príspevok od používateľa Viper »

už žiadny nieje spravím to cez if() ja len teraz sa snažím prísť na čo najľahšie spracovanie programu pretože keď som ho prvý raz začal písať nakódil som si tam také blbosti úplne že som mal 1500 riadkov celý program a keď som potreboval niečo upraviť nevedel som čo je čo musím si zvyknúť najskôr program dobre premyslieť a až potom písať :D ale dúfal som že v Qt niečo také bude ako som potreboval ale keď nieje najlepšia alternatíva bude if()

//autoeditácia príspevku (11 Máj 2012, 21:59)
Ale keď si spomeniem ako som na začiatku podceňoval vypísanie platu zamestnanca a potom sa pozriem na tu prvú verziu toho programu tak by som si zaslúžil knihu o C++ otrieskať o hlavu :)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Číslo funkcie

Príspevok od používateľa BX »

Neviem čo za zverstvo robíš, ale C++ je postavené na tom, že v ideálnom prípade nemáš NIKDE viac krát rovnaký kód. To, o čo sa snažiš z toho, čo tu vidím, nasvedčuje ale tomu, že máš 10 funkcií, ktoré robia úplne to isté. Ak je to tak, odporúčam ti všetko zmazať a začať odznovu.
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: Číslo funkcie

Príspevok od používateľa Viper »

Ono je to taká blbosť do školy každá funkcia mení text labelu atd.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Číslo funkcie

Príspevok od používateľa BX »

A to vás v škole učia, že na zmenu labelu treba samostatnú funkciu?
dykeer
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 102
Registrovaný: 02 jan 2011, 21:21
Kontaktovať používateľa:

Re: Číslo funkcie

Príspevok od používateľa dykeer »

Neviem ako v C++ ale ja vo svojom jazyku pouzivam pre naplnenie premennej a1 nieco taketo: &('a'+'1')='test';
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Číslo funkcie

Príspevok od používateľa harrison314 »

k teme - co takto polymorfizmus ?
dykeer napísal:Neviem ako v C++ ale ja vo svojom jazyku pouzivam pre naplnenie premennej a1 nieco taketo: &('a'+'1')='test';
Ty mas vlastny jazyk ?
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: Číslo funkcie

Príspevok od používateľa Viper »

BX napísal:A to vás v škole učia, že na zmenu labelu treba samostatnú funkciu?
nie nie to je testovací program s otazkami... A asi najlepšie najprehľadnejšie je každú otázku dať ako funkciu pretože sa musím medzi nimi pohybovať atd.

//autoeditácia príspevku (12 Máj 2012, 10:41)
harrison314 napísal:k teme - co takto polymorfizmus ?
Toto radčej nie ako som napísal využijem radčej if(). Pre môj prípad by to bolo jedno pretože by som ja tak musel zadefinovať tých 10 funkcií ibaže s iními paramtrami a uľahčilo by mi to možno iba volanie. Ale dik zapamätám si tento spôsob.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Číslo funkcie

Príspevok od používateľa harrison314 »

Otazky a odpovede k nim, su data tak to reprezentuj ako data a nie ako funkcionalitu.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Číslo funkcie

Príspevok od používateľa BX »

Viper napísal:nie nie to je testovací program s otazkami... A asi najlepšie najprehľadnejšie je každú otázku dať ako funkciu pretože sa musím medzi nimi pohybovať atd.
A práve preto by si to mal urobiť inak!!! Harrison dobre píše, sú to dáta, nie funkcionalita. Čo ti bráni urobiť jednu funkciu, v ktorej zmeníš otázku podľa parametra? Čo ti bráni urobiť objekt, ktorý bude obsahovať všetky otázky a vypisovať ich podľa potreby? Prečo si myslíš, že to tvoje riešenie je najlepšie a najprehľadnejšie?
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: Číslo funkcie

Príspevok od používateľa Viper »

Nemyslim si to ale no neviem musim nadtým ešte porozmýšlať. Asi by som to mal tak urobi´t ako hovorite ale potom musím porozmýšlať nad tým ako urobím Ďalej/späť pretože ak by som mal funkciu nwm teraz napr. Otazka(String otazka,string odpoved...) potom by som to musel prepisovať ale ešte nadtým poriadne porzmýšlam a prepíšem to čo najlepšie. Ďakujem za všetky rady
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Číslo funkcie

Príspevok od používateľa BX »

Veď napíš, čo potrebujš urobiť a nájdeme spôsob, ktorý ti ušetrí klávesnicu :)
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: Číslo funkcie

Príspevok od používateľa Viper »

Ok tak za body som povedal že spravim testovací program 10 otazok a knim moznosti samozrejme funkcie dalej spä´t skontrolova a vyhodnoť no a tak stími otázkami by som to mohol teda vyrieśiť tak že vytvorím 1 funkciu otazka(string otazka, string moznost1,...) no tak ale potom neviem či mám vytvoriť desať stringov s otazkami alebo mám zakáždým keď budem volať funkciu napísať to donej ale potom sa zas popíšem pri funkciach ďalejúspäť to je celý môj proglem :)
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: Číslo funkcie

Príspevok od používateľa metthal »

Vytvorit triedu Otazka, vytvorit v nej clenov ako text_otazky, moznosti atd atd atd. Nahodit vsetky otazky do napriklad vector-u, drzat si aktualny index otazky a pri stlacani spat a dalej budes len ten index posuvat. Pri stlaceni skontrolovat prejdes ten vector a skontrolujes spravnost kazdej jednej otazky.
Viper
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 137
Registrovaný: 14 mar 2012, 13:19

Re: Číslo funkcie

Príspevok od používateľa Viper »

BX napísal:A to vás v škole učia, že na zmenu labelu treba samostatnú funkciu?
Keby ma niečo o programovaní naučili v škole bol by som šťastný. Som samouk :)

//autoeditácia príspevku (12 Máj 2012, 12:42)
vyzerá to dobre s použiťim Vectoru diky
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Číslo funkcie

Príspevok od používateľa harrison314 »

Pre usetrenie stresov pri programovani sa drz tohto:
1. Kazda trieda,struktura reprezentuje jednu jednoduchu vec
2. Kazda metoda,funkcia, procedura robi jednu jednoduchu vec, ktora sa da popisat jenoduchou vetov
3. Dedenie pouzivaj iba ak chces pouzit polymorfyzmus.
4. Vsetky data programu by sa mali tahat zo suborov.
5. Vsade kontroluj rozsah a spravnost argumentov a spravne vyhadzuj excepions ( spravny stupen abstrakcie ).
6. Jadro programu a GUI nesmu mat nic spolocne, potom ich spoj nejakou triedov.
7. Pouzivaj co najvsoubecnejsie typy.
8. Kod sa ty nesmie opakovat.
9. Pouzivaj komentare.
Napísať odpoveď