Programovanie pre amatérov (časť 3)

Prajem pekný nedeľný večer, je tu tretia časť kurzu programovania pre absolútnych amatérov. Naštartujte svoje Visual Studio priatelia, pokračujeme.
Dúfam, že po druhom dieli už máte v krvi, že do premennej typu int sa nedá priradiť string. Dnes sa v týchto vedomostiach pohneme ešte o kúsok ďalej. Najprv si však ukážeme, aké komentáre sa v jazyku C# používajú. Komentáre program ignoruje, slúžia len na vysvetlenie, ak napríklad svoj kód zdieľate s niekým iným. Sú dva spôsoby, ako pridať komentár:
- znakmi // – takto pridáte komentár, ktorý začína za týmito dvomi lomítkami a končí sa na konci riadku.
- znakmi /* a */ – označuje viacriadkový komentár. Znaky /* označujú začiatok, */ označujú koniec. Tento typ komentáru musíte vždy ukončiť (znakmi */), inak sa program nespustí a vypíše chybovú hlášku.
Príklady:
int i = 17; // toto je komentar
/* aj toto
je komentar*/
Teraz si dáme taký jednoduchý test. Pozrite sa na tento príklad, aká bude hodnota premennej i? Správnu odpoveď nájdete na konci blogu, zatiaľ premýšľajte, ak si nie ste istý.
int i = 1;
// i = 2;
/* koment
i = 3; */
Komentáre nám pomáhajú v čitateľnosti kódu A keď už sa bavíme o zvykoch pri písaní pekného a prehľadného kódu, je tu ešte jedna vec, ktorú by ste mali vedieť. Vlastne dve veci:
- jazyk C# ignoruje whitespace (viac medzier, prázdne riadky, tabulátory), tie sa do kódu pridávajú, aby bol lepšie čitateľný – pozrite sa príklad Hello World!, každý nový blok kódu (označený kučeravými zátvorkami) je odsadený, občas sú pridané aj prázdne riadky
- jazyk C# je case sensitive, to znamená, že mu záleží na veľkostiach písmen – premenné a názvom number a Number sú dve rôzne
Z toho vyplýva, že takýto kus kódu vypľuje error:
int favouriteNumber = 3;
faVouriteNumber = 17;
Dostávame sa k praktickejšej časti dnešnej lekcie. Naučíme sa používať rôzne operátory. Počítač je totiž veľmi rozumný a vie počítať. Aha, toto môžete spraviť:
int apples = 4;
int bananas = 2;
int fruits = apples + bananas;
Analogicky viete ovocie aj odčítať (pomocou –), násobiť (pomocou *) a deliť (pomocou /). Pri delení si ale dávajte pozor na delenie nulou a na zvyšok. Keďže int je celé číslo, tak sa pri delení zaokrúhli nadol. Ak chcete vedieť zvyšok po delení, použite operátor %:
int pieces = 7;
int people = 3;
int perPerson = pieces / people; // celočíselné delenie, výjde 2
int leftover = pieces % people; // zvyšok po delení, výjde 1
Druhý testík, ktorý si dnes dáme, je trošku zákerný. Skúste uhádnuť, aká bude hodnota premennej baz:
int bar = 7;
int foo = 3;
float baz = bar / foo;
Keďže už vieme, že na čísla môžeme uplatňovať aritmetické operácie, teraz si ukážme ako dokážeme číselnú premennú inkrementovať. Existuje viacero spôsobov:
int bar = 2;
– toto je myslím celkom jednoduché
bar = bar + 3;
bar += 7;
– takýto zápis je skrátením zápisu bar = bar + 1;
alebo
bar++;++bar;
– toto je ešte skrátenejšia verzia, akurát v tomto prípade sa zvyšuje iba o 1
Rozdiel medzi ++ pred a za premennou si ukážeme na praktickom príklade:
int bar = 5;
– foo bude v tomto prípade 5, bar bude 6 – priradenie do foo sa vykoná pred operáciou inkrementu
int foo = bar++;
int baz = ++bar;
– baz bude 7, rovnako ako bar – priradenie do baz sa vykoná až po operácii inkrementu
Analogicky môžeme namiesto znamienka + použiť -, veď si to vyskúšajte.
No a ešte si ukážeme čo sa stane, keď + použijeme pri stringoch. Viete? Tretí testík, čo sa vypíše na konzolu?
string bar = "Hello";
string foo = "World!";
Console.WriteLine(bar + foo);
Chcel som dnes ešte prebrať ďalšie veci, no necháme si ich na ďalšiu časť, aj tak máte toto na naučenie celkom dosť. Na záver možno ešte domáca úloha: Napíšte program, ktorý na konzolu vypíše čísla od 1 do 10, každé číslo v novom riadku. A komu bude málo, tak napíše ešte program, ktorý vypíše čísla od 1 po 10 v jednom riadku s medzerou medzi číslami.
A teda ešte posledný testík. Čo sa vypíše na konzolu v tomto prípade?
string bar = "6";
string foo = "9";
Console.WriteLine(bar + foo);
To je na dnes všetko, doskakavenia, priatelia. Ďalšia časť je tu.
P.S. dnes si dáme jeden pekný obrázok – sumo bojovníci v slnečnicovom poli:
Správne odpovede na testíky:
1. Hodnota premennej i je 1. Ďalšie dve priradenia sú zakomentované, preto ich program ignoruje.
2. Hodnota premennej baz je 2. Float síce označuje desatinné číslo, ale v tomto prípade platí, že program najprv vykoná delenie. Program vidí, že delí dve celé čísla, preto aj výsledok delenia bude celé číslo. Až potom ho priradí do premennej baz. Existuje viacero spôsobov, ako tomuto predísť. Dá sa to napríklad pretypovaním (vysvetlím inokedy) alebo aj takto:
float baz = bar / (foo * 1.0f);
– treba si uvedomiť, že program vie, že najprv vykoná operáciu v zátvorkach, kde násobí celé a desatinné číslo – v tomto prípade z toho výjde desatinné číslo.
3. Vypíše sa „HelloWorld!“ – znamienko + na stringoch zastupuje konkatenáciu, čiže spájanie. Je to bez medzier a nemožno zameniť za znamienko -.
4. Vypíše sa „64“ predsa – premenné bar a foo sú typu string, znamienko + ich spojí.