načítání...
nákupní košík
Košík

je prázdný
a
b

E-kniha: C# - Pavel Bory

C#
-11%
sleva

Elektronická kniha: C#
Autor:

Chcete začít s programováním v C#? Nenašli jste zatím publikaci, která by vše vysvětlila jednoduše od úplných základů? C# bez předchozích znalostí nevyžaduje žádné ... (celý popis)
Titul je skladem - ke stažení ihned
Médium: e-kniha
Vaše cena s DPH:  149 Kč 133
+
-
4,4
bo za nákup

ukázka z knihy ukázka

Titul je dostupný ve formě:
elektronická forma tištěná forma

hodnoceni - 62.1%hodnoceni - 62.1%hodnoceni - 62.1%hodnoceni - 62.1%hodnoceni - 62.1% 70%   celkové hodnocení
1 hodnocení + 0 recenzí

Specifikace
Nakladatelství: » Computer press
Dostupné formáty
ke stažení:
PDF
Upozornění: většina e-knih je zabezpečena proti tisku
Médium: e-book
Počet stran: 255
Rozměr: 23 cm
Úprava: tran : ilustrace
Vydání: 1. vydání
Jazyk: česky
ADOBE DRM: bez
ISBN: 978-80-251-4686-6
Ukázka: » zobrazit ukázku
Popis / resumé

Příručka seznamuje se základy programovacího jazyka C#, nevyžaduje žádné dřívější zkušenosti s programováním.

Popis nakladatele

Chcete začít s programováním v C#? Nenašli jste zatím publikaci, která by vše vysvětlila jednoduše od úplných základů? C# bez předchozích znalostí nevyžaduje žádné dřívější zkušenosti s programováním.

Jednoduchou formou na příkladech se postupně seznámíte se základy programovacího jazyka C#, na nichž budete následně stavět u pokročilejších témat a vlastních projektů. Naučíte se pracovat s datovými typy, proměnnými, řídit tok programu a pracovat se soubory, nahlédnete i do základů objektově orientovaného programování. Na konci každé kapitoly si můžete nově nabyté znalosti zopakovat pomocí otázek a cvičení.

Publikace vás mimo jiné seznámí s tématy:
- Základy práce v Microsoft Visual Studiu
- Proměnné a datové typy
- Operátory a výrazy
- Větvení programu, cykly a pole
- Metody, třídy a objekty
- Dědičnost a zpracování výjimek
- Práce se soubory

Čtenáři si mohou na adrese http://knihy.cpress.cz/K2202 pod odkazem Soubory ke stažení stáhnout soubory se zdrojovými kódy použitými v knize.
O autorovi:

Pavel Bory je seniorním vývojářem a řadu let pracuje zejména na projektech společnosti Unicorn, a.s., především v oblasti financí. Kromě samotného vývoje softwaru se věnuje školení a výuce programování převážně na platformě .NET na vysoké škole Unicorn College, s.r.o.

Předmětná hesla
Zařazeno v kategoriích
Pavel Bory - další tituly autora:
Recenze a komentáře k titulu
Zatím žádné recenze.


Ukázka / obsah
Přepis ukázky

C# bez předchozích

znalostí

Vyšlo také v tištěné verzi

Objednat můžete na

www.cpress.cz

www.albatrosmedia.cz

Pavel Bory

C# bez předchozích znalostí – e-kniha

Copyright © Albatros Media a. s., 2016

Všechna práva vyhrazena.

Žádná část této publikace nesmí být rozšiřována

bez písemného souhlasu majitelů práv.


Obsah

O autorovi 7

Poděkování 8

Úvod 9

Komu je tato kniha určena 9

Zpětná vazba od čtenářů 9

Zdrojové kódy ke knize 10

Errata 10

KAPITOLA 1

První program 11

Instalace potřebného softwaru 11

Náš první program v jazyce C# 11

Co je to vlastně program a programovací jazyk? 16

Základy práce s Microsoft Visual Studiem 17

Kontrolní otázky 22

Cvičení 23

KAPITOLA 2

Datové typy a proměnné 25

Otevření existujícího projektu 25

Základní struktura programu 29

Komentáře zdrojového kódu 30

Proměnné 30

Datové typy 31

Konstanty 32

Základní operace s čísly 33

Výpis na příkazový řádek 34

Načtení vstupu od uživatele 39

Konverze řetězce na číslo 39

Konverze čísla na řetězec 41

Intelisense ve Visual Studiu 42

Kontrolní otázky 44

Řešená cvičení 45

Cvičení 46

KAPITOLA 3

Řízení toku programu 47

Logický datový typ a logický výraz 47

Logické operátory 49

Příkaz if 51

Příkaz else a vnořování podmínek 53

Příkaz else if 55

Příkaz switch 57

Kontrolní otázky 59

Řešená cvičení 59

Cvičení 61

KAPITOLA 4

Cykly a pole 63

Cyklus while 63

Cyklus do-while 66

Cyklus for 67

Pole 68

Kontrolní otázky 72

Řešená cvičení 73

Cvičení 74

KAPITOLA 5

Pokročilejší práce s cykly a ladění programů 75

Cyklus foreach 75

Vnořování cyklů 77

Příkaz break v kontextu cyklů 79

Ladění programů – debugger 81

Kontrolní otázky 85

Řešená cvičení 86

Cvičení 89

KAPITOLA 6

Metody 91

Metody bez parametrů 91

Platnost proměnných v rámci metod 94

Metody s parametry 96

Často používané metody pro práci s čísly a řetězci 98

Datum a čas 102

Kontrolní otázky 105

Řešená cvičení 106

Cvičení 110

KAPITOLA 7

Základy objektově orientovaného programování 111

Třídy a objekty 112

Public a private 117

Gettery a settery 120

Rozdělení programu do více souborů a jmenné prostory 122

Hodnotové a referenční typy 125

Klíčové slovo null 125

Datový typ List 126

Kontrolní otázky 129

Řešená cvičení 129

Cvičení 139

KAPITOLA 8

Základy objektově orientovaného programování II 141

Dědičnost 141

Modifikátor přístupu protected 145

Výjimky 147

Statické proměnné a vlastnosti 153

Statické metody 155


Datový typ Dictionary 156

Kontrolní otázky 158

Řešená cvičení 158

Cvičení 170

KAPITOLA 9

Soubory 171

Čtení ze souboru 172

Zápis do souboru 178

Kontrolní otázky 183

Řešená cvičení 183

Cvičení 188

KAPITOLA 10

Komplexní příklady 189

Aplikace – Správa školení 189

Cvičení 226

Aplikace – Zpracování výkazů 227

Cvičení 243

Závěr 244

Odpovědi na otázky k jednotlivým kapitolám 245

Kapitola 1 - První program 245

Kapitola 2 – Datové typy a proměnné 245

Kapitola 3 – Řízení toku programu 246

Kapitola 4 – Cykly a pole 247

Kapitola 5 – Pokročilejší práce s cykly a ladění programů 247

Kapitola 6 – Metody 248

Kapitola 7 – Základy objektově orientovaného programování 249

Kapitola 8 – Základy objektově orientovaného programování II 249

Kapitola 9 – Soubory 250

Rejstřík 251


7

O autorovi

Pavel Bory je seniorním vývojářem a řadu let pracuje hlavně na projektech společnostiUni

corn, a.s., především v oblasti financí. Kromě samotného vývoje softwaru se věnuje školení

a výuce programování, zejména nad platformou .NET na vysoké škole Unicorn College, s.r.o.

Tato kniha je jeho první monografií.


8

Poděkování

Rád bych poděkoval všem blízkým, bez jejichž podpory by tato kniha nevznikla. Dále bych

rád poděkoval všem spolupracovníkům, od kterých jsem měl možnost se učit, a v neposlední

řadě chci poděkovat svým učitelům, z nichž jsou mi někteří dodnes vzorem. Musím poděkovat

i redaktorovi nakladatelství Computer Press panu Martinovi Herodkovi za jeho profesionální

přístup a podporu během psaní této knihy.


9

Úvod

S pomocí této knihy se můžete sami naučit základům programovacího jazyka C# a objektově

orientovaného programování. Kniha je koncipována tak, že je probíraná látka hojněilustro

vána na příkladech, ke kterým jsou uvedeny jejich zdrojové kódy a výstupy programů.Zdro

jové kódy jsou pro lepší srozumitelnost doprovázeny komentáři a  u  složitějších příkladů je

zdrojový kód tvořen postupně a průběžně je jeho tvorba rozebírána. Na závěr každé kapitoly

je uvedena sada kontrolních otázek pro ověření získaných znalostí a zároveň jsou zde uvedeny

řešené příklady. Kromě kontrolních otázek a řešených příkladů jsou na závěr každé kapitoly

uvedeny příklady k samostatnému procvičení.

Komu je tato kniha určena

Tato kniha nepředpokládá žádné znalosti programování. Je tedy určena každému, kdo má

zájem se naučit základy programování v moderním objektově orientovaném jazyce C#. Kniha

může posloužit jak čtenáři, který chce získat pouze základní přehled o  programování, tak

i čtenáři, který se chce programování věnovat dlouhodobě a hledá vhodný výchozí bod pro

začátek studia.

Zpětná vazba od čtenářů

Nakladatelství a vydavatelství Computer Press, které pro vás tuto knihu připravilo, stojío zpět

nou vazbu a bude na vaše podněty a dotazy reagovat. Můžete se obrátit na následující adresy:

Computer Press

Albatros Media a.s., pobočka Brno

IBC

Příkop 4

602 00 Brno

nebo

sefredaktor.pc@albatrosmedia.cz

Computer Press neposkytuje rady ani jakýkoli servis pro aplikace třetích stran. Pokud

budete mít dotaz k programu, obraťte se prosím na jeho tvůrce.


10

Zdrojové kódy ke knize

Zdrojové kódy ke knize

Z adresy http://knihy.cpress.cz/K2202 si po klepnutí na odkaz Soubory ke stažení můžete přímo

stáhnout archiv s ukázkovými kódy.

Errata

Přestože jsme udělali maximum pro to, abychom zajistili přesnost a správnost obsahu, chybám

se úplně vyhnout nelze. Pokud v  některé z  našich knih nějakou najdete, ať už v  textu nebo

v kódu, budeme rádi, pokud nám ji oznámíte.

Veškerá existující errata zobrazíte na adrese http://knihy.cpress.cz/K2202 po klepnutí na odkaz

Soubory ke stažení. (Nejsou-li žádná errata zatím k dispozici, není odkaz Soubory ke stažení

dostupný.)


11

KAPITOLA 1

První program

V této kapitole se dozvíte, jaký software budeme v rámci studia programování pomocí této

knihy používat, jak jej získat, nainstalovat a jak s ním pracovat. Dozvíte se, co je to program,

programovací jazyk a vytvoříte si svůj první program v jazyce C#.

Instalace potřebného softwaru

Než začnete se studiem programování pomocí této knihy, je nezbytné si nainstalovat vývojové

prostředí Microsoft Visual Studio, pomocí kterého budeme naše programy vytvářet. V této knize

budeme používat verzi Microsoft Visual Studio 2015 Community Edition, která je k dispozici

zdarma ke stažení zde: https://www.visualstudio.com/products/visual-studio-community-vs.

Vývojové prostředí nainstalujte podle pokynů uvedených na webových stránkácha v instalačním průvodci vývojového prostředí Microsoft Visual Studio.

Náš první program v jazyce C#

Pokud máte nainstalované vývojové prostředí Microsoft Visual Studio, se můžete pustit

do  vytvoření svého prvního programu v  jazyce C#. Spusťte vývojové prostředí Microsoft

Visual Studio. Zobrazí se vám úvodní obrazovka, na které vyberte z hlavního menu možnost

File  New  Project.

V této kapitole:

„ Instalace potřebného

softwaru

„ Náš první program v jazyce

C#

„ Co je to vlastně program

a programovací jazyk?

„ Základy práce s Microsoft

Visual Studiem

„ Kontrolní otázky

„ Cvičení

12

Kapitola 1 První program

Obrázek 1.1 Vytvoření nového projektu

Zobrazí se poměrně pestrá nabídka, protože Microsoft Visual Studio umožňuje vytvářet

celou řadu různých typů programů. Vyberte projekt typu Visual C#  Windows  Classic

Desktop  Console Application. Do pole Name vyplňte název projektu PrvniProgram. V poli

Location vyberte umístění, kde na disku bude uložen vytvořený projekt.

Obrázek 1.2 Volba typu projektu, jeho pojmenování a výběr umístění

Náš první program v jazyce C#

13

Jakmile budete mít vyplněno, stiskněte tlačítko OK a Microsoft Visual Studio vytvoří nový projekt.

Obrázek 1.3 Výchozí stav po vytvoření nového projektu

Možná jste očekávali, že bude projekt zcela prázdný, a  on přitom obsahuje pro nás zatím

neznámý zdrojový kód a několik souborů. To je dáno tím, že na základě vybraného typuprojektu dojde k zjednodušeně řečeno vygenerování určitého výchozího stavu, který je pro daný

typ programu typický. Zatím do onoho výchozího stavu projektu nezasahujme, ale nebojte se,

postupně se při čtení této knihy s významem jednotlivých příkazů seznámíte.

Než se pustíme do  vytvoření prvního programu, pojďme si vysvětlit dva pojmy: Project

a Solution.

Project obsahuje zdrojové kódy programu, které jsou umístěny v jednom či více souborech.

Solution může obsahovat jeden či více projektů.

My jsme tedy vytvořili jednu Solution, která obsahuje právě jeden Project, ve kterém napíšete

svůj první program v jazyce C#. V rámci ukázkových příkladů k této knize se můžete setkat

s tím, že pro jednu kapitolu existuje jedna Solution, která obsahuje více projektů, přičemž

jednotlivé projekty obsahují jednotlivé ukázkové programy. Pojďte vytvořit svůj první program

v jazyce C#! Doplňte následující dva řádky do souboru Program.cs,

Console.WriteLine(„Muj prvni program v C#“);

Console.ReadKey();

tak aby přesně odpovídal následujícímu zápisu:


14

Kapitola 1 První program

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace PrvniProgram

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine(„Muj prvni program v C#“);

Console.ReadKey();

}

}

} Nyní program spusťte pomocí možnosti Start Debugging, která se nachází v menu Debug. Obrázek 1.4 Spuštění programu Zobrazí se vám příkazový řádek, ve  kterém program vypíše zadaný text, který jste vložili do souboru Program.cs.

Náš první program v jazyce C#

15

Obrázek 1.5 Příkazový řádek s výstupem vašeho prvního programu

Je možné, že se vám bude velikost písmen v příkazovém řádku zdát příliš malá. Proto si nyní

ukažme jak ji zvětšit. Klikněte pravým tlačítkem do vrchní části rámu příkazového řádku.

Obrázek 1.6 Spuštění nastavení příkazového řádku

16

Kapitola 1 První program

Z  kontextové nabídky vyberte možnost Properties. Zobrazí se vám následující obrazovka

s nastavením příkazového řádku.

Obrázek 1.7 Nastavení fontu příkazového řádku

Zde můžete změnit velikost písma v  příkazovém řádku. Pokud chcete, prozkoumejte i  jiné

možnosti nastavení příkazového řádku a přizpůsobte si jeho zobrazení tak, aby se vám s ním

dobře pracovalo.

poznámka: Program můžeme spouštět jak pomocí Debug  Start Debugging, tak i pomocí

stisknutí klávesy F5.

Co je to vlastně program a programovací

jazyk?

Abychom si mohli vysvětlit, co je to vlastně program, je potřeba si nejprve definovat pojem

algoritmus. Pro tento pojem neexistuje jednoznačná, dokonalá a všemi uznávaná definice. My

si algoritmus definujme jako určitý návod, postup jak řešit určitý problém. Tento postup musí

být zejména jednoznačný a nesmí umožňovat více výkladů. Příkladem neprogramátorského

algoritmu může být recept v kuchařce. Ten přesně definuje postup přípravy pokrmu a měl by

být jednoznačný a neumožňovat více způsobů výkladu.

Základy práce s Microsoft Visual Studiem

17

Když jsme si přiblížili pojem algoritmus, můžeme si počítačový program popsat jako zápis

algoritmu ve zvoleném jazyce, který je srozumitelný počítači. Tyto jazyky se nazývajíprogra

movací jazyky a  slouží právě k  dorozumění mezi člověkem (programátorem) a  počítačem.

A vy se pro dorozumění s počítačem naučíte právě programovací jazyk C#.

Ve spojitosti s programovacím jazykem C# se často setkáte s pojmem .NET Framework. .NET

Framework je softwarová platforma poskytující širokou škálu prostředků pro programy. Její

popis by zcela jistě vydal na  celou řadu knih a  není cílem této knihy ji detailně popisovat.

Prostředky z této platformy budeme při programování v jazyce C# používat, a dokonce jste

je již použili, pokud jste si vytvořili předchozí program. Použili jsme její prostředky např. pro

výpis na konzoli. Kromě programovacího jazyka C# se tedy seznámíte i s řadou základních

prostředků platformy .NET.

Řekli jsme si, že programovací jazyk je jazyk srozumitelný počítači. K tomuto je potřeba ještě

vysvětlit, že než program spustíte, je potřeba spustit tzv. Build. Ten zajistí ověření, že program

neobsahuje formální chyby, a  vytvoří spustitelný soubor. Možná si teď říkáte, že když jsme

spouštěli náš první program, Build jsme neprováděli. Tím, že jsme zvolili možnost StartDebu

gging, se provedly v podstatě dva kroky zároveň, a to Build a následné spuštění programu.

Ve skutečnosti je tato problematika podstatně komplikovanější, ale cílem této knihy nenízabí

hat do přílišných detailů. Naším cílem je, abyste se naučili základy programování a byli schopni

na těchto zejména praktických základech stavět.

Základy práce s Microsoft Visual Studiem

V této kapitole se seznámíte se základy ovládání Microsoft Visual Studia, abyste mohlipoho

dlně pracovat s touto knihou, zkoušet si ukázkové programy, a zejména tvořit programy vlastní.

Většina prvků Microsoft Visual Studia, které budeme používat, je reprezentována okny, která

lze zavírat, přesouvat a minimalizovat. Zkrátka s nimi lze pracovat, jako jste zvyklí pracovat

s okny v prostředí Microsoft Windows.

tip: Každý ovládací prvek (okno), který zde budeme popisovat, lze otevřít pomocí menu View.

Na tuto kapitolu budeme v průběhu studia v dalších kapitolách volně navazovat a znalosti práce

s Visual Studiem postupně dále rozšiřovat. První, co si ukážeme, je postup, jak se orientovat

v Solution, projektech a souborech těchto projektů. K tomuto slouží tzv. Solution Explorer.

Kapitola 1 První program

Obrázek 1.8 Solution Explorer

Toto okno vám ukáže, které projekty se v Solution nachází, a můžete zde otevírat jednotlivé

soubory obsahující zdrojové kódy a ty editovat. Zkuste si v Solution Explorer otevřít soubor

Program.cs, do kterého jsme napsali náš první program.

V předchozí kapitole jsme hovořili o tzv. Build, který vytvoří spustitelný soubor programu.

Máme v  základu dvě možnosti jak Build spustit. První možnost je použít Build Solution z menu Build. Víme, že Solution může obsahovat více projektů. Z každého projektu obsaženého v Solution

se vytvoří jeden spustitelný soubor s příponou .exe a několik dalších souborů, které nejsou

nutně zapotřebí pro samotné spuštění programu, a nebudeme se jimi proto v této knizezabývat. Pokud máte vytvořenu Solution obsahující jeden projekt z kapitoly Náš první program

v jazyce C# v umístění C: empPrvniProgram, naleznete spustitelný .exe soubor programu

zde: C: empPrvniPrograminDebugPrvniProgram.exe. Zkuste si tento soubor najít

a program spustit. Měla by se vám zobrazit konzole, na kterou se vypíše text stejně, jako když

jsme program spouštěli pomocí Debug  Start Debugging přímo z Microsoft Visual Studia.

Další možností je provést Build nad konkrétním projektem. Můžeme jej spustit buď z menu

Build pomocí příkazu Build PrvniProgram (nebo jiný název projektu), nebo z kontextového menu nad projektem v Solution Explorer. Klikněte pravým tlačítkem na název projektu

v Solution Explorer a vyberte možnost Build.

Základy práce s Microsoft Visual Studiem

19

Obrázek 1.10 Build Project

Obrázek 1.9 Build Solution

Kapitola 1 První program

Příkazem Build jsme vždy pouze vytvořili spustitelný soubor programu.

Při studiu a  samostatném vytváření programů budete nejčastěji potřebovat programy rovnou spouštět z vývojového prostředí. Za tímto účelem můžete použít volbu Debug  Start

Debugging, stejně jako když jsme spouštěli náš první program.

Někdy se může stát, že v programu uděláte chybu, která zamezí jeho spuštění. Např. sepokusíte použít neexistující příkaz, zapomenete někde napsat závorku apod. V tomto případě se

spustitelný soubor programu nevytvoří, program se nespustí a Microsoft Visual Studio bude

hlásit chybu. Otevřeme si další okno v nabídky View  Output, ve kterém budeme zpravidla

sledovat, jak dopadl příkaz Build.

Obrázek 1.11 Ukázka výstupu po spuštění příkazu Build Project

V okně Output se po spuštění příkazu Build dozvíme, pro kolik projektů dopadl Build úspěšně

(succeeded), pro kolik neúspěšně (failed) a pro kolik se nespustil, protože již byl pro něspuštěn a nebyla v nich provedena žádná úprava (up-to-date). Zkusme se záměrně dopustit chyby

v  programu. Odstraňte např. středník za  příkazem Console.ReadKey(). Záměrně chybně

zapsaný program by mohl vypadat takto.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

Základy práce s Microsoft Visual Studiem

21

namespace PrvniProgram

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine(„Muj prvni program v C#“);

Console.ReadKey()

}

}

} Spusťte příkaz Build pro projekt a podívejte se do okna Output, ve kterém se dozvíme, že byl pro projekt neúspěšný. Obrázek 1.12 Ukázka výstupu po spuštění příkazu Build Project, přičemž zdrojový kód obsahuje chybu Pokud se v programu vyskytuje chyba bránící jeho spuštění, je pro nás podstatně zajímavější okno Error List, které je opět možné spustit z nabídky View. V tomto okně se dozvíte o tom,

kde se v programu vyskytují chyby.


22

Kapitola 1 První program

Obrázek 1.13 Error List

Je zde uveden tabulkový výpis, kde každý řádek popisuje jednu chybu. Pro každou chybu vás

bude v  tomto výpisu především zajímat její popis, soubor, ve  kterém se vyskytuje, a  řádek,

na kterém se vyskytuje. Dvojklikem na řádek s chybou vás Visual Studio nasměruje na umístění

příslušné chyby. Je zapotřebí říci, že v některých případech nemusí být na první pohled zřejmé,

v čem chyba spočívá. Nicméně postupně v tomto ohledu získáte zkušenosti a odhalení příčin

chyb pro vás bude jednodušší. V rámci ukázek programů z této knihy máte vždy možnost si

otevřít přiložené ukázkové projekty, porovnat je s vlastním řešením, nalézt odlišnostia odvodit, v čem chyba spočívá. Při vašem studiu může být rovněž přínosné nalézt řešení obdobného

problému, který budete řešit, a inspirovat se z něj nebo poznat, v čem jste se dopustili chyby.

Kontrolní otázky

1. K čemu slouží vývojové prostředí Microsoft Visual Studio?

2. Co je to Project a Solution a jaký je mezi nimi vztah?

3. Co je to program a programovací jazyk?

4. Jakým příkazem vytvoříme spustitelný soubor z programu, aniž bychom jej rovnouspustili? Kde tento soubor naleznete?

5. Jakým příkazem spustíme program přímo z Microsoft Visual Studia?

Cvičení

23

6. Pokud se program nepodaří kvůli chybám spustit, kde nalezneme informace o výskytu

chyb?

Cvičení

1. Vyzkoušejte si založení nové Solution a Project. Jakmile budete mít projekt vytvořen,

zkuste si doplnit kód v souboru Program.cs, aby pozdravil uživatele slovy „Ahoj clovece“

obdobně, jako jste učinili ve vašem prvním programu v jazyce C#.

2. Zkuste si záměrně zanést do  programu chybu, např. tím že odstraníte středník nebo

závorky apod. Následně zkuste program spustit a  pomocí Error List nalézt informace

o chybě a jejím umístění.

KAPITOLA 2

Datové typy

a proměnné

V této kapitole si rozšíříte své znalosti práce s vývojovým prostředím Microsoft Visual Studio.

Naučíte se, jak otevřít ukázkové příklady, které doprovázejí tuto knihu. Poté se naučíte, jak si

v programu uchovávat data, se kterými program může pracovat. Nemalé množství programů

potřebuje pro svou činnost komunikovat s jejich uživatelem, proto se dozvíte, jak může program

uživateli zobrazovat textové zprávy v příkazovém řádku, a zároveň se naučíte, jak do programu

předat data, která uživatel do příkazového řádku zapíše.

Otevření existujícího projektu

Nyní i v následujících kapitolách budeme při výkladu vycházet z ukázkových projektů. Proto

se naučíte, jak nějaký již existující projekt otevřít. Spusťte Visual Studio. Zobrazí se vám úvodní

obrazovka, na které vyberte z hlavního menu možnost File  Open  Project/Solution.

V této kapitole:

„ Otevření existujícího

projektu

„ Základní struktura

programu

„ Komentáře zdrojového

kódu

„ Proměnné

„ Datové typy

„ Konstanty

„ Základní operace s čísly

„ Výpis na příkazový řádek

„ Načtení vstupu od uživatele

„ Konverze řetězce na číslo

„ Konverze čísla na řetězec

„ Intelisense ve Visual Studiu

„ Kontrolní otázky

„ Řešená cvičení

„ Cvičení

26

Kapitola 2 Datové typy a proměnné

Obrázek 2.1 Otevření existujícího Project/Solution – krok 1

Zobrazí se vám standardní okno pro výběr souboru. Pomocí něj najděte složku, ve  které

máte zdrojové kódy k této knize, a otevřete složku Kapitola2. V této složce vyberte soubor

Kapitola2.sln a stiskněte tlačítko Open.

Obrázek 2.2 Otevření existujícího Project/Solution – krok 2

Otevření existujícího projektu

27

poznámka: Pro připomenutí si zopakujme, že Solution v sobě může obsahovat více projektů,

přičemž každý projekt obsahuje program, který může být umístěn v jednom či více souborech. Nyní byste měli mít otevřenou Solution pro tuto kapitolu. My zatím pracujeme s  tím, že program vytváříme v rámci souboru Program.cs. Všimněte si, že Solution opravduobsahuje více projektů, přičemž každý z nich představuje ukázku jedné či více oblastí probíraných v této kapitole. Musíte se naučit, jak ve vývojovém prostředí nastavíte, který projekt (program) se má spustit. Klikněte pravým tlačítkem na projekt s názvem 3.VypisNaKonzoli a z kontextového menu vyberte možnost Set as StartUp Project. Zkontrolujte, že se nyní název projektu oproti jiným projektům zobrazuje tučným písmem. Obrázek 2.3 Nastavení projektu (programu), který se má spustit při provedení příkazu Start Debugging Nyní máte projekt nastaven jako výchozí projekt pro spuštění. Zkuste program v tomtoprojektu spustit stejně, jako jste spouštěli svůj první program v jazyce C#. To znamená: klikněte na možnost Start Debugging, která se nachází v menu Debug.

28

Kapitola 2 Datové typy a proměnné

Obrázek 2.4 Spuštění nastaveného projektu

Měl by se vám zobrazit příkazový řádek, na který program vypíše text jako na následujícím

obrázku.

Obrázek 2.5 Ukázkový výstup spuštěného programu

Základní struktura programu

29

Nyní umíte pracovat se vzorovými programy, které budete využívat při čtení této knihy.Většina kapitol v sobě zahrnuje ukázkové programy a je vhodné, abyste si je při studiuprogramování prostudovali. V jednotlivých kapitolách jsou zpravidla uvedeny pouze klíčové výseky ze

zdrojových kódů, a je proto žádoucí, abyste mimo samotnou knihu viděli kompletní zdrojové

kódy programů a zkoušeli si je upravovat. Poslouží vám jako inspirace pro řešení obdobných

problémů.

Základní struktura programu

Ve chvíli, kdy jsme vytvářeli náš první program, nebyl po založení projektu soubor Program.

cs prázdný. Obsahoval již předpřipravený zdrojový kód. Nebudeme si nyní vysvětlovat, co

jednotlivé příkazy znamenají, protože vysvětlení by v tuto chvíli bylo značně komplikované

a nemělo by pro vás zásadní přínos. Seznámíte se s nimi postupně v průběhu studia této knihy.

Upozornění: Výchozí kód v  souboru Program.cs neupravujte s  jedinou výjimkou: Na  začátku

programu se nachází několik příkazů začínajících slovem using. Ty můžete smazat až na příkaz

using System;. Pokud ostatní příkazy using nesmažete, pak se také nic neděje. Zatím pro nás

nemají žádný význam. Zdrojový kód programů, které budete tvořit, pište mezi složené závorky

za Main(string[] args), jak je naznačeno v následující ukázce.

using System;

namespace VypisNaKonzoli

{

class Program

{

static void Main(string[] args)

{

// Zde pište program

}

}

} Poslední velmi důležitou věcí je, že téměř všechny řádky programu je zapotřebí ukončovat středníkem. Výjimku tvoří komentáře, ty středníkem končit nemusí. Dále výjimku tvoří různé konstrukce jazyka C#, se kterými se seznámíte později. Ty zpravidla obsahují nějaký příkaz, za kterým následuje blok dalších příkazů uzavřený mezi složené závorky.V jednotlivých ukázkách si všímejte i toho, jak jsou jednotlivé příkazy odsazovány a že programy působí přehledným dojmem.

Kapitola 2 Datové typy a proměnné

Komentáře zdrojového kódu

Pojďme si na úvod říci, že programy mohou obsahovat kromě příkazů, které má programvykonat, i tzv. komentáře. Smyslem komentářů je usnadnit programátorovi pochopení zdrojového

kódu. Pro funkčnost programu nemají naprosto žádný význam.

Do komentářů je vhodné psát stručné a výstižné informace k jednotlivým částem kódu.Jednořádkové komentáře se zapíší tak, že na začátek řádku napíšeme dvě lomítka //, za která

můžeme napsat naprosto libovolný text.

// Toto je jednořádkový komentář Druhým typem jsou tzv. víceřádkové komentáře. Ty začínají symbolem /* a končí symbolem */. Text napsaný mezi počáteční a koncový symbol je považován za komentář a pro funkčnost

programu nemá žádný význam. Program jej zkrátka ignoruje.

/*

* To je víceřádkový komentář

* To je víceřádkový komentář

* To je víceřádkový komentář

*/ V ukázkových programech dodaných k této knize se s komentáři setkáte poměrně často a měly by vám pomoci pochopit význam jednotlivých částí programu. Komentáře můžeme použít i tak, že pomocí nich označíme nějaký řádek zdrojového kódu, když nechceme, aby se vykonal, ale nechceme jej smazat. Takovýmto řádkům se mezi programátory často říká„zakomentované řádky“. Až budete psát vlastní programy, rozhodně je používejte, abyste si usnadniliorientaci v programu (např. si pomocí nich dělali poznámky k novým příkazům, programovým konstrukcím apod.). Proměnné S  pojmem proměnná se budete při programování velmi často setkávat a  jeho pochopení je velmi důležité. Tento pojem je poměrně obtížně definovatelný a my si jeho vysvětlení pro účel této knihy značně zjednodušíme. Jedno z možných míst, kde si mohou počítačové programy uchovávat data, je počítačová paměť. Tu si můžete představit jako velkou kartotéku, která se skládá z pojmenovaných šuplíků.V každém šuplíku může být uložena nějaká hodnota. Proměnnou si představte jako jeden takovýto pojmenovaný šuplík. Proměnné tedy mají vždy svůj název a mohou obsahovat nějakou hodnotu. Při programování v jazyce C# musíte pro každou proměnnou kromě jejího názvu zapsat, jaký typ hodnoty bude obsahovat. Musíte tedy říct, zdali proměnná bude obsahovat celé číslo, desetinné číslo, text nebo nějaký jiný typ, o kterých se dozvíte více později.

Datové typy

31

Tímto se dostáváme k  pojmu datový typ, který velmi úzce souvisí s  proměnnými. Budeme

si tedy pamatovat, že proměnná je vždy nějakého datového typu a má nějaké jméno. Pokud

bychom chtěli v  programu evidovat počet studentů, pravděpodobně bychom vytvořili proměnnou, která bude moci obsahovat celé číslo (určíme datový typ), a  pojmenovali ji např.

pocetStudentu. O  datových typech, pravidlech a  způsobech pojmenování proměnných se

dozvíte v následující kapitole.

Datové typy

Datový typ určuje rozsah hodnot, kterých může proměnná nabývat. .NET framework obsahuje

mnoho vestavěných datových typů. Vy se s nimi budete seznamovat postupně během čtení

této knihy. Na začátek si představme následující často používané datové typy.

Tabulka 2.1 Datové typy

Datový typ Popis Rozsah

byte Kladná celá čísla 0 .. 255

int Záporná i kladná celá čísla -2147483648 .. 2147483647

float Záporná i kladná desetinná čísla -3.402823e38 .. 3.402823e38

string Textový řetězec V podstatě libovolný rozsah Nyní již znáte pojmy proměnná a datový typ. Pojďme si ukázat, jak můžete v programuvytvořit několik proměnných a pomocí symbolu = do nich přiřadit hodnotu. Všimněte si, že každá proměnná má před svým název definováno, jakého je typu.

byte pocetTestu = 7;

int pocetObyvatel = 10580456;

float slevaProPartnery = 11.5f;

string jmenoStudenta = „Pavel“;

Upozornění: Pokud do proměnné, která je typu float, přiřazujete hodnotu, je nutné za číslonasat písmeno f, např. 43.7f. Pokud do proměnné typu string přiřazujete řetězec, je nutné, aby

byl uzavřen do uvozovek.

poznámka: Je praktické proměnné nazývat podle toho, jaká data obsahují. Čím budou vaše

programy rozsáhlejší, tím více oceníte vhodné názvy proměnných, které vám usnadní orientaci

ve zdrojovém kódu.

Název proměnné se může skládat z písmen, číslic a podtržítek, ale nesmí začínat číslicí. Pokud

je název proměnné víceslovný, je vhodné každé další slovo začít velkým písmenem.Doporučuje se v názvech proměnných používat pouze písmena anglické abecedy, a vyhnout se tedy

např. používání češtiny s  diakritikou. Zároveň platí, že proměnná nesmí mít stejný název

jako klíčová slova jazyka C# a  nesmí se jmenovat jako již existující datové typy. Nelze tedy


32

Kapitola 2 Datové typy a proměnné

proměnnou pojmenovat Console, int, float apod. Podívejte se na následující ukázkuvhodných a nevhodných názvů proměnných.

int 1cislo = 7555; // Toto je špatně. Název proměnné nesmí začínat číslicí

byte pocetDeti = 3; // Všimněte si, že druhé slovo začíná velkým písmenem

float celkovemzdovenakladyoddeleni = 180900f; // Toto je špatně čitelné

float celkoveMzdoveNakladyOddeleni = 180900f; // Vhodnější název proměnné Pokud definujeme proměnnou, nemusíme jí ihned přiřadit hodnotu. Zároveň platí, žehodnotu proměnné můžeme během programu měnit, ale vždy musíte respektovat její datový typ. Vytvoříme si proměnnou pocetZamestnancu, která bude datového typu int. Do té si později

přiradíme číslo 36. Na dalším řádku tuto hodnotu přepíšeme hodnotou 39. Proměnná tedy

bude obsahovat číslo 39 – s tím, že předchozí hodnota je přepsána. V proměnné je tedy vždy

uložena právě jedna hodnota a proměnná si nepamatuje svou historii hodnot, které do ní byly

dříve nastaveny.

// Definujeme proměnnou, ale zatím jsme jí nepřiřadili hodnotu

int pocetZamestnancu;

// Do již existující proměnné přiřadíme hodnotu

pocetZamestnancu = 36;

// Hodnotu proměnné můžeme v průběhu programu měnit

pocetZamestnancu = 39;

// Proměnná pocetZamestnancu je typu int (celé číslo). Toto je tedy špatně:

// pocetZamestnancu = 35.4f; Řádek pocetZamestnacu = 35.4f; je označen jako komentář, protože není správný a program

by nebylo možné spustit. Do proměnné typu int nemůžeme přiřadit desetinné číslo. Dále je

důležité si zapamatovat, že pokud definujeme v  programu více proměnných, nemohou mít

stejný název, i kdyby měly rozdílné datové typy. Pokud bychom do výše uvedeného programu

doplnili následující příkazy, program by nebylo možné spustit.

// Proměnná byla již definována s typem int. Toto je tedy špatně:

// float pocetZamestnancu = 39.5f; Příkaz float pocetZamestnancu = 39.5f; je tedy záměrně označen jako komentář, protože proměnná pocetZamestnancu již byla v programu dříve definována. Konstanty Pojem konstanta definujme na základě znalosti pojmu proměnná následujícím způsobem. Pro konstanty platí totéž co pro proměnné s jedinou výjimkou: při definici konstanty jí přiřadíme hodnotu, kterou již nemůžeme nikdy za běhu programu změnit. Ve zdrojovém kódudefinujeme konstantu pomocí klíčového slova const.

// Definujeme konstantu, její hodnotu nelze během programu měnit

const float koeficient = 1.75f;

// Toto je špatně:


Základní operace s čísly

33

koeficient = 2.1; Představte si situaci, kdy program provádí výpočet ceny zboží s DPH. Výpočet je prováděn pomocí vzorce (Počet kusů * cena za kus) * DPH, kde DPH je např. 0,21. Takovýto program by mohl fungovat tak, že počet kusů a cenu zas kus bude možné za běhu program změnit a  DPH bude po  celou dobu běhu programu neměnné. V  tom případě je vhodné pro DPH použít konstantu, protože budete mít jistotu, že nikde v programu nedojde ke změně její hodnoty. Základní operace s čísly V programovacím jazyku C# můžete používat standardní matematické operace, jako je např. sčítání, odčítání, násobení a dělení. Podívejte se, jaké symboly se pro jednotlivé elementární matematické operace používají: Tabulka 2.2 Základní matematické operace

Matematická operace Symbol

Sčítání +

Odčítání -

Násobení *

Dělení /

Zbytek po celočíselném dělení % Nyní si ukažme, jak využijeme výše uvedené operace při práci s  proměnnými. Na  začátku ukázky deklarujeme dvě celočíselné a jednu desetinnou proměnnou. Poté si do dalšíchproměnných ukládáme výsledky jednotlivých matematických operací. Dále si všimněte, že platí přednost násobení a dělení před sčítáním a odčítáním. Samozřejmě je možné příslušnouoperaci uzavřít do závorek a tím ji upřednostnit.

Upozornění: Věnujte pozornost zejména odlišnosti v situaci, kdy dělíme dvě celá čísla a kdy je

alespoň jedno z čísel desetinné. Pokud dělíme dvě celá čísla je provedeno celočíselné dělení.Pokud je při dělení alespoň jedno číslo desetinné, je i výsledek desetinný.

int x = 10;

int y = 4;

float z = 4;

int soucet = x + y;

int rozdil = x - y;

int soucin = x * y;

// Pokud dělíme dvě celá čísla, je provedeno celočíselné dělení.

Kapitola 2 Datové typy a proměnné

int podilCeleCislo = x / y; // Výsledek je 2

int zbytePoCelociselnemDeleni = x % y;// Zbytek po celočíselném dělení je 2

// Pokud je při dělení alespoň jedno číslo desetinné, je i výsledek

// desetinné číslo

float podilDesetinneCislo = x / z; // Výsledek je 2.5

// Toto je špatně:

int podilSpatnyTyp = x / z;

int vysledek1 = 2 * 3 + 5 * 4; // Výsledek je 26

int vysledek2 = 2 * (3 + 5) * 4; // Výsledek je 64

int vysledek3 = 2 + 18 / 2; // Výsledek je 11

int vysledek4 = (2 + 18) / 2; // Výsledek je 10

Výpis na příkazový řádek

Nyní již umíte základy práce s proměnnými a je jistě na místě se naučit, jak uživateli vašeho

programu něco sdělit. K  tomuto účelu budeme využívat příkazový řádek, na  který se nyní

naučíte vypisovat potřebné informace.

poznámka: Většina programů, které uživatelé používají, má vzhledné grafické uživatelské rozhraní.

Nicméně tvorba takovýchto programů přesahuje rámec této knihy.

Proto budeme pracovat s příkazovým řádkem, který poskytuje velmi jednoduchý způsob, jak

komunikovat s uživatelem prostřednictvím psaného textu, a budeme se soustředit především

na to, abyste se naučili programovací jazyk C#. Ukažme si, jak by mohl program, který vypíše

na příkazový řádek daný řetězec, vypadat.

using System;

namespace VypisNaKonzoli

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine(„První řetězec vypsaný na konzoli!“);

Console.ReadKey();

}

}

} V  ukázce vidíte příkaz Console.WriteLine obsahující v  závorkách řetězec, který chceme na  konzoli vypsat. Připomeňme si, že řetězce vždy uzavíráme do  uvozovek. Kdybychom se měli vyjádřit přesně, řekli bychom, že na třídě Console voláme metodu WriteLine, kterépředáváme parametr typu string.

Výpis na příkazový řádek

35

Následuje příkaz Console.Readkey, který zajistí, že program počká, dokud uživatel nestiskne

libovolnou klávesu. Pojmy metoda a třída zatím neznáme. Prozatím si je popišmezjednodušeným způsobem. Později jim budou věnovány samostatné kapitoly.

poznámka: Metoda je část programu, kterou někdo naprogramoval a která vykoná určitoučinnost, v našem případě vypíše řetězec na konzoli.

Metoda může pro svou činnost požadovat parametry. V našem případě musíme metodě předat

parametr typu string, kterým říkáme, co chceme na konzoli vypsat.

poznámka: Třídu si zatím definujme jako část programu, která obsahuje metody.

Třída je zpravidla definována v tzv. jmenném prostoru. Třída Console je definovánave jmenném prostoru System. Jmenný prostor může obsahovat více tříd a  budeme se mu věnovat

v dalších kapitolách. Abychom mohli metodu WriteLine ze třídy Console zavolat, máme dvě

možnosti. Buď můžeme napsat na začátek programu příkaz

using System; kterým sdělíme, že v programu budeme používat třídy ze jmenného prostoru System. Nebo

můžeme název třídy Console psát včetně jejího jmenného prostoru.

System.Console.WriteLine(„První řetězec vypsaný na konzoli!“);

poznámka: V praxi se setkáte spíše s tím, že programátor použije příkaz using, než abyvypisoval název třídy včetně jejího jmenném prostoru. V této knize budeme preferovat právě používání

onoho příkazu using.

Nyní již umíte vypsat libovolný řetězec na konzoli. Metoda Console.WriteLine umí kromě

řetězce vypsat na konzoli i hodnotu proměnné, která je v podstatě libovolného typu.

Protože již znáte alespoň přibližnou definici třídy, je vhodné doplnit několik informacík základním datovým typům uvedeným v tabulce 2.1. Názvy, které byly uvedeny v tabulce 2.1, jsou

takzvanými zkratkami pro názvy tříd jednotlivých datových typů uvedených v  tabulce 2.3.

V praxi se setkáte s tím, že se často používají právě ony zkratky namísto celého názvu třídy.

Důvod je zřejmý: zápis pomocí zkratek je kratší a jednodušší.

Tabulka 2.3 Zkratky a názvy tříd základních datových typů

Datový typ (zkratka) Třída Rozsah

byte Byte 0 .. 255

int Int32 -2147483648 .. 2147483647

float Single -3.402823e38 .. 3.402823e38

string String V podstatě libovolný textový řetězec

Kapitola 2 Datové typy a proměnné

V podkapitole Základní operace s čísly jsme vytvořili program, který provedl základnímatematické operace a do proměnných ukládal jejich výsledky. Nyní tento program rozšíříme tak,

aby výsledky výpočtů vypsal na konzoli.

using System;

namespace VypisPromennychNaKonzoli

{

class Program

{

static void Main(string[] args)

{

int x = 10;

int y = 4;

float z = 4;

int soucet = x + y;

Console.WriteLine(„10 + 4 =“); Console.WriteLine(soucet); int rozdil = x - y;

Console.WriteLine(„10 - 4 =“);

Console.WriteLine(rozdil); int soucin = x * y;

Console.WriteLine(„10 * 4 =“);

Console.WriteLine(soucin);

int podilCeleCislo = x / y;

Console.WriteLine(„10 / 4 =“);

Console.WriteLine(podilCeleCislo); int zbytekPoCelociselnemDeleni = x % y;

Console.WriteLine(„10 % 4 =“);

Console.WriteLine(zbytekPoCelociselnemDeleni);

float podilDesetinneCislo = x / z;

Console.WriteLine(„10 / 4.0 =“);

Console.WriteLine(podilDesetinneCislo);

// Na závěr počkáme, až uživatel stiskne klávesu

Console.ReadKey(); } } }

Výpis na příkazový řádek

37

10 + 4 =

14

10 - 4 =

6

10 * 4 =

40

10 / 4 =

2

10 % 4 =

2

10 / 4.0 =

2,5 Připomeňme si význam metody Console.ReadKey. Tato způsobí, že program čeká, dokud

uživatel nestiskne libovolnou klávesu. Jinak by se pravděpodobně stalo to, že by uživatel ani

nestihl zaregistrovat, to co bylo vypsáno na konzoli, předtím než se konzole zavřela, protože

program skončil.

Dále si všimněte si, že výpis na konzoli není příliš přehledný. Metoda Console.WriteLine

totiž po vypsání odřádkuje. To znamená, že další volání metody Console.WriteLine bude

vypisovat na následující řádek konzole. Pokud chceme provést výpis na konzolia neodřádkovat, použijeme metodu Console.Write. Takto by mohla vypadat část programu vypisující

na konzoli sčítání dvou proměnných bez odřádkování před vypsáním výsledku.

// Výpis bez odřádkování

int prvniCislo = 7;

int druheCislo = 3;

int soucetDvouCisel = prvniCislo + druheCislo;

Console.Write(„7 + 3 = „);

// Po vypsání výsledku odřádkujeme pro případ,

// že bychom vypisovali další informace

Console.WriteLine(soucetDvouCisel);

7 + 3 = 10 Zamysleme se nyní nad tím, co by se stalo, kdybychom změnili hodnoty proměnných prvni

Cislo a druheCislo. Museli bychom upravit i  řetězec „7 + 3 = „. To není příliš praktické. Ukažme si, jak podobné situace řešit lépe. Využijeme toho, že metody Console.Write

i Console.WriteLine umožňují v řetězci definovat místa, do kterých dosadíme potřebnou

hodnotu. Připravíme si teď v řetězci místa, do kterých dosadíme potřebnou hodnotu.

int cislo1 = 7;

int cislo2 = 3;

int soucetCisel = cislo1 + cislo2;

Console.WriteLine(„{0} + {1} = {2}“, cislo1, cislo2, soucetCisel);

Console.ReadKey();

7 + 3 = 10

Kapitola 2 Datové typy a proměnné

Všimněte si, že v řetězci jsou ve složených závorkách čísla, která určují, kolikátý z parametrů

oddělených čárkami za řetězcem se má na dané místo dosadit. Abychom měli srovnánía dokázali ocenit přínos této možnosti dosazení hodnot do řetězce, zkusme výše uvedený program

zapsat bez použití onoho dosazení.

int a = 7;

int b = 3;

int soucetAB = a + b;

Console.Write(a);

Console.Write(„ + „);

Console.Write(b);

Console.Write(„ = „);

// Poslední výpis uděláme pomoci WriteLine,

// abychom odřádkovali pro další možné výpisy

Console.WriteLine(soucetAB);

Console.ReadKey();

7 + 3 = 10

Ještě je zapotřebí si říct, že existují speciální symboly, které můžeme v řetězcích používat.Představte si situaci, kdy chcete v rámci vypisovaného řetězce vypsat i uvozovky. Mohli bychom

zkusit napsat následující příkaz.

Console.WriteLine(„Pavel: „Ahoj jak se mas?“ „); Program nebude možné spustit, protože řetězec musí být uzavřen do páru uvozovek. V tomto řetězci jsou ale uvozovky čtyřikrát a jazyk C# tomuto zápisu nerozumí. Pokud chcete v rámci řetězce použít uvozovky, je zapotřebí před ně umístit znak lomítka . Správný zápis by tedy byl:

Console.WriteLine(„Pavel: “Ahoj jak se mas?“ „); V  následující tabulce uvádíme stručný výčet nejčastěji používaných speciálních symbolů v řetězcích. Tabulka 2.4 Speciální symboly pro zápis v řetězcích

Symbol Význam Příklad

\ Slouží k zápisuzpětného lomítka

„Soubor je umisten na ceste C:\temp\soubor.txt“

“ Slouží k zápisu

uvozovek

„Pavel: “Ahoj jak se mas?““

Slouží k odřádkování „Jmeno: KarelPrijmeni: Prochazka“

Slouží k zápisu jednoho

tabulátoru

„Petr Soucek 15.5.1976“

Vyzkoušejte si použití těchto symbolů v řetězcích, které se budou vypisovat na konzoli.


Načtení vstupu od uživatele

39

Načtení vstupu od uživatele

Nedílnou součástí řady programů je získávání vstupu od  uživatele. Jinými slovy: Programy

mnohdy pro svou činnost potřebují informace, které jim uživatel v průběhu práce s programem

zadá. Např. program, který by měl za úkol sečíst dvě čísla, by nejdříve uživatele vyzval k jejich

zadání a následně by vypsal jejich součet na konzoli. Vy se nyní naučíte, jak získat informace

od uživatele prostřednictvím konzole.

Využijeme metodu Console.ReadLine, která je definována na  třídě Console. Opět mírně

předběhneme a zjednodušeně se seznámíme s jednou vlastností metod.

Metody mohou po svém vykonání vracet výsledek, který budeme nazývat návratová hodnota

metody. Každá metoda má jednoznačně určeno, jakého datového typu je její návratováhodnota. Metoda Console.ReadLine má návratovou hodnotu typu string. Pojďme si nyníukázat program, který od uživatele načte jeho jméno a poté jej použije při výpisu věty na konzoli.

Console.Write(„Zadejte jmeno: „);

string jmeno = Console.ReadLine();

Console.WriteLine(„Zadane jmeno bylo: {0}“, jmeno);

Console.ReadKey(); Protože jde o první program, kde očekáváme zadání hodnoty od uživatele, projdeme sipříkazy programu krok za krokem. Nejdříve se provede metoda Console.Write, kterádo příkazového řádku vypíše řetězec „Zadejte jmeno“ a  neodřádkuje. Uživatel tedy bude moci psát na ten samý řádek.

Zadejte jmeno: Program počká na to, až uživatel napíše libovolný text a stiskne Enter. Toto je zajištěnozavoláním metody Console.ReadLine. Její návratovou hodnotou je tedy uživatelem napsaný text

a tento se uloží do proměnné jmeno. Poté program vypíše na konzoli řetězec, do kterého vsadí

hodnotu z proměnné jmeno. Na posledním řádku programu je volání metody Console.Read

Key. Tím je docíleno toho, že program po provedení posledního výpisu neskončí, příkazový

řádek se automaticky nezavře a my můžeme vidět vypsaný řetězec.

Zadejte jmeno: Pavel

Zadane jmeno bylo: Pavel Konverze řetězce na číslo Nyní již umíte načíst řetězec od uživatele a uložit si jej do proměnné. Nicméně v řadě případů budete potřebovat získat od uživatele např. celé nebo desetinné číslo a dále s ním pracovat. Řekněme, že bychom měli napsat program, který od  uživatele načte dvě celá čísla a  vypíše jejich součin. Následující program by nedával smysl, protože bychom násobili řetězce, a nikoliv celá čísla. To je způsobeno tím, že metoda Console.ReadLine vrací datový typ string. To je poměrně

Kapitola 2 Datové typy a proměnné

pochopitelné. Tato metoda zkrátka vrátí přesně to, co uživatel napíše do konzole, když pak

stiskne Enter. Může tedy napsat např. „Ahoj jak se mas?“ a „Mam se dobre“. My bychom si

tyto dva řetězce uložili do proměnných a pokusili se je vynásobit. Násobit řetězce „Ahoj jak se

mas?“ a „Mam se dobre“ nedává smysl. Takže i když uživatel zadá do konzole text „10“ a „20“,

vrátí metoda Console.ReadLine datový typ string. Nyní si popíšeme postup, jak převést

uživatelem zadaný řetězec na datový typ, který potřebujeme.

Console.Write(„Zadejte prvni cislo: „);

string cislo1 = Console.ReadLine();

Console.Write(„Zadejte druhe cislo: „);

string cislo2 = Console.ReadLine();

// Toto je špatně. Násobení řetězců nedává smysl.

// Je zapotřebí převod na čísla

string vysledek = cislo1 * cislo2; Je zapotřebí převést řetězec, který uživatel zadá, na celé číslo. Převod provedeme pomocí metody Parse definované na třídě Int32, která přijímá parametr typu string obsahující řetězec, který chceme převést na celé číslo. Ukažme si program, který tento převod provede a již úspěšně vypíše onen součin dvou celých čísel.

Console.Write(„Zadejte prvni cele cislo: „);

string retezecCislo1 = Console.ReadLine();

int cislo1 = Int32.Parse(retezecCislo1);

// Návratovou hodnotu metody ReadLine si nemusíme ukládat do proměnné,

// ale můžeme ji rovnou předat metodě Parse

Console.Write(„Zadejte druhe cele cislo: „);

int cislo2 = Int32.Parse(Console.ReadLine());

int soucin = cislo1 * cislo2;

Console.WriteLine(„{0} * {1} = {2}“, cislo1, cislo2, soucin);

Console.ReadKey();

Pokud by uživatel zadal namísto čísla nějaký text např. „abcd“, program by skončil chybou,

protože by se řetězec nepodařilo na číslo převést. V tuto chvíli se s tímto typem problémůneumíme vypořádat, ale nezoufejte, budeme se tímto zabývat v kapitole věnované tzv. výjimkám.

Zadejte prvni cele cislo: 21

Zadejte druhe cele cislo: 4

21 * 4 = 84 Jak bylo řečeno v  podkapitole Výpis na  příkazový řádek, int je zkratkou pro třídu Int32. Mohli bychom tedy namísto Int32.Parse napsat int.Parse. V praxi i v tomto textu se často setkáte s oběma způsoby zápisu. Obdobně jako jsme vytvořili program pro celá čísla, vytvoříme program, který od uživatele načte dvě desetinná čísla a vypíše jejich součet. Pro převod na desetinné číslo použijeme metodu Parse definovanou na třídě Single. V programu vidíte, že je možné použít jak zkratku float.

Parse, tak název třídy Single.Parse.


Konverze čísla na řetězec

41

Console.WriteLine(„Zadejte prvni desetinne cislo: „);

string retezecDesCislo1 = Console.ReadLine();

float desCislo1 = float.Parse(retezecDesCislo1);

Console.WriteLine(„Zadejte druhe desetinne cislo: „);

// Návratovou hodnotu metody ReadLine si nemusíme ukládat do proměnné,

// ale můžeme ji rovnou předat metodě Parse

float desCislo2 = Single.Parse(Console.ReadLine());

float soucetDesCisel = desCislo1 + desCislo2;

Console.WriteLine(„{0} + {1} = {2}“, desCislo1, desCislo2, soucetDesCisel);

Console.ReadKey();

Zadejte prvni desetinne cislo:

5,25

Zadejte druhe desetinne cislo:

1,35

5,25 + 1,35 = 6,6 Všimněte si, že můžete metodě předat jako parametr přímo návratovou hodnotu jiné metody. V programu předáváme metodě Parse návratovou hodnotu metody ReadLine, aniž bychom si návratovou hodnotu ukládali do proměnné. Tento postup je běžný, pokud dále v programu nepotřebujete s návratovou hodnotou metody pracovat. Konverze čísla na řetězec Kromě konverze z řetězce na číslo je mnohdy zapotřebí provést konverzi opačným směrem. Pokud chceme číslo převést na řetězec, použijeme k tomu metodu ToString. Tuto metodu budeme používat následujícím způsobem. Napíšeme název proměnné, jejíž hodnotu chceme převést, a na ni zavoláme metodu ToString. Metodu ToString lze zavolat na libovolnéproměnné libovolného datového typu. Důležité je, že metoda nezmění hodnotu v  proměnné, na které ji zavoláme, ale vrátí hodnotu příslušné proměnné převedenou na datový typ String. Tuto návratovou hodnotu si můžeme uložit do jiné proměnné nebo ji rovnou použít v jiném příkazu. Dále je důležité, že řetězce je možné sčítat. Podívejte se na následující program, který demonstruje rozdíly mezi sčítáním čísel a sčítáním řetězců.

int cislo1 = 5;

int cislo2 = 10;

int soucetCisel = cislo1 + cislo2;

// Výsledek metody ToString si můžeme uložit do proměnné

string retezec1 = cislo1.ToString();

string retezec2 = cislo2.ToString();

string soucetRetezcu = retezec1 + retezec2;

// Výsledek metody ToString můžeme rovnou použít

// v dalších příkazech a metodách

string soucetRetezcu2 = cislo1.ToString() + cislo2.ToString();

Console.WriteLine(„Soucet cisel = {0}“, soucetCisel);

Console.WriteLine(„Soucet retezcu = {0}“, soucetRetezcu);

Console.ReadKey();

Kapitola 2 Datové typy a proměnné

Soucet cisel = 15

Soucet retezcu = 510

Všimněte si, že pokud sčítáme čí



       
Knihkupectví Knihy.ABZ.cz - online prodej | ABZ Knihy, a.s.
ABZ knihy, a.s.
 
 
 

Knihy.ABZ.cz - knihkupectví online -  © 2004-2018 - ABZ ABZ knihy, a.s. TOPlist