Denník N

Programovanie pre amatérov (časť 3)

Zdroj: Pixabay
Zdroj: Pixabay

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 /**/ – 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 numberNumber 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;
bar = bar + 3;
– toto je myslím celkom jednoduché
bar += 7; – takýto zápis je skrátením zápisu bar = bar + 1;
bar++;
alebo ++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;
int foo = bar++;
foo bude v tomto prípade 5, bar bude 6 – priradenie do foo sa vykoná pred operáciou inkrementu
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.

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é barfoo sú typu string, znamienko + ich spojí.

Teraz najčítanejšie

Tomáš Paulďuro

Som nahnevaný občan Slovenskej republiky, pretože aj keď som sa zúčastnil protestov Za slušné Slovensko, do dnešného dňa mi neprišli od Sorosa žiadne peniaze. Okrem iného som spoluzakladateľ občianskeho združenia Vivat Vero, ktoré sa snaží spraviť zo Slovenska lepšie miesto. Naším prvým projektom je Antivýtrus, rozšírenie do webového prehliadača, ktoré užívateľa chráni pred konšpiračným a zavádzajúcim obsahom.