LABORATORIM BIOINFORMATYKI
|
|
- Ges Roszkoska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Gliwice LABORATORIM BIOINFORMATYKI Temat: Język i środowisko programistyczne R Opracowali: Aleksandra Gruca, Łukasz Pracki
2 Wprowadzenie R jest zarówno językiem programowania jak i środowiskiem przeznaczonym głównie do wykonywania obliczeń statystycznych oraz graficznej prezentacji wyników. Język programowania R wywodzi się z popularnego wśród statystyków języka S/S Plus, a nawet może zostać uznany za jego kolejną implementację. Język R jest językiem interpretowanym,co oznacza, że kod źródłowy napisany w R nie jest kompilowany do postaci wykonywalnej (jak na przykład w programach pisanych w języku C lub C++), ale w trakcie uruchomienia na bieżąco tłumaczony jest przez interpreter do postaci kodu maszynowego i dopiero wtedy uruchomiany. Innym przykładem języka interpretowanego jest M-język wykorzystywany wśrodowisku matlab. Środowisko R może być rozszerzane o dodatkowe funkcje poprzez dołączanie do niego dedykowanych bibliotek (pakietów) funkcji, analogicznie do systemu dodatkowych narzędzi (toolbox ów) wykorzystywanego w środowisku Matlab. Jednym z największych i najbardziej rozbudowanych rozszerzeń R jest pakiet Bioconductor zawierający zestaw funkcji do celów analizy danych biologicznych dotyczących zarówno genomiki, proteomiki jak i analizy sekwencji. Zarówno środowisko R jak i jego rozszerzenie Bioconductor jest dostępne w ramach licencji Open Source. Obsługa pomocy:?nazwa_funkcji wyświetla pomoc dla podanej po? funkcji [?plot] nazwa_funkcji wyświetla kod żródłowy funkcji [plot] help.search(nazwa_funkcji) wyświetla pomoc dla podanej funkcji [help.search(plot)] help.start() uruchamia w domyślnej przeglądarce internetowej pomoc w formacie html. args(nazwa_funkcji) wyświetla listę argumentów danej funkcji [args(plot)] example(nazwa_funkcji) wyśweitla przykłady wywołań poszczególnych funkcji. [example(plot)] Poruszanie się w przestrzeni roboczej: dir() wyświetlenie zawartości pakietu roboczego getwd() wyświetlenie ścieżki aktualnego katalogu roboczego setwd(<ścieżka>) ustala katalog roboczy we wskazanym w parametrze katalogu. [setwd( C:/work/ )] UWAGA: w R dla systemu Windows, przy określaniu ścieżek, należy używać znaku slash / zamiast backslash \. Jeśli użycie \ jest konieczne należy znak ten powtórzyć zamiast \ piszemy \\. Przykładowo: setwd( C:/work/ ) - poprawne
3 setwd( C:\work\ ) - błędne setwd( C:\\work\\ ) - poprawne Typy zmiennych W środowisku R wszystko czym można operować jest obiektem. Obiekty (zmienne) można podzielić na kilka typów: Liczba (typ numeric) - zmienna liczbowa zarówno typu całkowitego jak i zmiennoprzecinkowego. Charakter zmienna tekstowa (rozpoczynamy znakiem lub ). Zarówno ciąg znaków jak i jeden znak. Typ logiczny zmienna logiczna przyjmuje stany TRUE lub FALSE Wektor - uporządkowany zbiór obiektów tego samego typu. Konstruktorem wektora jest funkcja c. Jeśli chcemy utworzyć wektor zawierający cyfry 3,10.5, 3.2, 7, 3.6 można zrobić to w następujący sposób: x<-c(3,10.5,3.2,7,2.6) x= c(3,10.5,3.2,7,26) assign( x, c(3,10.5,3.2,7,3.6)) Operator strzałki jest często stosowany w języku R, a należy go utożsamiać z nadaniem wartości czyli w powyższych przypadkach jest równoznaczny z operatorem =. Definiując nowy wektor możemy do tego celu wykorzystać zmienne które wcześniej zostały zdefiniowane w przestrzeni roboczej, na przykład: y<-c(x,5,x,8) da w wyniku 12-to elementowy wektor: 3,10.5,3.2,7,3.6,5,3,10.5, 3.2,7,3.6,8 Istnieje również metoda na nadawanie wartości początkowych jako kolejnych elementów ciągu: vec=c(1:100); W środowisku R typy nadawane są zmiennym w momencie przypisania im wartości. Charakter przypisanej wartości determinuje typ. Zmienna może zatem zmieniać swój charakter w trakcie działania skryptu być np.wektorem, później tekstem i ostatecznie pojedynczą wartością: a=c(1,7,6); a= tekst ; a=4; UWAGA: Charaketerystycznym elementem składni języka R jest to że znak kropki jest traktowany jak zwykły znak tekstowy. Oznacza to, że można stworzyć zmienne o nazwach:..a a. a.b
4 Jest to mylące dla osób które miały już styczność z programowaniem w innycjh językach. Kropka nie jest operatorem ani żadnym znakiem specjalnym jest jednak często używana w nazewnictwie np. dane dane.indeksy dane.nazwy Są to 3 różne zmienne a nie jedna zmienna dane o atrybutach indeksy i nazwy. Bardziej zawansowane struktury danych: Macierze macierze (matrix) macierze są to wektory którym nadano dwa lub więcej wymiarów. Tworzenie macierzy: Do utworzenia macierzy służy funkcja matrix(). Rozmiar macierzy determinowany jest przez parametry jej wywołania. Przykładowo jeśli chcemy utworzyć macierz 2x4 z elementami 1,2,3,4,5,6,7,8 to możebmy posłużyc się poleceniem: dane=c(1:8); z=matrix(dane,2,4) lub krócej bez potrzeby tworzenia dodatkowej zmiennej: z=matrix(c(1:8),2,4) Dane zostaną rozlokowane kolumnami tzn. wartośći 1 i 2 trafią do pierwszej kolumny 3, 4 do drugiej itd. W języku R podobnie jak w środowisku Matab każdy z parametrów ma określoną nazwę. Pozwala to na podawanie parametrów w dowolnej kolejności. Aby sprawdzić nazwy parametrów można wykorzystać poznaną już funkcję args(): args(matrix) Efekt: function (data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL) Jak widać w poprzednim przykładzie mogliśmy odwołać się do parametrów jawnie: z=matrix(data=c(1:8),nrow=2,ncol=4) lub na przykład: z=matrix(nrow=2,ncol=4, data=c(1:8))
5 Wywołując funkcję nie trzeba podawać wszystkich parametrów. Dlatego też jeśli chcielibyśmy utworzyć pustą macierz bez danych wystarczy zastosować: z=matrix(nrow=2,ncol=4); Odwoływanie się do elementów macierzy: Macierze tak jak i wektory mogą zawierać jedynie elementy jednego typu. Do elementów macierzy odwołuje się podając indeks wiersza i kolumny [wiersz,kolumna]. z[1,4] element znajdujący się na przecięciu pierwszego wiersza i czwartej kolumny. z[7] element 7-y w kolejności tutaj pomijany jest rozmiar macierzy. Aby z wektora stworzyć macierz można wykorzystać funkcję array: z = array(y, c(2,6)) Każda macierz posiada dodatkowy atrybut dimnames, w którym można umieścić nazwy każdej kolumny i każdego wiersza. Atrybut ten jest listą. Listy listy (lists) lista jest strukturą danych, która może zawierać w sobie dowolną ilość zmiennych dowolnego typu. Do elementów listy można odwoływać się poprzez operator [[<indeks>]] albo za pomocą znaku $. Listy znajdują zastosowanie podczas definiowania funkcji, które zwracają wiele zmiennych. Standardowo w języku R funkcje mogą zwracać tylko jedną zmienną, tak więc w przypadku konieczności zwrócenia większej liczby zmiennych można wykorzystać strukturę listy. Tworzenie listy: a<-list(car= Toyota,model= YARIS,V=1.0,colors.available=c( white, blue,black )) Jak widać utworzona lista składa się z 4 pól. Pierwsze i drugie są typu znakowego, kolejne liczbowego natomiast ostatnie jest wektorem 3-elementowym. Ponadto każde z pól ma przypisaną nazwę. Pozwala to na odwoływanie się zarówno operatorem [[]] jak i bardziej obiektowo za pomocą nazwy pola. Odwoływanie się do elementów listy: a[[1]] Toyota a$car Toyota a$model YARIS a$colors.available[2] blue a[[4]][2] blue Znając listy możemy teraz nadać wartość atrybutowi dimnames macierzy z. Ponieważ macierz z ma dwa wiersze i 4 kolumny należy stworzyć listę dwuelementową (pierwsyz element to nazwy wierszy, drugi nazwy kolumn): dimnames(z)=list(c("a","b"),c("c","d","e","f"))
6 lub bardziej elegancko: dimnames(z)=list(wiersze=c("a","b"),kolumny=c("c","d","e","f")) Ramki Ramka (data.frame) ramki są strukturą podobną do macierzy z tą różnicą, że kolumny mogą być różnego typu. W sytuacji gdy posiadamy zbiór pewnych obserwacji opisanych wieloma atrybutami różnych typów ramka znakomicie oddaje pierwotną strukturę danych. Do elementów ramki można odwołać się zarówno poprzez podanie indeksów wiersza i kolumny jak i za pomocą znaku $. Ramka również posiada dodatkowy atrybut dimnames. Utworzenie ramki: names<-c( Janek, Piotrek, Krzysiek ) ages<-c(10,13,7) boys<-data.frame(names,ages) Częstym sposobem tworzenia ramki jest wczytanie danych z zewnętrznego pliku wykorzystując do tego celu funkcję read.table(). Pliki które można wczytywać muszą mieć strukturę CSV jest to format w którym można zapisywać arkusze Excela co pozwala na komunikacje tych dwóch narzędzi. Funkcja read.table() posiada parametry umożliwiające dopasowanie się do formatu pliku. Przykładowa zawartość pliku jaki można wczytać: dane.txt 1 Rafał 2 Bartek 3 Romek ramka=read.table(file= dane.txt, header=false,sep= \t ); Jak widać można dobrać dowolny separator oraz zawrzeć w pliku np. nazwy kolumn Istnieje również funkcja write.table która pozwala na tworzenie plików CSV: write.table(<dane>,file=<sciezka>,sep=<separator>)zapisanie obiektu typu lista lub tablica do pliku. Wygodnym sposobem przeglądania i edycji obiektów, które są w postaci dużych tabel i macierzy jest użycie funkcji edit(). Powoduje to otwarcie osobnego edytora. Np. edit(ramka) Oprócz powyższych typów istnieją również inne jak np. ExpressionSet z którym będziemy pracować w trakcie zajęć. Obiekty takie mają niekiedy atrybuty. Do nich odwołujemy się poprzez Np. obiekt@atrybut
7 Zarządzanie zmiennymi: ls() lista aktualnie zdefiniowanych zmiennych w danej przestrzeni roboczej str(x) wyświetlenie informacji o zmiennej x is(x) wyświetlenie typu zmiennej x as(x,typ) konwersja zmiennej x do typu typ dim(x) wyświetlenie wymiarów zmiennej x length(x) wyświetlenie długości zmiennej x rm(x,y) usunięcie z przestrzeni roboczej zmiennych x i y rm(list=ls(0)) usunięcie z przestrzenie roboczej wszystkich zmiennych i obiektów. To samo można uzyskać poprzez menu :Misc->Remove all objects save.image() zapisanie aktualnej przestrzeni roboczej (wartości zmiennych) do pliku. To samo można uzyskać poprzez menu File->Save workspace. Domyślny plik przestrzeni roboczej to plik.rdata. Zapis danych do pliku cat(x,file= filename,appena=f) zapisanie wektora x do pliku. Podczas laboratoriów będziemy korzystać czasami z już przygotowanych skryptów po prostu plików z ciągami poleceń. Aby korzystać z pliku np. mojefunkcje.r należy użyć funkcji source(): source(<sciezka>) lub przeciągnać plik do okna środowiska R. Wartości specjalne Inf nieskończoność NULL obiekt pusty o długości równej 0 NA logiczna wartość o długości 1 opisująca wartość brakującą (missing value). Zarządzanie pakietami library() lista wszystkich pakietów aktualnie zainstalowanych install.packages(x) pobranie pakietu x (Packages->Install Packages) z serwera na dysk lokalny. library(x) zaimportowanie pakietu x do aktywnej sesji R (funkcje i dane pakietu stają się widoczne - można z nich korzystać) data() wyświetlenie listy wszystkich dostępnych zbiorów danych data(x) wprowadzenie do przestrzeni roboczej zbioru x Bardzo przydatnym sposobem instalacji pakietów BioConductor jest automatyczne ściągnięcie ich z serwera. Wystrczy wydać polecenia: source(" bioclite(<nazwa_pakietu>)
Modelowanie rynków finansowych z wykorzystaniem pakietu R
Modelowanie rynków finansowych z wykorzystaniem pakietu R Wprowadzenie do pakietu R Mateusz Topolewski woland@mat.umk.pl Wydział Matematyki i Informatyki UMK Plan działania 1 Co i dlaczego...? 2 Przechowywanie
Bardziej szczegółowoInstalacja Pakietu R
Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego: Download R for Windows opcja: install R for the first time opcja: Download R 3.3.3 for Windows uruchomienie R-3.3.3-win MAGDA
Bardziej szczegółowoWprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu
Wprowadzenie do Pakietu R dla kierunku Zootechnika Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego:
Bardziej szczegółowoWYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA PRZEDMIOT : : LABORATORIUM PODSTAW AUTOMATYKI 1. WSTĘP DO
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Bardziej szczegółowoPrzykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1
Rachunek Prawdopodobieństwa i Statystyka lab 3. Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) 1. Funkcje: - Funkcje nie powinny korzystać ze zmiennych globalnych. - Funkcje powinny być możliwie krótkie.
Bardziej szczegółowoZanim zaczniemy GNU Octave
MatLab część I 1 Zanim zaczniemy GNU Octave 2 Zanim zaczniemy GNU Octave 3 Zanim zaczniemy GNU Octave 4 Środowisko MatLab-a MatLab ang. MATrix LABoratory Obliczenia numeryczne i symboliczne operacje na
Bardziej szczegółowo1. Operacje na plikach i katalogach Chcąc przeprowadzić analizę danych należy załadować/wczytać dane do R, a wyniki z pewnością chcemy zapisać.
Rachunek Prawdopodobieństwa i Statystyka lab 5 Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) Pliki do pobrania: -http://www.cs.put.poznan.pl/kgutowska/rpis/dane/dane.csv -http://www.cs.put.poznan.pl/kgutowska/rpis/dane/dane2.csv
Bardziej szczegółowo1. Operacje na plikach i katalogach Chcąc przeprowadzić analizę danych należy załadować/wczytać dane do R, a wyniki z pewnością chcemy zapisać.
Rachunek Prawdopodobieństwa i Statystyka lab 5 i lab 6. Kaja Chmielewska (Kaja.Chmielewska@cs.put.poznan.pl) Pliki do pobrania: -http://www.cs.put.poznan.pl/kchmielewska/rpis/dane/dane.csv -http://www.cs.put.poznan.pl/kchmielewska/rpis/dane/dane2.csv
Bardziej szczegółowoUNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI
UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Pakiet R: Cz. II Strona 1 z 7 OBIEKTY Faktory (factors) Faktor jest specjalną strukturą, przechowującą
Bardziej szczegółowoDiary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku
Diary przydatne polecenie diary nazwa_pliku Polecenie to powoduje, że od tego momentu sesja MATLAB-a, tj. polecenia i teksty wysyłane na ekran (nie dotyczy grafiki) będą zapisywane w pliku o podanej nazwie.
Bardziej szczegółowoAKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH
AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH II rok Kierunek Logistyka Temat: Zajęcia wprowadzające. BHP stanowisk
Bardziej szczegółowoSZKOLENIE WPROWADZENIE DO R UNIWERSYTET SZCZECIŃSKI al. Papieża Jana Pawła II nr 22a Szczecin
SZKOLENIE WPROWADZENIE DO R UNIWERSYTET SZCZECIŃSKI al. Papieża Jana Pawła II nr 22a 70-453 Szczecin 2 Lp. Temat Numer części materiałów 1 Język R oraz środowisko RStudio 1 2 Składnia języka 3 3 Podstawowe
Bardziej szczegółowoPodstawy programowania w R - część 1
Podstawy programowania w R - część 1 Typy danych, podzbiory 1. Stwórz katalog na dysku (pierwsza litera imienia + nazwisko), który będzie Twoim Working Directory. "F:/inazwisko" 2. Uruchom RStudio. 3.
Bardziej szczegółowoNiezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
Bardziej szczegółowo1 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki
Bardziej szczegółowoMetody numeryczne Laboratorium 2
Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
Bardziej szczegółowoMentorGraphics ModelSim
MentorGraphics ModelSim 1. Konfiguracja programu Wszelkie zmiany parametrów systemu symulacji dokonywane są w menu Tools -> Edit Preferences... Wyniki ustawień należy zapisać w skrypcie startowym systemu
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Bardziej szczegółowoWprowadzenie do programu Mathcad 15 cz. 1
Wpisywanie tekstu Wprowadzenie do programu Mathcad 15 cz. 1 Domyślnie, Mathcad traktuje wpisywany tekst jako wyrażenia matematyczne. Do trybu tekstowego można przejść na dwa sposoby: Zaczynając wpisywanie
Bardziej szczegółowoPakiety Matematyczne - R Zestaw 2.
Pakiety Matematyczne - R Zestaw 2. Część przykładów pochodzi z helpa do R i z książki: R.Biecek, Przewodnik po pakiecie R, GIS 2014, strona www: http://www.biecek.pl, Instrukcje warunkowe Składnia instrukcji
Bardziej szczegółowoJAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Bardziej szczegółowoPolitechnika Poznańska Wydział Budowy Maszyn i Zarządzania
1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych
Bardziej szczegółowoWprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek
Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl
Bardziej szczegółowoPo uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Bardziej szczegółowoDodawanie grafiki i obiektów
Dodawanie grafiki i obiektów Word nie jest edytorem obiektów graficznych, ale oferuje kilka opcji, dzięki którym można dokonywać niewielkich zmian w rysunku. W Wordzie możesz zmieniać rozmiar obiektu graficznego,
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i
Bardziej szczegółowoElementy metod numerycznych - zajęcia 9
Poniższy dokument zawiera informacje na temat zadań rozwiązanych w trakcie laboratoriów. Elementy metod numerycznych - zajęcia 9 Tematyka - Scilab 1. Labolatoria Zajęcia za 34 punktów. Proszę wysłać krótkie
Bardziej szczegółowoOczywiście plik musi mieć rozszerzenie *.php
Oczywiście plik musi mieć rozszerzenie *.php Znaczniki PHP komunikują serwerowi gdzie rozpoczyna się i kończy kod PHP. Tekst między nimi jest interpretowany jako kod PHP, natomiast poza nimi jako kod HTML.
Bardziej szczegółowoLABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Bardziej szczegółowoRys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]
1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA JavaScript tak
Bardziej szczegółowo1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu
1. Edytor grafiki Draw 1.1. Okno programu Draw W bezpłatnym pakiecie OpenOffice zawarty jest program graficzny Draw (rysunek 1.1), wyposażony w liczne narzędzia do obróbki obiektów. Program możesz uruchomić,
Bardziej szczegółowoJeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Bardziej szczegółowoPrzetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści
Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, 2016 Spis treści Przedmowa XI I Podstawy języka Python 1. Wprowadzenie 3 1.1. Język i środowisko
Bardziej szczegółowoWyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal
Bardziej szczegółowoFunkcje i instrukcje języka JavaScript
Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje
Bardziej szczegółowo1. Przypisy, indeks i spisy.
1. Przypisy, indeks i spisy. (Wstaw Odwołanie Przypis dolny - ) (Wstaw Odwołanie Indeks i spisy - ) Przypisy dolne i końcowe w drukowanych dokumentach umożliwiają umieszczanie w dokumencie objaśnień, komentarzy
Bardziej szczegółowoetrader Pekao Podręcznik użytkownika Strumieniowanie Excel
etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie
Bardziej szczegółowoPlan Ćwiczeń. 3) znajdowanie i zmiana kartoteki roboczej polecenia getwd(), setwd()
Plan Ćwiczeń 1) Format poleceń, umieszczanie komentarzy, korekty poleceń (w przypadku bardziej skomplikowanych poleceń warto pisać je w otwartym okienku edytora i kopiować do linii poleceń R). Sposób zapisu
Bardziej szczegółowoMATLAB tworzenie własnych funkcji
MATLAB tworzenie własnych funkcji Definiowanie funkcji anonimowych Własne definicje funkcji możemy tworzyć bezpośrednio w Command Window, są to tzw. funkcje anonimowe; dla funkcji jednej zmiennej składnia
Bardziej szczegółowoMatlab Składnia + podstawy programowania
Matlab Składnia + podstawy programowania Matlab Matrix Laboratory środowisko stworzone z myślą o osobach rozwiązujących problemy matematyczne, w których operuje się na danych stanowiących wielowymiarowe
Bardziej szczegółowoTablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Bardziej szczegółowoPowłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.
Powłoka I Popularne implementacje W stylu sh (powłoki zdefiniowanej w POSIX) bash (najpopularniejsza) zsh ksh mksh W stylu csh csh tcsh 12 października 2018 1 / 16 Powłoka II Zachęta Komunikuje się z użytkownikiem
Bardziej szczegółowoModele danych walidacja widoki zorientowane na model
Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych
Bardziej szczegółowoJava jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
Bardziej szczegółowoBudowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE
Budowa i oprogramowanie komputerowych systemów sterowania Laboratorium 4 Metody wymiany danych w systemach automatyki DDE 1 Wprowadzenie do DDE DDE (ang. Dynamic Data Exchange) - protokół wprowadzony w
Bardziej szczegółowoWprowadzenie do środowiska
Wprowadzenie do środowiska www.mathworks.com Piotr Wróbel piotr.wrobel@igf.fuw.edu.pl Pok. B 4.22 Metody numeryczne w optyce 2017 Czym jest Matlab Matlab (matrix laboratory) środowisko obliczeniowe oraz
Bardziej szczegółowoUtworzenie pliku. Dowiesz się:
Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program
Bardziej szczegółowoKolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy
1 Podstawowym przeznaczeniem arkusza kalkulacyjnego jest najczęściej opracowanie danych liczbowych i prezentowanie ich formie graficznej. Ale formuła arkusza kalkulacyjnego jest na tyle elastyczna, że
Bardziej szczegółowoMathcad 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ółowoSpis treści OPIS PLIKU W FORMACIE CSV Z DANYMI PPE LUB EP 1
O PIS PLIKU W F O R M A C I E CSV Z D A N Y M I PRZEKAZÓW PIENIĘŻNYCH L U B E K S PRESÓW PIENIĘŻNYCH D O K U M E N T A C J A T E C H N I C Z N A W E R S J A 4.0 L I P I E C 2 0 1 4 Spis treści 1. Struktura
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoĆwiczenia nr 2. Edycja tekstu (Microsoft Word)
Dostosowywanie paska zadań Ćwiczenia nr 2 Edycja tekstu (Microsoft Word) Domyślnie program Word proponuje paski narzędzi Standardowy oraz Formatowanie z zestawem opcji widocznym poniżej: Można jednak zmodyfikować
Bardziej szczegółowoĆwiczenie 1. Wprowadzenie do programu Octave
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer
Bardziej szczegółowo5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów
Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i
Bardziej szczegółowoOtwórz R. Zmień katalog roboczy za pomocą File/Change Dir. Wczytaj plik przypisując go obiektowi o nazwie students:
1. Wczytywanie danych do programu R Otwórz R. Zmień katalog roboczy za pomocą File/Change Dir. Wczytaj plik przypisując go obiektowi o nazwie students: > students
Bardziej szczegółowoWOJEWÓDZTWO PODKARPACKIE
WOJEWÓDZTWO PODKARPACKIE UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ ROZWOJU REGIONALNEGO Instrukcja instalacji generatora wniosku o dofinansowanie projektu ze środków EFRR w ramach I osi priorytetowej Regionalnego
Bardziej szczegółowoMATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw
Faculty of Economic Sciences, University of Warsaw Warsaw, 09-03-2017 Generowanie liczb losowych rand(1) rand(1) generuje liczbę losową z przedziału (0,1) Jak można uzyskać liczby losowe z przedziału 1
Bardziej szczegółowoZakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów
Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy
Bardziej szczegółowoJęzyki skryptowe w programie Plans
Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów
Bardziej szczegółowoczerwony PLUS dla InsERT GT to specjalny pakiet rozszerzeń funkcjonalnych dla systemów z linii InsERT GT.
czerwony PLUS dla InsERT GT to specjalny pakiet rozszerzeń funkcjonalnych dla systemów z linii InsERT GT. Jest to trzeci z serii PLUSÓW - pakietów stworzonych z myślą o firmach, którym w codziennej pracy
Bardziej szczegółowo1 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ółowo1. Wprowadzenie do języka PHP
1. Wprowadzenie do języka PHP Język PHP jest generalnie w swojej składni podobny do języka C, chociaż występuje tu szereg różnic. 1.1. Zmienne W PHP nazwy zmiennych poprzedzamy znakiem dolara ($). Nie
Bardziej szczegółowo1. Wprowadzenie do oprogramowania gretl. Wprowadzanie danych.
Laboratorium z ekonometrii (GRETL) 1. Wprowadzenie do oprogramowania gretl. Wprowadzanie danych. Okno startowe: Póki nie wczytamy jakiejś bazy danych (lub nie stworzymy własnej), mamy dostęp tylko do dwóch
Bardziej szczegółowoLaboratorium 1 - Programowanie proceduralne i obiektowe
Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?
Bardziej szczegółowoWYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy
Bardziej szczegółowoTrochę o plikach wsadowych (Windows)
Trochę o plikach wsadowych (Windows) Zmienne środowiskowe Zmienną środowiskową można ustawić na stałe w systemie (Panel sterowania->system- >Zaawansowane ustawienia systemu->zmienne środowiskowe) lub też
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Bardziej szczegółowoKier. MTR Programowanie w MATLABie Laboratorium
Kier. MTR Programowanie w MATLABie Laboratorium Ćw. 7 Import i eksport danych. Współpraca z plikami zewnętrznymi 1. Wprowadzenie Eksport i import danych w MATLABie Na zakładce menu HOME w sekcji VARIABLE
Bardziej szczegółowoPodstawy MATLABA, cd.
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka Podstawy MATLABA, cd. 1. Wielomiany 1.1. Definiowanie
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja
Bardziej szczegółowoObiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
Bardziej szczegółowoJak utworzyć plik SIO dla aktualnego spisu?
System Informacji Oświatowej Jak utworzyć plik SIO dla aktualnego spisu? Programy Arkusz Optivum, Kadry Optivum, Płace Optivum, Sekretariat Optivum oraz Księgowość Optivum dostarczają znaczną część danych
Bardziej szczegółowoKrzysztof Kadowski. PL-E3579, PL-EA0312,
Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza
Bardziej szczegółowoPapyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska
Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Zaawansowane metody programowania Copyright c 2014 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania
Bardziej szczegółowoMasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA
MasterEdytor Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA 1. Przeznaczenie Program MasterEdytor przeznaczony jest do skonfigurowania wszystkich parametrów pracy programu mpfotoalbum. 2.
Bardziej szczegółowoSUBIEKT GT IMPORT XLS Towarów
Instrukcja użytkownika programu SUBIEKT GT IMPORT XLS Towarów Wersja 1.0.12 OPIS PROGRAMU Program Subiekt Import XLS służy do importowania i aktualizowania towarów w systemie InsERT Subiekt GT z plików
Bardziej szczegółowoSystemy wirtualnej rzeczywistości. Komponenty i serwisy
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Komponenty i serwisy Wstęp: W trzeciej części przedstawione zostaną podstawowe techniki
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoPrzetwarzanie sygnałów
Spis treści Przetwarzanie sygnałów Ćwiczenie 1 Wprowadzenie do programu Octave 1 Operatory 1 1.1 Operatory arytmetyczne...................... 1 1.2 Operatory relacji.......................... 1 1.3 Operatory
Bardziej szczegółowo2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych
2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:
Bardziej szczegółowoWprowadzenie do systemu Scilab
Wprowadzenie do systemu Scilab Instrukcja 0 Wersja robocza 1 System Scilab Scilab jest wysokopoziomowym obiektowym językiem programowania, którego celem jest numeryczne wsparcie badań naukowych i inżynierskich.
Bardziej szczegółowoInstrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF
Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF 1. Wstęp Treści zawarte w tym dokumencie mogą być przydatne w przypadku konieczności dokonania konwersji dokumentów tworzonych z
Bardziej szczegółowoKlasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Bardziej szczegółowoINFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Bardziej szczegółowoUkład równań liniowych
Układ równań liniowych 1 Cel zadania Wykształcenie umiejętności projektowania własnych klas modelujących pojęcia niezbędne do rozwiązania postawionego problemu. Rozwinięcie umiejętności przeciążania operatorów
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoINSTRUKCJA OTWIERANIA PLIKU DPT (data point table)
INSTRUKCJA OTWIERANIA PLIKU DPT (data point table) Plik DPT jest tekstowym zapisem widma. Otwarty w notatniku wygląda następująco: Aby móc stworzyć wykres, należy tak zaimportować plik do arkusza kalkulacyjnego,
Bardziej szczegółowoPisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.
MATLAB Co to jest? program komputerowy będący interaktywnym środowiskiem do wykonywania obliczeń naukowych i inżynierskich oraz do tworzenia symulacji komputerowych. Nazwa Nazwa programu pochodzi od angielskich
Bardziej szczegółowoĆwiczenie: JavaScript Cookies (3x45 minut)
Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.
Bardziej szczegółowoPolitechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Teoria sterowania MATLAB funkcje zewnętrzne (m-pliki, funkcje) Materiały pomocnicze do ćwiczeń laboratoryjnych
Bardziej szczegółowo