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



Podobné dokumenty
Algoritmizace a programování

Řídicí struktury. alg3 1

Úvod do programovacích jazyků (Java)

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

Algoritmizace a programování

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

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

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

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í

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

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

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

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

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

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

Programovací jazyk Pascal

Zápis programu v jazyce C#

6 Příkazy řízení toku

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

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

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

Úvod do programování - Java. Cvičení č.4

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

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

Úvod do programování. Lekce 1

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

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

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

Větvení programů příkaz IF

NPRG030 Programování I, 2010/11

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

Jazyk C# a platforma.net

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

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

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

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

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

Programovací jazyk C++ Hodina 1

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

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

Programování v jazyce JavaScript

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

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

Sada 1 - Základy programování

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

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

Algoritmy a datové struktury

Objektově orientované programování

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Výrazy, operace, příkazy

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

Algoritmizace a programování

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

Základy programování (IZP)

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.

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

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 prostorových úloh

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

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Úvod do programování. Lekce 3

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

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

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

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

Základy algoritmizace a 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 -

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


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

Úvod do databázových systémů

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

Programování v C++ 1, 1. cvičení

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

Architektura počítačů Logické obvody

Software602 Form Designer

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

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Algoritmizace a programování

Sada 1 - PHP. 03. Proměnné, konstanty

KTE / PPEL Počítačová podpora v elektrotechnice

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Podmíněné vykonávání

Sekvenční a podmíněné provádění

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12.

KTE / ZPE Informační technologie

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz

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

7. Datové typy v Javě

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Architektura počítačů Logické obvody

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

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Algoritmizace prostorových úloh

9. přednáška - třídy, objekty

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

KTE / ZPE Informační technologie

Transkript:

Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární (relační) operátory > větší < menší >= větší nebo rovno <= menší nebo rovno == rovno!= nerovno Příklad (předpoklad: int a, b; ): a > b = BV o BV (booleovský, logický výraz) = výraz ( podmínka ); výsledek hodnota typu bool Nikdy neprovádět test na rovnost dvou reálných čísel (důvod = zaokrouhlování) Logické operátory && logický součin (AND) logický součin (OR)! negace (NOT) pozor!!! & a zcela jiný význam (bitové operace) pravdivostní tabulka x y x && y x y!x 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 Příklad: Stanovte BV pro test, zda se hodnota proměnné x nachází v intervalu (-5; 10 (true = nachází, false = nenachází) (x > -5) && (x <= 10)!((x <= -5) (x > 10)) 1

priorita operátorů zatím důsledně závorkovat Řídící struktury Větvení předepisují způsob provedení jiných příkazů (pořadí, opakování, výběr) Řídící struktury: o složený příkaz o větvení = provedení různých částí programu v závislosti na splnění podmínky o cykly = opakování skupiny příkazů neúplná podmínka úplná podmínka if if vícenásobné větvení switch Neúplná podmínka syntaxe: podmínka if (BV) Příkaz; podmínka platí Příkaz před BV true false podmínka neplatí Příkaz 1 Příkaz 2 Příkaz po sémantika jestliže je výsledkem BV true, pak proveď Příkaz, jinak jej přeskoč o vykonané příkazy (vývojový diagram výše) podmínka: platí Příkaz před Příkaz Příkaz po neplatí Příkaz před Příkaz po více příkazů uvnitř if Začátek bloku if (BV) prikaz 1; prikaz 2; psát vždy konec bloku prikaz N; 2

Příklad: Převod čísla na absolutní hodnotu, při změně znaménka vytiskne informační zprávu double cislo; // nacteni z klavesnice if (cislo < 0) Console.WriteLine("Menim znamenko"); cislo = -cislo; Console.WriteLine(" cislo = 0", cislo); Poznámka: v BV místo proměnných lze i výrazy. if (10*Math.Sin(uhel) > 0.356) Úplná podmínka Syntaxe: if (BV) Příkaz 1; Příkaz 2; Příkaz A BV true Příkaz 1 false Příkaz 2 Příkaz B sémantika: jestliže je výsledkem BV true, pak proveď Příkaz 1, jinak proveď Příkaz 2 Příklad: Zachycení dělení nulou double citatel, jmenovatel; // citatel, jmenovatel - nacteni z klavesnice double podil = 0; if (jmenovatel == 0) Console.WriteLine("Pokus o deleni nulou!!!"); podil = citatel / jmenovatel; o Podmínku lze otočit 3

if (jmenovatel!= 0) podil = citatel / jmenovatel; Console.WriteLine("Pokus o deleni nulou!!!"); Vícenásobné větvení pomocí if Příklad: zjistěte, do kterého intervalu patří x a b if (x < a) Console.WriteLine("(-inf; a)"); if ((x >= a) && (x < b)) Console.WriteLine("<a; b)"); if (x >= b) Console.WriteLine("<b; inf)"); x < a x X (-h; a) (x >= a) && (x < b) x X áa; b) x >= b x X áb; h) 4

lepší řešení x < a x >= b x X (-h; a) x X áb; h) x X áa; b) if (x < a) Console.WriteLine("(-inf; a)"); if (x >= b) Console.WriteLine("<b; inf)"); Console.WriteLine("<a; b)"); Přehlednější zápis přednostně if (x < a) Console.WriteLine("(-inf; a)"); if (x >= b) // if- = jeden prikaz!!! Console.WriteLine("<b; inf)"); Console.WriteLine("<a; b)"); 5

Složený příkaz (blok) = posloupnost příkazů v syntaxe: prikaz 1; prikaz 2; prikaz N; žádný ; použití 1) sdružení několika příkazů přehlednost 2) situace si žádá více příkazů (cykly, podmínky), ale C# vyžaduje příkaz jediný Viditelnost proměnných C# proměnné viditelné o v bloku, kde byly deklarovány o do něj vnořených blocích static void Main(string[] args) int a; // kod, lze pouzit: a double b; // kod, lze pouzit: a,b // kod, lze pouzit: a,b double c; // kod, lze pouzit: a,b,c // kod, lze pouzit: a,b bool d; // kod, lze pouzit: a,b,d 6

Cykly Terminologie Poznámky Cyklus for pro opakované provádění částí programu řídící proměnná cyklu = (ŘP) proměnná, na které závisí ukončení cyklu o nejlépe pouze jedna o jména řídících proměnných i, j, k podmínka řídící pokračování cyklu = logický výraz obsahující řídící proměnnou cyklu hlavička cyklu = klíčové slovo for nebo while a výraz v následujících () o = nutná administrativa cyklu tělo cyklu = příkazy, které se budou opakovat (výkonný kód cyklu) o jeden příkaz nebo blok o podobně jako u if, vždy se opakuje pouze jeden příkaz, jinak nutné pro situace, kdy je počet opakování předem znám syntaxe: podmínka řídící pokračování cyklu for (IŘP; BV; ZŘP) Příkaz; hlavička tělo sémantika IŘP IŘP; BV; ZŘP true BV Příkaz false Příkaz ZŘP 7

Příklady použití Součet několika čísel, počet čísel znám již v době zápisu programu konstanta tělo const int POCET = 4; double cislo, soucet = 0.0; for (int i = 1; i <= POCET; i++) Console.Write("Zadej 0.cislo: ", i); cislo = Double.Parse(Console.ReadLine()); soucet += cislo; Console.WriteLine("Soucet = 0", soucet); ŘP využita i pro užitečnou práci postupná akumulace o viditelnost i: hlavička + tělo o výsledek. Počet čísel není předem znám, zadává se po spuštění programu int pocet; Console.Write("Zadej pocet cisel: "); pocet = Int32.Parse(Console.ReadLine()); double cislo, soucet = 0.0; for (int i = 0; i < pocet; i++) Console.Write("Zadej 0. cislo: ", i+1); cislo = Double.Parse(Console.ReadLine()); soucet += cislo; Console.WriteLine("Soucet = 0", soucet); pocet neznámý pocet znám!!! o ŘP od 0 běžnější 8

Méně obvyklé použití tisk tabulky hodnot funkce sinus for (double x = 0; x <= Math.PI; x += Math.PI / 10) Console.WriteLine("sin(0:F4) = 1:F4", x, Math.Sin(x)); Poznámky Cyklus for lze zapsat mnoha dalšími způsoby nepoužívat je (viz. literatura např. řídící proměnnou by šlo měnit i uvnitř cyklu) pozor na středník za for prázdný cyklus for (int i = 0; i < 10; i++); Console.WriteLine(); samostatný blok; leží za cyklem; vykonání pouze 1x o Překladač varování 9