Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou

Podobné dokumenty
X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

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

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.

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

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

Programování v jazyce JavaScript

Jazyk C# a platforma.net

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

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

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

Programovací jazyk Pascal

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

Algoritmizace a programování

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

Úvod do programovacích jazyků (Java)

Algoritmizace a programování

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

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

Basic256 - úvod do programování Příklady. ing. petr polách

VISUAL BASIC. Práce se soubory

Zápis programu v jazyce C#

PROGRAMOVÁNÍ V SHELLU

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

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

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

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Úvod do programování. Lekce 1

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

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

- jak udělat konstantu long int: L long velka = 78L;

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

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ů

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

awk programovatelný filtr

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

Střední odborná škola a Střední odborné učiliště, Hořovice

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

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

NPRG030 Programování I, 2010/11

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

Sada 1 - Základy programování

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

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

Stručný návod k programu Octave

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

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

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

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

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Programování v jazyce JavaScript

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

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

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

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

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <->

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

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

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

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

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

PSK3-9. Základy skriptování. Hlavička

Excel Matematické operátory. Excel předdefinované funkce

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

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

Regulární výrazy. Filtry grep, sed a awk.

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

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Numerické výpočty, komprese a archivace, návratový kód.

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

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

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

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

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

Implementace LL(1) překladů

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

Základy algoritmizace a programování

Funkce, podmíněný příkaz if-else, příkaz cyklu for

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

LabView jako programovací jazyk II

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

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

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

Programovací jazyk C++ Hodina 1

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

IUJCE 07/08 Přednáška č. 1

Konečný automat. Jan Kybic.

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

Algoritmizace prostorových úloh

Programovani v Maplu Procedura

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

Skripty základy VB, vestavěné objekty, příklady

Skripty - úvod. Linux - skripty 2

Základy algoritmizace a programování

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

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

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

Transkript:

Příkaz expr Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou výraz1 výraz2 vrátí první výraz, pokud není nulový a není prázdným řetězcem, jinak vrací druhý výraz $ expr 3 + 4 ' ' 5 7 $ expr 3 + -3 ' ' 5 5 výraz1 & výraz2 vrátí první výraz pokud žádný z argumentů není nula nebo prázdný řetězec, jinak vrátí nulu

výraz1 relační_operátor výraz2 relační operátor: = > >= < <=!= převede argumenty na celá čísla a provede celočíselné porovnání nebo lexikograficképorovnání pokud relace platí vrátí hodnotu 1 jinak 0 twoflower:~$ expr "a" '>' "b" 0 twoflower:~$ expr "a" '<' "b" 1 výraz1 relační_operátor výraz2 aritmetický operátor + - * / % provede se převedení na celá čísla a příslušná operace, pokud převod není možný expr skončí chybou twoflower:~$ expr 7 % 5 2 twoflower:~$ expr 7 '*' 5 35

Stringy STRING : REGEXP Vrací jedna pokud string obsahuje regulární výraz REGEXP match STRING REGEXP Vrací jedna pokud string obsahuje regulární výraz REGEXP substr STRING POS LENGTH pos se počíta od 1 vratí podstring od pos o délce length twoflower:~$ expr substr "ABCDEFGHIJKLMNOPQ" 3 5 CDEFG index STRING CHARS index pozice znaku CHARS v STRING, pokud není 0 twoflower:~$ expr index "ABCDEFGHIJKLMNOPQ" D 4

length STRING délka STRING twoflower:~$ expr length "ABCDEF" 6

bc syntaxe: bc [ -lwsqv ] [long-options] [ file... ] popis: podobnost s C zpracuje soubory na vstupu poté standardní vstup počítá s libovolně přesnými čísly Čísla dva atributy: length délka čísla = počet číslic scale - počet míst za desetinnou tečkou číslice: 0-9 A-F musí být použita velká písmena malá jsou brána jako název proměnné příklad:.000 001 length = 6, scale = 6 1234.567 length = 7, scale = 3

Proměnné Dva typy: jednoduché proměnné a pole Název proměnných začíná písmenem, všechny písmena musí být malá. Příklad: name name[1] 4 speciální proměnné: scale (default = 0 ) počet míst za desetinnou tečkou ibase, obase (default = 10) základ vstupu a výstupu (povolená hodnota ibase 2-16) last poslední vypsané číslo Poznámka Pokud bude na vstupu větší číslice než je základ soustavy bere se vždy nejvyšší možná číslice dané soustavy, např.: ibase = 4 vstup FFF bc považuje za 333 Komentáře /* */ nebo řádek začínající #

Operace a výrazy Negace výrazu - expr Zvětšení (zmenšení) o jedna a výsledek výrazu je nová hodnota ++ var -- var Výsledek výrazu je hodnota proměnné ta je pak zvýšena (zmenšena) o jedna var ++ var -- twoflower:~$ echo "a=8; a++" bc 8 twoflower:~$ echo "a=8; ++a" bc 9 Součet, rozdíl, součín a podíl dvou výrazů expr + expr expr - expr expr * expr expr / expr

expr % expr zbytek po dělění, výsledek má hodnotu scale jako operand s větší hodnotou scale expr ^ expr2 mocnina, mocnitel musí být celé číslo Nastavení priority ( expr ) Přírazení proměnné hodnoty výrazu var = expr Zkrácený zápis ekvivalent "var = var <op> expr", <op>je operace var <op>= expr twoflower:~$ echo "a=3; a *= 2; a" bc 6

Porovnání expr1 < expr2 expr1 <= expr2 expr1 > expr2 expr1 >= expr2 expr1 == expr2 expr1!= expr2 Booleovské výrazy negace!expr and expr && expr or expr expr Speciální výrazy Počet platných číslic length ( expression ) Čtení ze standardního vstupu read ( )

Počet číslic za desetinou tečkou scale ( expression ) Odmocnina (při záporném výrazu run-time error) sqrt ( expression ) Příkazy Jako oddělovač slouží středník a nová řádka. Výraz (expression) Plní jednu ze dvou fcí přirazení ("<variable> <assignment>...") a výstup. Po vypsání na výstup je výpsána i nová řádka. Dlouhá čísla se vypisují na více řádek, přerozdělení je jako poslední znak na řádek vypsán znak "\". Maximum znaků na řádek je 70. Poslední vypsaná proměnná je uložena do proměnné last (s tou je možné normálně pracovat). string

Cokoliv od znaku do znaku,string je vypsán na výstup a poté je vypsán nový řádek. print list List je seznam výrazu a stringů určených na výstup, jako oddělovač slouží čárka. Speciální znaky (uvozeny \ ): "a" (alert or bell), "b" (backspace), "f" (form feed), "n" (newline), "r" (carriage return), "q" (double quote), "t" (tab), "\" (backslash). Jiný znak po \ je ignorován { příkazy } Seskupuje příkazy k hromadnému provedení if ( výraz ) příkaz1 [else příkaz2] while ( výraz ) příkaz dokud je výraz nenulový provádí se příkaz

for ( [výraz1] ; [výraz2] ; [Výraz3] ) příkaz výraz1 se provede před smyčkou, výraz2 před každým provedením příkazu, výraz3 se provede před provedením výrazu 2, příkaz se provádí dokud je výraz2 nenulový break ukončí současný while nebo for cyklus continue přejde na další opakování for cyklu halt The halt statement (an extension) is an executed statement that causes the bc processor to quit only when it is executed. For example, "if (0 == 1) halt" will not cause bc to terminate because the halt is not executed. return Vráti nulu ve fci return ( expression ) Vráti hodnotu výrazu jako návratovou hodnotu fce

Pseudo příkazy limits Vypíše omezeni použité verze bc quit ukončí bc např.: "if (0 == 1) quit" ukončí bc Funkce define jmeno ( parametry ) { auto_list statement_list } auto_list je seznam lokálních proměnných,syntaxe deklarace je auto name statement_list seznam příkazů příklad define d (n) { return (2*n); }

Matematické fce s (x) sinus c (x) cosinus a (x) arctg l (x) přirozený logaritmus e (x) exponenciální fce j (n,x) besselova fce

Příklady Rekurzivní počítání faktoriálu define f (x) { if (x <= 1) return (1); return (f(x-1) * x); } n^4 $ echo "define a (n) { for(a=2;a--;) n*=n; return (n) } b=2; c=a(b); c" bc 16 $ echo "ibase=10; obase=2; 15" bc 1111 $ echo "4 ^ 2" bc 16

dc dc počíta s libovolně přčesnými čísly, počítá přes zásobník Syntaxe dc [-V] [--version] [-h] [--help] [- e scriptexpression] [-- expression=scriptexpression] [-f scriptfile] [-- file=scriptfile] [file...] Komentář Vše od znaku # do konce řádky Práce se zásobníkem Dvě základní operace: Pop odebere prvek z vrcholu zásobníku Push přídá prvek na vrchol zásobníku

Výstup p vypíše vrchol zásobníku a nový řádek $ echo "1 2 3 p" dc 3 n vypíše vrchol a odebere jej $ echo "1 2 3 n n" dc 32$ f vypíše zásobník každý prvek na nový řádek, prvky neodebírá! $ echo "4 5 6 f" dc 6 5 4 Výpočty + Provede operaci 2x pop sečte získané hodnoty a s výsledkem provede push $ echo "1 2 3 + f" dc 5 1

- * / % ~ Provede operaci 2x pop odečte získané hodnoty a s výsledkem provede push Provede operaci 2x pop vynásobí získané hodnoty a s výsledkem provede push Provede operaci 2x pop vydělí získané hodnoty a s výsledkem provede push Provede operaci 2x pop vydělí získané hodnoty a zbytek po dělění uloží do zásobníku. Provede operaci 2x pop vydělí získané hodnoty a uloží výsledek celočíselného dělení a zbytek po dělění uloží do zásobníku. $ echo "1 11 3 ~ f" dc 2 3 1

^ v Provede operaci 2x pop první hodnota je exponent, druhá základ,hodnoty umocní a výsledek uloží do zásobníku. vezme tři hodnoty ze zásobníku a1,a2,a3 výsledkem je (a3^a2) % a1. Příklad: $ echo " 10 2 98 f" dc 2 100 v Z98 je 2 odmocnina Operace se zásobníkem c vymaže zásobník d duplikuje horní hodnotu zásobníku r prohodí první dvě hodnoty zásobníku $ echo "1 2 c 3 4 r d f" dc 3 3 4

Registry Až 256 registrů, název registru je jeden znak. Slouží pro ukládání hodnot. sr lr vrchní prvek ze zásébníku se uloží do registru r hodnota z r seuloží do zásobníku Každý registr může být zásobníkem Sr Lr Hodnota z hlavního zásobníku do zasobníku r Prvek ze zásobníku r do hlavního $ echo "1 2 3 4 Sa Sb Sa Sb p La La f" dc dc: stack empty 4 2

Stringy Zápis do [] například: [abcdefg] a x převede číslo naznak, pokud se již jedná o string zachová první znak $ echo "64 a p" dc @ provede string v zásobníku jako makro příklad: 2p provede výpis 2 na výstup a zápis do zásobníku $ echo "[2p] x f" dc 2 2

>r!>r <r!<r =r!=r Makra pokud je pravdivé porovnání provede se prvek z registru r jako makro? q Q twoflower:~$ echo "[4p] sr 1 2 >r p" dc 4 4 Přečte makro z terminálu a provede jej uknčí makro a i makro ze kterého bylo předchozí voláno tj. pokud bylo makro ve kterem je q voláno přímo dojde k ukončení dc Ukončí tolik stupňů maker kolik je hodnota v zásobníku nemůže však ukončit dc

Z X z Dálší příkazy Nahradí číslo hodnotou počtu číslic. $ echo "1 22 333 Z f" dc 3 22 1 Nahradí číslo hodnotou počtu číslic za desetinou tečkou. $ echo "1 22 333.3334 X f" dc 4 22 1 počet prvků zásobníku před zavoláním z $ echo "1 22 333.3334 z f" dc 3 333.3334 22 1