Seminář z IVT Proměnné a operátory. Slovanské gymnázium Olomouc 11. září 2014 Tomáš Kühr

Podobné dokumenty
Operátory. Základy programování 1 Tomáš Kühr

Operátory. Základy programování 1 Martin Kauer (Tomáš Kühr)

Základy jazyka C. Úvod do programování 1 Tomáš Kühr

Základy jazyka C. Úvod do programování 1 Tomáš Kühr

Algoritmizace a programování

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

5 Přehled operátorů, příkazy, přetypování

Základy jazyka C. Základy programování 1 Tomáš Kühr

Zápis programu v jazyce C#

Paměť počítače. alg2 1

Úvod do programovacích jazyků (Java)

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Jazyk C# a platforma.net

Úvod do programování. Lekce 1

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Programování v jazyce JavaScript

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Objektově orientované programování

Racionální čísla, operátory, výrazy, knihovní funkce

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Racionální čísla, operátory, výrazy, knihovní funkce

C# konzole Podíl dvou čísel, podmínka IF

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Programovací jazyk Pascal

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Algoritmizace a programování

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

7. Datové typy v Javě

Programovací jazyk C++ Hodina 1

KTE / ZPE Informační technologie

Jak v Javě příkazy, operace a výrazy. BD6B36PJV 00 Fakulta elektrotechnická České vysoké učení technické

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

Základy algoritmizace a programování

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

NPRG031 Programování II --- 2/2 Z, Zk

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Algoritmizace a programování

Výrazy, operace, příkazy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Datové typy strana 29

PŘETĚŽOVÁNÍ OPERÁTORŮ

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

VISUAL BASIC. Práce se soubory

Struktura programu, proměnné, konstanty, výrazy v jazycích C a C#

Data, výrazy, příkazy

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

LEKCE 6. Operátory. V této lekci najdete:

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Výrazy, operace, příkazy

IB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat

Seznámení s datovými typy a operátory

Ukázka knihy z internetového knihkupectví

URČITÝM ZPŮSOBEM PODOBNÉ

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Inovace bakalářského studijního oboru Aplikovaná chemie

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Prezentace a vysvětlení programového prostředí NXC

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do programování - Java

Algoritmizace a programování

Formátové specifikace formátovací řetězce

Algoritmizace prostorových úloh

Programování v jazyce JavaScript

Algoritmizace a programování

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Funkcionální programování. Kristýna Kaslová

ALGORITMIZACE A PROGRAMOVÁNÍ

Znalost výčtových typů. Aktivní znalost kombinovaných (zkrácených přiřazení). Znalost bitových operací. Znalost operátoru sekvence.

Seminář Java II p.1/43

Čísla a číselné soustavy.

Základy algoritmizace a programování

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Sada 1 - Základy programování

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů

Proměnná a její uložení v paměti

Rozhodovací příkazy a jejich použití

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Tato tematika je zpracována v Záznamy přednášek: str

VY_32_INOVACE_08_2_04_PR

NMIN201 Objektově orientované programování 2016/17 1 / :03:29

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Transkript:

Seminář z IVT Proměnné a operátory Slovanské gymnázium Olomouc 11. září 2014 Tomáš Kühr

Jazyk C# Vysokoúrovňový objektově orientovaný programovací jazyk Vyvinutý firmou Microsoft zároveň s platformou.net Framework Později schválený standardizačními komisemi ECMA a ISO Silně inspirován jazyky C, C++ a Java Vývojové prostředí MS Visual Studio (MS Visual C#), aktuálně 2013 Vhodný k tvorbě Konzolových nástrojů Formulářových aplikací Databázových programů Webových aplikací a služeb Softwaru pro mobilní zařízení Zdroje informací: John Sharp: Microsoft Visual C# krok za krokem, Computer press. Mnoho tutoriálů na webu: http://csharp.aspone.cz/codes/tutorial/seznamtutorial.aspx http://www.itnetwork.cz/c-sharp-zaklady-navody-tutorialy-zdrojove-kody-ke-stazeni http://projektysipvz.gytool.cz/projektysipvz/default.aspx?uid=1

Kolik pracovníků Microsoftu je potřeba k výměně žárovky?

Kolik pracovníků Microsoftu je potřeba k výměně žárovky? Žádný. Prohlásí tmu za standard.

Jak vzniká program? Kompilované jazyky Výhody: Rychlost Nepřístupnost zdrojového kódu Snadné ladění (některých druhů) chyb Nevýhody: Závislost na platformě Nemožnost editace kódu Obtížnější správa paměti

Jak vzniká program? Interpretované jazyky Výhody: Přenositelnost Jednodušší vývoj Snadná editace (i za běhu programu) Nevýhody: Rychlost Zranitelnost Chyby se projeví až po spuštění programu

Jak vzniká program? Jazyky s virtuálním strojem Výhody: Snadné odhalení (některých druhů) chyb Stabilita Jednoduchý vývoj Rozumná rychlost Zabezpečený (skrytý) zdrojový kód Přenositelnost

Základní struktura kódu using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /* * Tento program nic nedělá, * jen pozdraví celý náš svět. */ namespace HelloWorld { class Program { // hlavní metoda (funkce) programu static void Main(string[] args) { // sem budeme (zatím) psát celý náš program Console.WriteLine("Ahoj světe!"); // napíše "Ahoj světe!" do konzole } } }

Několik poznámek k syntaxi C# rozlišuje velká a malá písmena (case sensitivity) system System SYSTÉM C# ignoruje většinu bílých znaků (mezer, tabulátorů, odřádkování) (2*pi*r*(r+v)) = ( 2 * pi * r * (r+v) ) ale naopak "Ahoj světe!" "Ahoj int cislo; intcislo; světe!" Příkazy jsou ukončeny středníkem povrch = ( 2 * pi * r * (r+v) ); Console.WriteLine("Ahoj světe!");

Proměnná Pojmenované místo v paměti Lze v ní uchovávat 1 hodnotu Předem daného datového typu Vytvoření proměnné: typ identifikátor; typ identifikátor = hodnota; Příklady: int cislo; double desetinnecislo = 3.14; string text = "Ahoj"; bool logickahodnota = false;

Identifikátor proměnné Jedinečný v rámci daného namespace Může obsahovat písmena, číslice a podtržítko Musí začínat písmenem nebo podtržítkem Identifikátor by měl být smysluplný Program častěji čteme než píšeme! obsah = pi * polomer * polomer; vs. xyz = ahoj * abc * abc; Nedoporučuji používat háčky a čárky Doporučuje se používat tzv. velbloudí notaci double polomerkruznice; double pi = 3.14; string jmenohlavnihouzivatelevaplikaci;

Základní datové typy Typ Popis Velikost Rozsah Příklad int Celá čísla 32 bitů -2 31 až 2 31-1 int cislo; cislo = 42; long Celá čísla 64 bitů -2 63 až 2 63-1 long hodne; hodne = 42L; float Desetinná čísla 32 bitů ±1,5 10-45 až ±3,4 10 38 double Desetinná čísla 64 bitů ±5,0 10 324 až ±1,7 10 308 decimal Peněžní hodnoty 128 bitů 28 významných číslic string Textový řetězec 16 bitů / znak float desetinne; desetinne = 4.2F; double vetsi; vetsi = 4.2; decimal penízky; penízky = 4.2M; string jmeno; jmeno = "Pepa"; char znak 16 bitů 0 až 2 16-1 char znak; znak = 'A'; bool Logická hodnota 8 bitů true nebo false bool splneno; splneno = true;

Operátory a jejich vlastnosti Základní konstrukce (skoro) každého jazyka Z daných operandů vytvoří výsledek, který je možné dále využívat Arita udává počet operandů (vstupů) Některé operátory mají i tzv. vedlejší efekt Příklady výrazů s operátory: a+b (binární sčítání) a-b (binární odčítání) -a (unární mínus) a<=b (binární menší nebo rovno) a-- (unární dekrementace) prumer = (a+b)/2; (přiřazení, sčítání a dělení v 1 výrazu)

Priorita a asociativita operátorů Priorita určuje pořadí, ve kterém se operátory vyhodnocují Znáte ji vlastně už z matematiky 1 + 2 / 3 + 4 =? Vyhodnocování výrazu lze ovlivnit použitím (kulatých) závorek (1 + 2) / (3 + 4) 1 + (2 / 3 + 4) (1 + 2) / 3 + 4 Asociativita udává směr, ve kterém se vyhodnocují binární operátory se stejnou prioritou Zleva nebo zprava 1 2 3 4 =? Opět lze ovlivnit závorkami ((1 2) -3) 4 (1 2) (3 4) 1 (2 (3 4))

Aritmetické operátory Unární operátory + a Binární operátory +,, * a / s obvyklým významem Asociativita zleva Příklady: stejnecislo = +cislo; opacnecislo = -cislo; delka = vetsi - mensi; prumer = (prvni + druhy + treti) / 3; obsah = 2 * pi *polomer * polomer; Binární operátor % pro určení zbytku po celočíselném dělení (modulo) Příklad: int delenec = 13, delitel=5, podil, zbytek; podil = delenec / delitel; zbytek = delenec % delitel;

Aritmetické operátory Pozor na typy operandů Pokud jsou všechny operandy celočíselné, je i výsledek celočíselný Jinak je výsledek reálné číslo Například při dělení toto může ovlivnit i hodnotu výsledku int cislo = 15; double polovina; polovina = cislo / 2; Spojování řetězců + string prvni = "Ahoj"; string druhy = "Kamaráde"; string spojeni = prvni + " " + druhy + "!";

Zvláštní číselné hodnoty Reprezentovatelné v desetinných datových typech Nekonečno (Infinity, kladné i záporné) double plusnekonecno = 1.0/0.0; double minusnekonecno = -5.0/0.0; Není číslo (NaN, Not a Number) double nesmysl = 0.0/0.0;

Přiřazení Pomocí operátoru = Zápis ve tvaru identifikatorpromenne = JakykoliVyraz Příklady použití cislo = 15; druhecislo = 2*cislo; Vedlejší efekt do proměnné uvedené vlevo uloží výsledek výrazu vpravo Asociativní zprava první = druhy = treti = 42; (první = (druhy = (treti = 42))); Další přiřazovací operátory += -= *= /= %= atd. Význam cislo += 5; cislo = cislo+5;

Inkrementace a dekrementace Aritmetické operátory, které v matematice nemáme Mají vedlejší efekt Inkrementace (++) zvyšuje hodnotu operandu o 1 cislo++; cislo+=1; cislo = cislo+1; Dekrementace (--) snižuje hodnotu operandu o 1 cislo--; cislo-=1; cislo = cislo-1; Mohou být v tzv. prefixovém nebo postfixovém tvaru Prefixové a postfixové použití se odlišuje výsledkem int vysledek1, vysledek2; int cislo = 5; vysledek1 = cislo++; vysledek2 = ++cislo; Nedoporučuji používat přiřazení, inkrementaci a dekrementaci ve složitějších výrazech! y = (x++ - 5 + (z = y - 2));

Podmínkové operátory Operátory pro porovnávání < > <= >= == (rovná se)!= (nerovná se) Binární operátory Výsledkem je logická hodnota Příklady: prvni >= druhe + treti cislo!= - cislo dalsicislo == cislo + 10 Typické chibyčki: prvni >= druhe >= treti 10 < cislo <= 20

Logické operátory Slouží pro konstrukci složitějších podmínek K dispozici máme operátory konjunkce (a zároveň) && disjunkce (nebo) negace! Asociativita zleva Příklady: (10 < cislo) && (cislo <= 20) (cislo <= 10) (20 < cislo)!((10 < cislo) && (cislo <= 20)) a b a && b a b!a true true true true false true false false true false false true false true true false false false false true

Líné vyhodnocování Při vyhodnocování logických operátorů (konjunkce a disjunkce) se vyhodnocuje pouze část výrazu nezbytná pro určení výsledné pravdivostní hodnoty Příklady: (2 < 1) && (10 < cislo/0) (10 < cislo) && (cislo <= 20) (10 < 12) cokoli (10 < cislo) (cislo <= 0) Obzvláště zde tak platí doporučení neschovávat do složitějších podmínek operátory s vedlejším efektem (přiřazení, inkrementace, dekrementace).

Přehled operátorů Skupina Operátory Priorita Asociativita Unární ++ -- + -! nejvyšší Multiplikativní * / % zleva doprava Aditivní + - zleva doprava Relační < > <= >= zleva doprava Rovnost ==!= zleva doprava Logické "a" && zleva doprava Logické "nebo" zleva doprava Přiřazení = += -= *=... nejnižší zprava doleva

Výstup do konzole Zápis a posunutí na další řádek: Console.WriteLine("Jakýkoli text..."); Console.WriteLine(jakakoliPromenna); Console.WriteLine(2+cislo); Zápis bez skoku na další řádek: Console.Write("Jakýkoli text..."); Console.Write(jakakoliPromenna); Console.Write(2+cislo); Vkládání hodnot do textu: Console.Write("Jmeno:{0}\nPrijmeni:{1}\nVek{2}", "Pavel", "Novak", 25); Console.Write("{0} {2} a {1} {2} jsou bratři.", "Pavel", "Petr", "Novák");

Čtení dat přes konzoli Načítá se vždy textový řetězec string prectenytext; prectenytext = Console.ReadLine(); Pokud chceme načíst jiný datový typ, je to mírně komplikovanější int cislo; string text; text = Console.ReadLine(); cislo = Int32.Parse(text); double cislo; string text; text = Console.ReadLine(); cislo = Double.Parse(text); Další datové typy podobně

Cvičení 1 Ve vývojovém prostředí Visual Studio si vytvořte novou konzolovou aplikaci v jazyce C# a napište do konzole pozdrav světu Postup: 1. V hlavní nabídce aplikace v položce Soubor klikněte na Nový projekt. 2. Zvolte Visual C# a Konzolová aplikace. 3. Vyberte adresář, ve kterém se má nový projekt vytvořit. Doporučuji si třeba vytvořit nějaký adresář na ploše. 4. Zvolte si nějaký smysluplný název projektu (např. AhojSvete, HelloWolrd ). 5. Klikněte na tlačítko OK. 6. Doplňte program dle zadání. 7. Program spustíte kliknutím na Spustit bez ladění (CTRL+F5) v části Ladit v hlavní nabídce vývojového prostředí.

Chlap vytáhne cigaretu z krabičky, dá ji do úst a zapálí. Dívka mu na to odpoví: Co to děláš, ty nevidíš, že na krabičce je varování, že kouření vážně poškozuje zdraví? Chlap odpoví: Lásko, já jsem programátor. My na warningy kašlem, nás zajímají jenom errory.

Cvičení 2 Vyzkoušejte si vytvořit několik proměnných různých datových typů, vložte do nich nějaké hodnoty a vypište si je co nejlépe do konzole. Poté si zkuste načítat hodnoty až za běhu programu pomocí jejich zadávání do konzole.

Cvičení 3 Vytvořte program, který spočítá objem a povrch válce. O potřebné údaje o konkrétním válci požádejte uživatele programu. Výsledné hodnoty pak vypište uživateli do konzole. Nápověda: Hodnotu Ludolfova čísla π lze získat pomocí Math.PI.