Interactive Data Language - Programming and Data Visualization

Wielkość: px
Rozpocząć pokaz od strony:

Download "Interactive Data Language - Programming and Data Visualization"

Transkrypt

1 Uniwersytet Marii Curie Skªodowskiej w Lublinie Wydziaª Matematyki, Fizyki i Informatyki Šukasz Wiadrowski nr albumu Interactive Data Language - Programming and Data Visualization Praca magisterska powstaªa pod kierunkiem prof. dr hab. Krzysztofa Murawskiego

2 SPIS TRE CI 2 Spis tre±ci 1 Wst p Historia j zyka IDL Zastosowanie j zyka IDL Popularyzacja j zyka IDL Cel i zakres pracy Wprowadzenie do skladni Nazwy zmiennych Typy i rozmiary danych Typy podstawowe Tablice Struktury Wska¹niki Konwersja mi dzy typami Operatory Operatory logiczne Operatory arytmetyczne Operatory relacji Instrukcje Instrukcja IF...THEN Instrukcja WHILE...DO Instrukcja REPEAT...UNTIL Instrukcja FOR Instrukcja CASE...OF Instrukcja BREAK Procedury, funkcje, program glówny Procedury Funkcje Program gªówny Kompilacja Edytor dla wersji Praca z danymi Tworzenie danych Operacje na wektorach i macierzach Odczyt danych Pliki ASCII Pliki binarne Pliki graczne

3 SPIS TRE CI 3 4 Dwuwymiarowe rysunki i wykresy Procedura PLOT Procedura OPLOT Metoda LIVE_PLOT Obróbka sygnaªu Tworzenie danych Wygªadzanie sygnaªu metod SMOOTH Filtracja sygnaªu Obróbka plików gracznych Podstawowe operacje na obrazach Histogram obrazu Filtrowanie obrazu Obrazy monochromatyczne Obrazy kolorowe Trójwymiarowe techniki wizualizacji Metoda SURFACE Metoda SHADE_SURF Metoda SHOW Metoda XINTERANIMATE Cz ± programistyczna Podstawy programowania Techniki zaawansowane Podsumowanie 75 Bibliograa 76

4 1 Wst p 4 1 Wst p 1.1 Historia j zyka IDL J zyk IDL powstaª pod koniec lat 70-tych, a jego powstanie wi»e si z uniwersytetem w Boulder w stanie Kolorado, ±ci±lej z LASP 1 oraz osob Davida Sterna, ktory napisaª tam pierwsze linie kodu, dajace podwaliny dla Interactive Data Language. Jednym z pierwszych programow napisanych przez Sterna byª program Rufus, b d cy w skrocie kalkulatorem. Ulepszona wersja tego programu zostaªa u»yta jako interpreter danych z marsja«skich sond Mariner 7 i Mariner 9. W 1977 roku Stern opu±ciª LASP i zalo»yª RSI, czyli Research System Institute, który to instytut do dzi± zajmuje si rozwijaniem i dystrybucj opisywanego w tej pracy j zyka. Dwa lata po zaªo»eniu instytutu, sprzedal pierwsze licencje j zyka IDL dla NASA, a dokªadniej dla Centrum Lotow Kosmicznych (Goddard Space Flight Center). Kolejne dwa lata przyniosªy szybki rozwój rmie i kolejne ulepszenia j zyka. W 1981 roku ameryka«skie uniwersytety oraz kolejne rz dowe instytucje zgªosiªy ch u»ywania j zyka IDL. Rok 1987 przyniósª kolejne zmiany. Zaªo»yciel RSI wraz z pomoc Aliego Bahrami postanawiaj udostepni j zyk równie» u»ytkownikom systemu Unix. Zadanie to polegaªo caªkowitej zamianie kodu ¹ródªowego z kodu napisanego w j zyku Macro i Fortran na kod w j zyku C. Pozwoliªo to na dalsz ekspansj j zyka dla kilkunastu wersji Unix i byªo niew tpliwie komercyjnym sukcesem Sterna i jego ekipy. Jezyk IDL jest ci gle ulepszany i modykowany. Chocia» zakres mo»liwosci tego j zyka jest rozszerzany to jego podstawowe zadania pozostaj takie same jak przed trzydziestoma laty. 1.2 Zastosowanie j zyka IDL J zyk IDL, jest idealnym rozwi zaniem dla celów zwi zanych z analiz danych. Platforma ta to pot»ne narzedzie, kryj ce w sobie wyspecjalizowane techniki przetwarzania du»ych partii danych. Niemal»e od pocz tku byª to j zyk zorientowany na szeroko rozumiane przetwarzanie tablic. Dla u»ytkownika takie rozwi zanie przyczyniªo si do zminimalizowania wielu linii kodu napisanego w C, Fortranie lub innych j zykach, do kilku lub nawet do wywoªania jednej procedury czy funkcji. 1Laboratory for Atmospheric and Space Physics jest jednym z dziaªów badawczych podlegaj cych uniwersytetowi w Boulder w stanie Kolorado,specjalizuje si w technologiach kosmicznych, wspiera naukowo i technicznie loty zaªogowe i bezzaªogowe w±ród nich m.in. sondy Cassini i Galileo.

5 1.3 Popularyzacja j zyka IDL 5 Szeroki zakres zastosowa«przy równoczesnym wyspecjalizowaniu przyczyniªo si do spopularyzowania tego j zyka w±ród du»ej rzeszy naukowców. Istot j zyka jest tworzenie, obróbka oraz wyswietlanie danych. Oto przykªady rm, instytucji i projektów korzystaj cych z opisywanego w tej pracy j zyka: analiza zdj z sond kosmicznych Mariner 7 i Mariner 9, druga z nich dostarczyªa okoªo 7000 zdj Marsa i jego satelitów Phobosa i Deimosa. analiza zdj z Marsa zrobionych w 2004 roku przez kosmiczne ªaziki, Space Science Institute (SSI) Boulder, Colorado analiza zdj tomograi komputerowej (CT), MIMvista Corp. analiza klimatu, pogody, zjawisk na oceanie, danych geozycznych, National Oceanic and Atmospheric Administration (NOAA) program do trójwymiarowej wizualizacji skorupy ziemskiej, Millersville University of Pennsylvania, Earth Sciences Department projekt MRIVIEW, badanie funkcjonowania ludzkiego mózgu, Los Alamos National Labs Biophysics Group analiza zdj komety Halleya, European Space Agency analiza anomalii teleskopu kosmicznego Hubbla przy probie jego naprawy w 1990 roku University of Michigan, University of Colorado, wsparcie prac naukowych Nie sposób wymieni wszystkich projektów, w których wykorzystywany byª j zyk IDL. Zarówno agencje rz dowe, rmy prywatne jak i instytucje akademickie stosuj szeroko jego techniki przetwarzania i wizualizacji danych. J zyka IDL nie nale»y koja»y jedynie z wielkimi projektami naukowymi. Szerokie grono osób prywatnych u»ywa tego j zyka do pracy i nauki w swoich domach. 1.3 Popularyzacja j zyka IDL Interactive Data Language przez niemal»e 30 lat swojego istnienia zaskromiª sobie szerokie grono u»ytkowników. Jego popularno±ci dowodz ameryka«skie

6 1.4 Cel i zakres pracy 6 i zachodnioeuropejskie instytucje naukowe u»ywajace go do swych prac badawczych, tak»e liczna grupa studentów, których uniwersytety postanowiªy wprowadzi ten j zyk do systemu nauczania, wreszcie rzesza entuzjastów chc ca opanowa ten ciekawy j zyk. Sytuacja na krajowym rynku jest nieco odmienna. Tylko nieliczni wykªadowcy i naukowcy zajmuj si tym j zykiem. Wydawaªoby si,»e j zyk IDL podobny sw skªadnia do j zyka Fortran, który byª i jest nadal popularny w±ród ludzi nauki oka»e si jego lepsz alternatyw. Na ten negatywny stan maj zasadniczy wpªyw dwa czynniki: brak publikacji na temat j zyka IDL, a co za tym idzie brak popularyzacji ze wzgledu na trudny dost p do mateiaªów oraz znikome srodki na prowadzenie bada«naukowych, których wynikami zajmuje si opisywany w pracy j zyk. 1.4 Cel i zakres pracy Praca ta to proba opisania bardzo ciekawego j zyka jakim jest Interactive Data Language, czyli IDL. Skierowana jest gªównie do studentów i pracowników naukowych, ale rownie» do wszystkich osób którym nie obce jest poj cie wizualizacji danych. Poniewa» na polskim rynku brak jest publikacji zwi zanych z tym tematem, jest to jednocze±nie próba zapeªnienia powstaªej luki jak i zach ta do poznania tego jezyka. Mam nadziej,»e forma pracy, w której przedstawiam jezyk IDL od podstawowych elementow skªadni, poprzez budow procedur i funkcji, stopniowo odsªaniaj c jego szerokie mo»liwosci uczyni opanowanie tego j zyka jeszcze bardziej przyt pnym.

7 2 Wprowadzenie do skladni 7 2 Wprowadzenie do skladni 2.1 Nazwy zmiennych Zmienne i staªe to podstawowe elementy ka»dego nawet najmniejszego programu. Aby program dziaªaª poprawnie nale»y zapozna si z zasadami dotycz cymi nazywania zmiennych. Po pierwsze nazwy zmiennych mog posiadac litery i cyfry oraz znaki podkreslenia i znak dolara $, musz jednak zaczyna si od litery. Dªugo± nazewnika zmiennej mo»e wynosi maksymalnie 128 znaków, kolejne znaki po 128 b d ignorowane. Po drugie nazwa zmiennej nie mo»e pokrywa si z nazw funkcji lub procedury. Po trzecie nazwa zmiennej nie mo»e posiada odstepów. Nale»y pami ta,»e zmienna zm1, Zm1 i ZM1 to ta sama zmienna. Oto podstawowe zasady i bª dy w praktyce: Tablica 1: Tworzenie poprawnych nazw zmiennych Nazwa bªedna Blad Nazwa poprawna 2zm nie zaczyna sie na liter zm2 _zm2 nie zaczyna sie na liter zm_2 niedozwolony zm$ zm 2 niedozwolony odstep zm_2 eof konikt z nazw wbudowanej funkcji eoof 2.2 Typy i rozmiary danych W j zyku IDL stosuje si typy wbudowane oraz typy konstruowane przez u»ytkownika z typów wbudowanych, czyli tablice (ang. array)oraz struktury (ang.struct). J zyk IDL jest j zykiem typów przydzielanych dynamicznie. Oznacza to,»e u»ytkownik deklaruj c zmienn nie musi deklarowa jakiego jest ona typu. Typ danej jest dopasowywany do podstawionej pod jej nazewnik warto±ci Typy podstawowe Zbiór typów podstawowych j zyka IDL jest zbli»ony do typów danych innych j zyków programowania. Typy podstawowe s pochodnymi typów caªkowitego (integer), typu rzeczywistego (oat) oraz typu string.

8 2.2 Typy i rozmiary danych 8 Tablica 2: Typy podstawowe j zyka IDL Typ Zakres Rozmiar Byte bit Integer bit Unsigned Integer bit Long bit Unsigned Long bit 64 bit Long * * bit 64 bit Unsigned Long bit Floating-point bit Double-precision bit Complex bit Double-prec. complex bit String sekwencja znakow <2.1GB Powy»sza tabela dodatkowo uwzgl dnia podziaª na trzy podstawowe grupy typów. Typ Complex i Double-precision Complex to dwuelementowe pochodne typu Float i Double sªu» ce do reprezentacji liczb zespolonych i zªozonych struktur zawieraj cych te liczby. Istnieje mozliwosc sprawdzenia jakiego typu zmienne stworzylismy. Poni»ej przykªad utworzenia kilku zmennych i sprawdzenia ich typu: IDL>zm1=6L & zm2=0b & zm3=22 IDL>help,zm1 ZM1 LONG64=6 IDL>help,zm2 ZM2 BYTE=0 IDL>help,zm3 ZM3 INT=2 IDL>help,zm4 ZM4 FLOAT= IDL>help,zm5 ZM5 STRING='napis' & zm4=0.25 & zm5='napis' Tablice Tablica jest ponumerowan grup zmiennych tego samego typu. Pierwszy element tablicy posiada indeks 0, natomiast element ostatni ma indeks rowny liczbie elementów w tablicy zmniejszony o jeden. Aby zdeniowa tablic nale»y po nazewniku zmiennej i znaku podstawienia w nawiasach klamrowych

9 2.2 Typy i rozmiary danych 9 umie±ci dowoln liczb elementów tego samego typu rozdzielonych znakiem przecinka. IDL>tablica_int=[3,5,6,25,10,27] IDL>print,tablica_int Je»eli w tablicy umie±cimy elementy typu integer i elementy typu oat to nast pi automatyczna konwersja liczb caªkowitych na rzeczywiste. IDL>tablica_float=[3.24,5.3,6.67,25,10,27] IDL>print,tablica_float IDL wykonuje automatyczn konwersj tylko miedzy typami caªkowitymi i rzeczywistymi. Próba wstawienia do tablicy zawieraj cej warto±ci liczbowe np.: napisu daje w wyniku 0 w miejscu w którym ten napis wstawiono: IDL>tablica_int=[3,5,6,25,10,'napis'] IDL>print,tablica_int Oprócz tablic jednowymiarowych IDL umo»liwia nam tworzenie tablic wielowymiarowych. Maksymalny, dozwolony wymiar takiej tablicy wynosi 8. Aby utworzyc tablic wielowymiarow (w naszym przypadku dwuwymiarow ) poslu»ymy si nast puj cym kodem: IDL>tab2D=[[1,2,3],[4,5,6]] IDl>help,tab2D TAB2D INT = Array[3, 2] IDL>print,tab2D Tworz c bardziej zªo»one tablice pami tajmy,»e zawarto± ka»dego nawiasu to jeden wiersz tablicy, a ilo± elementów w wewnetrznym nawiasie to ilo± kolumn.

10 2.2 Typy i rozmiary danych Struktury Jedna tablica potra przechowywa dane tylko jednego typu. Struktura natomiast jest typem przeznaczonym do przechowywania zbioru danych ró»nych typów. Wyró»niamy dwa typy struktur: struktury nazwane i struktury anonimowe. Jedyna ró»nica pomi dzy nimi polega na tym,»e nie mo»na modykowac nazwy pola skªadowego i typu struktury nazwanej. Struktury nazwane slu» gªównie do przechowywania informacji o wielu obiektach o tych samych wªa±ciwo±ciach. Oto przykªad utworzenia, wprowadzenia i wy±wietlenia danych struktury nazwanej, a tak»e próba zmodykowania typu pola: IDL>void = {samochod,$ IDL>rok_produkcji:0, $ IDL>marka:'', $ IDL>model:'', $ IDL>przebieg:0D } IDL>moj_sam={samochod} IDL>moj_sam.rok=1999 IDL>moj_sam.marka='Renault' IDL>moj_sam.model='Clio' IDL>moj_sam.przebieg= IDL>print,moj_sam.rok,moj_sam.marka,moj_sam.model, $ moj_sam.przebieg 1999 Renault Clio Operator $ u»ywany na ko«cu wiersza nakazuje kompilatorowi traktowanie nast pnego wiersza jako kontynuacje poprzedniego. Sprawd¹my typ pola przebieg przed prob zmiany jego typu: help,moj_sam.przebieg <Expression> DOUBLE = Wstawmy caªkowit warto± pola przebieg i sprawd¹my teraz jego typ: moj_sam.przebieg=58000 help,moj_sam.przebieg <Expression> DOUBLE= Typ pola nie zmieniª si. Równie» zmiana nazwy pola lub ich liczby nie jest mo»liwa w stukturze nazwanej. Wracaj c do metod wy±wietlania stuktur

11 2.2 Typy i rozmiary danych 11 istnieje druga metoda wy±wietlania pól struktury. Aby wy±wietli wszystkie pola nie musimy zna ich nazw tylko ich liczb. Pola numerowane s tak jak w przypadku tablic. Oto przykªad: IDL>print,moj_sam.(0),moj_sam.(1),moj_sam.(2),moj_sam.(3) 1999 Renault Clio Pola struktury nienazwanej mog by dowolnie modykowane. Zatem ich typ,nazwa i ilo± mog si zmienia wedªug gustu u»ytkownika. Oto przykªad utworzenia struktury nienazwanej i próby jej modykacji: IDL>karol={wiek:22,wzrost:175,waga:69} IDL>help,karol.wzrost <Expression> INT=175 IDL>karol={wiek:22,wzrost:175.5,waga:69} IDL>help,karol.wzrost <Expression> FLOAT= Dzi ki wstawieniu nowej warto±ci nast piªa zmiana typu pola naszej struktury z caªkowitej na rzeczywist Wska¹niki Wska¹nik jest zmienn wskazuj c na inn zmienn. Powstaje pytanie dlaczego stosowa zamiennik oryginalnej zmiennej. Odpowied» jest krótka, z powodu rozmiaru. Wska¹nik jest umieszczny w 4 bajtach pami ci. Jego gªówn zalet jest to,»e mo»e wskazywa na obiekty o du»o wi kszych rozmiarach takich jak tablice, czy zªo»one struktury. Przy wielokrotnym odwoªywaniu si do tych du»ych zbiorów danych u»ywanie wska¹nikow oszczedza pami potrzebn na allokowanie obiektów. Mo»emy tworzy dwa typy wska¹ników: wska¹nik null oraz wska¹nik do zmiennej. Oto kod tworz cy pierwszy typ wska¹nika: IDL>wsk=ptr_new() IDL>help,wsk WSK POINTER = <NullPointer> Wska¹nik null jest u»yteczny je»eli zmienna, na któr wskazuje jest nieznana w czasie tworzenia wska¹nika. Drugi typ wska¹nika (wska¹nik na zmienn ) mo»e zosta utworzony na dwa sposoby. Pierwszym sposobem jest u»ycie funkcji PTR_NEW z argumentem b d cym obiektem, na który wska»nik ma

12 2.2 Typy i rozmiary danych 12 wskazywa. IDL>tablica_int=[1,2,3,4,5,6] IDL>wsk_tablica1=ptr_new(tablica_int) Drugi sposób polega na tym,»e najpierw tworzymy wska¹nik niezdeniowanej zmiennej przy pomocy funkcji PTR_NEW z argumentem allocate_heap. Nast pnie tworzymy dane, na które b dzie wskazywaª wska¹nik i podstawiamy dane pod wska¹nik. IDL>wsk_tablica2=ptr_new(/allocate_heap) IDL>tablica_float=[1.0,2.0,3.0,4.0,5.0,6.0] IDL>*wsk_tablica2=tablica_float Zalet wska¹ników jest to,»e mo»emy sie nimi posªugiwa jak obiektami, na które wskazuj. Poznajmy sposób odwoªywania si do warto±ci obiektów, na które wskazuj wska¹niki. W celu wy±wietlenia elementów tablicy tablica_int i struktury z poprzedniego rozdziaªu posªu»my si poleceniem: IDL>print,*wsk_tablica IDL>wsk_samochod=ptr_new(moj_sam) IDL>print,*wsk_samochod 1999 Renault Clio Aby wy±wietli pojedynczy element tablicy posluguj c si wska¹nikiem nale»y posªu»yc si poleceniem: print,(*wsk_tablica1)[5] 6 print,(*wsk_samochod).model Clio Prace ze wska¹nikem ko«czymy wpisuj c polecenie: ptr_free,wsk_tablica Konwersja mi dzy typami J zyk IDL oferuje nam szeroki zestaw typów danych. Czasami jednak niezb dne staje si przekonwertowanie typu. Nasze pocz tkowe zaªo»enia mog okaza

13 2.2 Typy i rozmiary danych 13 si bªedne i zakres naszej zmiennej mo»e okaza si zbyt maªy. Cz sto deklarujemy zmienn licznika p tli jako integer. Zakres jej je»eli startujemy od 0 wynosi nieco ponad Przy wi kszym zbiorze danych do przetworzenia ªatwo przekroczy t granic. Oto zestaw funkcji przydatnych do konwertowania typów: Tablica 3: Funkcje konwertuj ce typy Typ Funkcja konwertuj ca Byte b=byte(x) Integer i=x(x) Unsigned Integer ui=uint(x) Long l=long(x) Unsigned Long ul=ulong(x) 64-bit Long l64=long64(x) 64-bit Unsigned Long ul64=ulong64(x) Floating-point f=oat(x) Double-precision d=double(x) Complex zesp=complex(x) Double Complex dzesp=dcomplex(x) String str=string(x) A oto dziaªanie kilku z tych funkcji w praktyce: IDL>tablica_float=[3.2,4.6,4.49,3.99,5.22,1.18] IDL>tablica_int=fix(tablica_float) IDL>print,tablica_int Spój»my na sposób konwersji pomi dzy typem integer a byte. Wynikiem tej konwersji musi by zawsze liczba z przedziaªu dozwolonego dla typu byte (0-255). Przyj»yjmy si tej metodzie zamiany typów: tablica_int=[433,512,123,256,255,257] tablica_byte=byte(tablica_int) print,tablica_byte

14 2.3 Operatory 14 Oto nastepny przykªad konwersji typów. Tym razem z typu string na oat. tablica_string=['0.56','455','9 99','-78.6','L3L','36B'] tablica_float=float(tablica_string) print,tablica_float Nie ka»da konwersja jest dozwolona. Przykªadem jest tu próba zamiany napisu zawieraj cego liter na pierwszym miejscu na warto± liczbow. O tym,»e konwersja mi dzy naszymi typami jest niemo»liwa do wykonania informuje nas w naszym przypadku komunikat: Type conversion error: Unable to convert given STRING to Float. 2.3 Operatory Operatory logiczne W j zyku IDL wyró»niamy trzy operatory logiczne. S to operator iloczynu AND &&, operator sumy OR oraz operator logicznej negacji NOT. Operator logiczny && daje w wyniku 1 kiedy wynikiem wyra»e«, które ten operator ª czy jest prawda logiczna. Nale»y pami ta,»e niezerowe warto±ci liczbowe, niepuste napisy oraz wszystkie wskazniki oprócz wska¹nikow null traktowane s jako logiczna prawda, wszystkie pozostaªe obiekty traktowane s jako logiczny faªsz. Tak jak w wi kszo±ci wspóªczesnych j zyków programowania je»eli pierwszy warunek jest falszem drugi nie jest ju» sprawdzany. Oto przykªady: IDL>print,1&&1 1 IDL>print,1&&0 0 IDL>print,1&&'napis' 1 IDL>print,1&&wsk_tablica 1 Operator logiczny daje w wyniku prawd je»eli jedno z wyra»e«, które ª czy jest prawd. W tym wypadku je»eli pierwsze wyra»enie jest prawd drugie nie jest ju» sprawdzane. Oto przykªady:

15 2.3 Operatory 15 IDL>print,0 1 1 IDL>print,0 0 0 Operator logicznej negacji daje w wyniku 1 je»eli wyra»enie przed nim stoj ce jest logicznym faªszem. W przciwnym wypadku wynikiem jest 0. Oto przykªady: IDL>print,~0 1 IDL>print,~ Operatory arytmetyczne J zyk IDL zawiera standardowy zestaw operatorow matematycznych wzbogacony o operatory inkkrementacji ++, deinkrementacji - -, pot gowania oraz uzyskiwania reszty z dzielenia MOD. Tablica 4: Operatory arytmetycze operator opis przykªad wynik + dodawanie a= inkrementacja a=3 a odejmowanie a= deinkrementacja a=3 a- - 2 * mno»enie a=3*5 15 / dzielenie a=10.0/ pot gowanie a=23 8 MOD dzielenie modulo a=11 MOD Operatory relacji Operatory relacji s niezb dne w budowaniu wyra»en takich jak instrukcje warunkowe czy p tle. Ich zadaniem jest zbadanie czy dany warunek zachodzi miedzy dwoma czªonami danej relacji. Wynikiem jest prawda lub falsz logiczny. Skªadnia operatorów logicznych j zyka IDL wywodzi si z j zyka For-

16 2.4 Instrukcje 16 tran. Oto zestawienie operatorów relacji: Tablica 5: Operatory relacji j zyk IDL j zyk Fortran opis EQ.EQ. równy NE.NE. ró»ny GT.GT. wi kszy GE.GE. wi kszy-równy LT.LT. mniejszy LE.LE. mniejszy-równy 2.4 Instrukcje J zyk IDL udost pnia u»ytkownikowi szereg podstawowych instrukcji, dzi ki znajomo±ci których ªatwiej opisywa i programowa zªo»one problemy. Do instrukcji nalez : instrukcja warunkowa IF...THEN, instrukcja p tli WHILE...DO, instrukcja p tli FOR i p tli REPEAT...UNTIL, instrukcja wyboru CASE...OF oraz pochodne niektórych z tych instrukcji Instrukcja IF...THEN Warunek logiczny umieszczony w instrukcji warunkowej sªu»y wybraniu jednej z alternatywnych dróg programu. Skªadnia instrukcji jest nastepuj ca: IF warunek THEN instrukcja Je»eli po speªnieniu warunku chcemy wykona wi cej ni» jedno polecenie to nale»y zgrupowa te polecenia: IF warunek THEN BEGIN instrukcja1 instrukcja2... ENDIF Je±li chcemy aby nasz program zabezpieczaª obydwie drogi po wykonaniu testu logicznego, to jest drog po speªnieniu warunku i drog gdy warunek nie jest speªniony potrzebna jest nam instrukcja IF...THEN...ELSE.

17 2.4 Instrukcje 17 IF warunek THEN instrukcja_na_tak ELSE instrukcja_na_nie Równie» w tym przypadku je±li liczba instrukcj w której± z gaª zi jest wi ksza ni» jeden to nale»y zgrupowa te polecenia kodem: IF warunek THEN BEGIN instrukcja_na_tak_1 instrukcja_na_tak_2... ENDIF ELSE BEGIN instrukcja_na_nie_1 instrukcja_na_nie_2... ENDELSE Nie jest bª dem u»ywanie ª czników BEGIN...ENDIF oraz BEGIN...ENDELSE dla pojedynczych instrukcji w drodze na tak lub na nie. Oto dziaªanie instrukcji w praktyce: IDL>licz1=100.0 && licz2=50.0 IDL>IF (licz1 mod licz2 EQ 0) THEN BEGIN $ IDL>print,("licz1 jest podzielnikiem licz2") $ IDL>ENDIF ELSE BEGIN $ IDL>print,("licz1 nie jest podzielnikiem licz2") $ IDL>ENDELSE licz1 jest podzielnikiem licz Instrukcja WHILE...DO Instrukcja ta jest jedn z dostepnych w j zyku IDL p tli, czyli instrukcji kontroluj cych wielokrotne wykonywanie si pewnych cz sci kodu programu. Jej skªadnia jest nast puj ca: WHILE warunek DO instrukcja Je±li w refrenie p tli wystepuje wi cej ni» jedno polecenie nale»y ograniczy je w nastepuj cy sposób: WHILE warunek DO BEGIN instrukcja1

18 2.4 Instrukcje 18 instrukcja2... ENDWHILE Refren p tli, czyli jej instrukcje po sªowie kluczowym DO wykonuj si dopóki warunek p tli jest prawdziwy. Kiedy warunek p tli jest faªszem logicznym przed pierwszym wykonaniem petli oznacza to,»e refren nigdy si nie wykona. Oto przykªad dzialania p tli WHILE...DO: IDL>licznik=0 IDL>WHILE(licznik LT 5) DO BEGIN $ IDL>print,3^licznik $ IDL>licznik++ $ IDL>ENDWHILE Instrukcja REPEAT...UNTIL P tla ta jest skªadniowo podobna do p tli WHILE...DO. Ró»nica polega na tym,»e warunek sprawdzany jest po wykonaniu instrukcji refrenu. Wyj±cie z p tli nast puje tutaj, gdy warunek jest speªniony. Zatem nawet je±li pierwsze sprawdzenie warunku p tli daje w wyniku prawd to refren wykona si jeden raz, co bylo niedopuszczalne w poprzednio opisywanej p tli. Uwzgledniamy oczywiscie,»e z poprzedniej petli wyj±cie nastepowaªo przy falszu warunku p tli. Oto skªadnia p tli REPEAT...UNTIL: REPEAT instrukcja UNTIL warunek W przypadku wi kszej ilo±ci instrukcji w refrenie p tli modykujemy skªadnie dodaj c: REPEAT BEGIN instrukcja1 instrukcja2... ENDREP UNTIL warunek Zwró my uwag,»e warunek p tli jest prawdziwy przed pierwszym jego sprawdzeniem. Oto przykªad dziaªania tej p tli: IDL>licznik=5

19 2.4 Instrukcje 19 IDL>suma=10 IDl>REPEAT BEGIN $ IDL>suma=suma+licznik $ IDL>licznik++ $ IDL>print,suma $ IDL>ENDREP UNTIL(suma GE 10) 15 Budowa tej p tli mo»e by pomocna przy dokonywaniu wyboru pomi dzy wykonaniem refrenu, a pomini ciem tego etapu i przejsciem np.: do wykonywania dalszych oblicze«: REPEAT BEGIN instrukcje refrenu print,"zakonczyc (T/N) read,odp ENDREP UNTIL (odp EQ 'T') Instrukcja FOR P tla FOR jest p tl z licznikiem. Pozwala ona na wykonywanie polece«zawartych w refrenie okre±lon przez u»ytkownika ilo± razy. Dodatkowo p tla for j zyka IDL umo»liwia ustawienie kroku odpowiedzialnego za zwi kszanie licznika. Je»eli tego nie zrobimy to krok b dzie miaª warto± 1 i po ka»dym wykonaniu instrukcji refrenu, licznik b dzie zwi kszany o t wla±nie warto±. Oto skªadnia p tli FOR: FOR licznik=poczatek,koniec,krok DO BEGIN instrukcja1 instrukcja2... ENDFOR Je»eli w refrenie p tli zawarta jest tylko jedna instrukcja to ograniczniki BEGIN i ENDFOR s zb dne. Ich u»ywanie jednak cz sto pomaga w dobrej i czytelnej organizacji pisanego przez nas kodu. Oto przykªad zastosowania tej p tli w praktyce przy wy±wietlaniu kilku kolejnych pot g dwójki, drugi przykªad ilustruje zagnie»d»anie dwóch p tli FOR daj ce w wyniku macierz jednostkow :

20 2.4 Instrukcje 20 IDL>FOR i=0,4 DO BEGIN $ IDL>print,2^i $ IDL>ENDFOR macierz=indgen(4,4) FOR i=0,3 DO BEGIN FOR k=0,3 DO BEGIN IF (i EQ k) THEN BEGIN macierz[i,k]=1 ENDIF ELSE BEGIN macierz[i,k]=0 ENDELSE ENDFOR ENDFOR print,macierz Instrukcja CASE...OF Instrukcja CASE...OF to bardziej zªo»ona wersja instrukcji warunkowej. Badana jest tu warto± pewnej zmiennej. Ka»da warto± jak ta zmienna mo»e przyj prowadzi do innej cz ±ci kodu. Ilo± tych rozgaª zie«zale»y od u»ytkownika. Przyj»yjmy si skªadni tej instrukcji: CASE zmienna OF przypadek1: BEGIN instrukcje END przypadek2: BEGIN instrukcje END... ELSE: BEGIN instrukcje END ENDCASE

21 2.4 Instrukcje 21 Opcja ELSE nie jest obowi zkowa i mo»na j pomin. Odpowiada ona za wszystkie pozostaªe warto±ci zmiennej, które nie zostaªy uwzgl dnione w wyró»nionych przypadkach. Oto prosty przykªad u»ycia naszej instrukcji w praktyce. U»ywam tutaj dwóch funkcji systemowych max()i min(), których wynikiem jest odpowiednio najwi ksza i najmniejsza liczba ze zbioru wejsciowego. Oto przykªad: tablica_int=[9, 87, 56, 34, 0, -12, 44] print,'1-oblicz maximum' print,'2-oblicz minimum' print,'3-wyjscie z programu' print,'wybierz 1-3' read,odp CASE odp OF 1: begin print,'minimum to:' print,min(tablica_int) end 2: begin print,'maximum to:' print,max(tablica_int) end 3:print,'Opcja wyjscie' ELSE: print,'niepoprawna odpowiedz!' ENDCASE Šatwo zauwa»y,»e wprowadzanie wielu linii kodu z wiersza polece«jest uci zliwe. Nie mamy równie» mo»liwo±ci zapisania wyników naszej pracy. Wkrótce dowiemy si na czym polega pisanie procedur i funkcji i jakie mamy z ich pisania korzy±ci. Przedstawiony wy»ej kod to kod procedury. Poni»ej wyniki powstaªe dzi ki kompilacji jej kodu: 1-oblicz maximum 2-oblicz minimum 3-wyjscie z programu IDL>Wybierz 1-3: 1 Minimum to: -12

22 2.5 Procedury, funkcje, program glówny Instrukcja BREAK Instrukcja BREAK jest ±ci±le zwi zana z instrukcjami takimi jak FOR,WHILE REPEAT...UNTIL. U»ycie instrukcji BREAK wewn trz tych p tli prowadzi do natychmiastowego z niej wyj±cia. Oto przykªad: FOR i=1,10 DO BEGIN IF(i EQ 5)THEN BREAK print,i ENDFOR print,'wyjscie z petli' wyjscie z petli Normalnie nastapiªoby wy±wietlenie wszystkich elementów licznika. Po wykonaniu instrukcji BREAK nast piªo natychmiastowe zako«czenie wykonywania instrukcji p tli FORi wyj±cie poza ni. 2.5 Procedury, funkcje, program glówny Pisanie bardziej zªo»onych programów, zawieraj cych wiele linii kodu wymaga podzielenia zada«programu pomi dzy procedury i funkcje. Post p programistyczny wymusiª na twórcach j zyka IDL stworzenie edytora uªatwiaj cego wprowadzanie kodu. Pisanie procedur, funkcji i programów, a tak»e ich kompilacja sta a si wygodniejsza. Poznajmy tajniki pisania i kompilacji procedur, funkcji, programów gªównych, a tak»e wygl d i funkcje edytora j zyka IDL dla wersji Procedury Pisanie dowolnej procedury zaczynamy w nastepuj cy sposób: pro nazwa procedury,lista parametrów,lista sªów kluczowych tre± procedury end Nazwa pliku, w którym zapisali±my dan procedur musi skªadac si z nazwy procedury i rozszerzenia pro. Lista parametrów i sªów kluczowych jest opcjonalna. Nie ka»da procedura musi je zawiera. Rol sªów kluczowych jest cz sto kontrolowanie sposobu dziaªania programu. Odpowiadaj one m.in.

23 2.5 Procedury, funkcje, program glówny 23 za rodzaj i sposób wy±wietlania wyników programu. Oto przykªad procedury i sposób przekazywania do niej parametrów: pro power,liczba1,liczba2 print,liczba1^liczba2 end Plik z nasz procedur zgodnie z reguª nazwali±my power.pro po jego skompilowaniu wywoªujemy plik wykonywalny i przekazujemy parametr procedurze nastepuj co: IDL>power,3, Funkcje Funkcja zwraca wynik operacji w niej wykonywanych. Oto sposób budowania dowolnej funkcji: function nazwa funkcji,lista argumentów,lista sªów kluczowych tr± funkcji end Do przekazania warto±ci wynikowej sªu»y polecenie RETURN, warto±. Dozwolone jest posiadanie wielu instrukcji return w tre±ci danej funkcji, ale mo»liwe mo»e by wykonanie tylko jednej z nich. Oto przykªad funkcji zwracaj cej mniejsz z dwóch liczb wejsciowych: function minimum,liczba1,liczba2 IF (liczba1 GT liczba2) THEN BEGIN return,liczba2 ENDIF ELSE BEGIN return,liczba1 ENDELSE end Po kompilacji pliku minimum.pro jakim nazwali±my plik z nasz funkcj nale»y przekaza zwracany rezultat wywoªuj c funkcj nastepujaco: IDL>wynik=minimum(10,0.5) IDL>print,wynik

24 2.5 Procedury, funkcje, program glówny Program gªówny Program gªówny jest programem nadzorczym. Odpowiada on za kolejno± wykonywania procedur i funkcji z nim zwi zanych. Nie posiada on deklaracji na pocz tku. Jedynym wymogiem jest zako«czenie jego instrukcji sªowem END. Je»eli umie±cilismy sekcje programu gªównego w pliku to jego nazwa nie mo»e pokrywa si z nazw funkcji lub procedury w nim zawartej. Kompilator sam wykrywa czy dany plik posiada sekcje programu gªównego czy nie. Je»eli takowa istnieje to zostaj skompilowane wszystkie moduªy procedur i funkcji, a nazwa danego moduªu b dzie nazw danej funkcji lub procedury. Dodatkowo skompilowany moduª gªówny przyjmie nazw $MAIN$. Jego wykonanie nast pi po wpisaniu w linii polece«polecenia: IDL>.GO Oto przykªad kodu programu gªównego zapisanego w pliku glowny.pro steruj cego wykonywaniem procedur oraz sposob kompilacji moduªów programu gªównego i procedur: pro wyswietl1 print,'procedura nr.1' end pro wyswietl2 print,'procedura nr.2' end print,'program glowny wykonuje:' wczytaj wyswietl end Skompilujmy plik glowny.pro i spój»my na skomilowane moduªy: IDL>.COMPILE glowny Compiled module: WYSWIETL1. Compiled module: WYSWIETL2. Compiled module: $MAIN$. Istnieje mo»liwo± sprawdzenia dziaªania ka»dego moduªu z osobna. Wywoªajmy jedn z procedur, a nast pnie program gªowny: IDL>wyswietl1

25 2.5 Procedury, funkcje, program glówny 25 procedura nr.1 IDL>.go program glowny wykonuje: procedura nr.1 procedura nr Kompilacja Otrzymanie wyników napisanego kodu mo»e si odby poprzez jego skompilowanie. Cz ± polece«poznali±my we wcze±niejszym podrozdziale. Oto wszystkie polecenia niezb dne przy kompilacji i uruchamianiu programów z linii polece«: IDL>.COMPILE [plik1,...,plikn] lub IDL>.COM [plik1,...,plikn] Polecenie to kompiluje procedury, funkcje programy gªówne zawarte w wyszczególnionych plikach. IDL>.RUN [plik1,...,plikn] lub IDL>.R [plik1,...,plikn] Polecenie dziaªa tak jak poprzednie, dodatkowo je»eli plik posiada sekcje programu gªównego nastepuje natychmiastowe wykonanie tej sekcji. IDL>.GO Polecenie to nakazuje wykonanie kodu uprzednio skompilowanego modulu gªównego programu. Ka»da zmiana w kodzie wymaga skompilowania tego modulu, w którym zaszªa zmiana. Nie jest wymagane dodawanie rozszerze«kompilowanych b d¹ uruchamianych plików. Kompilator automatycznie wyszuka podany plik z rozszerzeniem pro o podanej nazwie Edytor dla wersji 6.2 Wspomnieli±my wczesniej,»e cz sto m cz ce jest wprowadzanie kodu poprzez linie polece«. Dzi ki edytorowi j zyka IDL pisanie programów, ich kompilacja, uruchamianie, a tak»e korzystanie z bogatej pomocy nie stanowi wielkiego problemu. Mo»na powiedzie,»e dzi ki edytorowi mo»emy postawi pierwsze kroki w celu poznania j zyka IDL. Jest on dost pny dla systemow Windows, Macintosh oraz wielu platform Unixowych.

26 2.5 Procedury, funkcje, program glówny 26 Edytor skªada si z kilku paneli. Bezpo±rednio u góry znajduje si pasek menu, a pod nim pasek narz dzi edytora. Pod paskiem edytora znajduje si duzy panel edytora kodu oraz mniejszy panel projektu. Pod nimi znajduje si panel wyników, nast pnie panel zmiennych i linia polece«. Oto wygl d edytora: Rysunek 1: Wygl d edytora j zyka IDL dla wersji 6.2 Wersj demo mo»na pobra ze strony Wersj tak mo»na równie» otrzyma poczt po wypeªnieniu ankiety zawartej na tej stronie. Niestety zablokowanych jest tu kilka funkcji m.in. zapis danych do pliku,a czas u»ywania edytora jest ograniczony do 7 minut, po których trzeba ponownie uruchomic edytor. Niespotkaªem si na polskim rynku z dystrybucj systemu Linux, w któr wbudowany byªby kompilator tego jezyka. Wersja studencka to koszt okoªo 80 dolarów.

27 3 Praca z danymi 27 3 Praca z danymi Je»eli mamy jakiekolwiek dane to na pewno da si je wy±wietli przy pomocy j zyka IDL. Je»eli natomiast nie mamy zbioru danych, nad którym chcieliby±my pracowa to j zyk IDL stworzy te dane dla nas. 3.1 Tworzenie danych Nie zawsze mamy gotowy zestaw danych. J zyk IDL posiada szereg wbudowanych funkcji inicjuj cych zestaw danych. Za ich pomoc mo»emy utworzy jednowymiarowy wektor lub wielowymiarowe tablice dowolnego typu. Pola inicjowane s wartosci 0. Dla przy±pieszenia dziaªania programu mo»na z tej inicjacji zrezygnowa wstawiaj c w funkcji inicjuj cej ag /NOZERO. Oto zestaw tych funkcji: Tablica 6: Funkcje tworz ce zbiory danych Typ Funkcja byte BYTARR() integer INTARR() unsigned integer UINTARR() long LONARR() unsigned long ULONARR() 64-bit long LON64ARR() unsigned 64-bit long ULON64ARR() oating point FLTARR() double precision DBLARR() string STRARR() Wszystkie te funkcje maj jednakow skªadni. Wynik ich dziaªania jest równie» podobny, jednak warto±ci, którymi s inicjowane s ró»ne i tak dla typu byte jest to warto± 0, a dla typu double 0.0. Podaj c za argument funkcji tylko jeden wymiar otrzymujemy wektor o liczbie pól okre±lon przez nasz argument i typie adekwatnym do wywoªanej funkcji. Oto skªadnia jednej z tych funkcji, przykªad u»ycia i wynik: wynik=fltarr(d1[,...,d8] [,/NOZERO]) IDL>tablica_float=FLTARR(3,3) IDL>print,tablica-float

28 3.2 Operacje na wektorach i macierzach Oto nast pny zestaw funkcji. Charakteryzuj sie one tym,»e pierwszy element zbioru przez nie utworzonego ma wartosc 0, ka»dy nast pny element zwi ksza t warto± o 1. Tablica 7: Funkcje inicjuj ce zbiory danych Typ Funkcja byte BINDGEN() integer INDGEN() unsigned integer UINDGEN() long LINDGEN() unsigned long ULINDGEN() 64-bit long L64INDGEN() unsigned 64-bit long UL64INDGEN() oating point FINDGEN() double precision DINDGEN() Sój»my jak wygl da dzia anie dwóch z tych funkcji w praktyce: IDL>tab_int=INDGEN(3,3) IDL>tab_float=FINDGEN(2,2) IDL>print,tab_int IDL>print,tab_float Operacje na wektorach i macierzach Dowiedzieli±my si jak stworzy wielowymiarowe zbiory danych. Czas na poznanie operacji jakie s mo»liwe na tych zbiorach. W±ród operacji na macierzach i wektorach istnieje wiele zale»no±ci.

29 3.2 Operacje na wektorach i macierzach 29 Z racji tego,»e macierze stanowi bardziej zªo»one struktury, a wiekszo± danych przechowywana jest wla±nie w macierzowej postaci wielowymiarowych kolumn i wierszy poznanie operacji macierzowych stanowi istotny punkt w poznaniu jezyka IDL. Najpierw poznajmy kilka operacji na wektorach: wektor=indgen(5) print,wektor print,wektor(2:4) print,wektor^ print,wektor GE print,[wektor,20,21] Struktura dowolnej macierzy M jest taka,»e element le» cy na przeci ciu i-tej kolumny i j-tego wiersza oznaczamy przez M[i,j]. J zyk IDL ªatwiej i szybciej ni» jakikolwiek inny j zyk operuje na macierzach. Mogli±my si przekona obserwuj c operacje na wektorach,»e jednym poleceniem wykonujemy to co w innych j zykach programowania wymagaªoby zastosowania jednej p tli. W stosunku do macierzy,gdzie zast powane s przynajmniej dwie petle wida specjalizacj j zyka w tym zakresie. Zobaczmy przykªady kilku operacji macierzowych: macierz_1=indgen(3,3) print,macierz_ print,rotate(macierz_1,1) print,rotate(macierz_1,4) print,transpose(macierz_1+1)

30 3.2 Operacje na wektorach i macierzach Mo»emy przesuwa klolumny i wiersze macierzy przy pomocy funkcji SHIFT. Drugi argument tej funkcji odpowiada za przesuwanie kolumn, trzeci natomiast odpowiada za przesuwanie wierszy. W celu szybszego poznania dziaªania tej funkcji najpierw przypomnijmy posta bazow naszej wejsciowej macierzy: print,macierz_ print,shift(macierz_1,1,0) print,shift(macierz_1,0,1) Pamietaj c,»e przy pomocy funkcji print nie zmieniamy naszych danych zapisanych w pami ci komputera lecz tylko modykujemy ich warto±ci przy wy±wietlaniu zobaczmy w jak prosty sposób przy pomocy operatora ## mo»emy pomnozy dwie macierze. Macierz druga musi mie tak sam liczb wierszy co macierz pierwsza liczb kolumn, w przeciwnym wypadku wygenerowane zostanie ostrze»enie: Operands of matrix multiply have incompatible dimensions Pamietaj c o powy»szej zasadzie tworzymy dwie nowe macierze i wykorzystujemy nasz operator: macierz_1=[[3,2],[2,3],[3,2]] macierz_2=[[2,3],[4,3]] print,macierz_1 ## macierz_

31 3.3 Odczyt danych 31 Tak oto wykonali±my programowo najszybsze mno»enie dwóch maciezy z zachowaniem kontroli nad ich poprawn iloscia kolumn i wierszy. Tym kilku liniom kodu cz sto równowa»ne jest kilkudziesi t w przypadku j zyków takich jak Pascal, czy C. 3.3 Odczyt danych Dane s podstaw ka»dego wykresu. W poprzednim rozdziale opisaªem sposoby tworzenia danych. Cz sto jednak takie sposoby nie wystarczaj i nale»y wczyta zbiór danych z pliku. J zyk IDL wspiera wiele formatów danych m.in. pliki: ASCII, binarne, DICOM, DXF, WAV i XDR. S w±ród nich tak»e formaty naukowe takie jak: CDF, HDF, HDF-EOS czy netcdf. Wczytywaniu tak ró»norodnych danych musz towarzyszy ró»ne techniki. Danym zapisanym w obrazach, tworzeniu obrazów z danych jak i obslugiwanym formatom gracznym po±wi cony b dzie osobny rozdziaª. Oto niektóre z technik wczytywania danych Pliki ASCII J zyk IDL obsªuguje dwa typy danych ASCII. Jest to typ tak zwanego wolnego formatu, gdzie poszczególne elementy w pliku oddzielone s przecinkami, znakami spacji lub znakami tabulacji oraz typ wyra¹ny, gdzie elementy w pliku oddzielone s innym znakiem wybranym przez uzytkownika. Istnieje kilka sposobów czytania takich danych. Pierwszym z nich jest u»ycie procedury READF, której wywoªanie wymaga wpierw u»ycia jednej z procedur otwarcia pliku, do odczytu OPENR, do zapisu OPERNW lub do dopisywania OPENU. Niestety, aby poprawnie wczyta dane musimy tutaj zna ilo± elementów w ka»dej z linii. Oto przykªad otwarcia pliku, wczytania i wy±wietlenia danych w nim zapisanych: openr, plik, 'dane.txt',/get_lun WHILE ~ EOF(plik) DO BEGIN READF, plik, var1, var2, var3,var4, var5 print, var1, var2, var3, var4, var5 ENDWHILE close,plik

32 3.3 Odczyt danych 32 Opisana metoda sprawdza si, jednak przy wiekszych zbiorach danych, gdzie wystepuje wiele kolumn mo»e okaza si uci»liwa. Matoda czytania danych ASCII przy pomocy funkcji READ_ASCII z wcze±niejszym okresleniem formatu danych w trakcie wywoªania funkcji ASCII_TEMPLATE w istotny sposob niweluje niedogodno±ci opisawenego wcze±niej sposobu czytania danych. Pierwszym krokiem jest wpisanie kodu: format_pliku=ascii_template() Po wpisaniu tej komendy zaczyna si proces formatowania zbioru danych, wy±wietlone zostaje pierwsze okno dialogowe. Rysunek 2: Okre±lenie formatu pliku - metoda ASCII_TEMPLATE Wybieramy opcje Delimited, poniewa» kolumny naszego pliku rozdzielone s przecinkami lub spacjami lub znakami tabulacji. Wprowadzamy znak ±rednika jako opcjonalny znak pocz tku komentarza, automatycznie nasz plik zaczyna si w pierwszym wierszu nie b d cym komentarzem. W naszym przypadku jest to wiersz pierwszy. Po kliknieciu przycisku Next pojawia si nast pne okno, w którym wpisujemy liczb elementow w jednej linii, znak rozdzielaj cy oraz warto±, któr program przyjmie za domy±ln w przy-

33 3.3 Odczyt danych 33 padku braku danej warto±ci w pliku. Domy±lnie jest to staªa IEEE NaN. 2. Oto drugie okno dialogowe: Rysunek 3: Okre±lenie formatu pliku - metoda ASCII_TEMPLATE W ostatnim oknie dialogowym mamy mo»liwo± nadania odpowiednim kolumnom nazw. Istnieje równie» opcja, dzi ki której mo»emy przyporz dkowa typ danych odpowiednim kolumnom. Typ danych w danej kolumnie jest automatycznie dostosowywany do typu danej kolumny w naszym pliku. Istnieje mo»liwo± omini cia krokow zwi zanych z okre±laniem formatu wczytywanego pliku. Wówczas procedu wczytania pliku stanowi wywoªanie procedury READ_ASCII. Krótszy sposób nie daje nam gwarancji wªasciwego wczytania danych. Warto wi c po±wi ci kilka chwil gracznemu interfejsowi u»ytkowniaka metody ASCII_TEMPLATE. Zobaczmy ostatnie okno dialogowe tej metody oraz wyniki funkcji READ_ASCII: 2Not A Number - rezultat niedozwolonych operacji takich jak dzielenie przez zero, logarytm z liczby ujemnej, w przypadku zbiorow danych oznacza brakujace elementy, wzgledem denicji danego zbioru

34 3.3 Odczyt danych 34 Rysunek 4: Okre±lenie formatu pliku - metoda ASCII_TEMPLATE Okre±lili±my format pliku. Wczytajmy dane wywoªuj c funkcj READ_ASCII. Wyniki wy±wietlamy w standardowy sposób: dane_ascii= read_ascii(filepath('dane.txt'),template=format_pliku) print,dane_ascii { } Pliki binarne Poznali±my sposób wczytywania plików tekstowych. Bardziej wydajnym i kompaktowym sposobem przechowywania danych jest eksportowanie danych do plikow binarnych. Dane takie s przechowywane jako strumienie bajtów. Pliki binarne s niezb dne przy przechowywaniu du»ych zbiorów danych, równie» plików gracznych. Tak jak w przypadku plików tekstowych j zyk IDL oferuje nam mo»liwo± ustawienia formatu zbioru danych poprzez graczny interfejs funkcji BINARY_TEMPLATE(). Oto przykªad jej wywolania: format_pliku=binary_template() dane_bin=read_binary(filepath('plik.dat'),template=format_pliku)

35 3.3 Odczyt danych 35 Dwa okna dialogowe przeprowadzaj nas przez proces alalogicznie jak w przypaku plików ASCII, poªaczenie z funkcj READ_BINARY() skutkuje otrzymaniem gotowego zbioru danych do wy±wietlenia. Tablica 8: Staªe liczbowe i napisowe równowa»ne typom danych j zyka IDL Staªa liczbowa Staªa napisowa Typ 0 UNDEFINED Undened 1 BYTE Byte 2 INT Integer 3 LONG Longword 4 FLOAT Floating 5 DOUBLE Double-precision 6 COMPLEX Complex oating 7 STRING String 8 STRUCT Structure 9 DCOMPLEX Double-prec. complex 10 POINTER Pointer 11 OBJREF Object reference 12 UINT Unsigned Integer 13 ULONG Unsigned Longword Integer 14 LONG64 64-bit Integer 15 ULONG64 Unsigned 64-bit Integer W przypadku plików binarnych opcja wywoªania funkcji READ_BINARY() z pomini ciem BINARY_TEMPLATE() jest o wiele bezpieczniejsza, gdy» opcje ustawiane przez u»ytkownika za pomoc GUI 3 mo»na z powodzeniem ustawi jako argumenty funkcji READ_BINARY().Zamiast nazw typów mo»emy u»y w wywoªaniu funkcji READ_BINARY() predeniowanych staªych (Tabela 8). Niemniej jednak w jednym jak i wdrugim przypadku musimy zna struktur danych aby nasze parametry w wiarygodny sposób odzwierciedlaly dane w pliku. Pliki binarne stanowi wr cz ogromne zbiory danych. Mo»emy jednak posªu»y si maªym plikiem lub cz ±ci du»ego dla pokazania tej techniki. IDL>dane_binarne=read_binary(FILEPATH('plik.dat'),data_start=0,$ IDL>data_type=INT,data_dims=[3,3],endian='little') IDL>print,dane_binarne 3ang.Graphical User Interface - graczny interfejs u»ytkownika

36 3.3 Odczyt danych W naszym przypadku dane byªy typu integer, ich wczytywanie zacz lismy od pocz tku pliku, a wczytany obszar zawieraª tablic dwuwymiarowa o trzech wierszach i trzech kolumnach. Warto± parametru endian stanowi o sposobie wczytywania bajtów do pami ci. Zarówno dla architektury procesorów Intel jak i AMD w systemach Windows i Linux warto± ta powinna by ustawiona jako 'little'. Inne architektury np.: Motorola PowerPC dla systemu Macintosh OS X oraz Sun SPARC dla systemu Solaris wymagaj parametru 'big' Pliki graczne Chocia» pliki graczne s cz sto równowa»ne plikom binarnym to jednak techniki wczytywania plików gracznych ze wzgl du na ich specyk zostaªy oddzielone od technik wczytywania i wy±wietlania plików binarnych. W przypadku plików binarnych otrzymujemy jako wynik zestaw liczb, a w plikach gracznych z danych liczbowych powstaje obraz. Obraz jest dwu lub kilkuwymiarow tablic warto±ci liczbowych z zakresu Do przechowywania obrazów bardzo dobrze nadaje si typ BYTE. W przypadku obrazów monochromatycznych tablica jest dwuwymiarowa, natomiast w przypadku obrazów wielobarwnych najcz ±ciej trójwymiarowa. Wi kszo± kolorowych obrazów posiada trójkanaªow struktur barw typu RGB 4. Ka»dy kanaª to jakby obraz monochromatyczny. Do piero ich zªo»enie daje efekt wielobarwno±ci. Jedynym problemem jest poprawne wy±wietlenie koloru. Dlatego ka»dy z obslugiwanych formatów gracznych otrzymaª osobn funkcj wy±wietlaj c. Do poprawnego wczytania pliku gracznego niezb dne jest znanie jego rozszerzenia. Analogicznie do funkcji wczytuj cych pliki graczne istniej funkcje tworz ce grak. Tak np.: dla formatu bmp jest to funkcja WRITE_BMP, dla plików PNG funkcja WRITE_PNG.Przyj»yjmy si metodom wczytywania i wy±wietlania plików gracznych, a tak»e technikom wspieraj cym wczytywanie plików gracznych. 4model przestrzeni barw,zawdzi czaj cy sw nazw pierwszym literom barw skªadowych: Red Green Blue. Pierwotnie stosowany w technikach analogowych z powodzeniem mo»e by stosowany w technikach cyfrowych.

37 3.3 Odczyt danych 37 Tablica 9: Funkcje wczytuj ce pliki graczne Typ plku Nazwa funkcji.bmp READ_BMP.gif READ_GIF.jpeg,.jpg READ_JPEG.png READ_PNG.ppm,.pbm READ_PPM.ti,.tif READ_TIFF obrazek_png=read_png('mars.png',r,g,b) tvlct,r,g,b tv,obrazek_png Rysunek 5: Wynik wspóªdzialania funkcji read_png, tvlct i tv Bez u»ycia procedury TVLCT Load Color Table obrazek zostanie pozbawiony barw i wy±wietlony jako obrazek monochromatyczny. Na szcz ±cie wiemy ju» jak temu zapobiec. Alternatywa dla procedury TV jest procedura TVSCL. TVSCL skaluje warto±ci obrazka tak aby przebiegaªy one przez caªy mo»liwy zakres, czyli rozkªadaªy si równomiernie pomiedzy wartosciami Nie zawsze stosowanie takiego skalowania jest nam potrzebne. Pami tajmy,»e takie skalowanie mo»e znieksztaªci pewne typy obrazów.

38 3.3 Odczyt danych 38 Cz sto spotykamy si z problemem zbyt maªego lub zbyt du»ego okna, w którym wy±wietlana jest graka. Za cechy takie jak tytuª, wysoko± i szeroko± okna, ilo± okien,a tak»e miejsce na ekranie dzi ki parametrom XPOS i YPOS, które to odpowiednio okre±laj odst p od górnego lewego rogu ekranu postepuj cy w prawo i odstep od górnego lewego rogu ekranu postepuj cy w dóª odpowiada procedura WINDOW. Istone jest,»e ustawienia pewnych parametrów ró»ni si dziaªaniem w ró»nych systemach operacyjnych. Najlepiej otworzy stron pomocy j zyka IDL dotycz ce tej procedury poleceniem: IDL>? window Oto przykªad u»ycia tej procedury ustawiaj cej szeroko± i wysoko± okna, tytuª oraz wy±rodkowywuj ce to okno przy rozdzielczo±ci 1024 na 768 pikseli i przy wprowadzonych wymiarach okna: WINDOW,title='Moj wykres',xsize=480,ysize=480,xpos=272,ypos=144

39 4 Dwuwymiarowe rysunki i wykresy 39 4 Dwuwymiarowe rysunki i wykresy Rysunki i wykresy s podstawowym sposobem wizualizacji danych. Cz sto jeden rysunek, czy wykres mo»e zobrazowa proces, którego opisanie zaj ªoby wiele miejsca i czasu. Przyj»yjmy si metodom tworzenia dwuwymiarowych rysunków i wykresów. 4.1 Procedura PLOT Proste rysunki czy wykresy tworzymy za pomoc procedury PLOT. Ka»- dorazowe wywoªanie tej procedury ustanawia kilka elementów,s to: okno rysowania danego rysunku ograniczony przez osie ukªadu wspóªrz dnych, obszar rysunku, stanowi cy okno rysunku wraz z jego otoczeniem, typy osi oraz rodzaj skalowania. Oto przykªad u»ycia tej funkcji: x=findgen(100)*(4*!pi/100) ;utworzenie zbioru danych z zakresu 0-4π plot, sin(x) Rysunek 6: Wykres funkcji sinus-metoda plot W przypadku kiedy chcemy wizualizowa pewien zbiór danych, domy±lnie o± Y numerowana jest od 0. W wielu przypadkach chcemy aby o± Y przyjmowaªa inne wartosci. Temu sªu»y sªowo kluczowe /YNOZERO, które dostosowuje warto±ci osi Y do wy±wietlanych na niej danych. Oto przykªad:

40 4.1 Procedura PLOT 40 IDL>populacja=[463,459,437,433,431,433,431,428,430] IDL>lata=[1965,1970,1975,1980,1985,1990,1995,2000] IDL>PLOT,lata,populacja,/ynozero,title='Populacja',$ IDL>xtitle='lata',ytitle='tys.' Rysunek 7: Metoda plot-zmiana skali osi Y Procedura PLOT jest podstawowym narz dziem wizualizacji danych. Jej szereg rozbudowanych opcji pozwala przedstawia wyniki na ró»ne sposoby. Opis jej jest dostepny po wpisaniu komendy: IDL>? plot Sprobujmy wyswietli dane z poprzedniego przykªadu w troch inny sposób modykuj c i dodaj c nowe opcje procedury PLOT. PLOT,lata,populacja,THICK=2,XTICKS=8,YTICKS=8,TICKLEN=1.0, /ynozero,title='populacja',xtitle='lata',ytitle='tys.' Dodaj c kilka opcji stworzyli±my caªkiem nowe okno z wynikami. U»ytkownik dysponuj c szerokim wachlarzem tych opcji mo»e w znaczacy sposób wpªywa na zwi kszenie atrakcyjno±ci i czytelno±ci tworzonych wykresów. Spój»my na wyniki.

41 4.1 Procedura PLOT 41 Rysunek 8: Mo»liwosci procedury plot Procedura PLOT mo»e by równie» u»yta w celu wy±wietlenia kilku wykresów obok siebie. W takim wypadku nale»y odpowiednio zainicjowa zmienn systemow!p.multi, b dac tablic kontrolujac rozmieszczenie wykresów. Pamietaj c,»e pierwszy element tej tablicy okre±la liczb oczekuj cych na wy±wietlenie wykresów, drugi element okre±la liczb kolumn, a trzeci liczb wierszy okien rysowania, tworzymy pokaz wykresów.!p.multi = [0,1,2,0,0] ;jedna kolumna, dwa wiersze x=findgen(100)*(4*!pi/100) wykres1=sin(x) wykres2=cos(x) plot,wykres1,title='sinus',psym=1 plot,wykres2,title='cosinus',psym=3 Stworzyli±my pokaz dwóch wykresów w jednym oknie. Do dobrego tonu nale»y przywrócenie domy±lnej warto±ci zmiennej!p.multi tak aby w jednym oknie wyswietlany byª jeden wykres. Czynimy to poleceniem: IDL>!P.MULTI=0

42 4.2 Procedura OPLOT 42 Rysunek 9: Multi-pokaz wykresow Poprzednie wywoªanie procedury PLOT zawieraªo sªowo kluczowe PSYM. Przyjmuj c warto±ci od 0 do 5 steruje ono sposobem wy±wietlania punktów wykresu, mog ce przyjmowac np.: symbol gwiazdek, czy krzy»yków. Odmienne sposoby rysowania b d nam pomocne przy rysowaniu kilku wykresów w jednym oknie rysowania. 4.2 Procedura OPLOT Dzi ki umieszczaniu kilku okien rysowania w jednym oknie gracznym mamy mo»liwo± porównywania danych, je±li s ze sob powi zane. Mo»liwo± ta jest jednak ograniczona. Dzi ki procedurze OPLOT, która nadrysowywuje wcze±niejsze wykresy zachowuj c przy tym skale jednostek, porównanie ze sob danych w postaci wykresów jest w znacz cy sposob uªatwione. x=findgen(100) x=findgen(100)*(4*!pi/100) plot,sin(x) oplot,sin(x-!pi),linestyle=1,thick=2 oplot,sin(x/2),linestyle=2,thick=2

43 4.2 Procedura OPLOT 43 Rysunek 10: Metoda oplot Tak jak w metodzie PLOT za rodzaj linii odpowiadaªo sªowo kluczowe PSYM, tak w opisywanej funkcj t peªni sªowo LINESTYLE. Liczba opcji wynosi tak jak w poprzednim przypadku 6. Procedura OPLOT umo»liwiªa nam porównywanie kilku wykresów danych. Nie daje nam jednak mo»liwosci dowiedzenia si o skªadowych wykresu. W przypadku funkcji trygonometrycznych problem nie jest tak wielki, wystarczaj ce mog by tutaj tytuª wykresu i opis osi, ale ju» w przypadku wykresów ekonomicznych musimy mie mo»liwo± opisania ka»dego wykresu z osobna. Tak mozliwo± daje nam procedura XYOUTS. Procedura ta daje w wyniku tekst, umieszczaj c go w oknie wykresu. Wspoªrz dne startowe x i y okre±la pierwszy i drugi parametr funkcji, natomiast trzeci parametr odpowiada za tre±. Oto przykªad omawianego rozwi zania: firma1=[440,449,437,433,431,433,431,428,430,431] firma2=[328,361,331,320,367,395,423,380,388,390] firma3=[314,329,365,387,407,414,433,431,442,443] lata=[1980,1982,1984,1986,1988,1990,1992,1994,1996] dane_zakres=[[firma1],[firma2],[firma3]] plot,lata,firma1,/ynozero,yrange=[min(dane_zakres),$ max(dane_zakres)],ytitle='tys.pln',xtitle='lata',thick=2

44 4.2 Procedura OPLOT 44 oplot,lata,firma2,linestyle=1,thick=2 oplot,lata,firma3,linestyle=4,thick=2 Ustalili±my zakres dla osi Y wybieraj c najmniejsz i najwieksz warto±± spo±ród zysków trzech rm. Dwukrotnie wywoªana procedura OPLOT dorysuje kolejne wykresy do ju» istniej cego wykresu powstaªego w wyniku wywoªania procedury PLOT. Spój»my teraz na kod odpowiedzialny za tworzenie podpiu wykresu: nazwy=['zysk firmy1','zysk firmy2','zysk firmy3'] n=n_elements(lata)-1 FOR i=0,2 DO BEGIN XYOUTS,1995,dane_zakres[n,i],nazwy[i] ENDFOR W p tli wykonujemy procedur XYPOS dla ka»dego wykresu tak aby podpis wy±wietlony zostaª w miejscu po ostatniej danej uwzgl dnionej w wykresie, czyli po roku 1995 (o± x) i ostatniej danej z tablicy rmai (o± y). Spój»my na wyniki wpisanego kodu: Rysunek 11: Metoda oplot

45 4.3 Metoda LIVE_PLOT Metoda LIVE_PLOT Procedura LIVE_PLOT ª czy w sobie cechy opisywanych ju» procedur PLOT i OPLOT. Ró»ni si jednak od nich tym,»e tworzy interaktywne ±rodowisko rysowania. Po dwukrotnym klikni ciu na dany element wykresu pojawia si okno dialogowe w którym mo»emy zmienia opcje i wªa±ciwo±ci jego dotycz ce. Co wi cej dysponujemy siedmioma przyciskami pozwalaj cymi na wstawianie linii, pól tekstowych, prostokatów, drukowanie okna oraz na cofanie wprowadzonych zmian. Istotne jest to,»e parametry wykresu mog by ustalane podczas wywoªania procedury, a nast pnie zmieniane lub mody- kowane po utworzeniu okna programu. live_plot,firma1,firma2,firma3,title='porownanie zyskow' Rysunek 12: Metoda live_plot

46 5 Obróbka sygnaªu 46 5 Obróbka sygnaªu Pliki d¹wi kowe s zapisem sygnaªu, który bardzo cz sto potra by doskonaªym ¹ródªem danych. Wiele danych medycznych uzyskuje si poprzez analiz plików d¹wi kowych. Odpowiednio dobrane techniki wy±wietlania i analizowania tych plików umo»liwiaj w wielu przypadkach postawienie dobrej diagnozy. Dzieje si tak np.: w przypadku zaburze«mowy, czy chorób serca (badania EKG). Nie mo»na jednak ª czy tej dziedziny jedynie z medycyn. Analiza sygnaªu to wa»ny element pracy sejsmologów i astronomów. Badanie takich ¹ródeª danych to bardzo szerokie zagadnienie wielu dziedzin nauki. 5.1 Tworzenie danych J zyk IDL dysponuje wyspecjalizowanymi narz dziami do obróbki sygnaªu. Umieszczone s one w pakiecie o nazwie IDL Wavelet Toolkit. Pakiet ten uruchamiamy poleceniem: IDL>wv_applet Umo»liwia on wy±wietlanie informacji o zbiorze danych, importowanie plików d¹wi kowych, binarnych lub tekstowych, wy±wietlanie danych w wielu wymiarach. Wszystkie interesuj ce interfejsy graczne tego pakietu wymagaj wykupienia licencji. Posªu»ymy si sztucznie utworzonym sygnalem. oryginalny=sin(findgen(100)/5)*exp((-1)*(findgen(100)/30)) Rysunek 13: Wygenerowany sygnaª

47 5.1 Tworzenie danych 47 Oto wynik naszego kodu. Powstaªy sygnaª wymaga jeszcze kilku operacji, dzi ki którym b dzie wierniej odtwarzaª sygnaª rzeczywisty. Dodajmy teraz do oryginalnego sygnaªu drugi imituj cy szum. Tworzymy go przy pomocy funkcji RANDOMU generuj cej rzeczywiste liczby pseudolosowe. IDL>zaszumiony=oryginalny+((randomu(2l, 100)-0.5)/5) Wygenerowane warto±ci imituj szybko zmieniaj ce si w czasie poszczególne warto±ci badanego sygnaªu. Oto sygnaª zaszumiony. Rysunek 14: Wygenerowany sygnaª zaszumiony Wykorzystuj c procedur PLOT oraz OPLOT porównamy, nakªadaj c na siebie sygnaª oryginalny i sygnaª szumu. IDL>plot,oryginalny,xtitle = "Czas",ytitle ="Sygnal",thick=2.0 IDL>oplot,zaszumiony Uzyskali±my sygnal, b d cy podstaw naszej dalszej analizy. Ci gle jednak nie stanowi on jednego zbioru danych. Wy±wietlenie sygnaªu oryginalnego i zaszumionego w jednym oknie wykresu stanowi pocz tek drogi do zªo»enia tych dwóch funkcji w jedn caªo±. Przyj»yjmy si wynikom procedur.

48 5.2 Wygªadzanie sygnaªu metod SMOOTH 48 Rysunek 15: Porównanie sygnaªu oryginalnego z zaszumionym 5.2 Wygªadzanie sygnaªu metod SMOOTH Funkcja SMOTH korzystaj c z wbudowanego u±redniaj cego ltra wygªadza elementy wej±ciowej tablicy. Dodatkowym atutem tej funkcji jest to,»e nie zmienia ona zakresu danych. W naszym przypadku analizujemy dane imituj ce sygnal. Funkcja ta mo»e otrzyma na wejsciu dowoln tablic, b d c np.: fragmentem wczytanego obrazu gracznego. IDL>wygladzony=smooth(zaszumiony,5) plot,wygladzony Otrzymalismy sygnaª, mog cy by przedmiotem analizy. Cz sto ju» samo odpowiednie odczytanie wykresu jest w stanie da odpowied¹ na wiele pytan. Odpowiednie ltrowanie i analiza próbek da mog jeszcze wi cej odpowiedzi ich badaczom. Otrzymany obraz jest dobr imitacj próbek sygnaªu rzeczywistego. 5.3 Filtracja sygnaªu Za pomoc odpowiednich technik ltracji mo»emy uzyska dane, które bez tych technik nigdy nie zostaªyby dostrze»one. W naszym wypadku b d to ltry dziaªaj ce w dziedzinie cz stotliwo±ci. Istota ltrów jest taka sama

49 5.3 Filtracja sygnaªu 49 Rysunek 16: Sygnaª wygªadzony metod Smooth równie» dla danych gracznych. Po wprowadzeniu maski warto±ci danego ltra dziaªamy nim na warto±ciach danego sygnalu, uzyskuj c nowe warto±ci b d ce pewn pochodn warto±ci sygnaªu i maski ltra. y=[findgen(50),findgen(50)-50] y[51:99]=reverse(y[0:48]) Utworzylismy tablic 100 elementow liczb rzeczywistych stosuj c funkcj FINDGEN. Nas pnie pierwszych 49 elementów w odwróconej kolejno±ci przekopiujemy na miejsce ostatnich 49 elementow. Bazuj c na stworzonej tablicy tworzymy ltr (Rys.17). filtr=1.0/(1+(y/15)^8) plot,filtr Utworzony ltr staje si podstaw do tworzenia kolejnych. Aby uzyska ltr dolnoprzepustowy i zastosowa go na naszym sygnale nale»y wpisa kod: IDL>dolny=fft 5 (fft(zaszumiony,1)*filtr,-1) 5ang. Fast Fourier Transform, czyli szybka transformata Fouriera. Wykorzystuje ona pewne wªasno±ci symetrii funkcji trygonometrycznych w punktach ich obliczania, aby uzyska wi ksz szybko± oblicze«ni» w metodach konwencjonalnych. Je±li N oznacza liczb punktów w czasowej sekwencji sygnaªu, to w algorytmie konwencjonalnym trzeba

50 5.3 Filtracja sygnaªu 50 Rysunek 17: Wizualizacja utworzonego ltra IDL>plot,dolny Analogicznie do uzyskania ltru dolnoprzepustowego w dziedzinie cz stotliwo±ci wpisujemy ponizszy kod w celu uzyskania ltra górnoprzepustowego: IDL>gorny=fft(fft(zaszumiony,1)*(1.0-filtr),-1) IDL>plot,gorny Spój»my na wyniki dziaªania obydwu ltrów. Wejsciowym sygnaªem w obu przypadkach byª sygnaª zaszumiony. by wykona w przybli»eniu N 2 operacji, a w algorytmie FFT wystarcza ok. N ln N

51 5.3 Filtracja sygnaªu 51 Rysunek 18: Filtry- dziedzina cz stotliwo±ci

52 6 Obróbka plików gracznych 52 6 Obróbka plików gracznych J zyk IDL jest bardzo pomocny w obróbce plików gracznych. Faktem jest,»e jest zorientowany na szeroko rozumiane tablice. Obrazy mog by przechowywane jako wielowymiarowe tablice. Wiele procedur i funkcji jest specjalnie przystosowana do przetwarzania obazów i pracy z nimi. W poprzednim rozdziale dowiedzielismy si jak wczyta plik graczny. Teraz dowiemy si jak go modykowa i wydobywa z niego informacje. 6.1 Podstawowe operacje na obrazach W rozdziale o wczytywaniu danych poznalismy techniki wczytywania plików gracznych. Teraz posªu»ymy si jeszcze inn funkcj READ_IMAGE, która jest bardzo podobna do opisanych wcze±niej. Jest jednak bardziej uniwersalna, gdy» mo»na za jej pomoc wczytywa pliki graczne róznych typów. Posªu»ymy si ni w kodzie zmieniaj cym rozmiar pliku gracznego. plik=filepath('saturn.jpg',subdirectory=['examples','data']) READ_JPEG,plik,oryginal rozmiar_obrazu=size(oryginal,/dimensions) zmieniony=rebin(oryginal,3,550/2,410/2) WINDOW,0,XSIZE=rozmiar_obrazu[1]/2,YSIZ=rozmiar_obrazu[2]/2,$ TITLE='Planeta Saturn pomniejszenie' TV,zmieniony,TRUE=1 window,1,xsize=rozmiar_obrazur[1],ysiz=rozmiar_obrazu[2],$ TITLE='Planeta Saturn oryginal' TV,oryginal,TRUE=1 Wczytali±my plik graczny. Przy pomocy funkcji REBIN zmienilismy rozmiar tablicy, przechowyj cej dane pikseli. Nale»y pami ta,»e funkcja ta wymaga aby stosunek szeroko±ci obrazu do jego wysoko±ci byª zgodny z warto±ciami obrazu bazowego. Zauwa»yªem,»e pliki z rozszerzeniem.jpeg nie s prawidªowo rozpoznawane. Wywoªuj c funkcje READ_JPEG nale»y w nazwie pliku wpisywa rozszerzenie.jpg nawet je»eli posiadamy wyª cznie plik.jpeg. Poleceniem, które zamyka wszystkie otwarte, aktywne okna graczne jest: IDL>wdelete

53 6.1 Podstawowe operacje na obrazach 53 Rysunek 19: Skalowanie pliku gracznego Czasami potrzebne nam przekonwertowanie obrazu kolorowego na obraz monochromatyczny, czyli np.: posiadaj cy jedynie tak zwane odcienie szarosci. Oto kod rozwiazuj cy ten problem. plik=filepath('saturn.jpg',subdirectory=['examples','data']) READ_JPEG,plik,image saturn_mono=0.3*reform(image[0,*,*])+0.59*reform(image[1,*,*])+$ 0.11*Reform(image[0,*,*]) tv,saturn_mono J zyk IDL dysponuje wieloma szybkimi metodami obróbki obrazu. Wi kszo± jednak zostaªa dostosowana do obrazów monochromatycznych. W pewnych przypadkach istnieje mo»liwo± obej±cia tego problemu. Podczas analizy pliku gracznego mo»na rozªo»y go na cz ±ci, odpowiednio jedna skªadowa cz ± na jeden skªadowy kanaª obrazu i pracowa na ka»dym kanale osobno. Tak technike przedstawi podczas ltrowaniu obrazów. Je»eli nasz obraz bazowy nie jest monochromatyczny musimy posªuguj c si metod konwertowania pliku kolorowego do monochromatycznego przedstawiomej powy»ej, dokonac konwersji. W naszym przypadku b dzie to obraz medyczny przedstawiaj cy wyniki tomograi komputerowej ludzkiej gªowy.

54 6.1 Podstawowe operacje na obrazach 54 Oto kod wczytuj cy i wy±wie tlaj cy oryginalny obraz medyczny. Wy±wietlenie oryginalnego pliku pomo»e nam przy porównywaniu tego pliku z wynikami kodu manipuluj cego tym obrazem. plik=filepath('med_1.jpg',subdirectory=['examples','data']) READ_JPEG,plik,obraz wymiary_obrazu=size(obraz,/dimensions) WINDOW,0,XSIZE=wymiary_obrazu[0],YSIZ=wymiary_obrazu[1],$ title='oryginalny oraz medyczny' tv,obraz Rysunek 20: Oryginalny plik medyczny Przy posªugiwaniu si funkcj SIZE nalezy pami ta,»e w przypadku obrazów monochromatycznych zwraca ona dwa wyniki: szeroko± i wysoko±, a wi c wynikowa tablica ma dwa indeksy, odpowiednio 0 i 1. Podczas pracy z obrazami kolorowymi zwracane s trzy warto±ci: liczba kanaªów, szeroko± i wysoko±, a wynikowa tablica ma indeksy równe odpowiednio 0,1 i 2. Jednym z podstawowych sposobów manipulacji obrazem jest ustawienie progu dla wy±wietlania. Stosuje si w tej technice operatory relacji, a ich wynikiem jest tablica zer i jedynek. Wprowadzona warto± dzieli piksele na dwie grupy. Speªnianie lub niespeªnianie danej relacji stanowi o kolorze danego piksela. W przypadku speªniania relacji jest to kolor biaªy, w przypadku niespeªniania kolor czarny.

55 6.1 Podstawowe operacje na obrazach 55 Prawidªowe wyniki wy±wietlenia uzyskamy przy uzyciu procedury TVSCL. Posªu»my si operatorem GT i zobaczmy na wyniki poni»szego kodu. tvscl,obraz GT 125 Rysunek 21: U»ycie progu zwiekszajacego kontrast Kolejn prost i szybk technik obróbki obrazu jest zastosowanie operatorów relacji w postaci znakowej takich jak >,<,>=,<=. Nale»y pamieta,»e operatory te nie s równowa»ne z operatorami w postaci napisowej. I tak na przyklad wynik u»ycia operatora GT nie pokrywa sie z wynikiem u»ycia operatora >. Tak b dzie równiez w tym przypadku. Wpiszmy polecenie: tvscl,obraz>125<200 Dzi ki u»yciu dwoch operatorów moglismy ustawi minimalna warto± jasno±ci oraz maksymalna warto± jaka b dzie nas interesowaªa. W tym przypadku wynikiem nie b dzie obraz czarnych i biaªych pikseli. Wy±wietlone zostan tylko te warto±ci, które b da speªniaªy warunek relacji, a wi c ich warto±ci zawieraªy b d si pomi dzy 126 a 199. Mo»liwe jest zastosowanie jednego operatora. Przyj»yjmy si wynikom wprowadzonego kodu.

56 6.2 Histogram obrazu 56 Rysunek 22: Wy±wietlenie przedziaªu jasno±ci 6.2 Histogram obrazu Histogramem obrazu nazywamy wykres graczny, przedstawiaj cy rozkªad jasno±ci danego obrazu. Ka»da warto± danego piksela zostaje wpisana do tablicy, tym samym zwi ksza liczebno± zbioru jasno±ci o danej warto±ci. Po analizie histogramu mo»na dowiedzie si czy obraz zostaª na±wietlony lub czy zawiera w ski przedziaª barw w przypadku obrazów kolorowych. W wielu j zykach programowania rysowanie histogramu wymaga kilkunastu linii kodu. Nam zajmie to co najwy»ej kilka. file=filepath('saturn.jpg',subdirectory=['examples','data']) READ_JPEG,file,obraz wymiary_obrazu=size(obraz,/dimensions) nowy=rebin(obraz,3,550/2,410/2) DEVICE,RETAIN=2,DECOMPOSED=0 WINDOW,0,XSIZE=wymiary_obrazu[1]-30,YSIZE=wymiary_obrazu[2]-30,$ title='histogram' TV,nowy,TRUE=1 PLOT,HISTOGRAM(obraz),COLOR=155,MAX_VALUE=4000,$ POSITION=[0.55, 0.15, 0.95, 0.95],/NOERASE,/NODATA OPLOT,HISTOGRAM(obraz),COLOR=155 Spój»my na wyniki. Histogram zostaª umieszczony w prawej cz ±ci okna. O± X odpowiada jasno±ci, natomiast o± Y odpowiada za liczb punktów.

57 6.3 Filtrowanie obrazu 57 Rysunek 23: Przykªadowy histogram obrazu Przyj»yjmy sie naszemu histogramowi. W ªatwy sposob mozna wyczyta,»e najwi ksza ilo± punktów oscyluje blisko warto±ci 0. Natomiast znikoma ilo± ma warto± zbli»on do 255. Wniosek z czytania histogramu jest taki,»e obraz posiada wiele pikseli czarnych lub zbli»onych do tego koloru a niewiele pikseli jasnych. Potwierdzili±my zatem budow naszego zdj cia. 6.3 Filtrowanie obrazu Przy ltrowaniu obrazów mo»na zastosowa wi kszo± technik jakie stosowali±my przy ltrowaniu sygnaªu. Jedynie zakres i metody wy±wietlania danych s odmienne. Nie mniej jednak ltrowanie obrazów jest nieco szersz dziedzin j zyka IDL Obrazy monochromatyczne Do pokazania technik ltrowania obrazów u»yjemy nowego pliku gracznego. Pierwszym krokiem b dzie zbudowanie ltra, nast pnie u»yjemy go na obrazie i wy±wietlimy wyniki. Wy±wietlam obraz oryginalny aby uªatwi analizowanie naszej pracy.

58 6.3 Filtrowanie obrazu 58 Rysunek 24: Obraz oryginalny monochromatyczny file=filepath('owoce_mono.jpg',subdirectory=['examples','data']) READ_JPEG,file,obraz_we DEVICE,RETAIN=2,DECOMPOSED=0 wymiary_obrazu=size(obraz_we,/dimensions) obraz_wy=rebin(obraz_we,wymiary_obrazu[0]/2,wymiary_obrazu[1]/2) WINDOW,0,XSIZE=wymiary_obrazu[0]/2,YSIZ=wymiary_obrazu[1]/2,$ title='filtrowanie obrazu' filtr=replicate(-1, 3, 3) filtr[1,1]=8 obraz_wy=convol(obraz_wy,filtr,center=1) tv,obraz_wy Stworzyli±my wªasny ltr. Jednak budowa jego nie byªa przypadkowa. Jest to przykªad ltra La Place'a. Zastosowanie tego ltra jest jednym ze sposobów wykrywania kraw dzi w obrazie. J zyk IDL dysponuje równie» wbudowanym zestawem ltrów. W±ród nich mamy takie rodzaje ltrów: ltr wygªadzaj cy (SMOOTH), ltr Sobela (SO- BEL), ltr u±redniaj cy (MEDIAN) i wiele innych, o których dowiemy sie wi cej wpisuj c w linii polece«zapytanie: IDL>? filters

59 6.3 Filtrowanie obrazu 59 Rysunek 25: Filtr-wykrywanie kraw dzi Wªasne deniowanie ltrów jest na pewno bardziej czasochªonne. Mo»emy jednak dokonywa dowolnej modykacji ltrów i odkrywa ich mo»liwo±ci. Zastosowanie ltra wbudowanego sprowadza si do zastosowania jednej linii kodu. Oto przykªad. tv,median(obraz_wy,9) Rysunek 26: Filtr u±redniaj cy

60 6.3 Filtrowanie obrazu Obrazy kolorowe Przetwarzanie obrazów w j zyku IDL jest zorientowane na obrazy monochromatyczne. Wiele dziedzin nauki jeszcze kilka lat temu pracowaªo wyª cznie na takich obrazach. Post p w nauce i technice na pewno b dzie przekªadaª si na zmodykowanie kodu wielu funkcji i procedur zajmujacych sie obróbk obrazu. W tym podrozdziale przedstawiam metod lrtujac obrazy kolorowe z zastosowaniem technik dziaªajacych na obrazach monochromatycznych. file=filepath('owocergb.jpg',subdirectory=['examples','data']) READ_JPEG,file,obraz_we filtr=9 kanalr=reform(obraz_we[0,*,*]) kanalg=reform(obraz_we[1,*,*]) kanalb=reform(obraz_we[2,*,*]) wynik1=median(kanalr,filtr) wynik2=median(kanalg,filtr) wynik3=median(kanalb,filtr) obraz_we[0,*,*]=wynik1 obraz_we[1,*,*]=wynik2 obraz_we[2,*,*]=wynik3 tv,obraz_we,true=1 Rysunek 27: Filtr u±redniaj cy Przedstawiona metoda jest baz dla zastosowania innych ltrów zarówno wbudowanych jak i tworzonych przez u»ytkownika.

61 7 Trójwymiarowe techniki wizualizacji 61 7 Trójwymiarowe techniki wizualizacji Wizualizacja trójwymiarowa w j zyku IDL mo»e odbywa si na kilka ró»nych sposobów. Wszystkie techniki charakteryzuja si tym,»e ich opanowanie jest ªatwe dla u»ytkownika. W efekcie dostajemy trójwymiarowy wykres naszego zbioru danych. Mo»liwo± porównania kilku technik ze sob jest dodatkowym atutem wizualizacji danyh w j zyku IDL. 7.1 Metoda SURFACE Metoda SURFACE umo»liwia nam wy±wietlenie trójwymiarowego wykresu zbioru danych. Okno wynikowe skªada si z wykresu umieszczonego wewn trz trójosiowego ukªadu wspóªrz dnych. dane=shift(dist(40),20,20) dane=exp(-(dane/10)^2) SURFACE,dane,TITLE='Matoda surface',charsize = 2 Rysunek 28: Metoda SURFACE Procedura SURFACE posiada szereg opcji umo»liwiaj cych modykacj wykresu. Jednymi z nich s opcje AX i AZ, odpowiadaj ce za wy±wietlenia wykresu pod ró»nymi k tami. AX jest odpowiedzialne za obrót wokóª osi X, a AZ za obrót wokóª osi Z.

62 7.2 Metoda SHADE_SURF 62 Wprowad¹my modykacj do wykresu, ustalaj c parametry AX i AZ poleceniem: SURFACE,dane,AX=50,AZ=25,TITLE='Matoda surface',charsize=2 Rysunek 29: Metoda SURFACE 7.2 Metoda SHADE_SURF Procedura SHADE_SURF jest zmodykowan wersj opisanej powy»ej metody SURF. Jej wyj tkowo± polega na tym,»e umo»liwia cieniowanie wykresu równiez za pomoc okre±lonej przez u»ytkownika palety barw. Palet t okre±lamy w parametrze procedury LOADCT. Oto przykªad zastosowania naszej metody do danych z poprzedniego przykªadu. loadct,, shade_surf,dane surface,dane,xstyle=4,ystyle=4,zstyle=4,/noerase Posªu»yli±my sie tu równie» metod SURFACE. Wynikiem czego jest uzyskanie na wykresie siatki dla danych.

63 7.3 Metoda SHOW3 63 Rysunek 30: Metoda SHADE SURF Rodzaj wczytanej tablicy kolorów wy±wietlany zostaje w czasie kompilacji w panelu projektu. W naszym przypadku jest to: LOADCT: Loading table RED TEMPERATURE 7.3 Metoda SHOW3 Metoda SHOW3 jest syntez kilku metod. W jej skªad wchodz metoda SUR- FACE opisana w poprzednim rozdziale oraz metoda CONTOUR odpowiadaj ca za dwuwymiarowy rzut na pªaszczyzn zbioru danych. Caªo± jest jednym z bardziej szczegóªowych sposobów wizualizacji danych. Co wi cej jest to doskonaªy przykªad przygotowania zbioru danych do analizy. W poprzednich przykªadach sami tworzyli±my zbiory danych do prezentacji poznawanych metod. W tym przypadku, aby lepiej zaprezentowac mo»liwo±ci metody SHOW3 wczytamy zbiór danych z pliku binarnego i zaprezentujemy dane w nim zgromadzone. loadct,3 plik=filepath('moje_dane.dat',subdirectory=['examples','data']) dane=read_binary(plik,data_dims=[500,500],data_type=2)

64 7.4 Metoda XINTERANIMATE 64 dane=congrid(dane,50,50) SHOW3,dane Rysunek 31: Metoda SHOW3 7.4 Metoda XINTERANIMATE Procedura XINTERANIMATE pozwala na wy±wietlanie sekwencji obrazów. Chocia» zagadnienie trójwymiarowej animacji mo»e wydawa si skomplikowane to zasada jej jest prosta. Podstaw ka»dego wykresu s dane. W przypadku animacji powinnismy mie kilka zbiorów danych, ukazuj - cych pewne zjawisko zmieniaj ce si w czasie. Dobrym przykªadem danych do animacji s tablice trójwymiarowe. Ka»da posiada wªasny numer oraz dwuwymiarow tablic danych. Opcje animacji jaka powstaje mog by zmieniane przez u»ytkownika z wykorzystaniem interfejsu tej metody. Metoda XINTERANIMATE tworzy bufor, wystarczaj cy do przechowywania okre±lonej liczby klatek animacji. Do naszych celów posªu»ymy si plikiem binarnym, przechowuj cym medyczne dane rytmu ludzkiego serca. Oto kompletny przykªad tej metody:

65 7.4 Metoda XINTERANIMATE 65 OPENR,plik_bin,FILEPATH('abnorm.dat',SUBDIR=$ ['examples','data']),/get_lun anim_med=bytarr(64,64,16) READU,plik_bin,anim_med loadct,3 DEVICE,RETAIN=2,DECOMPOSED=0 anim_med=rebin(anim_med,128,128,16) XINTERANIMATE,SET=[128,128,16],/SHOWLOAD FOR i=0,15 DO BEGIN XINTERANIMATE,FRAME=i,IMAGE=anim_med[*,*,i] ENDFOR XINTERANIMATE, /KEEP_PIXMAPS Nasz plik wej±ciowy przechowuje 16 tablic dwuwymiarowych. Jego struktura jest zatem idealna do zastosowania naszej metody. Po przygotowaniu zbioru danych nale»y trzykrotnie wywoªa procedur XINTERANIMATE. Pierwsze wywoªanie sªu»y inicjacji panelu animacji, drugie wywoªanie odpowiada za wczytanie klatek animacji do bufora natomiast trzecie obsªuguje wy±wietlenie animowanego pokazu. Rysunek 32: Animacja metod XINTERANIMATE

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Lekcja 9 - LICZBY LOSOWE, ZMIENNE Lekcja 9 - LICZBY LOSOWE, ZMIENNE I STAŠE 1 Liczby losowe Czasami spotkamy si z tak sytuacj,»e b dziemy potrzebowa by program za nas wylosowaª jak ± liczb. U»yjemy do tego polecenia: - liczba losowa Sprawd¹my

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15 ANALIZA NUMERYCZNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Metoda Eulera 3 1.1 zagadnienia brzegowe....................... 3 1.2 Zastosowanie ró»niczki...................... 4 1.3 Output do pliku

Bardziej szczegółowo

Lekcja 12 - POMOCNICY

Lekcja 12 - POMOCNICY Lekcja 12 - POMOCNICY 1 Pomocnicy Pomocnicy, jak sama nazwa wskazuje, pomagaj Baltiemu w programach wykonuj c cz ± czynno±ci. S oni szczególnie pomocni, gdy chcemy ci g polece«wykona kilka razy w programie.

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Baza danych - Access. 2 Budowa bazy danych

Baza danych - Access. 2 Budowa bazy danych Baza danych - Access 1 Baza danych Jest to zbiór danych zapisanych zgodnie z okre±lonymi reguªami. W w»szym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyj tymi dla danego programu

Bardziej szczegółowo

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz Lekcja 8 - ANIMACJA 1 Polecenia Za pomoc Baltiego mo»emy tworzy animacj, tzn. sprawia by obraz na ekranie wygl daª jakby si poruszaª. Do animowania przedmiotów i tworzenia animacji posªu» nam polecenia

Bardziej szczegółowo

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej 3.1 Informacje ogólne Program WAAK 1.0 służy do wizualizacji algorytmów arytmetyki komputerowej. Oczywiście istnieje wiele narzędzi

Bardziej szczegółowo

Programowanie i struktury danych 1 / 44

Programowanie i struktury danych 1 / 44 Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje

Bardziej szczegółowo

Metodydowodzenia twierdzeń

Metodydowodzenia twierdzeń 1 Metodydowodzenia twierdzeń Przez zdanie rozumiemy dowolne stwierdzenie, które jest albo prawdziwe, albo faªszywe (nie mo»e by ono jednocze±nie prawdziwe i faªszywe). Tradycyjnie b dziemy u»ywali maªych

Bardziej szczegółowo

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania WYKŁAD 8 Reprezentacja obrazu Elementy edycji (tworzenia) obrazu Postacie obrazów na różnych etapach procesu przetwarzania Klasy obrazów Klasa 1: Obrazy o pełnej skali stopni jasności, typowe parametry:

Bardziej szczegółowo

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

19. Obiektowo± 1 Kacze typowanie. 2 Klasy 1 Kacze typowanie 19. Obiektowo± Sk d interpreter wie, jakiego typu s np. przekazywane do metody argumenty? Tak naprawd wcale nie musi wiedzie. Do poprawnego dziaªania programu istotne jest,»e przekazywany

Bardziej szczegółowo

Wstawianie gotowych rysunków w texu - informacje podstawowe.

Wstawianie gotowych rysunków w texu - informacje podstawowe. Wstawianie gotowych rysunków w texu - informacje podstawowe. By móc wstawi rysunek musimy w preambule pliku dopisa odpowiedni pakiet komend : \usepackage. W przypadku graki doª czamy pakiet:graphicx, (nieco

Bardziej szczegółowo

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika 2010. Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika 2010. Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska Wst p do informatyki Systemy liczbowe Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 21 pa¹dziernika 2010 Spis tre±ci 1 Liczby i ich systemy 2 Rodzaje systemów liczbowych

Bardziej szczegółowo

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Denicja Mówimy,»e funkcja

Bardziej szczegółowo

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona Akademia Górniczo-Hutnicza im. Stanisªawa Staszica w Krakowie Wydziaª Fizyki i Informatyki Stosowanej Krzysztof Grz dziel kierunek studiów: informatyka stosowana Caªkowanie numeryczne - porównanie skuteczno±ci

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia 2011. Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia 2011. Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej Matematyka wykªad 1 Macierze (1) Andrzej Torój Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej 17 wrze±nia 2011 Plan wykªadu 1 2 3 4 5 Plan prezentacji 1 2 3 4 5 Kontakt moja strona internetowa:

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH Klasa: 3TIR - Technik informatyk Program: 351203 Wymiar: 4 h tygodniowo Podręcznik: Kwalifikacja E.14 Programowanie

Bardziej szczegółowo

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p Lekcja 1 Wst p Akademia im. Jana Dªugosza w Cz stochowie Baltie Baltie Baltie jest narz dziem, które sªu»y do nauki programowania dla dzieci od najmªodszych lat. Zostaª stworzony przez Bohumira Soukupa

Bardziej szczegółowo

G PROGRAMMING. Part #4

G PROGRAMMING. Part #4 G PROGRAMMING Part #4 Tablice, wykresy, klastry Tablice Zbiór elementów danych tego samego typu Zastosowanie gromadzenie danych z powtarzalnych operacji odczytu, obliczeń (magazynowanie danych przebiegów

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski Instrukcja obsługi Norton Commander (NC) wersja 4.0 Autor: mgr inż. Tomasz Staniszewski ITM Zakład Technologii Maszyn, 15.10.2001 2 1.Uruchomienie programu Aby uruchomić program Norton Commander standardowo

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Wpisany przez Piotr Klimek Wtorek, 11 Sierpień 2009 22:36 - Zmieniony Poniedziałek, 03 Czerwiec 2013 03:55

Wpisany przez Piotr Klimek Wtorek, 11 Sierpień 2009 22:36 - Zmieniony Poniedziałek, 03 Czerwiec 2013 03:55 Na początku PHP było przystosowane do programowania proceduralnego. Możliwości obiektowe wprowadzono z językiem C++ i Smalltalk. Obecnie nowy sposób programowania występuje w większości językach wysokopoziomowych

Bardziej szczegółowo

Mathematica - podstawy

Mathematica - podstawy Mathematica - podstawy Artur Kalinowski Semestr letni 2011/2012 Artur Kalinowski Mathematica - podstawy 1 / 27 Spis tre±ci Program Mathematica 1 Program Mathematica 2 3 4 5 Artur Kalinowski Mathematica

Bardziej szczegółowo

Systemy mikroprocesorowe - projekt

Systemy mikroprocesorowe - projekt Politechnika Wrocławska Systemy mikroprocesorowe - projekt Modbus master (Linux, Qt) Prowadzący: dr inż. Marek Wnuk Opracował: Artur Papuda Elektronika, ARR IV rok 1. Wstępne założenia projektu Moje zadanie

Bardziej szczegółowo

OptiMore Importer Rejestru VAT. Instrukcja obsługi programu

OptiMore Importer Rejestru VAT. Instrukcja obsługi programu OptiMore Importer Rejestru VAT Instrukcja obsługi programu Wstęp Program OptiMore Importer Rejestru VAT jest przeznaczony do importowania wpisów do rejestru VAT na podstawie danych zawartych w pliku źródłowym.

Bardziej szczegółowo

Zastosowania matematyki

Zastosowania matematyki Zastosowania matematyki Monika Bartkiewicz 1 / 126 ...czy«cie dobrze i po»yczajcie niczego si nie spodziewaj c(šk. 6,34-35) Zagadnienie pobierania procentu jest tak stare jak gospodarka pieni»na. Procent

Bardziej szczegółowo

Analiza wydajno±ci serwera openldap

Analiza wydajno±ci serwera openldap Analiza wydajno±ci serwera openldap Autor: Tomasz Kowal 13 listopada 2003 Wst p Jako narz dzie testowe do pomiarów wydajno±ci i oceny konguracji serwera openldap wykorzystano pakiet DirectoryMark w wersji

Bardziej szczegółowo

Programowanie funkcyjne. Wykªad 13

Programowanie funkcyjne. Wykªad 13 Programowanie funkcyjne. Wykªad 13 Siªa wyrazu rachunku lambda Zdzisªaw Spªawski Zdzisªaw Spªawski: Programowanie funkcyjne. Wykªad 13, Siªa wyrazu rachunku lambda 1 Wst p Warto±ci logiczne Liczby naturalne

Bardziej szczegółowo

Zadania do wykonaj przed przyst!pieniem do pracy:

Zadania do wykonaj przed przyst!pieniem do pracy: wiczenie 3 Tworzenie bazy danych Biblioteka tworzenie kwerend, formularzy Cel wiczenia: Zapoznanie si ze sposobami konstruowania formularzy operujcych na danych z tabel oraz metodami tworzenia kwerend

Bardziej szczegółowo

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania...

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania... Zawartość Instalacja... 1 Konfiguracja... 2 Uruchomienie i praca z raportem... 4 Metody wyszukiwania... 6 Prezentacja wyników... 7 Wycenianie... 9 Wstęp Narzędzie ściśle współpracujące z raportem: Moduł

Bardziej szczegółowo

Laboratorium metod numerycznych numer 1

Laboratorium metod numerycznych numer 1 Laboratorium metod numerycznych numer 1 Dla grup:wszystkich (Dated: 27 II 2013) I. WST P Na laboratoriach z metod numerycznych b dziemy posªugiwali si pakietem Octave, który jest darmow alternatyw dla

Bardziej szczegółowo

Właściwości i metody obiektu Comment Właściwości

Właściwości i metody obiektu Comment Właściwości Właściwości i metody obiektu Comment Właściwości Właściwość Czy można zmieniać Opis Application nie Zwraca nazwę aplikacji, która utworzyła komentarz Author nie Zwraca nazwę osoby, która utworzyła komentarz

Bardziej szczegółowo

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb Wybrane poj cia i twierdzenia z wykªadu z teorii liczb 1. Podzielno± Przedmiotem bada«teorii liczb s wªasno±ci liczb caªkowitych. Zbiór liczb caªkowitych oznacza b dziemy symbolem Z. Zbiór liczb naturalnych

Bardziej szczegółowo

Program do konwersji obrazu na cig zero-jedynkowy

Program do konwersji obrazu na cig zero-jedynkowy Łukasz Wany Program do konwersji obrazu na cig zero-jedynkowy Wstp Budujc sie neuronow do kompresji znaków, na samym pocztku zmierzylimy si z problemem przygotowywania danych do nauki sieci. Przyjlimy,

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna 1. Podaj denicj liczby zespolonej. 2. Jak obliczy sum /iloczyn dwóch liczb zespolonych w postaci algebraicznej? 3. Co to jest liczba urojona?

Bardziej szczegółowo

Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Optymalizacja R dlaczego warto przesi ± si na Linuxa? Optymalizacja R dlaczego warto przesi ± si na Linuxa? 19 listopada 2014 Wi cej informacji, wraz z dodatkowymi materiaªami mo»na znale¹ w repozytorium na GitHubie pod adresem https://github.com/zzawadz/

Bardziej szczegółowo

Optyka geometryczna. Soczewki. Marcin S. Ma kowicz. rok szk. 2009/2010. Zespóª Szkóª Ponadgimnazjalnych Nr 2 w Brzesku

Optyka geometryczna. Soczewki. Marcin S. Ma kowicz. rok szk. 2009/2010. Zespóª Szkóª Ponadgimnazjalnych Nr 2 w Brzesku skupiaj ce rozpraszaj ce Optyka geometryczna Zespóª Szkóª Ponadgimnazjalnych Nr 2 w Brzesku rok szk. 2009/2010 skupiaj ce rozpraszaj ce Spis tre±ci 1 Wprowadzenie 2 Ciekawostki 3 skupiaj ce Konstrukcja

Bardziej szczegółowo

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015 Android Podstawy tworzenia aplikacji Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 4, 2015 Table of contents Framework Jednym z najwarto±ciowszych

Bardziej szczegółowo

MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel. 0501 38 39 55 www.medicus.edu.

MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel. 0501 38 39 55 www.medicus.edu. INSTYTUT MEDICUS Kurs przygotowawczy na studia medyczne Rok szkolny 00/0 tel. 050 38 39 55 www.medicus.edu.pl MATEMATYKA 4 FUNKCJA KWADRATOWA Funkcją kwadratową lub trójmianem kwadratowym nazywamy funkcję

Bardziej szczegółowo

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1 Temat: Funkcje. Własności ogólne A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1 Kody kolorów: pojęcie zwraca uwagę * materiał nieobowiązkowy A n n a R a

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

Zastosowanie programu Microsoft Excel do analizy wyników nauczania Grayna Napieralska Zastosowanie programu Microsoft Excel do analizy wyników nauczania Koniecznym i bardzo wanym elementem pracy dydaktycznej nauczyciela jest badanie wyników nauczania. Prawidłow analiz

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego 1 SKRYPTY Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego z = 1 y + 1+ ( x + 2) 3 x 2 + x sin y y + 1 2 dla danych wartości x = 12.5 i y = 9.87. Zadanie to można rozwiązać: wpisując dane i wzór wyrażenia

Bardziej szczegółowo

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

Bardziej szczegółowo

Wartości domyślne, szablony funkcji i klas

Wartości domyślne, szablony funkcji i klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, 2012. Dawid Rasaªa Metody numeryczne 1 / 9

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, 2012. Dawid Rasaªa Metody numeryczne 1 / 9 Metody numeryczne Wst p do metod numerycznych Dawid Rasaªa January 9, 2012 Dawid Rasaªa Metody numeryczne 1 / 9 Metody numeryczne Czym s metody numeryczne? Istota metod numerycznych Metody numeryczne s

Bardziej szczegółowo

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA, który zawiera: zmienne, konstrukcje warunkowe i iteracyjne (IF-THEN-ELSE, CASE, DO WHILE, DO UNTIL), konfigurowane środowisko użytkownika. METAZNAKI zestaw

Bardziej szczegółowo

Archiwum Prac Dyplomowych

Archiwum Prac Dyplomowych Archiwum Prac Dyplomowych Instrukcja dla studentów Ogólna procedura przygotowania pracy do obrony w Archiwum Prac Dyplomowych 1. Student rejestruje pracę w dziekanacie tej jednostki uczelni, w której pisana

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Kiedy i czy konieczne?

Kiedy i czy konieczne? Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle

Bardziej szczegółowo

wiczenie nr 3 z przedmiotu Metody prognozowania kwiecie«2015 r. Metodyka bada«do±wiadczalnych dr hab. in». Sebastian Skoczypiec Cel wiczenia Zaªo»enia

wiczenie nr 3 z przedmiotu Metody prognozowania kwiecie«2015 r. Metodyka bada«do±wiadczalnych dr hab. in». Sebastian Skoczypiec Cel wiczenia Zaªo»enia wiczenie nr 3 z przedmiotu Metody prognozowania kwiecie«2015 r. wiczenia 1 2 do wiczenia 3 4 Badanie do±wiadczalne 5 pomiarów 6 7 Cel Celem wiczenia jest zapoznanie studentów z etapami przygotowania i

Bardziej szczegółowo

7. OPRACOWYWANIE DANYCH I PROWADZENIE OBLICZEŃ powtórka

7. OPRACOWYWANIE DANYCH I PROWADZENIE OBLICZEŃ powtórka 7. OPRACOWYWANIE DANYCH I PROWADZENIE OBLICZEŃ powtórka Oczekiwane przygotowanie informatyczne absolwenta gimnazjum Zbieranie i opracowywanie danych za pomocą arkusza kalkulacyjnego Uczeń: wypełnia komórki

Bardziej szczegółowo

EDUKARIS - O±rodek Ksztaªcenia

EDUKARIS - O±rodek Ksztaªcenia - O±rodek Ksztaªcenia Zabrania si kopiowania i rozpowszechniania niniejszego regulaminu przez inne podmioty oraz wykorzystywania go w dziaªalno±ci innych podmiotów. Autor regulaminu zastrzega do niego

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

przewidywania zapotrzebowania na moc elektryczn

przewidywania zapotrzebowania na moc elektryczn do Wykorzystanie do na moc elektryczn Instytut Techniki Cieplnej Politechnika Warszawska Slide 1 of 20 do Coraz bardziej popularne staj si zagadnienia zwi zane z prac ¹ródªa energii elektrycznej (i cieplnej)

Bardziej szczegółowo

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia

Bardziej szczegółowo

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu ➏ Filozoa z elementami logiki Na podstawie wykªadów dra Mariusza Urba«skiego Sylogistyka Przypomnij sobie: stosunki mi dzy zakresami nazw KLASYCZNE ZDANIA KATEGORYCZNE Trzy znaczenia sªowa jest trzy rodzaje

Bardziej szczegółowo

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

Bardziej szczegółowo

W zadaniach na procenty wyró»niamy trzy typy czynno±ci: obliczanie, jakim procentem jednej liczby jest druga liczba,

W zadaniach na procenty wyró»niamy trzy typy czynno±ci: obliczanie, jakim procentem jednej liczby jest druga liczba, 2 Procenty W tej lekcji przypomnimy sobie poj cie procentu i zwi zane z nim podstawowe typy zada«. Prosimy o zapoznanie si z regulaminem na ostatniej stronie. 2.1 Poj cie procentu Procent jest to jedna

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 6 RSC i CSC Znaczenie terminów CSC Complete nstruction Set Computer komputer o pełnej liście rozkazów. RSC Reduced nstruction Set Computer komputer o zredukowanej liście

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

Bardziej szczegółowo

Low Level Virtual Machine

Low Level Virtual Machine Wprowadzenie Low Level Virtual Machine J. Lamecki 14 czerwca 2011 Outline Wprowadzenie 1 Wprowadzenie Co to jest LLVM? Dlaczego moduªowy kompilator? Cechy LLVM 2 Format LLVM IR Bloki podstawowe SSA 3 U»yte

Bardziej szczegółowo

Program SMS4 Monitor

Program SMS4 Monitor Program SMS4 Monitor INSTRUKCJA OBSŁUGI Wersja 1.0 Spis treci 1. Opis ogólny... 2 2. Instalacja i wymagania programu... 2 3. Ustawienia programu... 2 4. Opis wskaników w oknie aplikacji... 3 5. Opcje uruchomienia

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

Zarządzanie Zasobami by CTI. Instrukcja

Zarządzanie Zasobami by CTI. Instrukcja Zarządzanie Zasobami by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Konfiguracja... 4 3. Okno główne programu... 5 3.1. Narzędzia do zarządzania zasobami... 5 3.2. Oś czasu... 7 3.3. Wykres Gantta...

Bardziej szczegółowo

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma}; INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje

Bardziej szczegółowo

1 Kodowanie i dekodowanie

1 Kodowanie i dekodowanie 1 Kodowanie i dekodowanie Teoria informacji zajmuje si sposobami gromadzenia, przechowywania oraz przesyªania informacji. W tym celu, a tak»e dla ochrony danych informacje kodujemy. Rozmowa telefoniczna,

Bardziej szczegółowo

Metody numeryczne i statystyka dla in»ynierów

Metody numeryczne i statystyka dla in»ynierów Kierunek: Automatyka i Robotyka, II rok Wprowadzenie PWSZ Gªogów, 2009 Plan wykªadów Wprowadzenie, podanie zagadnie«, poj cie metody numerycznej i algorytmu numerycznego, obszar zainteresowa«i stosowalno±ci

Bardziej szczegółowo

Metody numeryczne i statystyka dla in»ynierów

Metody numeryczne i statystyka dla in»ynierów Kierunek: Automatyka i Robotyka, II rok Interpolacja PWSZ Gªogów, 2009 Interpolacja Okre±lenie zale»no±ci pomi dzy interesuj cymi nas wielko±ciami, Umo»liwia uproszczenie skomplikowanych funkcji (np. wykorzystywana

Bardziej szczegółowo

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. 1 PROJEKTY KOSZTOWE 2 PROJEKTY PRZYCHODOWE 3 PODZIAŁ PROJEKTÓW ZE WZGLĘDU

Bardziej szczegółowo

JADWIGA SKIMINA PUBLIKACJA NA TEMAT: NAUKA MS. WORD 2000 W KLASIE IV

JADWIGA SKIMINA PUBLIKACJA NA TEMAT: NAUKA MS. WORD 2000 W KLASIE IV JADWIGA SKIMINA PUBLIKACJA NA TEMAT: NAUKA MS. WORD 2000 W KLASIE IV Uczniowie klas czwartych dopiero zaczynają naukę o komputerach. Niektórzy z nich dopiero na lekcjach informatyki zetknęli się po raz

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400, w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci Industrial Ethernet, protokołu

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015

EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015 Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj. Sprawozdanie 2 Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj. Ilustracja 1: Przy próbie zapisu pliku odmówiono dostępu mimo że administratorzy mają jawnie zezwalaj Zad. 2 Pokazać pierwszeństwo

Bardziej szczegółowo

Spis tre±ci. Przedmowa... Cz ± I

Spis tre±ci. Przedmowa... Cz ± I Przedmowa.................................................... i Cz ± I 1 Czym s hurtownie danych?............................... 3 1.1 Wst p.................................................. 3 1.2 Denicja

Bardziej szczegółowo

Wykład 2. Budowa komputera. W teorii i w praktyce

Wykład 2. Budowa komputera. W teorii i w praktyce Wykład 2 Budowa komputera W teorii i w praktyce Generacje komputerów 0 oparte o przekaźniki i elementy mechaniczne (np. Z3), 1 budowane na lampach elektronowych (np. XYZ), 2 budowane na tranzystorach (np.

Bardziej szczegółowo

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012 Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012 if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; if (warunek) instrukcja1; else if (warunek2)

Bardziej szczegółowo

PowerShell. Sławomir Wawrzyniak 05.11.2010

PowerShell. Sławomir Wawrzyniak 05.11.2010 PowerShell Sławomir Wawrzyniak 05.11.2010 Czym jest PowerShell - Czym jest PowerShell - Do czego może się przydać - Zalety PowerShell - Podobieństwo do basha Wprowadzenie - Jak uruchomić PowerShell - Główne

Bardziej szczegółowo

pdfmachine by BroadGun Software

pdfmachine by BroadGun Software 10 ÃWICZENIE 6 ÃWICZENIA W ADRESOWANIU MIESZANYM ÃWICZENIE POKAZOWE nr 6. Oblicz objêtoœã walcó w o promieniu r = 1; 1,5; 2; 7 cm i wysokoœci h = 10; 10,5;..; 18 cm. Wynik podaj w dcm 3 z dokùadnoœci¹

Bardziej szczegółowo