C++ snadno a rychle

Vystavil Firejs

01.04.2010

17
Úvod tohoto nového prakticky zaměřeného seriálu Vás naučí pozdravit, pracovat s proměnnýma a dávat je do podmínek...


V tomto tutoriálu vám nebudu vykládat nějaké dlouhé teoretické přednášky, spíše se zaměřím na použití jednotlivých funkcí v praxi, a proto předpokládám, že máte alespoň představu o tom, co je proměnná, podmínka a cyklus. Přesto je ale možné, že to z textu pochopíte. Snad jen dodám, že C++ je objektově orientovaný programovací jazyk, ale co to vlastně znamená se dozvíte jindy. Takže si zapněte nějaký editor např. DevC++ a můžeme začít. Tak do toho.

Základ souboru

#include <iostream>
using namespace std;

int main(){

system("pause");
return 0;
}


První řádek píšeme prakticky vždy, protože nám umožní pracovat s obrazovkou a klávesnicí (i – input, o – output) a „using namespace std“ nám umožní pracovat s funkcemi pro výpis, čtení a tak podobně.

Int main() nám definuje hlavní funkci programu, tedy tu, která se spustí jako první.
system ("pause") vypíše hlášku: “Pokračujte libovolnou klávesou...,“ což donutí program po skončení počkat.
Return 0, vrátí přes funkci Int main() hodnotu 0, což se dá přeložit jako: “v pořádku/bez chyby“.

Nyní přejdeme ke klasickému pozdravu „Hello wordl!“. Protože jsme includovali IOSTREAM a zároveň určili použití STD, můžeme plně a bez problému využít funkce COUT. A to takto:

cout << "Hello world" << endl;


cout je samotná funkce umožňující výpis textu na obrazovku a mezi jednotlivými jejími položkami píšeme: „<<“.
endl; nám posune kurzor na další řádek.

Kdybychom v hlavičce nezapsali „using namespace std;“ museli bychom funkci cout volat takto:
std::cout << "Hello world" << std::endl;


Nyní zkusíme definovat proměnou, můžeme si vybrat z celé řady klasických datových typů, které určitě znáte např.:
Int – celá čísla
Double – reálná čísla
String – textový řetězec
Char – jeden znak


Ukážeme si použití na dalším příkladu:
#include <iostream>
using namespace std;

int main(){
string text = "Cislo je: ";
int cislo = 10;

cout << text << cislo << endl;
system("pause");
return 0;
}


Pěkné, ale co když chcete, aby si uživatel nastavil textový řetězec a číslo sám? Nemějte strach je to podobně jednoduché jako využití funkce "cout", jen použijete "cin".

cin >> text;
cin >> cislo;


S proměnnými samozřejmě můžeme pracovat - je možné je např. sčítat:

int x = 1;
int y = 4;
int z = x + y;
cout << z;


Výborně, ale co když chcete aby program v případě, že je číslo menší než 10 vypsal zadaný text, a v opačném případě nějaký jiný? Budeme muset využít základní podmínku a to IF (anglicky - když)

if (cislo < 10) {cout << text << endl;} else {cout << "Cislo je 10 nebo vic" << endl;};


V obyčejných závorkách je zadána podmínka, následující složené závorky označují blok příkazu, které se provedou v případě její platnosti, a za „else“ se nachází blok příkazu, které se provedou v opačném případě tj. Když neplatí.

Celý dnešní program pak může vypadat následovně.

#include <iostream>
using namespace std;

int main(){
string text;
int cislo;

cin >> text;
cin >> cislo;

cislo += 2;

if (cislo < 10) {cout << text << endl;}
else {cout << "Cislo je 10 nebo vic" << endl;};

system("pause");
return 0;
}


"cislo +=2;" vykoná to stejné jako "cislo = cislo + 2;" ale je pro zápis lepší.

A příště se podíváme na cykly a složitější větvení ;)

Hodnocení +30Líbí
Přečteno 2811-krát

Komentáře

Přidat nový



Pro přispívání musíte být přihlášen


Zapsal skenerz - 01.04.2011 12:14



Dobré, nakonec jsem stěch první třích lekcí sem vyplodil jednoduchou hru :), opravdu dobré návody fire (palec na horu) c++ je celkem jednoduché. Doufám že budou další návody ;)



Zapsal Firejs - 26.03.2011 14:46



Mno, asi by sis mohl projít všechny části, nebo aspoň tuhle, protože je v ní odpověď na tvůj dotaz... Tedy pokud tu proměnou máš ve třídě jako private tak si udělej funkci nebo metodu.. pokud jí máš přímo v main, tak ji vypiš přes cout.



Zapsal skenerz - 26.03.2011 14:20



Hele, vytvořil jsem si proměnou (int levelhrdini;) Nastavil jsem ji na jedna (levelhrdini = 1;) Pak jsem ji připsal 1 (levelhrdini += 1;) ale jak ted udělám aby se proměna zobrazila ?



Zapsal Firejs - 25.03.2011 20:38



Nikdy jsem neměl potřebu to zkoušet, ale našel jsem ti: "C and C++ do not have built-in standard support for sound. " ovšem pokud napíšeš do google: "C++ sound/beep" atp. najde ti to spousty výsledků.. tady (http://www.daniweb.com/software-development/cpp/threads/15252) jsou třeba i nějaké zdrojáky... když budeš hledat tak najdeš.



Zapsal skenerz - 25.03.2011 19:49



Jde nějak udělat aby se mi celou dobu přehrávala nějaká hudba (klidně i 8bitová) ?



Zapsal Firejs - 11.03.2011 11:48



tak si to číslo načti do proměnné, a pak to připočti k té, kterou chceš zvýšit ;)



Zapsal skenerz - 11.03.2011 08:27



Jak udělám aby číslo (cin >> cislo) nezadalo číslo ale připsalo ? myslim nějak takhle (cin+ >> cislo), ale nefunguje to.



Zapsal Firejs - 18.04.2010 21:41



Myslíš ten poslední? to že se ti otevře jako "dosové" okno je správně, a to že ti vypíše tu hlášku taky..


...mělo by to ale počkat dokud nezadáš text - enter, a číslo - enter.. pak vypsat ten text co jsi zadal, nebo ten co je ve větvi else.. podle toho jak se vyhodnotí podmínka a nakonec by to mělo hodit - pokračujte libovolnou klávesou.



Zapsal Raiper34 - 18.04.2010 21:11



Otazočka (moc sa nevyznám v C)
keď okopirujem kod cely tak keď spustim projekt tak mi otvori program (ako dosove hry) a napíše pokračujte stlačením lubovolnej klávesy. Čo to?



Zapsal Firejs - 10.04.2010 14:13



Pravda, ve škole děláme na Macu, a tam nedáváme nic takového... páč to spouští v terminálu.



Zapsal keksa - 10.04.2010 11:21



Pěkný článek, akorát bych zmínil, že system("pause"); funguje pouze pod windows. Proto je imho lepší používat místo toho cin.get();



Zapsal Raiper34 - 01.04.2010 17:28



Mám rád keď je niečo na serialy! Viac sa naučím ako keby že to dáš do jednoho celku tak z toho mám guláš. :)



Zapsal velda898 - 01.04.2010 16:37



100% pokračuj. podle mě je to psané skvěle. stručně ale je tam prostě všechno a dá se to pochopit.



Zapsal Gamp - 01.04.2010 16:26



Článek pěkný. Je to určitě psané pro začátečníky, takže je myslím každý text navíc zbytečný. Jen tak dál, těším se ;-)



Zapsal Firejs - 01.04.2010 09:13



Jn, ale je zbytečné aby se přidávaly další funkce když nejsou třeba, až budou tak se includnou ;)


Bildo: Nějakou hru plánuju, časem by mělo přijít aj něco v Openglu.. Ale musí se to brát pěkně od začátku ;)



Zapsal kadet - 01.04.2010 08:35



Článek se mi líbí v tom, že tam není žádná omáčka a že popisuje především fakta. Jen bych chtěl dodat, že pro správnou funkci kódů se string je nutno dodat #include <string>, protože stringy jsou isntance třídy string a tudíž je nutno tuto třídu zahrnout do souboru.



Zapsal bildo - 01.04.2010 07:47



Zaujimave. O Ccko jsem se nikdy nezajimal, ale jestli serial dojde az do nejake podoby, kde se v nem udela najaka jednoducha hricka s par spritama, tak to by bylo super. :)




Poslední komentáře

Sousední akvárko

Nejčtenější

Nejlepší

Web Kreveta.net je unikátní sbírkou článků mapují proces tvorby her. Vedle návodů naleznete v krevetím akvárku i rozhovory s vývojáři, recenze, soutěže. Portál Kreveta.net připravují (řazeno abecedně): Akhera, Banane4joy, Bullet_catcher, Burák, Fire.js, Ikkju, Izual, Likandro, Makan, PepiCzech, StorN, Tior.
Akvárko vymaloval Tior, o chod filtrace se stará StorN (design a kód).
Copyright © 2010 Kreveta.net. Všechna práva vyhrazena.