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

Podobné dokumenty
Operátory. Základy programování 1 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)

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

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:

Úvod do programování. Lekce 1

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

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

Algoritmizace a programování

Programování v jazyce JavaScript

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

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

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

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

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

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

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

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

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

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

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

Ukázka knihy z internetového knihkupectví

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

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

Jazyk C# a platforma.net

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

Programovací jazyk Pascal

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

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

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

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

Data, výrazy, příkazy

Základy algoritmizace a programování

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

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

Datové typy strana 29

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

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

Jazyk C++ I. Polymorfismus

Část I Výrazy a operátory

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.

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

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

Architektura počítačů Logické obvody

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

Architektura počítačů Logické obvody

Řídicí struktury, výrazy a funkce

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

Zápis programu v jazyce C#

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

Aritmetické operátory

Programovací jazyk C++ Hodina 1

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

Výrazy, operace, příkazy

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

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

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

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

Algoritmy v jazyku C a C++

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

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

NPRG030 Programování I, 2010/11

Algoritmizace a programování

Sada 1 - Základy programování

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

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

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

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

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

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

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

6. Příkazy a řídící struktury v Javě

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

Algoritmy v jazyku C a C++

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

I. ZÁVĚREČNÁ ZPRÁVA PROJEKTU

Sada 1 - Základy programování

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

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

Datové typy pro reálná čísla

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

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

Objektově orientované programování

Datové struktury a datové typy.

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

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

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

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

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

Výrazy, operace, příkazy

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Algoritmy v jazyku.

Transkript:

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

Organizační poznámky Formátujte kód přehledně! Pomůžete sobě i mně. Spusťte si vaše programy a zkuste různé vstupy! Pokud program nedává správné výstupy nebo padá neposílejte mi to, ale zkuste problém vyřešit! Pokud si nevíte rady, pošlete mi email s dotazem či přijďte na konzultace. Přečtěte si pořádně zadání a držte se jej! Ano, co je v zadání napsané jako povinné je opravdu povinné.

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 =?? a = b = c? 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 desetinné čí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 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 v jazyku C se jedná o celé číslo! 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ř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ý po načtení desetinného čísla a přesnosti vypíše zadané číslo po zaokrouhlení na zadanou přesnost. Při řešení použijte dnešní látku. Nesmíte použít žádné zaokrouhlovací funkce z dodatečných knihoven. Příklady použití: Číslo: 8.2483 Přesnost: 0.01 Zaokrouhleno: 8.25 Číslo: 8.2483 Přesnost: 0.1 Zaokrouhleno: 8.2