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

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

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

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

Úvod do Operačních Systémů

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x

Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

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

Algoritmizace a programování

Úvod do Operačních Systémů

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

Základní příkazy UNIXu (Linuxu)

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

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

Sada 1 - Základy programování

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

Základy algoritmizace a programování

Úvod do programování. Lekce 1

Základy algoritmizace a programování

PROGRAMOVÁNÍ V SHELLU

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

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

Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování

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

Rozšíření ksh vůči sh při práci s proměnnými

Úvod do Operačních Systémů

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

Standardní vstupy a výstupy procesu filtry

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

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

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

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

Úvod do programovacích jazyků (Java)

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

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

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

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

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

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

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

Struktura a architektura počítačů (BI-SAP) 5

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

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

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

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

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

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

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

Programovací jazyk Pascal

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

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

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

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

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

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

Čísla, reprezentace, zjednodušené výpočty

Jazyk C# a platforma.net

CZ.1.07/1.5.00/

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

Struktura a architektura počítačů (BI-SAP) 6

Správa procesů - manipulace s procesy, signály

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

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

Textové, datumové a časové funkce

Osnova přednášky. Formáty uložení dat. Vyjádření hodnot datového typu. Vyjádření hodnot datového typu. Datové formáty. Výpočetní technika I

Nastroje na zpracovani textu:

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

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

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

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

Zápis programu v jazyce C#

Číslo hodiny. Označení materiálu. 1. Mnohočleny. 25. Zlomky. 26. Opakování učiva 7. ročníku. 27. Druhá mocnina, odmocnina, Pythagorova věta

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

15. Projekt Kalkulačka

Anotace: Digitální učební materiály slouží k zopakování a k testování získaných znalostí a dovedností.

Příloha Jazyk Coach

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal

Architektura počítačů Logické obvody

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

Formáty uložení dat. Výpočetní technika I. Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně

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

Tabulkový procesor. Základní rysy

Algoritmizace a programování

ZÁPOČTOVÁ PRÁCE z UIR

Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde. find adresář -name "maska_souboru" [-print] [-exec proces {} \;]

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

Univerzitní licence MATLABu. Pište mail na: se žádostí o nejnovější licenci MATLABu.

Variace. Mocniny a odmocniny

ČVUT FIT: BI-SKJ: Perl

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

UŽIVATEL, SKUPINA, PROCES

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Tahák na UOS 2008/2009

Úvod, jednoduché příkazy

Architektura počítačů Logické obvody

Základní vzorce a funkce v tabulkovém procesoru

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Formáty uložení dat Výpočetní technika I

Tipy a triky nejenom v shellu nejenom pro programátory

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í

Transkript:

Přednáška 8 Numerické výpočty, komprese a archivace, návratový kód. Katedra číslicových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2011 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti

Celočíselná aritmetika Příkaz: expr výraz Zašle na standardní výstup vyhodnocení výrazu uvedeného jako argumenty. Argumenty (operandy a operátory) musí být odděleny alespoň jednou mezerou. Pozor na kolizi se speciálními znaky shellu (musíme předřadit znak \). Operátor Význam Příklad + sčítání N=`expr $N1 + 3` - odčítání N=`expr $N1 - $N2` * násobení N=`expr 10 \* 21` / celočíselné dělení N=`expr $N1 / $N2` % zbytek po celočíselné dělení N=`expr $N1 % 5`

Celočíselná aritmetika Výrazy se vyhodnocují podle priorit (jako v matematice): nejdříve výrazy v závorkách \( \) potom operace *, /, % a nakonec operace + a - Operace se stejnou prioritou se vyhodnocují zleva doprava. Příklady: $ A=`expr 5 + 3 \* 2` $ echo $A 11 $ A=`expr \( 5 + 3 \) \* 2` $ echo $A 16

Celočíselná aritmetika Interní příkaz shellu let výraz nebo((výraz)) (neumí sh) Operandy a operátory ve výrazu se nemusí oddělovat mezerami. Nehrozí kolize se speciálními znaky shellu. Proměnné ve výrazu se automaticky nahrazují hodnotou (netřeba používat znak $). Operátor Význam Příklad + sčítání ((N = N1 + 3)) - odčítání ((N = N1 - N2)) * násobení ((N = 10 * 21)) / celočíselné dělení ((N = N1 / N2)) % zbytek po celočíselné dělení ((N = N1 % 5)) # základ soustavy ((N=2#1011)) << bitový posun doleva ((N= 2#1011 << 3)) >> bitový posun doprava ((N= 2#1011 >> 3))

Celočíselná aritmetika Operátor Význam Příklad & bitový AND ((N = 2#1011 & 2#1101)) bitový OR ((N = 2#1011 2#1101)) ^ bitový XOR ((N = 2#1011 ^ 2#1101))

Reálná aritmetika Příkaz bc [-c] [ l] soubor] preprocesor k příkazu dc ( -c zobrazí pouze příkazy pro příkaz dc ) -l zajistí volání funkcí z matematické knihovny a scale=20 příkazy načítá ze zadaného souboru, jinak ze standardního vstupu Operátor Význam Příklad + sčítání N=`echo "$N1 + $N2" bc` - odčítání N=`echo "$N1 - $N2" bc` * násobení N=`echo "$N1 * $N2" bc` / celočíselné dělení N=`echo "$N1 / $N2" bc` % zbytek po celočíselné dělení N=`echo "$N1 % $N2" bc` ^ mocnina N=`echo "$N1 ^ $N2" bc` < <= > >= menší, menší nebo rovno, ==!= rovno, různé od

Reálná aritmetika Řídící slova Význam Příklad ibase obase scale základ číselné soustavy na vstupu základ číselné soustav na výstupu počet desetinných míst na výstupu (default 0) N=`echo "ibase=16; A + B" bc` N=`echo "obase=2; 5 + 2" bc` N=`echo "scale 5; 10 / 3" bc` Identifikátor Význam Příklad x Proměnná N=`echo "a=5;b=2; a + b" bc` (malé písmeno becedy) x[i] i-tý element pole x N=`echo "a[1]=3; a[1]+1" bc` x(y,z) volání funkce x s parametry y a z N=`echo length(3.1415)" bc`

Reálná aritmetika Funkce Význam Příklad sqrt(x) druhá odmocnina N=`echo "sqrt($a)" bc` l(x) přirozený logaritmus N=`echo "l($a)" bc` e(x) e^x N=`echo "e($a)" bc` s(x) c(x) sin(x) cos(x) length(x) počet cifer čísla x Příkaz awk/nawk

Archivace a komprese Archivace adresářů/souborů zabalení adresářové struktury (jednotlivých souborů) do jednoho souboru (archivu) Komprese (komprimace) souborů zmenšení objemu originálního souboru na základě odstranění redundantní informace z originálního souboru jedná o bezeztrátovou kompresi Použití přenos dat zálohování (úplná záloha, přírůstková záloha!!!) Problémy relativní/absolutní cesta atributy souborů (vlastník, čas modifikace, přístupu, ) hard linky symbolické linky

Archivace Příkaz tar (Tape ARchive) Vytvoření archivu (create), používá se přípona.tar tar cvf archiv.tar adresáře/soubory find. > list.txt ; tar cvf archiv.tar I list.txt Přidání adresářů/souborů do archivu (update) tar uvf archiv.tar adresáře/soubory Prohlížení archivu (test) tar tvf archiv.tar Rozbalení archivu (extract) tar xv[op]f archiv.tar Obnova jednotlivých souborů z archivu (recover) tar rv[op]f archiv.tar soubory

Příkazy compress, uncompress, zcat Komprese Komprese dat pomocí LZW (Lampel-Ziv-Welch kódování) Komprimování (používá standardně příponu.z) compress soubor cat soubor compress > soubor.z tar cv soubory compress > archiv.tar.z Dekomprimování uncompress [-f] soubor.z zcat soubor.tar.z tar xvf -

Komprese Příkazy gzip, gunzip, gzcat Koprese pomocí LZ77 (Lempel-Ziv kódování) Komprimování (používá standardně příponu.gz) gzip [-9] soubor cat soubor gzip > soubor.gz tar cv soubory gzip > archiv.tar.gz Dekomprimování gunzip soubor.gz gzcat soubor.tar.gz tar xvf -

Komprese Příkazy bzip2, bunzip2, bzcat Koprese pomocí kombinace BWT (Burrows-Wheelerova transformace), MTF (Move-to-Front) transformace a Huffmanova kódování Komprimování (používá standardně příponu.bz2) bzip2 [-9] soubor cat soubor bzip2 > soubor.bz2 tar cv soubory bzip2 > archiv.tar.bz2 Dekomprimování bunzip soubor.bz2 bzcat soubor.tar.bz2 tar xvf -

Archivace a komprese Příkaz zip, unzip Kombinuje kompresi a archivaci do jednoho příkazu. Používá formát vytvořený Philem Katzem (program PKZIP). Vytvoření koprimovaného archivu (používá se standardně přípona.zip) zip archiv.zip soubory zip r[9] archiv.zip adresáře Zobrazení obsahu archivu unzip l archiv.zip Rozbalení archivu unzip archiv.zip [adresáře/soubory]

Příkaz jar (Java ARchive tool) Archivace a komprese Založen na ZIP formátu a ZLIB. Vznikl jako nástroj pro archivaci JAVA balíčků. Syntaxe podobná příkazu tar. Používá se přípona.jar. Vytvoření archivu (create) jar cvf archiv.jar adresáře/soubory Prohlížení archivu (test) jar tvf archiv.jar Rozbalení archivu (extract) jar xv[op]f archiv.jar

Příkaz gtar (GNU tar) Archivace a komprese GNU implementace příkazu tar, který umí např. při archivaci zavolat příslušný komprimační program. Vytvoření komprimovaného archivu gtar cvzf archiv soubory (pomocí compress) gtar cvzf archiv soubory (pomocí gzip) gtar cvjf archiv soubory (pomocí bzip2)

Návratový kód Každý proces při ukončení vrací návratový kód. Návratový kód = přirozené číslo 0, 1,...,255 0 úspěšné ukončení procesu 1,...,255 chyba při běhu procesu, např. 1 program byl spuštěn, ale proces nebyl úspěšný 2 program nepracoval 127 program nebyl nalezen Návratový kód posledního příkazu spuštěného na popředí je uložen v proměnné $? Skript shellu lze ukončit s návratový kódem n pomocí příkazu exit [n] Funkce shellu lze ukončit s návratový kódem n pomocí příkazu return [n]

Příklady $ grep 'root' /etc/passwd root:x:0:1:super-user:/root:/sbin/sh $ echo $? 0 $ grep 'XXX' /etc/passwd $ echo $? 1 $ grep 'root' /XXX grep: can't open /XXX $ echo $? 2 $ XXXgrep 'root' /etc/passwd -bash: XXXgrep: command not found $ echo $? 127

Příkaz test a jeho synonyma test výraz Vrací návratový kód na základě vyhodnocení výrazu uvedeného jako jeho parametry. [ výraz ] je synonymem příkazu test výraz [[ výraz ]] jen u ksh a bash, zabudovaný příkaz, rozšířená varianta -a je nahrazeno && -o je nahrazeno (( číselný výraz )) jen u ksh a bash, true, pokud hodnota výrazu je různá od nuly na místě výrazu lze použít i přiřazovací příkaz numerickým proměnným se nepředřazuje znak $ operandy se nemusí oddělovat mezerami V ksh i bash je příkaz test zabudovaným příkazem (tzn. rychlejší).

Příklady $ test -f /etc/passwd ; echo $? 0 $ [ -f /etc/passwd ] ; echo $? 0 $ test -d /etc/passwd ; echo $? 1 $ [ -d /etc/passwd ] ; echo $? 1 $ test -f /etc/passwd -a -r /etc/passwd ; echo $? 0 $ [ -f /etc/passwd -a -r /etc/passwd ]; echo $? 0

Příklady $ P="/etc/group" $ [ -r $P ] ; echo $? 0 $ [ -r $P ] && echo "soubor $P je citelny" soubor /etc/group je citelny $ P="/etc/shadow" $ [ -r $P ] ; echo $? 1 $ [ -r $P ] echo "soubor $P neni citelny" soubor /etc/shadow neni citelny $! [ -r $P ] && echo "soubor $P neni citelny" soubor /etc/shadow neni citelny

Příklady $ test 2 -lt 7 ; echo $? 0 $ [ 2 -lt 7 ] ; echo $? 0 $ test 2 -gt 7 ; echo $? 1 $ [ 2 -gt 7 ] ; echo $? 1 $ A=10 ; B=7 $ test $A -eq $B echo "$A neni rovno $B" 10 neni rovno 7 $ [ $A -gt $B ] && echo "$A > $B" 10 > 7

Příklady využití návratového kódu #!/sbin/sh case "$1" in 'start') [ -x /usr/lib/lpsched ] && /usr/lib/lpsched ;; 'stop') *) esac [ -x /usr/lib/lpshut ] && /usr/lib/lpshut ;; echo "Usage: $0 { start stop }" exit 1 ;;

Příklady využití návratového kódu Skript while1.sh: #!/bin/sh MAX=5 I=1 while [ $I -le 10 ] do echo "Hodnota I je $I" I=`expr $I + 1` done