Pole buněk (cell arrays)

Rozměr: px
Začít zobrazení ze stránky:

Download "Pole buněk (cell arrays)"

Transkript

1 Stránka 1 z 14 Pole buněk (cell arrays) Pole buněkjsou datovým typem MATLABu (cell) a umožňují uložit různé druhy dat do jedné proměnné. Mohou mít rozměry 1 n, m 1 nebo m n (nebo být vícerozměrná). Vytvoření pole buněk Pole buněk vytváříme pomocí složených závorek, do kterých uvedeme jednotlivé prvky pole buněk. Příklad - pole buněk o rozměru 2 2: P = {[1 4 3; 0 5 8; 7 2 9], 'Anne Smith'; 3+7i, -pi:pi/4:pi}; pomocí funkce cell: c = cell(n)... pole buněk typu n#&215;n s prázdnými prvky (n musí být skalár); c = cell(m, n) nebo c = cell([m, n])... pole buněk typu m n s prázdnými prvky (vstupy musí být skaláry); c = cell(m, n, p,...) nebo c = cell([m n p...])... pole buněk o rozměrech m n p... s prázdnými prvky (vstupy musí být skaláry); c = cell(size(a))... pole buněk stejného rozměru jako A, s prázdnými prvky. Příklad: >> A = ones(2,2); >> c = cell(size(a)) c = [] [] [] [] Tato funkce je také vhodná pro předalokování paměti pro pole buněk - jednotlivé prvky pak inicializujeme pomocí přiřazovacího příkazu (viz níže - přístup k prvkům pole buněk). pomocí jednotlivých přiřazovacích příkazů: se složenými závorkami (tzv. content indexing): >> P{1,1} = [1 4 3; 0 5 8; 7 2 9]; >> P{1,2} = 'Anne Smith'; >> P{2,1} = 3+7i; >> P{2,2} = -pi:pi/10:pi; s kulatými závorkami (tzv. cell indexing): >> P(1,1) = {[1 4 3; 0 5 8; 7 2 9]}; >> P(1,2) = {'Anne Smith'};

2 Stránka 2 z 14 >> P(2,1) = {3+7i}; >> P(2,2) = {-pi:pi/10:pi;} Pozn. 1: oba uvedené způsoby vytvoří stejné pole buněk jako příkaz P = {[1 4 3; 0 5 8; 7 2 9], 'Anne Smith'; 3+7i, -pi:pi/4:pi}; Pozn. 2: přiřazením lze pole buněk "nafukovat" (MATLAB udržuje obdélníkové schéma, a proto "chybějící" neinicializované prvky obsahují prázdnou matici): >> P(3,3) = {5}; dává tento výsledek: Vnořená pole buněk Prvkem pole buněk může být i jiné pole buněk: >> retezce = char('anne Smith', '9/12/94', 'Class II', 'Obs. 1', 'Obs. 2'); >> C2 = {'text' [4 2; 1 5]; [ ; 1.4 0].02+8i}; >> C1 = {[3 4 2; 9 7 6; 8 5 1] retezce [.25+3i 8-16i; 34+5i 7+.92i];... [ ] [ ; ; ] C2} Obsah pole buněk C1:

3 Paměťové nároky Stránka 3 z 14 MATLAB si uchovává interní informace o poli buněk ve spojitém segmentu paměti (tzv. header). Při zvětšení pole buněk proto může dojít k chybě "out of memory". Samotné prvky pole buněk jsou v paměti uchovávány nespojitě. Vždy je lepší paměť předalokovat pomocí funkce cell, pokud dopředu známe rozměry pole buněk. Přístup k prvkům pole buněk Přístup k obsahu jednoho prvku pole buněk - složené závorky s uvedením indexu/ů (podle počtu dimenzí): >> C1{1,1} % obsahem je matice >> C1{2,3} % obsahem je jiné pole buněk 'text' [2x2 double] [2x2 double] [ i] >> C1{2,3}{2,1} % přístup k prvku vnořeného pole buněk >> C1{2,3}{2,1}(1,2) % prvek matice ve vnořeném poli buněk Při změně prvku se indexovaný prvek uvede na levou stranu přiřazení: >> C1{2,3}{2,1}(1,2) = 8 C1 = [3x3 double] [5x10 char ] [2x2 double] [1x5 double] [3x3 double] {2x2 cell } >> C1{2,3}{2,1} % kontrola změny prvku Přístup k jednomu prvku jakožto poli buněk - kulaté závorky s uvedením indexu/ů (nevrátí obsah, ale jednoprvkové pole buněk):

4 Stránka 4 z 14 >> C1(1,1) % vrátí jednoprvkové pole buněk [3x3 double] >> ans{1} % tj. C1{1,1} je totéž jako C1(1,1){1} Přístup k obdélníkové časti pole buněk - kulaté závorky a "vektorová indexace": >> C(3,1:4) = {magic(5), 'Hello', uint8(100), [1:3:19]} C = [] [] [] [] [] [] [] [] [5x5 double] 'Hello' [100] [1x7 double] >> clear C >> C(2:3,5:6) = {magic(5), 'Hello'; uint8(100), [1:3:19]} C = [] [] [] [] [] [] [] [] [] [] [5x5 double] [ 100] [] [] [] [] 'Hello' [1x7 double] Pokud přiřazujeme do části pole buněk hodnoty, tak musí souhlasit rozměry! >> clear C >> C(2:3,5:6) = {magic(5), 'Hello', uint8(100), [1:3:19]} % chyba??? Subscripted assignment dimension mismatch. Mazání prvku/ů v poli buněk Jednotlivé buňky (prvky) pole buněk lze mazat - smazat lze celý řádek nebo sloupec (přiřazením prázdné matice). Pokud při "jednoprvkové" indexaci smažeme jeden prvek, tak výsledné pole buněk bude typu 1 n. Příklad: >> D = C1; >> D(:,2) = [] % pole typu 2 2 >> D = C1; >> D(6) = [] % pole typu 1 5 Spojování polí buněk Pole buněk lze spojovat: pomocí hranatých závorek - vznikne pole buněk s prvky spojovaných polí, pomocí složených závorek - vznikne pole buněk, kde prvky jsou spojovaná pole buněk, pomocí funkce cat: C = cat(dim, A, B)... spojí obě pole buněk podle zadané dimenze, C = cat(dim, A1, A2, A3, A4,...)... spojí všechna zadaná pole buněk podle zadané dimenze.

5 Stránka 5 z 14 Jsou-li vstupní pole neprázdná, pak cat(2, A, B) vrací totéž jako [A, B] a cat(1, A, B) vrací totéž jako [A; B]. pomocí funkce horzcat: C = horzcat(a1, A2,...)... spojí vstupní proměnné v horizontálním směru (podle druhé dimenze) - vstupy musí mít stejný počet řádků (první dimenzi) a zbylé dimenze (vyšší než 2)! MATLAB volá C = horzcat(a1, A2,...) pro syntaxi C = [A1 A2...]. pomocí funkce vertcat: C = vertcat(a1, A2,...)... spojí vstupní proměnné ve vertikálním směru (podle první dimenze) - vstupy musí mít stejný počet sloupců (druhou dimenzi) a zbylé dimenze (vyšší než 2)! MATLAB volá C = vertcat(a1, A2,...) pro syntaxi C = [A1; A2;...]. Funkce pro práci s poli buněk Zjišťování rozměrů pole buněk Pro zjišťování rozměrů lze použít již známé funkce: size... rozměr pole buněk: d = size(x)... vrátí n-prvkový vektor (n je počet dimenzí) s rozměry, [m,n] = size(x)... počet řádků a sloupců pole buněk, m = size(x,dim)... počet prvků v dané dimenzi dim (kladný skalár), [d1,d2,d3,...,dn] = size(x)... podrobnosti v nápovědě. length... počet prvků v největší dimenzi: >> A=cell(12,32,8,1,4); >> length(a) 32 ndims... počet dimenzí pole buněk numel... počet prvků (ve všech dimenzích) pole buněk Zobrazení obsahu pole buněk celldisp... výpis obsahu jednotlivých buněk (do Command Window) Vyzkoušejte: >> celldisp(c2) >> celldisp(c1) cellplot... grafické znázornění struktury pole buněk (do okna Figure) Vyzkoušejte: >> cellplot(c2) >> cellplot(c1) deal... rozdistribuuje vstupní pole do výstupních proměnných (od MATLABu 7.0 je toto možno provádět bez funkce deal, pouze s použitím operátoru :) Vyzkoušejte: >> P2 = {magic(6) ones(3,1) eye(3) zeros(3,1)}; >> [a,b,c,d] = deal(p2{:}) >> [a,b,c,d] = P2{:} % od MATLABu 7.0

6 Změna rozměru pole buněk Stránka 6 z 14 Pokud potřebujeme přeuspořádat pole buněk (se zachováním počtu prvků!), lze využít funkci reshape: B = reshape(a,m,n)... převede A "po sloupcích" na rozměr m n (nelze přidat ani odstranit prvky - m.n se musí shodovat s původním počtem prvků!): >> C1, numel(c1) C1 = [3x3 double] [5x10 char ] [2x2 double] [1x5 double] [3x3 double] {2x2 cell } 6 >> D = reshape(c1,3,2) D = [3x3 double] [3x3 double] [1x5 double] [2x2 double] [5x10 char ] {2x2 cell } >> D = reshape(c1,4,2) % chyba??? Error using ==> reshape To RESHAPE the number of elements must not change. B = reshape(a,m,n,p,...) nebo B = reshape(a,[m n p...])... převede na vícerozměrné pole buněk, opět musí souhlasit počet nových a starých prvků B = reshape(a,...,[],...)... dopočítá chybějící dimenzi a převede pole buněk na nové rozměry - [] smí být uvedeny právě jednou Aplikace funkcí na pole buněk cellfun... zavolá danou funkci pro každý prvek skalárního pole buněk varargin... počet vstupů funkce (u funkce s proměnným počtem vstupů) varargout... počet výstupů funkce (u funkce s proměnným počtem výstupů) Informační funkce Funkce pro zjištění, zda proměnná je datového typu pole buněk (cell array): iscell. Konverze na jiné datové typy cell2struct... převede pole buněk na pole struktur struct2cell... převede pole struktur na pole buněk cell2mat... převede pole buněk obsahující matice na jednu velkou matici (rozměry prvků pole buněk musí dohromady dát "obdélník"!) mat2cell... rozdělí matici dopole buněk podle zadaných rozměrů (2. a 3. vstup jsou "dělicí vektory") num2cell... převede pole čísel (matici) na pole buněk - každý prvek je jedna buňka

7 Struktury (structures) Stránka 7 z 14 Struktura je datový typ MATLABu (struct), který obsahuje pojmenované "datové kontejnery" - položky (fields). Položka struktury smí obsahovat data libovolného datového typu. Příklad 1: struktura s s položkami a (obsahuje vektor), b (obsahuje řetězec) a c (obsahuje matici): Příklad 2: struktura patient s položkami name (obsahuje řetězec), billing (obsahuje skalár) a test (obsahuje matici): Struktura tedy podobně jako pole buněk umožňuje uchovávat heterogenní data, ale navíc díky pojmenovaným položkám umožňuje opatřit tato data "popiskem". Vytvoření struktury Jména položek struktury musí splňovat stejná pravidla jako názvy proměnných v MATLABu (viz 1. týden). Rozlišují se velká a malá písmena (case-sensitive názvy položek). Struktury lze vytvářet: pomocí přiřazovacího příkazu - pro přístup k položce struktury se používá tečka: >> s.a = [ ]; % vytvoří strukturu s 1 položkou >> s.b = 'James'; % přidá další položku >> s.c = magic(3); >> s s = a: [ ] b: 'James' c: [3x3 double] pomocí funkce struct (vstupem jsou dvojice jméno položky - hodnota): >> s = struct('a',[ ], 'b','james', 'c',magic(3));

8 Vnořené struktury Stránka 8 z 14 Prvkem struktury může být jiná struktura, např.: >> S1 = struct('jmeno','jan', 'narozen',1980); >> S2 = struct('clovek',s1, 'vyska',180, 'vaha',72.4); Paměťové nároky Struktura nevyžaduje souvislý blok paměti, pouze každá její položka musí mít svůj spojitý blok paměti. Dále se spojitě ukládají interní informace o struktuře (např. jména položek atp.). Pro případ vytvoření velkého pole struktur je vhodné předalokovat paměť. To lze provést jedním z následujících způsobů (příklady jsou pro dvourozměrné pole 25 50, tj. "matici" struktur): S(25,50) = struct( 'a', [], 'b', [], 'c',[]); % inicializujeme poslední prvek neboli S(25,50).a = []; S(25,50).b = []; S(25,50).c = []; S(1:25,1:50) = struct('a', 20, 'b', 30, 'c', 40); % přiřadíme do všech prvků stejnou strukturu neboli S = repmat(struct('a', 20, 'b', 30, 'c', 40), [25 50]); Sdružování struktur do polí Pro efektivnější zpracování dat se struktury často sdružují do polí. Pole struktur lze vytvářet: pomocí přiřazovacího příkazu - za název pole struktur se uvede do kulatých závorek index do pole struktur a přiřadí se mu data (jedna struktura), pomocí funkce struct: výsledek funkce přiřadíme do prvku pole struktur, vytvoříme celé pole struktur pomocí polí buněk místo hodnot položek. Příklad: rozšíříme strukturu s na pole struktur: 1. způsob s(2).a='anne'; s(2).b=pi; s(2).c=[1:7]'; 2. způsob s(2) = struct('a','anne', 'b',pi, 'c',[1:7]'); 3. způsob % vše v jednom clear s s = struct('a',{[ ], 'Anne'},... 'b',{'james',pi},... 'c',{magic(3),[1:7]'})

9 Stránka 9 z 14 Ve všech případech dostaneme tento výsledek: Poznámka: pro efektivnější zpracování je vhodné, aby stejně pojmenované položky obsahovaly podobná data (např. aby v položce a byl vždy řetězec apod.). MATLAB udržuje úplnost každé struktury v poli struktur, tzn. pokud nepřiřadíme data do nějaké položky, tak je chápána jako prázdná matice: >> s(3).c = [ ] % položky 'a' a 'b' budou prázdné s = 1x3 struct array with fields: a b c POZOR: pokud budeme do pole struktur přidávat prvek pomocí funkce struct, tak musíme vyplnit VŠECHNY položky! >> s(4) = struct('a','george', 'c',[1:5]) % chybí položka 'b'??? Subscripted assignment between dissimilar structures. Přístup k položkám struktury Pro přístup k položce struktury se používá tečka a název položky. Příklad: >> auto = struct('typ','skoda Fabia', 'barva','modra', 'rok',2003); >> auto.barva modra V případě pole struktur se příslušný prvek indexuje kulatými závorkami s indexem do pole, a pak tečka a jméno položky struktury. Příklad:

10 Stránka 10 z 14 >> auto(2) = struct('typ','skoda Octavia', 'barva','stribrna', 'rok',2005); >> auto(2).barva stribrna Pozn.: lze indexovat i část pole struktur nebo vypsat hodnoty jedné položky všech struktur v poli: >> auta2 = auto(1:2); % první dvě auta - 'auta2' je opět pole struktur >> auto.rok % výpis hodnot položky 'rok' u VŠECH struktur v poli >> v = [auto.rok] % v tomto případě je možné uložit hodnoty do vektoru V případě vnořených struktur se tečka opakuje tolikrát, kolikrát je potřeba. Příklad: >> auto(3) = struct('typ',struct('a','audi','b','bmw'), 'barva','bila', 'rok',2003); >> auto(3).typ.a Audi Dynamická jména položek MATLAB umožňuje přistupovat k položkám struktury pomocí dynamického jména - je nutno použít tečku a za ní kulaté závorky s výrazem, který bude převeden na jméno konkrétní položky: jméno_struktury.(výraz) (při provádění příkazu se výraz převede na jméno položky). Funkce pro práci s položkami struktury funkce popis fieldnames vrátí jména všech položek struktury jako pole buněk (obsahuje řetězce) isfield zjistí, zda daná položka existuje v dané struktuře getfield vrátí obsah zadané položky v zadané struktuře setfield nastaví nový obsah položky struktury a vrátí změněnou strukturu rmfield vymaže položku ze struktury orderfields vrátí kopii zadané struktury, která má abecedně seřazené položky Funkce pro práci se strukturou funkce struct isstruct struct2cell cell2struct size length ndims numel popis vytvoření struktury, resp. polí struktur (popis výše) jedná se o strukturu? fce je popsána u polí buněk

11 Stránka 11 z 14 reshape deal cat horzcat vertcat structfun aplikuje funkci na každou položku (skalární) struktury Třídy a objekty Protože v MATLABu 7.6 byl objektový model přepracován, tak následující text bude obsahovat podle potřeby poznámku, které verze se text odstavce týká: M+7.6 (nový), M-7.6 (starý). Starý objektový model je stále ještě podporován. Třídy a objekty umožňují přidat do MATLABu nové typy dat a nové operace. Třída může obsahovat členské proměnné a metody (členské funkce). Objekt je instancí dané třídy. Výhody OOP Přetížení funkcí a operátorů - lze vytvářet metody nad existujícími funkcemi MATLABu. (Pokud se volá funkce, jejímž parametrem je objekt, MATLAB nejprve zjistí, zda je taková metoda pro danou třídu definována. Pokud ano, MATLAB ji zavolá, jinak je volána normální funkce MATLABu.) Zapouzdření dat a metod - členské proměnné a metody nejsou viditelné mimo objekt (např. z příkazové řádky) - lze je použít pouze v metodách dané třídy. Tím je zajištěno, že vlastnosti objektu jsou chráněné před metodami, které nejsou určeny pro danou třídu. Dědičnost - lze vytvářet hierarchii tříd (rodiče a potomky), potomek dědí data i metody od rodičovské třídy; lze dědit od jednoho rodiče (single inheritance) nebo od více rodičů (multiple inheritance). Agregace - lze vytvořit třídy, kde objekt je obsažen v jiném objektu. Hierarchie datových typů v MATLABu Je vidět, že user classes jsou odvozeny ze struktur. Všechny třídy, které vytvoříme, spadají pod struktury.

12 Vytváření objektů... M-7.6 Stránka 12 z 14 Třídy lze do prostředí MATLABu přidat pomocí adresáře (class directory), kde jsou uloženy M-soubory s metodami (M-funkce) a konstruktor (M-funkce obsahující volání funkceclass. Objekty vytváříme pomocí konstruktoru třídy (s předáním příslušných argumentů). Konstruktor nejprve vytvoří strukturu - její položky budou členské proměnné třídy (vlastnosti objektu). Před koncem funkce/konstruktoru musí být zavolána funkce proměnná = class(proměnná,'třída'), která z dané proměnné (typu struktura) vytvoří objekt. Tato proměnná (objekt) je pak výstupem konstruktoru. Konstruktor by měl zkontrolovat, zda vytvářený objekt je bezrozporný a validní!!! V MATLABu se konstruktor jmenuje stejně jako třída. Např. volání konstruktoru příkazem p = polynom([ ]); vytvoří objekt nazvaný p patřící do třídy polynom. Poté lze používat všechny metody definované pro třídu polynom. Metody pro danou třídu musí být umístěny v jednom adresáři (tzv. class directory), který se musí Toto je první místo, kde MATLAB hledá metody pro danou třídu. Syntaxe pro volané metody (daného objektu) jsou podobné jako u obyčejných funkcí: [out1,out2,...] = metoda(objekt,arg1,arg2,...); Class directory = adresář, jehož jméno začíná (je-li jméno třídy a jméno konstruktoru polynom, pak class directory se Jsou v něm uloženy všechny metody i konstruktor (definice) dané třídy. Při práci s konstruktorem a metodami dané třídy musí být pracovní adresář MATLABu nastaven tak, aby class directory byl bezprostředně jeho podadresářem! (Nebo přidat do vyhledávacích cest.) Přidání class directory do cest MATLABu Po vytvoření class directory je potřeba aktualizovat cesty MATLABu (MATLAB path), aby mohl nalézt zdrojové soubory pro třídu. Class directory nemůže být přidán přímo, ale přidáme rodičovský adresář: např. umístěná v adresáři c:/my_classes/@polynom bude přidána do cest MATLABu použitím příkazu addpath c:/my_classes; Privátní metody Privátní metody mohou být volány pouze jinými metodami dané třídy. Definujeme je tak, že příslušné M- soubory umístíme do podadresáře private (v Tedy update_obj nemůže být volána z příkazového řádku MATLABu, ale mohou ji používat metody dané třídy.

13 Ladění metod Stránka 13 z 14 Podobá se ladění obyčejných funkcí, ale je potřeba přidat jméno class directory: Vytváření objektů... M+7.6 V novém objektovém modelu je konstruktor (resp. definice třídy) i metody uložen v jednom M-souboru. Přibylo několik klíčových slov, které umožňují oddělit členské proměnné od metod a především celý M-soubor začíná klíčovým slovem classdef. Pusťte si demo na Prozkoumejte nápovědu (např. na Přetěžování operátorů Class directory může také obsahovat funkce pro různé operátory MATLABu (např. aritmetické operátory, spojování atd.) - tzv. přetížené operátory: Operace M-soubor Popis a + b plus(a,b) součet a - b minus(a,b) rozdíl -a uminus(a) unární plus +a uplus(a) unární minus a.*b times(a,b) násobení po prvcích a*b mtimes(a,b) násobení (maticové) a./b rdivide(a,b) dělení po prvcích zprava a.\b ldivide(a,b) dělení po prvcích zleva a/b mrdivide(a,b) dělení (maticové) zprava a\b mldivide(a,b) dělení (maticové) zleva a.^b power(a,b) umocnění po prvcích a^b mpower(a,b) umocnění (maticové) a < b lt(a,b) menší než a > b gt(a,b) větší než a <= b le(a,b) menší nebo rovno a >= b ge(a,b) větší nebo rovno a ~= b ne(a,b) nerovno a == b eq(a,b) rovno a & b and(a,b) logické AND

14 Stránka 14 z 14 a b or(a,b) logické OR ~a not(a) logické NOT a:d:b a:b colon(a,d,b) colon(a,b) operátor dvojtečka a' ctranspose(a) transpozice (komplexní) a.' transpose(a) transpozice výpis do command window display(a) výpis [a b] horzcat(a,b,...) horizontální spojení proměnných [a; b] vertcat(a,b,...) vertikální spojení proměnných a(s1,s2,...sn) subsref(a,s) indexace a(s1,...,sn) = b subsasgn(a,s,b) přiřazení do prvku (dle indexu) b(a) subsindex(a) indexace Změna definice třídy clear classes

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

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans = '.' - transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' 1 4 2 5 3-6 {} - uzavírají (obklopují) struktury (složené proměnné) - v případě

Více

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í

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í realmax maximální použitelné reálné kladné číslo realmin minimální použitelné reálné kladné číslo (v absolutní hodnotě, tj. číslo nejblíž k nule které lze použít) 0 pi Ludolfovo číslo π = 3,14159 e Eulerovo

Více

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

KTE / PPEL Počítačová podpora v elektrotechnice KTE / PPEL Počítačová podpora v elektrotechnice Ing. Lenka Šroubová, Ph.D. email: lsroubov@kte.zcu.cz http://home.zcu.cz/~lsroubov 3. 10. 2012 Základy práce s výpočetními systémy opakování a pokračování

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

X37SGS Signály a systémy

X37SGS Signály a systémy X7SGS Signály a systémy Matlab minihelp (poslední změna: 0. září 2008) 1 Základní maticové operace Vytvoření matice (vektoru) a výběr konkrétního prvku matice vytvoření matice (vektoru) oddělovač sloupců

Více

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných jakési nádoby na hodnoty jsou různých typů při běžné

Více

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu Vytěžování dat, cvičení 1: Úvod do Matlabu Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 24 Úvod do Matlabu Proč proboha Matlab? Matlab je SW pro

Více

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Seminář z MATLABU. Jiří Krejsa. A2/710 krejsa@fme.vutbr.cz

Seminář z MATLABU. Jiří Krejsa. A2/710 krejsa@fme.vutbr.cz Seminář z MATLABU Jiří Krejsa A2/710 krejsa@fme.vutbr.cz Obsah kurzu Posluchači se seznámí se základy systému Matlab, vědeckotechnickými výpočty, programováním v Matlabu včetně pokročilých technik, vizualizací

Více

Stručný návod k programu Octave

Stručný návod k programu Octave Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,

Více

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

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

Pointery II. Jan Hnilica Počítačové modelování 17

Pointery II. Jan Hnilica Počítačové modelování 17 Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace

Více

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

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

Více

Příklad elektrický obvod se stejnosměrným zdrojem napětí

Příklad elektrický obvod se stejnosměrným zdrojem napětí Příklad elektrický obvod se stejnosměrným zdrojem napětí Určete proudy 18, 23, 4, 5, 67 v obvodu na obr., je-li dáno: 1 = 1 Ω, 2 = 2 Ω, 3 = 3 Ω, 4 = 5 Ω, 5 = 3 Ω, 6 = 2 Ω, 7 = 4 Ω, 8 = 4,5 Ω, U = 6 V.

Více

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

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie

Více

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Základy programování: Algoritmizace v systému MATLAB

Základy programování: Algoritmizace v systému MATLAB Základy programování: Algoritmizace v systému MATLAB Magda Francová magda.francova@ujep.cz CN 463 23. února 2010 Úvodní hodina Podmínky pro zápočet 80% účast na hodinách (můžete 3x chybět). Úvodní hodina

Více

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat

Více

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

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

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

Univerzitní licence MATLABu. Pište mail na: se žádostí o nejnovější licenci MATLABu. Univerzitní licence MATLABu Pište mail na: operator@service.zcu.cz se žádostí o nejnovější licenci MATLABu. * násobení maticové K = L = 1 2 5 6 3 4 7 8 Příklad: M = K * L N = L * K (2,2) = (2,2) * (2,2)

Více

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

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Dotazy tvorba nových polí (vypočítané pole)

Dotazy tvorba nových polí (vypočítané pole) Téma 2.4 Dotazy tvorba nových polí (vypočítané pole) Pomocí dotazu lze také vytvářet nová pole, která mají vazbu na již existující pole v databázi. Vznikne tedy nový sloupec, který se počítá podle vzorce.

Více

EXCELentní tipy a triky pro mírně pokročilé. Martina Litschmannová

EXCELentní tipy a triky pro mírně pokročilé. Martina Litschmannová EXCELentní tipy a triky pro mírně pokročilé Martina Litschmannová Obsah semináře definování názvu dynamicky měněné oblasti, kontingenční tabulky úvod, kontingenční tabulky násobné oblasti sloučení, převod

Více

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

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X %------------------------------------- % 4. cvičení z předmětu PPEL - MATLAB %------------------------------------- % Lenka Šroubová, ZČU, FEL, KTE % e-mail: lsroubov@kte.zcu.cz %-------------------------------------

Více

Objektové programování

Objektové programování Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k

Více

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

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Operace s vektory a maticemi + Funkce

Operace s vektory a maticemi + Funkce + Funkce 9. března 2010 Operátory Operátory Aritmetické: Operátory Operátory Aritmetické: maticové + (sčítání), (odčítání), (násobení), / (dělení matematicky je maticové delení násobení inverzní maticí),

Více

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

Přetěžování operátorů Přetěžování operátorů Cíle lekce Cílem lekce je seznámit se s mechanizmem přetížení operátorů a s použitím tohoto mechanizmu při návrhu a implementaci programů. Po absolvování lekce budete: umět využívat

Více

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

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

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden

Více

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

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2 * násobení maticové Pro čísla platí: Pro matice - násobení inverzní maticí inv inverzní matice A -1 k dané matici A je taková matice, která po vynásobení s původní maticí dá jednotkovou matici. Inverzní

Více

KIV/ZIS cvičení 5. Tomáš Potužák

KIV/ZIS cvičení 5. Tomáš Potužák KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí

Více

František Batysta batysfra@fjfi.cvut.cz 19. listopadu 2009. Abstrakt

František Batysta batysfra@fjfi.cvut.cz 19. listopadu 2009. Abstrakt Automatický výpočet chyby nepřímého měření František Batysta batysfra@fjfi.cvut.cz 19. listopadu 2009 Abstrakt Pro správné vyhodnocení naměřených dat je třeba také vypočítat chybu měření. Pokud je neznámá

Více

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace. Popis ovládání 1. Úvod Tento popis má za úkol seznámit uživatele se základními principy ovládání aplikace. Ovládání je možné pomocí myši, ale všechny činnosti jsou dosažitelné také pomocí klávesnice. 2.

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce

Více

POČÍTAČE A PROGRAMOVÁNÍ

POČÍTAČE A PROGRAMOVÁNÍ POČÍTAČE A PROGRAMOVÁNÍ Vícerozměrná statická a dynamická pole, Pole polí Miroslav Vavroušek PPI 08 V1.1 Opakovaní z minulé přednášky Datová pole Jednorozměrná statická datová pole Dynamická datová pole

Více

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

přetížení operátorů (o) přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního

Více

MATrixLABoratory letný semester 2004/2005

MATrixLABoratory letný semester 2004/2005 1Prostedie, stručný popis okien Command Window příkazové okno pro zadávání příkazů v jazyku Matlabu. Workspace zde se zobrazuje obsah paměti; je možné jednotlivé proměnné editovat. Command History dříve

Více

Da D to t v o é v ty t py IB111: Datové typy

Da D to t v o é v ty t py IB111: Datové typy Datové typy IB111: Datové typy Data a algoritmizace jaká data potřebuji pro vyřešení problému? jak budu data reprezentovat? jaké operaci s nimi potřebuji provádět? Navržení práce s daty je velice důležité

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

II. Úlohy na vložené cykly a podprogramy

II. Úlohy na vložené cykly a podprogramy II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.

Více

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

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 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 podmínka je libovolný logický výraz s logickou hodnotou

Více

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika FUNKCE 3 Autor: Mgr. Dana Kaprálová Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového

Více

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

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write(\nPrumerna teplota je {0}, tprumer); Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());

Více

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: vzdělávací

Více

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s

Více

Návod na velmi jednoduchý import z XLS souboru včetně atributů

Návod na velmi jednoduchý import z XLS souboru včetně atributů Návod na velmi jednoduchý import z XLS souboru včetně atributů Připravte si, jaké parametry produktu budete importovat a ty vepište do jednotlivých sloupců. Soubor uložíme (v tomto případě jako import.xls)

Více

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

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty. Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné

Více

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

LEKCE 6. Operátory. V této lekci najdete: LEKCE 6 Operátory V této lekci najdete: Aritmetické operátory...94 Porovnávací operátory...96 Operátor řetězení...97 Bitové logické operátory...97 Další operátory...101 92 ČÁST I: Programování v jazyce

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Práce s maticemi Přednáška 9 23. listopadu 2009 Pole: vektory a matice Vektor (jednorozměrné pole) deklarace statická int v1[5]; dynamická int * v2; + přidělení paměti:

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele Strukturu lze funkci předat: hodnotou i pomocí ukazatele pouze pomocí ukazatele (reference na strukturu) pouze hodnotou (kopie struktury) (pole[i])+j adresa prvku na souřadnicích i, j adresa i-tého řádku

Více

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁNÍ V SHELLU PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

Lineární spojový seznam (úvod do dynamických datových struktur)

Lineární spojový seznam (úvod do dynamických datových struktur) Lineární spojový seznam (úvod do dynamických datových struktur) Jan Hnilica Počítačové modelování 11 1 Dynamické datové struktury Definice dynamické struktury jsou vytvářeny za běhu programu z dynamicky

Více

Databázové systémy. Cvičení 6: SQL

Databázové systémy. Cvičení 6: SQL Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi

Více

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; } Pole Kdybychom v jazyce C++chtěli načíst větší počet čísel nebo znaků a všechny bylo by nutné všechny tyto hodnoty nadále uchovávat v paměti počítače, tak by bylo potřeba v paměti počítače alokovat stejný

Více

Jazyk C++ I. Polymorfismus

Jazyk C++ I. Polymorfismus Jazyk C++ I Polymorfismus AR 2013/2014 Jazyk C++ I Operátory Co to vůbec jsou operátory? Na co je používáme? AR 2013/2014 Jazyk C++ I 2 Operátory Můžeme si upravit operátory pro vlastní objektové typy?

Více

PB161 programování v C++ Výjimky Bezpečné programování

PB161 programování v C++ Výjimky Bezpečné programování PB161 programování v C++ Výjimky Bezpečné programování Chyby... Snaha psát programy bez chyb myslet : ) Snaha psát programy se schopností fault tolerance. snaha se z chybového stavu dostat lze řešit testováním

Více

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

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout.   tel: Skripta ke školení Základy VBA vypracoval: Tomáš Herout e-mail: herout@helpmark.cz tel: 739 719 548 2016 Obsah TROCHA TEORIE VBA...2 ZPŮSOB ZÁPISU VE VBA...2 CO JE TO FUNKCE...2 CO JE TO PROCEDURA...2

Více

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox 02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů

Více

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření

Více

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

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

C++ přetěžování funkcí a operátorů. Jan Hnilica Počítačové modelování 19

C++ přetěžování funkcí a operátorů. Jan Hnilica Počítačové modelování 19 C++ přetěžování funkcí a operátorů 1 Přetěžování funkcí jazyk C++ umožňuje napsat více funkcí se stejným názvem, těmto funkcím říkáme přetížené přetížené funkce se musí odlišovat typem nebo počtem parametrů,

Více

Konvertor diakritiky 3. Instalace

Konvertor diakritiky 3. Instalace OBSAH Popis... 2 Ovládání aplikace... 3 Odstranění diakritických znamének... 4 Operace s textem... 4 Nastavení aplikace... 4 Písmo... 4 Jazyk... 4 Přidání dalšího jazyka do aplikace... 5 Znaky... 5 Instalace

Více

Tabulkové processory MS Excel (OpenOffice Calc)

Tabulkové processory MS Excel (OpenOffice Calc) Maturitní téma: Tabulkové processory MS Excel (OpenOffice Calc) Charakteristika tabulkového editoru Tabulkový editor (sprematuritníadsheet) se používá všude tam, kde je třeba zpracovávat data uspořádaná

Více

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.

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. 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 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu

Více

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

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994

Více

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35 1. Matice a maticové operace 1. Matice a maticové operace p. 1/35 1. Matice a maticové operace p. 2/35 Matice a maticové operace 1. Aritmetické vektory 2. Operace s aritmetickými vektory 3. Nulový a opačný

Více

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

IB111 Programování a algoritmizace. Objektově orientované programování (OOP) IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,

Více

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2 Přednáška 2 Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. 1 Systém souborů (FS) I 2 Systém souborů II Logický systém souborů pro běžného uživatele se jeví jako jediná homogenní struktura

Více

Ukazatele a pole. Chceme-li vyplnit celé pole nulami, použijeme prázdný inicializátor: 207 Čárka na konci seznamu inicializátorů

Ukazatele a pole. Chceme-li vyplnit celé pole nulami, použijeme prázdný inicializátor: 207 Čárka na konci seznamu inicializátorů Ukazatele a pole 204 Deklarace jednorozměrného pole s inicializací Chceme-li pole v deklaraci inicializovat, zapíšeme seznam inicializátorů jednotlivých prvků do složených závorek: #define N 5 int A[N]

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

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

PB161 Programování v jazyce C++ Přednáška 4 PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20

Více

15. Projekt Kalkulačka

15. Projekt Kalkulačka Projekt Kalkulačka strana 143 15. Projekt Kalkulačka 15.1. Základní popis, zadání úkolu Pracujeme na projektu Kalkulačka, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy

Více

Objektově orientované programování

Objektově orientované programování 10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh

Více

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33 Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt

Více

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ů

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ů 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ů cykly: for, while kolekce: seznam, n-tice, slovník funkce, list

Více

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

Formátové specifikace formátovací řetězce 27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete

Více

Assembler - 5.část. poslední změna této stránky: Zpět

Assembler - 5.část. poslední změna této stránky: Zpět 1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají

Více