Příklady? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Příklady? – C / C++ – Fórum – Programujte.comPříklady? – C / C++ – Fórum – Programujte.com

 

Mirek Braho0
Stálý člen
17. 4. 2007   #1
-
0
-

Ahoj lidi, tak jsem tu zas. Chci se jen zeptat ... stále se učím programovat a objevuju nové a nové věci, ale stále nevím jak si to odzkoušet. Zkrátka, chybí mi nějaká zadání, cvičení, příklady. Sám z hlavy totiž nejsem schopnej vymyslet co naprogramovat, abych si odzkoušel co už umím a čeho všeho už jsem schopnej. Ted například dokončuju základy objektového programování, třídy a objekty, ale nevím co vytvořit. Nějaké jednoduché funkce typu "do i vlož A" a druhou funkci aby to vypsala to je na nic. Neví někdo o nějakém webu ? Nebo kde by se nějaké příklady na procvičení daly najít?

Druhá otázka, někdo mi někdy říkal, že výhoda objektového programování je v tom, že nemusíš všechno psát ale stáhneš si objekt z internetu (třeba na přehrání video souboru) a ten si upravíš. Kde se daj takhle sehnat objekty? Je to zdarma? Díky za odpovědi ...

Nahlásit jako SPAM
IP: ...–
Dusan Knop0
Newbie
17. 4. 2007   #2
-
0
-

No tak ja zapatram v pameti, co se u nas davalo jako zapoctovy test z OOP:
1) Zkuste naprogramovat objekt, ktery se konstruuje pomoci stringu ve kterem je zadany matematicky vyraz, aktery bude mit funkci int vyhodnot(int* vars).
a) jednoduse to bude v prefixu treba +3 * 6 2 (jednoduche jak facka)
b) v infixu se zavorkami a prioritou orepatoru treba 3+(6*2) nebo ekvivalent 3+6*2
c) s promennymi matemat. vyr bude treba 3+6*x0 a pak se bude volat
int[1] a;
a[0] = 2
vyhodnot(a);

vysledky jsou jednoduse overitelne... dalsi priklady v pripade zajmu dodam(email-me)

Nahlásit jako SPAM
IP: ...–
Mirek Braho0
Stálý člen
17. 4. 2007   #3
-
0
-

Díky, jen nějak nepobíram co to je infix a prefix. Ale to si někde najdu.

Ještě mam docela bordel v konstruktorech. V jedněch skriptech z vejšky sem se dočet, že funkce konstruktoru spočívá v tom, že dosazuje počáteční hodnoty proměnnejch co jsou definovaný jako private: ... A to nejdou v tom private rovnou definovat třeba jako int i=1 ? To by pak byly konstruktory zbytečný ne ? A je to opravdu jedinej účel konstruktorů ve třídách ?

Nahlásit jako SPAM
IP: ...–
DeaLer+2
Hero
17. 4. 2007   #4
-
0
-

To vollf82: konstruktory sloužej k initializaci instance objektu

Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
sn3d0
Věrný člen
17. 4. 2007   #5
-
0
-

vollf82 píše:Druhá otázka, někdo mi někdy říkal, že výhoda objektového programování je v tom, že nemusíš všechno psát ale stáhneš si objekt z internetu (třeba na přehrání video souboru) a ten si upravíš. Kde se daj takhle sehnat objekty? Je to zdarma? Díky za odpovědi ...



Neviem, ale bud si si jeho odpoved zle vysvetlil alebo doticny ani nevedel o com hovory. Vyhoda OOP nieje v tom ze nemusis vsetko pisat. Znovupouzitelny kod sa da pisat aj v klasickom C. Vyhody OOP clovek zacne vnimat pri navrhovani, analize, designe aplikacii.. Pomocou objektov sa lebsie da popisat urcity problem.S Objektami sa omnoho lebsie manipuluje. Dolezite veci pri OOP je dedicnost, polymorfizmus, atd.. Hotovych kniznic je na nete habadej. Neexistuje vsak nejaky centralny web na ktorom najdes vsetko co potrebujes. DOlezite je vediet CO potrebujes. Potrebujes sa pripojit na ORACLE? Siahnes po OCCI kniznici, potrebujes co ja viem pracovat s GUI vo windowsoch, siahnes po MFC alebo VCL. Mnozstvo veci je zadarmo, mnozstvo veci zadarmo nieje. Netyka sa to len OOP ale taktiez aj proceduralnych veci. Napriklad kniznice ako EXPAT, CURL, PCRE.. tie niesu OOP a pritom to je znovu pouzitelny kod. Kniznica pre GNOME je Ceckovska bez OOP kdezto kniznica QT pre KDE je objektova a da sa povedat ze ich vyznam je rovnaky. Samozrejme OOP je na tom podstatne lebsie zo znovupouzitelnym kodom(To je pre tych ktory by ma chceli chytat za slovicka).

Co sa tyka tvojej prvej otazky.. podla mna, najlebsie sa clovek doslova vytrenuje na zadania z realneho zivota, z praxe. Totizto vsetka ta teoria co je to konstruktor, na co su virtualne fcie je zbytocna ak ich nevies v praxi pouzit pri navrhu aplikacie. Urcite si uz potreboval nejaky jednoduchy softik, tak si ho naprogramuj. Premysli si co od neho potrebujes, co by mal robit.. hladaj riesenie.. ako na to.. Napriklad dam krk ze si mal neraz problem s casovanim tituliek pri filmoch.. idelane si nakodit nejaku vec na to.. je to jednoducha praca z cislami a subormy.. Vyrabaj si male utilitky, neskor ked ziskas skusenosti s hladanim v dokumentaciach sa pustaj do vecsich aplikacii..

Good luck ;)

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Mirek Braho0
Stálý člen
17. 4. 2007   #6
-
0
-

Vřelé díky za obsáhlou odpověď. Jde právě o to, že jsem v celku ještě nic nenaprogramoval (když nepočítám ty triviální cvičení z lekcí C++ na tomhle webu). Za těch pár měsíců co do toho čumim, hledam všude možně po netu a čtu a čtu, tak to všechno chápu, proč je to tak a tak a proč to tak funguje. I když koukám na kód nějakýho jednoduchýho prográmku na vysvětlení, tak tomu rozumim. Ale pak spustim Dev C++, nahodim prázdnej source file ..... a konec. Prostě nevim jak začít. Maximálně mě napadne naincludovat iostream protože to se potřebuje snad vždycky, zkrátka asi něco pořád dělám špatně a potřeboval bych nakopnout.

Ale ten programek na titulky je dobrá inspirace, to zkusim. S tou dokumentací máš pravdu, docela v tom plavu protože je tam toho hafo a nevim jak hledat (na MSDN a nebo http://cppreference.com/ ).

A měl si opět pravdu, už je to dlouho co mi to ten člověk říkal, a já si splet "objekty" s "knihovnama". Tak on to myslel, že na všechno jsou knihovny.

Každopádně díky, budu se snažit dál ... co zbývá ...

Nahlásit jako SPAM
IP: ...–
meo
~ Anonymní uživatel
2 příspěvky
17. 4. 2007   #7
-
0
-

Zdravím, měl bych dotaz, zda je možné pomocí komponenty MediaPlayer přehrát netový rádio přes URL, popř. jestli se nějaká komponenta co to umí nedá nějak doinstalovat pokud existuje.....Díky

Nahlásit jako SPAM
IP: ...–
sn3d0
Věrný člen
18. 4. 2007   #8
-
0
-

Tato komponenta je ActiveX a tym padom ak tvoj media player v systeme dokaze prehravat streamovane data, tak to dokaze aj ta komponenta. Taktiez je mozne na to ist skrz DirectX vid priklad streamovaneho prehravania: http://www.codeproject.com/audio/DirectSoundAudioStream.asp.

Je treba vediet o danom inet-radiu v akom formate streamuje. Ci sa jedna o RealPlayer ci o M$ format, alebo mpegovske zalezitosti alebo najnovsie aj flashoviny. U niektorych tychto technologii je problem s licenciou a tak neviem ci najdes nejaku kniznicu napriklad na RealPlayer.

P.S: Do tejto problematiky vlemi nevidim, nestudoval som streamovane audia a formy prehravania.. takze sa ospravedlnujem za vzniknute skreslenia..

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Mirek Braho0
Stálý člen
18. 4. 2007   #9
-
0
-

Abych zbytečně nezakládal téma tak to hodím sem.

Lidičky jak mam používat dynamické pole deklarované třeba takto - char **t
Nikde sem to nenašel vysvětlený, ale prý se to tak dělá. Zkoušel jsem tento kód, ale je mi jasný že je úplně špatně:

#include <iostream>



class HELLO {
private:
char **t;

public:
void nazdar(*x);

};

void HELLO::nazdar(*x)
{
char *t=&x;
x="Ahoj světě";
}
using namespace std;
int main() {

return 0;
}


Nějak se v tom motam, ale jestli mi to někdo na tomhle jednoduše vysvětlí, tak to pochopim hned. Jde o to, aby se nemuselo pevně zadávat počet znaků nebo řádků, třeba char *t[20]. Díky ...

Nahlásit jako SPAM
IP: ...–
sn3d0
Věrný člen
18. 4. 2007   #10
-
0
-

Hmm ten isty dotaz len trosku odlisny. Vysvetlenie: Totizto char** nieco nieje este dynamicke pole. Ide o ukazovatel na ukazovatel. Ak chces pouzivat znaky z premennlivou dlzkou v C++, pouzivaj string. Ak potrebujes pole stringov, pouzi vector<string>. Usetris si tym kopec casu, budes chapat co ti ten kod roby a kod bude omnoho prehladnejsi.

Pravdepodobne z C++ len zacinas. Co si teda napisal? Napisal si triedu, ktora ma clensku premennu t, ukazujucu niekde do pamate.To je v poriadku.Zla je vsak jej clenska funkcia nazdar().

prva chyba:



//zle
nazdar(*x);
//dobre
nazdar(char* x);


duha chyba:
&x ti nevrati text, ale len prvy znak a taketo pretypovanie nieje mozne nakolko tento znak chces ulozit do ukazovatela.U tychto retazcov je potrebne
si uvedomit co potrebujes a kde sa to v pamati nachadza.Cize ci ti staci len odkazovat sa na tu hodnotu alebo je lebsie cely obsah nakopirovat do novoalokovaneho miesta v pamati.

Tretia chyba:
Z tvojho kodu nieje jasne co chces aby tvoja funkcia nazdar() robila. Ma pridat novy text do clenskej premennej t? Premenna X je(pravdepodobne) vstupna premenna tvojej funkcie. Poslednym riadkom uplne straca vyznam a jej hodnotu vlastne zmazes, nakolko nastavis ukazovatel na "Ahoj Svet" ktory ukazuje na zasobnik.

Stvrta chyba:
Ak teda spravne chapem, a ty cchces vytvorit objekt s clenskou premennou t, do ktorej funkcia nazdar() bude ukladat text, tak nemusis vo funkcii nazdar() premennu t deklarovat. Respektive, budu to 2 rozne premenne, nebude to ta ista. Ja som zo zaciatku dost casto pouzival this->t aby som vedel co je clenska premenna a co je premenna funkcie. Teraz pouzivam urcitu notaciu mien.

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Mirek Braho0
Stálý člen
18. 4. 2007   #11
-
0
-

No tam šlo jen o to, že prostě dopředu nevím, jak dlouhý pole budu chtít (jak dlouhá bude věta -> každej znak je samostatně v poli).

Tak do pole char *t[20] bych moh napsat jen větu o 20 znacích. A právě jsem někde četl, že se to dá udělat tím char **t (a možná ještě v kombinaci s new a delete) a pak se bude pole dynamicky zvětšovat podle toho, jak dlouhou větu napíšu. Nevím jestli to dobře píšu a jestli víte o co jde, ale někdo už to tak psal tak to určitě možný je.

Citace:

V deklaraci třídy je zadáno pole ukazatelů na řádky následujícím způsobem:
char* t[20]; //pole řádků (ukazatelů)
Zadáváme zde pevný (maximální) počet řádků. Profesionálnější je toto:
char **t //pole řádků



Sice tam mluvějí o poli řádků, ale to je myslím jen detail oproti tomu co jsem psal já. Když tak všechno z čeho se učím je na
http://objekty.vse.cz/Programovani/OopC5

Nahlásit jako SPAM
IP: ...–
meo
~ Anonymní uživatel
2 příspěvky
18. 4. 2007   #12
-
0
-

Tato komponenta je ActiveX a tym padom ak tvoj media player v systeme dokaze prehravat streamovane data, tak to dokaze aj ta komponenta. Taktiez je mozne na to ist skrz DirectX vid priklad streamovaneho prehravania: www.codeproject.com/audio/DirectSoundAudioStream.asp.


Je potom nějakej příkaz jako Form2->MediaPlayer1->FileName="http://www.play.cz/radio/evropa2-64.asx";??
Nebo MediaPlayer1->URL=...??Ve Visualu jde třeba to s tím URL, ale tady si nevím rady...Díkec

Nahlásit jako SPAM
IP: ...–
sn3d0
Věrný člen
18. 4. 2007   #13
-
0
-

To vollf82: POZOR!! nasledujucu citaciu si zle vysvetlujes:

V deklaraci třídy je zadáno pole ukazatelů na řádky následujícím způsobem:
char* t[20]; //pole řádků (ukazatelů)
Zadáváme zde pevný (maximální) počet řádků. Profesionálnější je toto:
char **t //pole řádků

POZOR!! jedna sa o premenlivy pocet riadkov, nie znakov!! inac doporucujem si podrobnejsie prejst 3-ti prispevok od Jura http://www.programujte.com/forum.php?akce=prispevek&id=3354&sekce=dynamicka-alokace-pameti v ktorom pekne napisal ako na dynamicke pole.

Nahlásit jako SPAM
IP: ...–
shutdown -h now
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Příklady na C# — založil OndraT

Priklady — založil Ja

Příklady — založil Marous Michal

C++ priklady — založil noob

Příklady — založil Lulz

Moderátoři diskuze

 

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