Programujeme v softwaru Statistica



Podobné dokumenty
Programujeme v softwaru Statistica

Programujeme v softwaru Statistica - příklady

DUM 06 téma: Tvorba makra pomocí VBA

Programujeme v softwaru Statistica

Programujeme v softwaru Statistica

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

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

10 Algoritmizace Příklad 2 Word 2007/ VBA

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

2 Datové typy v jazyce C

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

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

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

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

1. D Y N A M I C K É DAT O V É STRUKTUR Y

Více o konstruktorech a destruktorech

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

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

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

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

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

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

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

6 Příkazy řízení toku

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

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

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

Definice funkcí a procedur. Mnoho operací provozujeme opakovaně, proto je hloupé programovat je při každém použití znovu.

Poslední nenulová číslice faktoriálu

Programovací jazyk Pascal

Algoritmizace a programování

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

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála.

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

JAK PROPOJIT R-KO a EXCEL aneb Aby se uživatel nasytil a statistik zůstal celý

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Programování II. Dědičnost změna chování 2018/19

8 Třídy, objekty, metody, předávání argumentů metod

VISUAL BASIC. Přehled témat

Seznam funkcí pro kurz EXCEL I. Jaroslav Nedoma

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Tabulkový procesor. Základní rysy

PHP tutoriál (základy PHP snadno a rychle)

dovolují dělení velkých úloh na menší = dekompozice

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

ALGORITMIZACE A PROGRAMOVÁNÍ

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

Sada 1 - Základy programování

PROGRAMOVÁNÍ V C++ CVIČENÍ

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Part 1

Operační systémy Linux, Mac OS X a jejich srovnání

Lekce 04 Řídící struktury

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Programování v jazyce JavaScript

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

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

VISUAL BASIC. Práce se soubory

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

Programování II. Modularita 2017/18

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

MS Excel makra a VBA

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

1. Od Scheme k Lispu

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

Informační a komunikační technologie pro učební obory ME4 a SE4. Makra

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

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

Programování v jazyce C a C++

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

Spojování textových řetězců na listu

Textové popisky. Typ dat

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

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

5. kapitola Spouštění aplikací Visual Basic.Net, spustitelné soubory

PODPROGRAMY PROCEDURY A FUNKCE

2 Strukturované datové typy Pole Záznam Množina... 4

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

Sada 1 - Základy programování

ANOTACE vytvořených/inovovaných materiálů

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Programování v jazyku LOGO - úvod

2. lekce Algoritmus, cyklus Miroslav Jílek

Algoritmus pro hledání nejkratší cesty orientovaným grafem

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

Excel - databáze. Opakování. Soubor, který jsme upravovali. Upravený soubor. Hrubá mzda = počet kusů * Kč za kus B6=B4*B5

Sada 1 - Základy programování

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Delphi - objektově orientované

Základy objektové orientace I. Únor 2010

Visual Basic for Applications

3MA481 Propojení Accessu a Excelu David Hach

Objektově orientované programování v jazyce Python

Odstranění řádků (na základě hodnoty)

Slučování tabulek. Sloučení dvou tabulek

Tabulka obsluhovaná kódem VBA

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

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

Transkript:

Programujeme v softwaru Statistica díl druhý Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody V tomto článku si ukážeme další možnosti při psaní maker v softwaru Statistica. Navazuje na úvodní článek z minulého čísla newsletteru, kde byly vysvětleny základní prvky programovacího prostředí, jejichž pochopení je nezbytné pro vytvoření základních maker. Dnes si popíšeme další prvky a pustíme se do tvorby komplexnějších maker, která budeme moci nasadit v reálných situacích. Již víme, jak a jaké proměnné můžeme používat, jak větvit kód programu do ucelených celků. V tomto článku si ukážeme, jak lze mezi jednotlivými celky navzájem komunikovat, a popíšeme si základní prvky pro práci s cykly. Volání procedur, předávání hodnot proměnných Každý složitější program/makro se skládá z menších, dílčích celků, které jsou navzájem provázány a komunikují mezi sebou. Při spuštění makra Statistica se jako první zpracovává procedura s názvem Main. Ta tvoří základní část makra, což ale neznamená, že musí zákonitě obsahovat nejvíc řádků. Často jsou nosné části maker soustředěny do samostatných procedur nebo funkcí. Pokud chceme, aby byly také zpracovány, musíme je takzvaně zavolat. Volat můžeme nejen z hlavní procedury Main, ale samozřejmě i jiných procedur a funkcí. Volání provedeme jednoduše tak, že v kódu uvedeme název dané procedury/funkce:

Výše uvedené makro se po spuštění postupně zpracovává, a jakmile se dostane na řádek s odkazem na funkci/proceduru (Vypis_text), začne se zpracovávat kód procedury. Po jeho vykonání se kurzor vrátí do místa, odkud byla procedura volána a pokračuje dál ve zpracování zbylého kódu. Pokud voláme funkci, která vrací hodnotu, obvykle ji voláme z místa, kde s danou hodnotou pracujeme, např. přiřazujeme nějaké proměnné: Výše uvedený kód vypíše na obrazovku výsledek 7. Všimněme si, že název funkce vystupuje v rámci funkce jako proměnná a pokud má funkce vrátit požadovanou hodnotu, musíme jí v průběhu zpracování funkci přiřadit, v našem případě Secti_cisla=A+B. Tady je třeba si něco říci o dostupnosti jednotlivých proměnných v různých částech makra. Proměnné, deklarované v rámci jakékoli procedury/funkce, lze použít pouze V RÁMCI dané procedury/funkce. Pokud bychom chtěli ve výše uvedeném příkladu přistoupit k proměnné A v rámci procedury Main, potom by program zahlásil chybu, že proměnná není deklarována. Jako by pro tuto část programu vůbec neexistovala. Z toho plyne, že lze používat v jednotlivých procedurách/funkcích stejné názvy proměnných, aniž by nastal konflikt. Nicméně, z důvodu přehlednosti tento přístup nedoporučuji. Jak tedy předáme hodnoty proměnných mezi procedurami/funkcemi? Jsou dvě možnosti: Globální proměnné Argumenty procedury/funkce 2 Programujeme v softwaru Statistica (díl druhý) Statistica ACADEMY (listopad 2015)

Globální proměnné Globální proměnnou deklarujeme mimo jakoukoli proceduru/funkci, obvykle před hlavní procedurou Main. Takto deklarovaná proměnná je dostupná v rámci celého kódu makra, včetně procedur a funkcí: Výše uvedené makro je bez problému zpracováno a vypíše text Globální Doporučuji však používání globálních proměnných omezit na minimum, jelikož jde proti principům objektového programování, kdy jsou všechny hodnoty zapouzdřeny v objektech a jinak než v rámci objektů k nim přistupovat nelze. I procedury a funkce jsou v podstatě objekty. Tím lze dosáhnout integrity dat a zabránit nechtěným změnám hodnot globálních proměnných v rozsáhlejších makrech/programech. Argumenty procedury/funkce Argumenty procedur/funkcí můžeme chápat jak vstupní parametry (hodnoty), které proceduře předáváme a ty se obvykle účastní operací v rámci těchto procedur/funkcí. Argumenty definujeme při vytváření procedur/funkcí a zapisujeme je v závorce za názvem procedury/funkce: Sub Volitelny_jednoslovny_nazev (Argument1 as datovy_typ, Argument1 as datovy_typ, atd.) End sub Takže např. Sub Procedura1 (Text as string) End sub Argumenty potom vystupují v rámci procedury/funkce jako proměnné. Můžeme je číst i modifikovat. Při volání procedur/funkcí musíme na místě argumentu použít očekávanou hodnotu. Hodnotu můžeme zadat přímo: Procedura1 ( Vítej! ) Nebo prostřednictví proměnné: Dim Text as string Text= Vítej! 3 Programujeme v softwaru Statistica (díl druhý) Statistica ACADEMY (listopad 2015)

Procedura1 (Text) Pokud hodnotu proměnné v rámci volané procedury/funkce změníme, potom je tato upravená hodnota předána, po vykonání procedury, zpět do místa, odkud byla zavolána: Výše uvedený kód vypíše Terminátor. Můžeme si všimnout, že názvy proměnné a argumentu se nemusí shodovat, ale můžou mít i shodný název. ByRef, ByVal, Optional V některých případech je žádoucí, aby hodnota proměnné, kterou použijeme jako argument, zůstala nezměněna. Hodnotu totiž můžeme předávat buď jako hodnotu jako takovou (v paměti počítače se pro tuto hodnotu vyhradí nové místo), nebo pomocí odkazu, na již existující hodnotu proměnné v operační paměti počítače (odkazem). Pokud předáváme hodnotu odkazem, potom, dojde-li ke změně hodnoty v rámci procedury/funkce, potom je změněna i původní hodnota proměnné, která vstupuje to procedury jako argument. Pokud není definováno jinak, jako výchozí se ve Statistice předávají hodnoty odkazem. Pokud si chceme být jisti, že je předáván pouze odkaz na proměnnou, použijeme před definici argumentu klíčové slovo ByRef. Pokud chceme přenášet čistě hodnotu proměnné, potom použijeme ByVal: Vlevo uvedené makro vypíše hodnotu proměnné A jako 10, B jako 1. Při volání procedury/funkce musíme použít všechny argumenty, v rámci procedury/funkce definované. Tzn. je potřeba zavolat proceduru/funkci se všemi potřebnými hodnotami. To však neplatí vždy. Výjimku tvoří argumenty volitelné, definované pomocí klíčového slova Optional. 4 Programujeme v softwaru Statistica (díl druhý) Statistica ACADEMY (listopad 2015)

Vývojové prostředí Statistica Visual basic nám při psaní kódu pomáhá a napovídá (našeptává). Všechny argumenty, které volaná procedura/funkce vyžaduje, můžeme vidět při zápisu kódu v okamžiku, kdy za název volané procedury/funkce napíšeme mezeru: Můžeme si všimnout, že nepovinné argumenty jsou v našeptávači uvedeny v hranatých závorkách a není je třeba při volání uvádět. Opakování částí programu, cykly Nyní bychom již měli být schopni napsat strukturované makro, kdy obvykle z hlavní nosné části voláme části ostatní, často i opakovaně. Pro vykonání opakovaných operací máme ve Statistice několik konstrukčních možností: For.. Next Do.. Loop While.. Wend For each.. Next For.. Next Často používaný konstruktor pro práci s cykly, který nalezneme i v jiných programovacích jazycích. Používá se v situacích, kdy potřebuje provést určitý počet cyklů, např. 10. Zápis je uvozen klíčovým slovem For, následován čítačem, kterým říkáme, kolikrát chceme cyklus provést. Čítač musí být číselná proměnná, u které definujeme počáteční hodnotu, konečnou hodnotu a popřípadě přírůstek. Pokud přírůstek nedefinujeme, je použita hodnota 1. Definice čítače pro 10 opakování by vypadala následovně: I=1 to 10 Hodnota proměnné I by tedy postupně nabývala hodnot od 1 do 10, s přírůstkem 1. Konstrukce cyklu je ukončena klíčovým slovem Next. Bude se tedy provádět vše, co je uvnitř bloku For Next: 5 Programujeme v softwaru Statistica (díl druhý) Statistica ACADEMY (listopad 2015)

Výsledkem bude vypsání hodnoty 10. Do.. Loop Jedná se o cyklus s podmínkou. Nejedná se tedy o cyklus s předem daným počtem cyklů a je prováděn do okamžiku, kdy je splněna/nesplněna námi definovaná podmínka. Podmínka může být definována na začátku nebo na konci cyklu. Pozor, tento cyklu lze zapsat i bez podmínky, potom ale cyklus nikdy neskončí a běh makra je třeba ručně zastavit. Konstrukce cyklu s podmínkou na začátku: Do podmínka Loop S podmínkou na konci: Do Loop podmínka Podmínka může být dvojího druhu Until a While. While použijeme v případech, kdy chceme zachovat běh cyklu tak dlouho, dokud je podmínka splněna, tzn. tak dlouho, dokud je podmínka True. V případě Until běží cyklus tak dlouho, než je podmínka splněna, tzn. do okamžiku, kdy podmínka nabyde hodnoty True. 6 Programujeme v softwaru Statistica (díl druhý) Statistica ACADEMY (listopad 2015)

Příklady: A je 1, jelikož cyklus prošel pouze jednou a na konci nebyla splněna podmínka, jelikož A bylo v té době rovno 1. A je 0, jelikož podmínka nebyla splněna již při vstupu do cyklu a cyklus neproběhl ani jednou. A je 6. Cyklus skončil právě tehdy, kdy A nabylo hodnoty 6. Pozor na to, abychom testovali hodnoty, které opravdu mohou nastat, abychom se nedostali do nekonečné smyčky. A je opět 6. 7 Programujeme v softwaru Statistica (díl druhý) Statistica ACADEMY (listopad 2015)

While.. Wend Je obdobou cyklu Do.. Loop s podmínkou While na začátku a cyklus mezi klíčovými slovy While.. Wend je vykonáván tak dlouho, dokud je podmínka rovna True: A nabyde hodnoty 10. For each.. Next Jedná se o velice zajímavý cyklus, který prochází všechny položky v nějaké kolekci. Můžeme tak např. projít všechny otevřené tabulky Statistica. Konstrukce toho cyklu je: For each typ_polozky in kolekce_polozek Next Jako typ_polozky musíme použít již nadeklarovanou proměnnou, typově odpovídající prvku kolekce. Pro příklad s tabulkami Statistica by to vypadalo následovně: Makro nám bude postupně procházet a vypisovat názvy aktuálně otevřených tabulek Statistica, a to i těch, které jsou otevřeny pouze na pozadí a nejsou viditelné (vlastnost Visible=false). Závěrem Dnes jsme si ukázali práci s procedurami a funkcemi, jakožto základními prvky strukturovaných maker. Také jsme se naučili předávat hodnoty proměnných mezi jednotlivými bloky programu, což je důležité zejména u rozsáhlejších projektů. V příštím díle si snad konečně ukážeme, jak získat makra generovaná programem Statistica, což již bylo avizováno již v minulém cyklu. Látka je však obsáhlejší a není možné vynechat části, které jako celek do sebe neoddělitelně zapadají. Dell Information Management Software Group V Parku 2325/16, 148 00 Praha 4 8 Programujeme v softwaru Statistica (díl druhý) Statistica ACADEMY (listopad 2015) t +420 233 325 006, e info@statistica.cz www.dell.cz/statsoft, www.statsoft.cz