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

Podobné dokumenty
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

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

Algoritmizace a programování

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

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

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

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

Úvod do programovacích jazyků (Java)

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

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

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

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

Přetěžování operátorů

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

Úvod do programování. Lekce 1

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

Programování v jazyce JavaScript

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

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

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

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

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

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

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

Základy algoritmizace a programování

Ukázka knihy z internetového knihkupectví

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

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

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

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

Algoritmizace a programování

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

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

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

Jazyk C# a platforma.net

Data, výrazy, příkazy

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

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

Jazyk C++ I. Polymorfismus

Část 3 Zadání 3. domácího úkolu (HW03)

Přehled témat. Přiřazení

Programovací jazyk Pascal

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

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

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

Aritmetické operátory

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

Výrazy, operace, příkazy

Architektura počítačů Logické obvody

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

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.

C2110 Operační systém UNIX a základy programování

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

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

Zápis programu v jazyce C#

Architektura počítačů Logické obvody

Řídicí struktury, výrazy a funkce

Datové typy strana 29

Algoritmy v jazyku C a C++

PB161 Programování v jazyce C++ Přednáška 9

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

Část I Výrazy a operátory

Programovací jazyk C++ Hodina 1

Výrazy, operátory a řídicí struktury

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

NPRG030 Programování I, 2018/19 1 / :25:37

C a C++ Algoritmy v jazyku. Jiří Prokop

Datové typy pro reálná čísla

Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky.

Základy algoritmizace a programování

Algoritmy v jazyku C a C++

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Proměnné a parametry. predn_08.odt :00:38 1

Ukazka knihy z internetoveho knihkupectvi

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Programování v jazyce C pro chemiky (C2160) 9. Práce s PDB soubory

Operační systémy. Cvičení 3: Programování v C pod Unixem

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

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

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

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

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

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

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

CZ.1.07/1.5.00/

Lekce 01 Úvod do algoritmizace

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Algoritmy v jazyku.

Objektově orientované programování

Aritmetika s didaktikou I.

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

Seminář IVT. MS Excel, opakování funkcí

přetížení operátorů (o)

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

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý

ALGORITMIZACE PRAKTICKÉ

NPRG030 Programování I, 2016/17 1 / :58:13

Variace. Mocniny a odmocniny

Transkript:

Operátory Základy programování 1 Tomáš Kühr

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; Lze obejít přetypováním operandu nebo desetinným zápisem konstanty polovina = (double)cislo / 2; polovina = cislo / 2.0;

Přiřazení Pomocí operátoru = Zápis ve tvaru identifikátor_proměnné = jakýkoli_výraz 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 (nula vs. nenulové číslo) Příklady: prvni >= druhe + treti cislo!= - cislo dalsi_cislo == 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 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1

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). (10 < cislo) (cislo++)

Přetypování Změna typu výrazu na jiný typ Obecně: (nový_typ)výraz Příklady: int delenec = 5, delitel = 2; double podil; podil = (double)delenec / delitel; Existuje i implicitní přetypování: double cislo = 3.123; int cela_cast; cela_cast = cislo;

Podmínkový operátor Slouží pro větvení uvnitř výrazu Při složitějším použití nepřehledný Jediný ternární operátor Obecně: podmínka? výraz_splněno : výraz_nesplněno Pokud platí podmínka, pak se operátor vyhodnotí na výraz_splněno, jinak na výraz_nesplněno. Příklady: int cislo1, cislo2; int min;... min = ((cislo1 < cislo2)? cislo1 : cislo2);

Čárka Slouží pro vytváření sekvencí Smysluplný téměř jen v řídících řádcích cyklů Obecně: výraz_1, výraz_2 Vyhodnotí se výraz_1, výsledek se zapomene, vyhodnotí se výraz_2 a jeho výsledek udává výsledek celé sekvence Výrazy obvykle mívají nějaký vedlejší efekt Příklady: int cis1 = 5, cis2 = 2; int min, max;... (cis1 < cis2)? (min = cis1, max = cis2) : (min = cis2, max = cis1);

Přehled operátorů Priorita Operátory Asociativita Arita 1 () [] ->. 2! ~ ++ -- + - (typ) * & sizeof unární 3 * / % zleva doprava binární 4 + - zleva doprava binární 5 << >> zleva doprava binární 6 < > <= >= zleva doprava binární 7 ==!= zleva doprava binární 8 & zleva doprava binární 9 ^ zleva doprava binární 10 zleva doprava binární 11 && zleva doprava binární 12 zleva doprava binární 13? : zprava doleva ternární 14 = += -= *= /= %= >>= <<= &= = ^= zprava doleva binární 15, zleva doprava binární

Cvičení Vytvořte program, který načte velikosti 3 stran trojúhelníku a vypíše, jestli lze trojúhelník s danými velikostmi stran sestrojit. Příklady použití: Zadejte stranu a: 3 Zadejte stranu b: 6 Zadejte stranu c: 4 Trojúhelník lze sestrojit. Zadejte stranu a: 3 Zadejte stranu b: 2 Zadejte stranu c: 1 Trojúhelník nelze sestrojit.