3. Biblioteka standardowa Pythona

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

Download "3. Biblioteka standardowa Pythona"

Transkrypt

1 Gdańsk, 2014

2 i plików tekstowych Użyteczne typy danych Biblioteka numeryczna Operacje systemowe i programowanie współbieżne Sieci Inne Standardowa biblioteka Pythona to ok. 200 modułów i ok. 100 podmodułów. Oferowana przez nie funkcjonalność obejmuje wiele zagadnień spotykanych w trakcie programowania. Większość z oferowanych przez moduły funkcjonalności ma postać klas, których metody realizują interesujące nas funkcje.

3 i plików tekstowych Użyteczne typy danych Biblioteka numeryczna Operacje systemowe i programowanie współbieżne Sieci Inne umożliwiają m.in. następujące moduły: string; formatowanie tekstu, klasyfikowanie znaków; re; wyrażenia regularne. xml i html; parsery plików xml-owych i html-owych; configparser; parser plików konfiguracyjnych; argparse; parser argumentów linii komend.

4 i plików tekstowych Użyteczne typy danych Biblioteka numeryczna Operacje systemowe i programowanie współbieżne Sieci Inne są możliwe dzięki następującym modułom: os.path; operacje na ścieżkach; tempfile; pliki tymczasowe; shutil; kopiowanie i przenoszenie plików, katalogów wraz z zawartością itd. sqlite3; interfejs do bazy SQLite. zlib i gzip; kompresja gzip; bz2; kompresja bz2; zipfile; kompresja zip. tarfile; pliki tar.

5 i plików tekstowych Użyteczne typy danych Biblioteka numeryczna Operacje systemowe i programowanie współbieżne Sieci Inne Następujące moduły zawierają rozmaite użyteczne typy danych, które nie zostały wbudowane w Pythona: datetime; data i czas; calendar; kalendarze; heapq; kolejki priorytetowe; array; tablice wartości tego samego typu liczbowego; queue; zwykłe kolejki (FIFO).

6 i plików tekstowych Użyteczne typy danych Biblioteka numeryczna Operacje systemowe i programowanie współbieżne Sieci Inne Obliczenia matematyczne i numeryczne wspierają m.in. następujące moduły: numbers; abstrakcyjna hierarchia liczb; math; standardowe funkcje i stałe matematyczne; cmath; standardowe funkcje matematyczne dla liczb zespolonych; decimal; ułamki dziesiętne; fractions; ułamki zwykłe; random; generowanie liczb losowych o zadanych rozkładach.

7 i plików tekstowych Użyteczne typy danych Biblioteka numeryczna Operacje systemowe i programowanie współbieżne Sieci Inne Dostęp do funkcji systemu operacyjnego dają następujące moduły: os; rozmaite funkcje systemowe; sys; rozmaite parametry i funkcje systemowe; time; odczyt i konwersja czasu. Możliwe jest także programowanie współbieżne, które jest wspierane przez moduły: threading; obsługa wątków; multiprocessing; obsługa wielu procesorów; subprocess; obsługa procesów potomnych.

8 i plików tekstowych Użyteczne typy danych Biblioteka numeryczna Operacje systemowe i programowanie współbieżne Sieci Inne Większość z popularnych usług sieciowych jest dostępna poprzez moduły Pythona: webbrowser i http; prosta przeglądarka www oraz obsługa protokołu http; urllib; dostęp do stron www poprzez adresy url; telnetlib; protokół telnet; ssl i socket; szyfrowane i zwykłe połączenia sieciowe; smtpd, smtplib, poplib, mailbox, imaplib, ; poczta elektroniczna; ftplib; protokół ftp; cgi i cgitb; skrypty CGI.

9 i plików tekstowych Użyteczne typy danych Biblioteka numeryczna Operacje systemowe i programowanie współbieżne Sieci Inne Oprócz wcześniej omówionych, Python wspiera także: przetwarzanie dźwięków (wave); testowanie jednostkowe (unittest); pomiar czasu wykonania programów (timeit); programowanie funkcjonalne (itertools, functools i operator); oprogramowywanie interfejsów (curses i tkinter). (I wiele, wiele innych... )

10 re argparse Wyrażenia regularne to napisy, które są wzorcami dla innych napisów. Na wyrażeniach regularnych wykonywane są dwie operacje: dopasowanie napisu do wzorca; modyfikacja napisu wg wzorca. Dopasowanie następuje zawsze w pierwszym możliwym miejscu i ma charakter zachłanny. Moduł re udostępnia programiście obie powyższe operacje (i kilka innych, dodatkowych).

11 re argparse Wyrażenia regularne są zbudowane ze znaków zwykłych i specjalnych. Podczas dopasowywania znaki zwykłe muszą wystąpić w dopasowywanym napisie, a specjalne są zastępowane przez zwykłe zgodnie z ich znaczeniem: ^ i $; oznacza początek i koniec napisu; \d, \s i.; oznaczają cyfrę, biały znak i dowolny znak; ; oznacza alternatywę tego, co poprzedza i następuje po tym znaku; \; znak następujący po \ staje się zwykłym znakiem;

12 re argparse [lista] ([^lista]); oznacza znak z (spoza) podanej listy znaków; {x}, {x,} i {x,y}; oznacza, że znak poprzedzający musi wystąpić dokładnie x razy, co najmniej x razy i co najmniej x ale nie więcej niż y razy;?, * i +; równoważne z {0,1}, {0,} i {1,}; ( i ); grupują ciągi znaków, po to by inne znaki specjalne można było zastosować do całej grupy; \numer; oznacza dopasowaną grupę o podanym numerze.

13 re argparse Moduł re udostępnia m.in. następujące funkcje: compile( w ); zwraca skompilowaną postać wyrażenia regularnego (przyśpiesza obliczenia, jeśli wielokrotnie korzystamy z tego samego wzorca); search( w,n ); zwraca informację o tym, czy napis n zawiera fragment pasujący do wzorca w; match( w,n ); zwraca informację o tym, czy napis n zawiera prefiks pasujący do wzorca w;

14 re argparse split( w,n ); dzieli napis n na fragmenty rozdzielone napisami pasującymi do wzorca w; findall( w,n ); zwraca wszystkie możliwe dopasowania napisu n do wzorca w; sub( w1,w2,n ); zwraca napis powstały z n poprzez zamianę wszystkich fragmentów pasujących do w1 zgodnie z zasadą opisaną w w2.

15 re argparse Wynikiem dopasowania jest obiekt typu MatchObject lub None, o ile dopasowanie się nie udało. Obiekty typu MatchObject mają m.in. następujące metody: group( n ); zwraca grupę dopasowaną do n-tego nawiasu (cały dopasowany fragment dla n równego 0); start( n ) i end( n ); zwraca indeks pierwszego i ostatniego znaku we fragmencie dopasowanym do n-tego nawiasu.

16 re argparse Poniższy program to prosty kalkulator z pamięcią. #!/usr/bin/env python3 # -*- coding: utf-8 -*- from re import search from sys import stdin zmienne = {} def wykonaj( linia ): w = "^\s*([a-z][a-z0-9]*)\s*=\s*([+-]?[0-9]+)\s*$" o = search( w,linia.lower() )

17 re argparse if o: zmienne[o.group( 1 )] = int( o.group( 2 ) ) else: try: print( eval( linia.lower(),zmienne ) ) except: print( "Błąd w wyrażeniu",linia ) while True: try: wykonaj( input() ) except EOFError: break

18 re argparse Moduł argparse ułatwia pisanie programów, które korzystają z parametrów wiersza poleceń. Zadanie programisty sprowadza się do określenia parametrów i ich opisu. Resztę robi klasa ArgumentParser znajdująca się w module argparse. Moduł argparse jest dostępny od wersji 3.2; wcześniej jego funkcje pełnił moduł optparse.

19 re argparse Aby skorzystać z klasy ArgumentParser należy utworzyć jej instancję, podając konstruktorowi kilka parametrów: description; napis wyświetlany przed listą parametrów; epilog; napis wyświetlany po liście parametrów; usage; opis sposobu użycia programu (domyślnie: generowany automatycznie); prog; nazwa programu (domyślnie: sys.argv[0]). (Powyższa lista obejmuje wyłącznie ważniejsze z parametrów.)

20 re argparse Następnie, dla każdego parametru, który nasz program ma obsługiwać, należy wywołać funkcję add_argument(), podając jej następujące informacje: nazwę parametru (lub listę nazw, w przypadku parametrów opcjonalnych, zaczynających się od znaku minusa); action; czynność wykonywana, jeśli parametr zostanie użyty (domyślnie: zapamiętanie wartości); nargs; z ilu fragmentów składa się parametr; default; wartość domyślna parametru; type; typ parametru; help; krótki opis parametru. (Powyższa lista także obejmuje tylko ważniejsze z możliwych do określenia informacji.)

21 re argparse Ostatnim krokiem jest wywołanie funkcji parse_args(), która: sprawdza, czy podano poprawne parametry (jeśli nie, kończy działanie programu i wyświetla odpowiednie komunikaty); ustala, jakie wartości zostały przypisane parametrom; zwraca obiekt typu Namespace, który przechowuje w odpowiednich polach wartości sparsowanych argumentów. Przekazując funkcji parse_args() obiekt x jako argument namespace można spowodować, że tworzone przez nią pola zostaną utworzone wewnątrz x-a.

22 re argparse Poniższy program, w zależności od podanego parametru, zwraca pierwszą lub drugą z przekazanych mu liczb. #!/usr/bin/env python3 # -*- coding: utf-8 -*- from argparse import * parser = ArgumentParser( \ description = "Program zwraca a lub b" ) parser.add_argument( "a",type = int, \ help = "pierwsza liczba" )

23 re argparse parser.add_argument( "b",type = int, \ help = "druga liczba" ) parser.add_argument( "-p",type = bool,default = True,\ help = "czy zwrócić pierwszą liczbę" ) argumenty = parser.parse_args() print( argumenty.a if argumenty.p else argumenty.b )

24 configparser csv tempfile Moduł configparser udostępnia klasę ConfigParser, której zadaniem jest parsowanie plików konfiguracyjnych. Dopuszczalne są wyłącznie pliki tekstowe, które składają się z sekcji o nagłówkach postaci [nazwa sekcji], wewnątrz których znajdują się napisy postaci zmienna = wartość lub zmienna : wartość. W nazwach sekcji rozróżniane są małe/duże litery; w nazwach zmiennych nie. Dopuszczalne są komentarze, rozpoczynające się od znaku # lub ;.

25 configparser csv tempfile Obiekty typu ConfigParse udostępniają m.in. następujące funkcje: sections() (options( s )); zwraca listę sekcji (zwraca listę zmiennych w sekcji s); add_section( s ) (remove_section( s )); tworzy nową (usuwa) sekcję s; has_section( s ); sprawdza, czy sekcja s istnieje; has_option( s,o ) (remove_option( s,o )); sprawdza, czy zmienna o występuje w (usuwa zmienną o z) sekcji s; get( s,o ) (set( s,o,v )); zwraca (zmienia) wartość zmiennej o z sekcji s (na v); read( f ) (write( f )); wczytuje plik o nazwie f (zapisuje konfigurację do pliku f).

26 configparser csv tempfile Moduł csv ułatwia parsowanie plików w formacie CSV (Comma Separated Values), które są wykorzystywane m.in. przez Excela. Klasa reader jest odpowiedzialna za odczyt plików CSV; klasa writer umożliwia zapisywanie danych w tym formacie. Plik, z którego pobieramy (do którego zapisujemy) dane podajemy jako argument konstruktora. Obiekt o typu reader jest iteratorem; każde wywołanie next( o ) zwraca kolejny wczytany wiersz (jako tablicę napisów). Obiekty typu writer posiadają metodę writerow(), która zapisuje tablicę napisów jako wiersz w pliku w formacie CSV.

27 configparser csv tempfile Moduł tempfile ułatwia tworzenie plików i katalogów tymczasowych. Są one tworzone w taki sposób, by przypadkiem nie usunąć żadnego z już istniejących plików/katalogów. Moduł tempfile udostępnia funkcję TemporaryDirectory(), która zwraca ścieżkę do utworzonego katalogu tymczasowego. Po wykorzystaniu, katalog wraz z zawartością zostanie automatycznie usunięty. Udostępnia on także funkcję TemporaryFile(), która zwraca obiekt, który zachowuje się jak plik i który zostanie automatycznie usunięty po zamknięciu.

28 multiprocessing queue threading Moduł multiprocessing ułatwia pisanie programów wieloprocesowych. Udostępnia on kilka klas, które można wykorzystać w tym celu: Process; instancje tej klasy to procesy, z których składa się program; Queue; instancje tej klasy to kolejki umożliwiające bezpieczne przekazywanie danych pomiędzy procesami; Pipe; instancje tej klasy to potoki, także wykorzystywane do bezpiecznego przekazywania danych pomiędzy procesami.

29 multiprocessing queue threading Nowy proces tworzymy wywołując konstruktor klasy Process i przekazując mu parametry target (procedura, którą proces będzie wykonywał) i args (argumenty przekazane do procedury). Procesy posiadają m.in. następujące metody: p.start(); uruchamia proces p; p.is_alive(); sprawdza, czy proces p nadal działa; p.join(); wstrzymuje bieżący proces do momentu, aż proces p się zakończy; p.terminate(); kończy działanie procesu p.

30 multiprocessing queue threading Kolejki umożliwiają wstawianie elementów na koniec (put()) i usuwanie ich z początku (get()). put() wstawia element do kolejki, o ile nie jest ona pełna; jeśli jest pełna, wstrzymuje proces do momentu, aż zwolni się miejsce. get() pobiera element z kolejki, o ile nie jest ona pusta; jeśli jest pusta, wstrzymuje proces do momentu, aż pojawi się tam jakiś element. Obie funkcje są dostępne w wersji nieblokującej (put_no_wait() i get_no_wait()); jeżeli nie można od razu pobrać/wstawić elementu, pojawia się wyjątek queue.empty/queue.full.

31 multiprocessing queue threading Poniższy program sortuje tablicę liczb, stosując zrównoleglone scalanie. #!/usr/bin/env python3 # -*- coding: utf-8 -*- from multiprocessing import * def sortuj( tablice ): while True: try: t1 = tablice.get_no_wait() except: return try: t2 = tablice.get_no_wait() except: tablice.put( t1 ) return tablice.put( scal( t1,t2 ) )

32 multiprocessing queue threading def scal( t1,t2 ): t,i1,i2 = [],0,0 while i1 < len( t1 ) and i2 < len( t2 ): if t1[i1] < t2[i2]: t.append( t1[i1] ) i1 += 1 else: t.append( t2[i2] ) i2 += 1 return \ t + (t2[i2:] if i1 == len( t1 ) else t1[i1:])

33 multiprocessing queue threading tablice = Queue() for i in range( ): tablice.put( [ i] ) tablice.put( [i] ) p1 = Process( target = sortuj,args = ( tablice, ) ) p2 = Process( target = sortuj,args = ( tablice, ) ) p1.start() p2.start() p1.join() p2.join() while tablice.qsize() > 1: tablice.put( scal( tablice.get(),tablice.get() ) )

34 multiprocessing queue threading Moduł queue udostępnia klasę Queue, którą można wykorzystać do komunikacji międzywątkowej. Moduł queue udostępnia także stosy (LifoQueue) i kolejki priorytetowe (PriorityQueue). Sposób działania kolejek modułu queue jest niemal identyczny z działaniem kolejek modułu multiprocessing (z punktu widzenia programisty te klasy są niemal identyczne).

35 multiprocessing queue threading Moduł threading ułatwia tworzenie programów wielowątkowych. Wątki różnią się od procesów tylko tym, że mają wspólny obszar danych. Tworzenie i korzystanie z wątków jest podobne do tworzenia i korzystania z procesów zmienia się jedynia nazwa klasy z Process na Thread.

36 bisect array Moduł bisect udostępnia funkcje realizujące przeszukiwanie binarne: bisect_left( t,x ); zwraca indeks pozycji, na którą powinien być wstawiony element x, aby posortowana tablica t pozostała taką; jeśli x już jest w tablicy, wskazane zostanie miejsce następujące przed pierwszym jego wystąpieniem; bisect_right( t,x ); zwraca indeks pozycji, na którą powinien być wstawiony element x, aby posortowana tablica t pozostała taką; jeśli x już jest w tablicy, wskazane zostanie miejsce następujące po ostatnim jego wystąpieniu.

37 bisect array Moduł array umożliwia tworzenie tablic, których wszystkie elementy mają ten sam elementarny typ. Udostępnia on klasę array, która zachowuje się jak lista, ale zużywa mniej miejsca w pamięci. Typ elementów podajemy jako argument w konstruktorze. Dopuszczalne są następujące typy: u ; znak w unikodzie; b, B, h, H, i, I, l, L ; liczba całkowita typu char, unsigned char, short, unsigned short, int, unsigned, long, unsigned long; f, d ; liczba rzeczywista typu float, double.

38 math/cmath random Moduły math i cmath udostępniają standardowe funkcje i stałe matematyczne operujące na liczbach rzeczywistych i zespolonych. Moduł math zawiera definicje stałych pi i e. Oprócz tego udostępnia on następujące funkcje: zaokrąglenie do bezpośrednio wyższej (ceil()) i bezpośrednio niższej liczby całkowitej (floor()); wykładnicza (exp()) i logarytmiczna (log()); pierwiastek (sqrt()); funkcje trygonometryczne (sin(), cos() itd.) i odwrotne do nich (asin(), acos() itd.);

39 math/cmath random funkcje hiperboliczne (acosh(), acosh() itd.); funkcje specjalne (gamma() itd.). Większość z powyższych funkcji jest dostępna w wersji dla liczb zespolonych w module cmath. Zawiera on także funkcje specyficzne dla liczb zespolonych takie, jak argument (phase()) czy też konwersja do postaci biegunowej (polar()).

40 math/cmath random Moduł random udostępnia rozmaite funkcje generujące liczby pseudolosowe. Należą do nich m.in.: randint( a,b ); zwraca losową liczbę całkowitą z podanego przedziału; choice( z ); zwraca losowy element zbioru z; shuffle( l ); zmienia w losowy sposób kolejność elementów listy l; sample( z,r ); zwraca próbkę r różnych losowych elementów ze zbioru z; random(); zwraca liczbę losową z przedziału [0, 1].

41 math/cmath random Możliwe jest także losowanie liczb zgodnie z zadanym rozkładem prawdopodobieństwa: rozkład równomierny na zadanym przedziale uniform( a,b ); rozkład beta betavariate( a,b ); rozkład gamma gammavariate( a,b ); rozkład wykładniczy expovariate( l ); rozkład normalny normalvariate( m,s ).

42 os i sys timeit Moduły os i sys dają programiście dostęp do rozmaitych zmiennych i funkcji systemowych. Moduł sys zawiera m.in. następujące zmienne i funkcje: argv; argumenty z linii poleceń; exit( w ); kończy działanie programu, przekazując systemowi w jako rezultat jego wykonania; path; lista katalogów, które są przeszukiwane w momencie szukania modułu do załadowania; stdin, stdout i stderr; standardowe wejście, wyjście i wyjście błędów; version; wersja używanego interpretera Pythona.

43 os i sys timeit Moduł os zawiera m.in. następujące zmienne i funkcje: funkcje operujące na identyfikatorze użytkownika, jego grupie, identyfikatorze procesu itd.; niskopoziomowe funkcje operujące na plikach; funkcje operujące na plikach i katalogach (chdir(), getcwd(), mkdir(), remove(), rename(), rmdir() i inne); funkcje do tworzenia procesów potomnych (execl(), fork(), kill(), nice(), spawnl() i inne).

44 os i sys timeit Moduł timeit udostępnia funkcję timeit, która umożliwia badanie efektywności krótkich fragmentów kodu. Aby sprawdzić, ile czasu zajmuje wykonanie interesującego nas fragmentu kodu, należy wykonać tę funkcję, przekazując jej jako argumenty kod do wykonania i liczbę powtórzeń.

45 os i sys timeit Poniższy program wczytuje kod, który ma zbadać, i mierzy czas jego wykonania. #!/usr/bin/env python3 # -*- coding: utf-8 -*- from timeit import timeit print( \ "Podaj kod, którego efektywność mam zmierzyć." ) print( "Czas działania kodu:", \ timeit( stmt = input(),number = 1000 ) / 1000 )

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie Operacje na plikach Otwarcie i zamknięcie pliku: fh = open('plik', 'r') Atrybuty: 'r' odczyt 'w' zapis 'a' dopisanie 'r+'

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

Współczesne Narzędzia Obliczeniowe - Python

Współczesne Narzędzia Obliczeniowe - Python Współczesne Narzędzia Obliczeniowe - Python mgr. inż. M. Czubenko Politechnika Gdańska Wydział Elektroniki Telekomunikacji i Informatyki Katedra Systemów Decyzyjnych 7 maja 2012 Podstawy podstaw Co to

Bardziej szczegółowo

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

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 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ółowo

lekcja 8a Gry komputerowe MasterMind

lekcja 8a Gry komputerowe MasterMind lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych

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

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język PYTHON Podstawowe informacje Python to język skryptowy, interpretowany - co oznacza, że piszemy skrypt, a następnie wykonujemy go za

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.2.

Języki programowania wysokiego poziomu. PHP cz.2. Języki programowania wysokiego poziomu PHP cz.2. Instrukcje strukturalne PHP Instrukcje strukturalne Instrukcja grupująca (blok instrukcji) Instrukcja warunkowa, if-else Instrukcja wyboru, switch-case

Bardziej szczegółowo

Język Python (2) Język Python (2) 1/36

Język Python (2) Język Python (2) 1/36 Język Python (2) Język Python (2) 1/36 Język Python (2) 2/36 Podstawy funkcji Pojęcia podstawowe Instrukcja def tworzy obiekt funkcji i przypisuje go do nazwy Instrukcja return przekazuje obiekt wynikowy

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 4. 23 października 2015 Plan wykładu 1 2 Pliki tekstowe Trwałość obiektów CSV Strumienie Plan wykładu 1 2 Pliki tekstowe Trwałość obiektów CSV Strumienie Protokół iteracyjny Producent Umiem dostarczać

Bardziej szczegółowo

J ezyk AWK Kurs systemu UNIX

J ezyk AWK Kurs systemu UNIX Język AWK Kurs systemu UNIX 1 AWK Opracowany w laboratoriach Bella w 1978 przez Aho, Weinbergera i Kernighana Język do przetwarzania plików tekstowych Kurs systemu UNIX 2 AWK: pierwsza odsłona! AWK jest

Bardziej szczegółowo

Programowanie 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 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ółowo

Część 4 życie programu

Część 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ółowo

Podstawy programowania skrót z wykładów:

Podstawy 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ółowo

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript 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ółowo

Języki skryptowe w programie Plans

Ję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ółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 5 - konwersja i rzutowanie oraz wprowadzenie do klasy Round i Math mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 9 listopada 2018 1 / 23 mgr

Bardziej szczegółowo

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

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

Programowanie obiektowe

Programowanie 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ółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

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

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Bash - wprowadzenie. Bash - wprowadzenie 1/39 Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:

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

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

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

Wstę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 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ółowo

JAVAScript w dokumentach HTML - przypomnienie

JAVAScript w dokumentach HTML - przypomnienie Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

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

Liczby pseudolosowe. #include <stdio.h> #include <stdlib.h> int main() { printf("%d\n", RAND_MAX); return 0; }

Liczby pseudolosowe. #include <stdio.h> #include <stdlib.h> int main() { printf(%d\n, RAND_MAX); return 0; } Liczby pseudolosowe Standardowa biblioteka języka C w pliku nagłówkowym posiada zadeklarowane dwie funkcje służące do generowania liczb pseudolosowych: rand i srand. Funkcja srand() jako parametr

Bardziej szczegółowo

Język C++ wykład VIII

Język C++ wykład VIII Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015 POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 4 : Napisy. Tablice dwuwymiarowe. Formaty

Bardziej szczegółowo

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

XML i nowoczesne technologie zarządzania treścią 2007/08

XML i nowoczesne technologie zarządzania treścią 2007/08 Zadanie 3 Poprawkowe XML i nowoczesne technologie zarządzania treścią 2007/08 Wprowadzenie Należy napisać program w Javie, który czytając w trybie SAX plik z listą operacji, wykonuje zadane operacje na

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

1 Przygotował: mgr inż. Maciej Lasota

1 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ółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych 1 / 30 STL Standard Template Library, STL (ang. = Standardowa Biblioteka Wzorców) biblioteka C++ zawierająca szablony (wzorce), które umożliwiają wielokrotne użycie. Główne

Bardziej szczegółowo

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 7 Język awk Wprowadzenie Schemat programu Konstrukcja wzorców Konstrukcja wyrażeń regularnych Struktury kontrolne Predefiniowane

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

C++ wprowadzanie zmiennych

C++ wprowadzanie zmiennych C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ć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ółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Stosy, kolejki, drzewa Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. VII Jesień 2013 1 / 25 Listy Lista jest uporządkowanym zbiorem elementów. W Pythonie

Bardziej szczegółowo

Wstęp do programowania. Różne różności

Wstęp do programowania. Różne różności Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie 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ółowo

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

Bardziej szczegółowo

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia Dynamiczne przetwarzanie stron dr Beata Kuźmińska-Sołśnia KLIENT Witaj INTERNET SERWER Plik HTML Witaj wyświetlanie przez przeglądarkę Witaj! Serwer WWW komputer

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

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy 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ółowo

Tabela wewnętrzna - definicja

Tabela wewnętrzna - definicja ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy

Bardziej szczegółowo

PLAN 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 ), 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ółowo

1. Wprowadzanie danych z klawiatury funkcja scanf

1. Wprowadzanie danych z klawiatury funkcja scanf 1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),

Bardziej szczegółowo

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak

Bardziej szczegółowo

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include

Bardziej szczegółowo

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami: Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie

Bardziej szczegółowo

Elementy metod numerycznych - zajęcia 9

Elementy 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ół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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Plan podstawowe operacje we/wy

Plan podstawowe operacje we/wy Plan podstawowe operacje we/wy standardowe wejście czytanie/pisanie do plików, dla wersji starszych niż 2.6 ustawienie zmiennych środowiskowych czytanie/pisanie z użyciem konstrukcji with serializacja

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 6. 6 listopada 2015 Plan wykładu Callable objects 1 Callable objects 2 3 Plan wykładu Callable objects 1 Callable objects 2 3 Callable objects Wszystko jest obiektem. Callable objects Wszystko jest

Bardziej szczegółowo

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁY DO ZAJĘĆ II MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych

Bardziej szczegółowo

INFORMATYKA Studia Niestacjonarne Elektrotechnika

INFORMATYKA 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ółowo

I. Podstawy języka C powtórka

I. Podstawy języka C powtórka I. Podstawy języka C powtórka Zadanie 1. Utwórz zmienne a = 730 (typu int), b = 106 (typu long long), c = 123.45 (typu double) Wypisz następujące komunikaty: Dane sa liczby: a = 730, b = 106 i c = 123.45.

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Zanim zaczniemy GNU Octave

Zanim 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ółowo

Podstawy programowania. Podstawy C# Tablice

Podstawy programowania. Podstawy C# Tablice Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej

Bardziej szczegółowo

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7 Spis treści 1 Funkcje 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 1.5 Zadanie 5 1.6 Zadanie 6 1.7 Zadanie 7 Funkcje Przy programowaniu często zdarza się, że pewne czynności chcemy wykonywać

Bardziej szczegółowo

Oczywiście plik musi mieć rozszerzenie *.php

Oczywiś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ółowo

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od

Bardziej szczegółowo

Wyrażenia regularne. Wyrażenia regularne 1/41

Wyrażenia regularne. Wyrażenia regularne 1/41 Wyrażenia regularne Wyrażenia regularne 1/41 Wyrażenia regularne 2/41 Po co wyrażenia regularne? Polecenie: $ grep est tekst.txt Zawartość tekst.txt To jest plik tekstowy. Testujemy narzędzie grep. Trzecia

Bardziej szczegółowo

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 1. 6 października 2017 Plan wykładu 1 2 3 4 Plan wykładu 1 2 3 4 Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/ marcinm/dyd/python Materiały

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje

Bardziej szczegółowo

Liczby losowe i pętla while w języku Python

Liczby losowe i pętla while w języku Python Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak

Bardziej szczegółowo

Wstęp do systemów wielozadaniowych laboratorium 19 awk

Wstęp do systemów wielozadaniowych laboratorium 19 awk Wstęp do systemów wielozadaniowych laboratorium 19 awk Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-01-08 Język programowania do pracy z bazami danych (w formie

Bardziej szczegółowo

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE 1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne

Bardziej szczegółowo

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

Bardziej szczegółowo

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha. Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Generator liczb losowych o rozkładzie Rayleigha. Generator liczb losowych o rozkładzie Rayleigha. 1. Cel ćwiczenia

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Programowanie imperatywne 1 Programowanie imperatywne Intuicje Programowanie imperatywne Paradygmat programowania imperatywnego: program

Bardziej szczegółowo

Powł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) 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ółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc. Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez

Bardziej szczegółowo

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1 PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,

Bardziej szczegółowo