Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy. Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

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

Download "Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy. Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP"

Transkrypt

1 Spotkania z Pythonem Cz ± 1 - podstawy Michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. M. Alichniewicz (SKALP) Python vol / 66

2 Gdzie si mo»na spotka z Pythonem? Dystrybucja Linuksa Ubuntu - ±rodowisko graczne Unity Oprogramowanie do zarz dzania projektami TRAC (wykorzystywane m.in przez NASA) Klient Dropbox'a Serwis Instagram Blender / LibreOce (jako j zyk skryptowy / makra) M. Alichniewicz (SKALP) Python vol / 66

3 Gªówne cechy j zyka Dynamiczny j zyk ogólnego przeznaczenia Struktura j zyka jest ukierunkowana na prostot i czytelno± kodu Multiplatformowo± (wliczaj c w to mikrokontrolery) Mo»liwo± ª czenia z innymi j zykami programowania Šatwo± instalacji dodatkowych bibliotek (i ich mnogo± ) Ogromna ilo± zastosowa«- od aplikacji desktopowych, po aplikacje internetowe Umo»liwia prac w trybie wiersza polece«, nie trzeba kompilowa plików przed uruchomieniem Nie wymaga dedykowanego edytora Rozwijane s dwie wersje - 2.x oraz 3.x M. Alichniewicz (SKALP) Python vol / 66

4 Przykªadowy kod Najwi kszy wspólny dzielnik - implementacja w C: /** * Przykladowy program obliczajacy najwiekszy * wspolny dzielnik (algorytm Euklidesa) */ int nwd(int a, int b) { int c; while (b > 0) { c = a % b; a = b; b = c; } return a } M. Alichniewicz (SKALP) Python vol / 66

5 Przykªadowy kod Najwi kszy wspólny dzielnik - implementacja w Pythonie: def nwd(a,b): """ Przykladowy program obliczajacy najwiekszy wspolny dzielnik (algorytm Euklidesa) """ while b > 0: c = a % b a = b b = c return a M. Alichniewicz (SKALP) Python vol / 66

6 Jakie s podstawowe ró»nice? Brak klamer - bloki s oznaczane przez wci cie kodu! Brak ±redników - instrukcje nie musz si ko«czy ±rednikiem! Zmienne deklarujemy w momencie u»ycia - nie ma potrzeby robienia tego wcze±niej, jak np. w C M. Alichniewicz (SKALP) Python vol / 66

7 Zmienne - podstawowe typy i operacje M. Alichniewicz (SKALP) Python vol / 66

8 Typy zmiennych - podstawowe Typ liczbowy (krótki) - int: a = 5 # Liczba rowna "5" b = 0x0A # Liczba rowna "10" Typ liczbowy (dªugi) - long: a = L # Duza liczba ujemna b = L # Jeszcze wieksza liczba Typ liczbowy (liczba zmiennoprzecinkowa) - oat: a = 1.23 # Mala liczba b = e-9 # Jeszcze mniejsza liczba Typ liczbowy (zespolony) - complex: a = -1+0j # Dobry biegun b = 1+2.3e-1j # Zly, niedobry biegun M. Alichniewicz (SKALP) Python vol / 66

9 Typy zmiennych - podstawowe Typ logiczny - boolean: a = True b = False # wazna jest wielkosc liter! Typ pusty - NoneType: a = None Typ tekstowy (ci g znaków) - str: a = 'Studenckie Kolo Automatykow SKALP' b = "Tak tez mozna zdefiniowac tekst" c = """A to jest bardzo dlugi tekst: Lorem ipsum dolor sit amet, consectetur adipiscing elit. """ Uwaga: je»eli w kodzie pojawi si tekst wielolinijkowy, typu: """ Lorem ipsum dupsum bupsum """ nie przypisany do»adnej zmiennej, wtedy jest to konstrukcja komentarza wielolinijkowego. M. Alichniewicz (SKALP) Python vol / 66

10 Podstawowe operacje na zmiennych Operacje arytmetyczne: Dodawanie a = a + b # Dodaj a do b i zapisz do b a += b # Tak tez mozna a += 1 # Tak wyglada inkrementacja - nie ma czegos # typu "i++" Odejmowanie a = a - b # Odejmij b od a i zapisz do a a -= b # Tak tez mozna a -= 1 # Tak wyglada derementacja - nie ma czegos # typu "i--" Mno»enie a = a * b # Pomnoz a razy b a *= b # To tez zadziala a = a * 2 # Dajmy jakas liczbe zeby literkom # smutno nie bylo M. Alichniewicz (SKALP) Python vol / 66

11 Podstawowe operacje na zmiennych Dzielenie i reszta z dzielenia a = a / b # Podziel a przez b a /= b # To tez zadziala a = a % 2 # Reszta z dzielenia przez 2 b %= 3 Pot gowanie a = a ** b # a do potegi b a **= b # To tez zadziala a = b ** 2 # Do kwadratu! Poszczególne typy liczbowe mo»na ze sob ª czy, uzyskuj c w efekcie liczb typu najwyzszego (o co chodzi: mno» c liczb dªug i krótk, dostaniemy liczb dªug. Dodaj c liczb zmiennoprzecinkow do liczby dªugiej, otrzymamy liczb zmiennoprzecinkow. Dziel c liczb zmiennoprzecinkow przez liczb zespolon, otrzymamy liczb zespolon etc.) M. Alichniewicz (SKALP) Python vol / 66

12 Podstawowe operacje na zmiennych Operacje logiczne (dotyczy liczb caªkowitych): Iloczyn logiczny a = a & b # Iloczyn logiczny a i b a &= b # j.w. a = b & 0xF0 # iloczyn logiczny z liczb Suma logiczna a = a b # suma logiczna a i b a = b a = a 0x3 Alternatywa wykluczaj ca (XOR) a = a ^ b # a XOR b a ^= b # To tez zadziala a = a ^ 0xFF M. Alichniewicz (SKALP) Python vol / 66

13 Podstawowe operacje na zmiennych Przesuni cie bitowe a = a >> 2 # Odpowiednik dzielenia razy 2 a >>= b # wersja skrocona a = b << 4 # Mnozymy b <<= 3 # ale w skrocie Negacja bitowa a = ~b # Tu nie ma co skracac... M. Alichniewicz (SKALP) Python vol / 66

14 Operacje na ci gach znaków Dodawanie a = a + b # Polaczenie ciagow a i b w jeden a += 'dadada' # Dodanie ciagu 'dadada' do a Mno»enie przez liczb caªkowit a = 'a' * 5 # Zwielokrotnienie ciagu 'a' # pieciokrotnie a *= 5 # To juz skads znamy Co logiczne - nie mo»emy mno»y tekstu przez tekst, czy go dzieli przez liczb, etc. Tak samo jak nie mo»emy mno»y przez liczb uªamkow (jak kto± uzyska dla przykªadu, dwie i póª literki J, to mu pogratuluj ) M. Alichniewicz (SKALP) Python vol / 66

15 Typy zmiennych - kolekcje Python, co jest niecz sto spotykane w innych j zykach, posiada specjalne rodzaje typów, tzw. kolekcje. Zgodnie z nazw, skªadaj si z specjalnie uªo»onego zbioru typów prostych (kolekcji tych typów): krotka, ang. tuple - mo»na to okre±li jako staªa tablica (nie mo»emy zmienia warto±ci, elementów, kolejno±ci, dodawa nowych elementów, etc.). Elementy mog by dowolnego typu: a = (1,2,3) # Jakies wartosci, np. zgrupowane # parametry jakiejs funkcji b = (4,5, 'jakis tekst nie zaszkodzi') c = (a, (1,2)) d = a[1] # Odwolanie do elementu e = b[1:3] # Pobranie elemntow od indeksow # 1 do 3 i zebranie ich w nowa tuple f = (0,) # Tupla 1-elementowa - trzeba pamietac # o przecinku po elemencie! g = (1,) * 6 # Tupla z szesciu ``1'' Tuple cz sto s wykorzystywane do grupowania warto±ci parametrów, lub zwracania kilku warto±ci z funkcji. M. Alichniewicz (SKALP) Python vol / 66

16 Typy zmiennych - kolekcje lista, ang. list - w przeciwie«stwie do tupli, mo»emy zmienia elementy, jak i dodawa nowe b d¹ usuwa istniej ce. Podobnie jak w tuplach, elementy mog by dowolnego typu: a = [1,2,3] # Jakies wartosci, np. zgrupowane # parametry jakiejs funkcji b = range(1,4) # Da to samo co wyzej c = [None]*4 # Stworzy liste o 4 elementach pustych, # zamiast None moze byc cokolwiek d = b[3] e = b[1:3] # Zachowanie podobne jak w tuplach, ale # tu tworzymy nowe listy f = [[1,2], [3,4]] # Mozemy zagniezdzac g = [] # Pusta lista Jest to typowy przykªad tablicy znanej z C. M. Alichniewicz (SKALP) Python vol / 66

17 Typy zmiennych - kolekcje Listy oraz tuple zachowuj si podobnie jak ci gi tekstowe, czyli mo»na poª czy kilka mniejszych list: a = [1, 2] b = [3, 4] c = a + b # W efekcie dostaniemy [1, 2, 3, 4] c = c + [] # Dalej zostaje to co wyzej - dodanie # pustej listy nic nie da b d¹ krotek (tupli): a = (4, 3) b = (2, 1) c = a + b # W efekcie dostaniemy (4, 3, 2, 1) stworzy jedn, wi ksz list lub tuple. Kolekcje musz by tego samego typu, tj. do listy nie mo»na doda tupli. M. Alichniewicz (SKALP) Python vol / 66

18 Typy zmiennych - kolekcje zbiór, ang. set - dosªownie uporz dkowany zbiór elementów - podobne do listy, ale elementy nie mog si powtarza i s automatycznie sortowane: a = {1,2,3} zbiór staªy, ang. frozenset - podobnie jak zwykªy zbiór, ale nie mo»na go modykowa : a = frozenset([1,2,3]) S to typowo matematyczne typu danych, wi c mo»na na nich robi wszystkie znane z matematyki operacje na zbiorach - iloczyn, suma, etc: c = a & b # Iloczyn zbiorow a i b c = a b # Suma zbiorow a i b c = a ^ b # Elementy ``skrajne'' (a b ) - (a & b) c = a - b # Roznica zbiorow M. Alichniewicz (SKALP) Python vol / 66

19 Typy zmiennych - kolekcje sªownik, ang. dictionary. Jest to rodzaj tablicy, w której za indeks mog robi praktycznie dowolnie wybrane warto±ci, zdeniowane przez nas: a = { 'indeks1': 'wartosc_1', 42: 'Ultimate Question of Life, ' 'the Universe, and Everything', (1,2): ('Tak tez mozna', 3.14) } Odowªujemy si do takiego sªownika w prosty sposób: a['indeks1'] + a[42] # Da nam w wyniku 'wartosc_1ultimate Question...' Sªownik jest odpowiednikem tablicy asocjacyjnej znanej m.in. z j zyka PHP. Jest to konstrukcja stosunkowo rzadko spotykana w innych j zykach. M. Alichniewicz (SKALP) Python vol / 66

20 Typy zmiennych - kolekcje Z kolekcji do których elementów mo»emy odwoªywa si wg. klucza (listy oraz sªowniki) mo»emy w prosty sposób usuwa elementy (sªowo kluczowe del). Nie dotyczy to tupli, która z denicji jest staªa. a = [1,2,3] del a[1] print repr(a) # Wyswietli [1,3] b = {'1': 1, '2': 2, '3': 'blabla'} del b['2'] print repr(b) # Wyswietli {'1': 1, '3': 'blabla'} Ilo± elementów w kolekcji (dowolnej) mo»emy sprawdzi funkcj len: a = (1,2,3) b = len(a) # b wynosi 3 c = len((1,2,(1,2))) # c rowniez wynosi 3 # na poziomie ``glownym'' # sa 3 elementy M. Alichniewicz (SKALP) Python vol / 66

21 Pisanie po ekranie M. Alichniewicz (SKALP) Python vol / 66

22 Pisanie po ekranie Podstawowe pisanie po ekranie jest wykonywane przez funkcj - nomen omen - print: print 'Hello world!' Z C/C++ znamy te» funkcj printf: printf("wyswietl: a = %d, b = 0x%X", 10, 20); W Pythonie oczywi±cie te» wyst puje odpowiednik takiej funkcji: print 'Wyswietl: a = %d, b = 0x%X' % (10, 20) Nale»y zwóci tutaj uwag na podwójne zastosowanie operatora %. W przypadku liczb, dziaªa jako dzielenie modulo. Z kolei przy ci gach tekstowych sªu»y do formatowania. W przypadku, je»eli w ci gu który formatujemy jest tylko jedna zmienna, po operatorze % nie musi si pojawi tupla, wystarczy pojedyncza warto± / zmienna. M. Alichniewicz (SKALP) Python vol / 66

23 Pisanie po ekranie W ramach tzw. debuggowania przez wy±wietlanie (czyli wstawianie w ±rodek kodu instrukcji wy±wietlania,»eby si mniej wi cej zorientowa gdzie si program sypie), przydatne jest kilka funkcji: Funkcja repr - zwraca u»yteczn dla czªowieka reprezentacj danej zmiennej/typu/warto±ci. Czyli, np. drukuje list. a = repr # Przypisz do zmiennej a funkcje repr. # Tak, to jest poprawna konstrukcja. print repr(a) # Powinno wyswietlic cos w stylu # ``<built-in function repr>'' Funckja id - drukuje unikalny identykator obiektu (zmiennej, wartosci, etc.). Czasami ta warto± si pojawia w ci gu zwróconym przez repr: print id(repr) # Wyswietli jakas liczbe, # u kazdego inna M. Alichniewicz (SKALP) Python vol / 66

24 Pisanie po ekranie - przekazywanie zmiennych Znaj c funkcj która zwraca unikalne ID ka»dego elementu (zmiennej), mo»emy wprost zaobserwowa jedn z wªasno±ci Pythona. W Pythonie wszystko jest przekazywane przez referencj. Oznacza to,»e domy±lnie istnieje jeden unikalny obiekt danego typu, a ka»de przypisanie go do kolejnej zmiennej powoduje jedynie przekazanie referencji. Mo»na to zaobserwowa na przykªadzie: a = 123 print id(a) # Wyswietli jakas liczbe, # np b = a print id(b) # Wyswietli TO SAMO co # instrukcja wyzej M. Alichniewicz (SKALP) Python vol / 66

25 Pisanie po ekranie - przekazywanie zmiennych Bardziej obrazowy przykªad tej wªasno±ci to np. przekazanie referencji do podlisty: a = [1,2,3,[4,5]] b = a[3] print repr(b) # Wyswietli [4,5] b[0] = 123 print repr(a) # Wyswietli [1,2,3,[123,5]]! M. Alichniewicz (SKALP) Python vol / 66

26 Bloki kontrolne M. Alichniewicz (SKALP) Python vol / 66

27 Bloki kontrolne Poniewa» Python jest j zykiem który stawia na prostot i przejrzysto± kodu, ilo± instrukcji blokowych jest ograniczona. J zyk ten posiada tylko 1 konstrukcj warunkow - if... else.... Nie posiada z kolei znanej m.in. z C instrukcji switch. Liczba p tli równie» jest ograniczona - wyst puj tylko p tle for i while, brak jest znanej z innych j zyków p tli do... while. Brak te» instrukcji skoku typu label... goto. W przeciwie«stwie do wi kszo±ci znanych j zyków (które maj wspólnego przodka, j zyk ALGOL), w Pythonie nie stosuje si klamer do oznaczania bloków! Bloki oznaczamy przez wci cia - zmiana ci gªo±ci wci cia oznacza otworzenie / zako«czenie bloku (jednocze±nie wymuszaj c na u»ytkowniku przejrzysto± kodu). Python akceptuje wci cie zªo»one z 2 spacji, 4 spacji b d¹ tabulatora (zalecane s 4 spacje). Korzystaj c z wiersza polece«(konsoli) pythona (polecenie python) blok ko«czymy pust lini. M. Alichniewicz (SKALP) Python vol / 66

28 Bloki kontrolne - instrukcja warunkowa - wersja C Znana z C konstrukcja warunkowa wygl da mniej wi cej tak: if ( warunek ) { // Jakis tam kod } else if ( warunek_2 ) { // Jeszcze inny kod } else { // Nic nie wyszlo } M. Alichniewicz (SKALP) Python vol / 66

29 Bloki kontrolne - instrukcja warunkowa - wersja Python Z kolei w Pythonie to wyglada tak: if warunek: # Jakis tam kod elif warunek_2: # Jeszcze inny kod else: # Nic nie wyszlo Jak wida, w Pythonie wyst puje sªowo kluczowe elif, co jest odpowiednikiem else if z C (gdzie tak na prawd, mamy 2 zagnie»d»one warunki - w Pythonie caªy czas to jeden warunek). Instrukcj switch znan z C zbudujemy za pomoc odpowiedniej ilo±ci if... elif... else. M. Alichniewicz (SKALP) Python vol / 66

30 Bloki kontrolne - instrukcja warunkowa - warunki Par sªów na temat tworzenia warunków. Wi kszo± operatorów warunkowych jest identyczna jak w pozostaªych j zykach programowania: ==, >, <, >=, <=,!=. Jest te» jeden niewyst puj cy: Dokªadna równo±. Z racji tego,»e zmienne w Pythonie nie maj odgórnie przypisanego typu, funkcja mo»e - dla przykªadu zwróci warto± liczbow, albo False w przypadku niepowodzenia. Jak odró»ni 0 matematyczne od 0 logicznego? Do tego sªu»y sªowo kluczowe is, które sprawdza równie» typ: 1 == True # Zwroci ``True'' - 1 to 1 1 is True # Zwroci ``False'' - bo matematyczne # ``1'' to nie logiczna prawda. Podobny operator wyst puje w j zyku PHP - ===. M. Alichniewicz (SKALP) Python vol / 66

31 Bloki kontrolne - instrukcja warunkowa - warunki W Pythonie istnieje jeszcze jeden przydatny operator - sªowo kluczowe in. Pozwala ono sprawdzi, czy w kolekcji znajduje si element o danej warto±ci: a = [1,2,3] 2 in a # Da ``True'' - bo 2 jest elementem listy 5 in a # Da ``False'' - nie ma takiego elementu W przypadku sªowników, sprawdza czy dany element jest kluczem: a = {'1': 1, '2': 2} '1' in a # Da ``True'' - bo '1' jest kluczem 1 in a # Da ``False'' - nie ma takiego klucza M. Alichniewicz (SKALP) Python vol / 66

32 Bloki kontrolne - instrukcja warunkowa - warunki Š czenie warunków jest nieco odmienne od tego w C. W wi kszo±ci j zyków programowania, do tego sªu» podwojone operatory do operacji logicznych na bitach - czyli && jako i oraz jako lub. Python stawia na czytelno± - a wi c, zamiast maªo zrozumiaªych krzaków, mamy form tekstow : and oraz or. Podobnie jest z negacj : zamiast symbolu!, stosujemy sªowo kluczowe not: if warunek1 and warunek2: # Zrob cos elif not warunek1 and not warunek2: # Zrob cos innego elif warunek1 or warunek2: # Jeszcze cos innego?! else: # To cos jeszcze zostalo? Oczywi±cie, warunki mo»emy zagnie»d»a (zarówno instrukcj if, jak i sam tre± warunku). M. Alichniewicz (SKALP) Python vol / 66

33 Bloki kontrolne - instrukcja warunkowa - warunki Kilka uwag do tworzenia warunków: Je»eli chcemy sprawdzi warto± logiczn, nie musimy jej porównywa do prawdy czy faªszu, wystarczy konstrukcja typu lub if zmienna_logiczna: # Zrob cos if not zmienna_logiczna_2: # Zrob cos innego 0 w ka»dej postaci liczbowej oznacza faªsz, wszystkie inne liczby to prawda warto± None to faªsz pusta kolekcja (pusta tupla, lista, etc) a tak»e pusty ci g znaków to faªsz, wszystko inne - prawda M. Alichniewicz (SKALP) Python vol / 66

34 Bloki kontrolne - p tla while Znana z C p tla while: while (warunek) { // Zrob cos } w Pythonie przybiera posta : while warunek: # Zrob cos Tworzenie warunków jest identyczne jak w instrukcji warunkowej. Nie licz c warunku, kod wewn trz p tli mo»e zosta przerwany, a p tla zako«czona dzi ki instrukcji break, albo przerwany a nast pnie wznowiony od pocz tku (kolejna iteracja) dzi ki instrukcji continue (tu podobnie jak w C) M. Alichniewicz (SKALP) Python vol / 66

35 Bloki kontrolne - p tla for Znana z C p tla for wygl da tak (przyklad): for (i=0; i<wartosc_koncowa; i++) { // Zrob cos } Pythonowy odpowiednik tej p tli to for i in range(0,wartosc_koncowa): # Zrob cos Funkcja range ju» si nam przewin ªa w momencie omawiania list. Sk d si tu wi c wzi ªa? M. Alichniewicz (SKALP) Python vol / 66

36 Bloki kontrolne - p tla for Otó» - algorytm dziaªania p tli for w j zyku C (i pochodnych) wygl da mniej wi cej tak: 1 Zainicjuj zmienne licznika (i = 0) 2 Sprawd¹ warunek (i < wartosc_koncowa) 3 Je»eli warunek prawdziwy, wykonaj kod p tli; w przeciwnym wypadku, zako«cz p tl. 4 Wykonaj aktualizacj warto±ci zmiennych licznika (i++) 5 Wró do punktu 2. M. Alichniewicz (SKALP) Python vol / 66

37 Bloki kontrolne - p tla for A jak to wygl da w Pythonie? 1 We¹ kolejn warto± z sekwencji (kolejna warto± z listy - przykªadowo - zwróconej przez range(0,wartosc_koncowa)) 2 Je»eli si to udaªo (to nie jest koniec listy), wykonaj kod p tli; w przeciwnym wypadku, zako«cz p tl. 3 Wró do punktu 1. Jak widzicie, algorytm p tli for w Pythonie znacznie si ró»ni od tego w C. Ró»nica wynika z tego,»e p tla nazwana for w Pythonie jest dosªownie interpretowana jako dla ka»dego elementu z sekwencji, wykonaj. Jako sekwencj mo»emy poda dowoln kolekcj (tuple, list, zbiór, a tak»e ci g tekstowy). Wniosek jest jeden: p tla for w Pythonie mo»e dziaªa jak jej odpowiednik w C, ale to nie jest klasycza p tla FOR. M. Alichniewicz (SKALP) Python vol / 66

38 Bloki kontrolne - p tla for Przykªady? skladniki = ['jablko', 'banan', 'gruszka', 'pomarancza'] print 'Skladniki salatki owocowej to:' for owoc in skladniki: print owoc, ciag = 'SKALP' print 'Kolejne znaki w ciagu %s' % ciag for znak in ciag: print 'Znak: %c' % znak print 'Klasyczne for:' for i in range(0,10): print 'i wynosi: %d' % i M. Alichniewicz (SKALP) Python vol / 66

39 Funkcje M. Alichniewicz (SKALP) Python vol / 66

40 Tworzenie funkcji - wersja C Przykªadowy kod funkcji w C wygl da tak: /** * Jakis komentarz / opis do funkcji, niewymagane, * ale zalecane ze wzgledu na czytelnosc */ typ_zwracany nazwa_funkcji(typ1 zmienna1, typ2 zmienna2, typ_etc zmienna_etc) { // Jakis tam kod funkcji } return wartosc_zwracana; // Cos zwracamy M. Alichniewicz (SKALP) Python vol / 66

41 Tworzenie funkcji - wersja Python Z kolei w Pythonie, szkielet wygl da tak: def nazwa_funkcji(zmienna1, zmienna2, zmienna_etc) """ Jakis komentarz / opis do funkcji, niewymagane, ale zalecane ze wzgledu na czytelnosc """ # Jakis tam kod funkcji return wartosc_zwracana; # Cos zwracamy Jak widzimy, funcj deklarujemy sªowem kluczowym def i nie podajemy»adnych typów (mo»emy te» nic nie zwraca, odpowiednik funkcji void z C). Pami tajmy te»,»e jak wszystko w Pythonie, argumenty s przekazywane przez referencj! M. Alichniewicz (SKALP) Python vol / 66

42 Tworzenie funkcji - wersja Python Python, jako j zyk skryptowy, daje nam jeszcze jedn mo»liwo± - podanie domy±lnych warto±ci argumentów def nazwa_funkcji(zmienna1 = 1, zmienna2 = 2, zmienna_etc = 'etc') """ Jakis komentarz / opis do funkcji, niewymagane, ale zalecane ze wzgledu na czytelnosc """ # Jakis tam kod funkcji return wartosc_zwracana; # Cos zwracamy M. Alichniewicz (SKALP) Python vol / 66

43 Tworzenie funkcji - wersja Python Jaka z tego korzy±? Otó» jedn z cech odró»niaj cych Pythona od innych j zyków, jest to,»e owszem - argumenty do funkcji mo»emy podawa wg. kolejno±ci denicji, ale tak»e mo»emy przypisywa warto±ci do konkretnych argumentów: # Wywolanie klasyczne nazwa_funkcji(1, 2, 3) # Trzeci argument pozostaje domyslny nazwa_funkcji(1, 2) # Pierwsze dwa zostaja domyslne nazwa_funkcji(zmienna_etc = 'nowe etc') # Same domyslne nazwa_funkcji() M. Alichniewicz (SKALP) Python vol / 66

44 Tworzenie funkcji - wersja C, zmienna liczna argumentów W Pythonie - tym razem podobnie jak w innych j zykach - jest te» mo»liwe zdeniowanie funkcji przyjmuj cej kilka argumentów. W C, jest to troch skomplikowane: #include <stdarg.h> void vargs(int first,...) { va_list arg; // Tablica z argumentami va_start(arg, first); // Ustaw wskaznik int foo; char bar; foo = va_arg(arg, int); // Wez pierwszy (typ int) bar = va_arg(arg, char); // Wez drugi (typ char) // Zrob z tym cos } va_end(arg); // Poinformuj gdzie koniec M. Alichniewicz (SKALP) Python vol / 66

45 Tworzenie funkcji - wersja Python, zmienna liczna argumentów Jak widzimy, w C musimy te argumentu zdejmowa po kolei z listy, co nie zawsze jest wygodne tudzie» mo»liwe. Python, jak wiemy, stawia na prostot i czytelno± kodu. W zwi zu z tym, zamiast takiego potworka mamy kod: def vargs(first, *args, **kwargs): """ Zmienna liczba argumentow. ``args'' to lista na ktorej sa argumenty, dla ktorych nie podalismy nazwy - czyli wywolanie funkcja typu vargs(1, 2, 3, 4). ``kwargs'' to slownik w ktorym sa argumenty przekazane z nazwy, czyli wywolanie typu vargs(dwa = 2, piec = 5) """ pass # Nic nie rob M. Alichniewicz (SKALP) Python vol / 66

46 Tworzenie funkcji - wersja Python, zmienna liczna argumentów Jak to dziaªa mo»emy sprawdzi w prosty sposób, wykorzystuj c poznan wcze±niej funkcj repr def vargs(*args, **kwargs): """ Wyswietl argumenty """ print repr(args) print repr(kwargs) a nast pnie spróbowa wywoªa funkcj na ró»ne sposoby z ró»nymi argumentami: vargs(1, 2, 3) # Slownik kwargs bedzie pusty vargs(jeden = 1, dwa = 2) # List args bedzie pusta vargs(1, dwa = 2) # Dane beda w args i w kwargs vargs() # Lista args i slownik kwargs puste Wa»ne jest,»eby argumenty nienazwane byªy podawane PRZED tymi z konkretn nazw. M. Alichniewicz (SKALP) Python vol / 66

47 Wywoªywanie funkcji - rozpakowywanie list i sªowników Czasami sie zdarza,»e mamy kod który tworzy sªownik - tudzie» list /tupl - z argumentami dla funkcji, które wszystkie przekazujemy. Mo»emy to zrobi tradycyjnie: lista = (1,2) slownik = {'trzy': 3} vargs(lista[0], lista[1], trzy=slownik['trzy']) Mo»emy to te» przyspieszy, stosuj c rozpakowanie sekwencji: lista = (1,2) slownik = {'trzy': 3} vargs(*lista, **slownik) Jak zobaczycie, dziaªa tak samo. M. Alichniewicz (SKALP) Python vol / 66

48 Wyj tki M. Alichniewicz (SKALP) Python vol / 66

49 Czym s wyj tki? W trakcie tworzenia funcji, czasami mo»e si okaza»e dla danych argumentów nie jest mo»liwe wykonanie takiej funkcji. Oczywi±cie, na fakt»e nie zostaªo to wykonane, trzeba jako± zareagowa. Jednym ze sposób, znany z C jest zwracanie np. ujemnych warto±ci, albo kodu bª du. W Pythonie mo»na te» zwróci np. warto± False. Ale jak zidentykowa, co poszªo nie tak? Zaªó»my prost funkcj, która otwiera port szeregowy i wysyªa po nim jakie± dane. W tej funkcji mo»e wiele rzeczy pój± nie tak: Bª dna nazwa portu Port zaj ty Brak uprawnie«etc. Oczywi±cie na ka»dy z bª dów trzeba zareagowa inaczej. Mo»na zwraca ró»ne warto±ci jako wynik funkcji. M. Alichniewicz (SKALP) Python vol / 66

50 Czym s wyj tki? Jak to zrobi inaczej? Zaªó»my,»e funkcja mo»e zaraportowa wyst pienie bª du i zako«czy swoje dziaªanie. Zaªó»my te»,»e takie zgªoszenie mo»na przechwyci i wykona odpowiednie operacje naprawcze - te zaªo»enia mo»na rozwin jako system wyj tków (ang. exceptions). Brak tego mechanizmu w C, pojawiª si od C++, jest wykorzystywany m.in. w Javie i w PHP. M. Alichniewicz (SKALP) Python vol / 66

51 Wyj tki w Pythonie Najprostszym przykªadem operacji która mo»e pój± nie tak, jest dzielenie. Dzielenie przez 0 nie nale»y do cz stych, i musimy si przed nim zabezpieczy. Jak? Mo»na sprawdzi, czy nie chcemy dzieli przez 0, je»eli tak, to ko«czymy nasz funkcj / piszemy komunikat o bª dzie / etc: # Obliczamy c = a / b if b == 0: print "Nie mozna dzielic przez 0!" else: print "Wynik z dzielenia: %d" % (a / b) Co si stanie, je»eli jednak podzielimy? M. Alichniewicz (SKALP) Python vol / 66

52 Wyj tki w Pythonie Sprawd¹my: a / b # Zwroci: # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # ZeroDivisionError: integer division or modulo by zero Na ekranie widzimy bª d, a w zasadzie wªa±nie wyj tek zgªoszony (rzucony) przez Pythona. Tak samo, wyj tek zostanie zgªoszony jak b dziemy chcieli odwoªa si do nieistniej cego elementu listy: a = [1,2,3] a[4] # Zwroci: # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # IndexError: list index out of range M. Alichniewicz (SKALP) Python vol / 66

53 Wyj tki w Pythonie Zgodnie z ide wyj tków, powinni±my móc wyªapa ten bª d. Skªadnia bloków obsªugi wyj tków jest stosunkowo intuicyjna. Najprostsza jej forma to: try: # Sprobuj wykonac jakis kod ktory moze nie wyjsc # np wspomniane dzielenie przez 0 except TypWyjatku as e: # Kod, ktory zostanie wykonany jezeli wyjatek # zostanie rzucony. W ``e'' moga znajdowac sie # dodatkowe informacje na temat wyjatku except TypWyjatku2: # Mozna reagowac na kilka typow wyjatkow, # mozna tez nie odczytywac konkretnych # informacji o bledzie (tylko fakt, ze wystapil) except: # Mozemy tez nie znac typu M. Alichniewicz (SKALP) Python vol / 66

54 Wyj tki w Pythonie Zwykªa instrukcja typu try... except pozwala nam reagowa na wyj tek, którego czasami si wr cz spodziewamy. A je»eli chcemy wykona jak ± akcj jak wyj tek NIE wyst pi? Teoretycznie, mo»emy umie±ci ten kod wewn trz bloku try - wtedy, je»eli wyj tek nie wyst pi, kod si powinien wykona. Tracimy jednak na czytelno±ci kodu! Dlatego te», Python przychodzi z pomoc nieco bardziej rozbudowan instrukcj : try... except... else: try: # Proba wykonania kodu except TypWyjatku as e: # Proba sie nie powiodla else: # Proba sie powiodla, zrobmy cos dodatkowego M. Alichniewicz (SKALP) Python vol / 66

55 Wyj tki w Pythonie Czasami zdarza si,»e w bloku try alokujemy jakie± zasoby - klasycznym, wr cz akademickim przykªadem jest tutaj otwarcie pliku. Niezale»nie od tego, czy wyj tek wyst piª, czy nie, plik musimy zamkn. Mo»emy takie zamykanie pliku umie±ci albo w bloku try ORAZ w bloku except, mo»emy te» umie±ci zamykanie pliku w bloku except ORAZ w bloku else. Mo»emy te» skorzysta z dedykowanego bloku zaprojektowanego m.in. wªasnie do zwalniania zasobów - try... except... nally try: # Jakis kod w ktorym alokujemy zasoby except TypWyjatku as e: # Proba sie nie powiodla finally: # Czy sie udalo, czy nie, zwalniamy zasoby M. Alichniewicz (SKALP) Python vol / 66

56 Wyj tki w Pythonie Oczywi±cie, instrukcje else oraz nally mo»emy ze sob ª czy, co daje nam ko«cow, peªn form bloków do obsªugi wyj tków: try: # Jakis kod w ktorym alokujemy zasoby except TypWyjatku as e: # Proba sie nie powiodla else: # Proba sie jednak udala finally: # Czy sie udalo, czy nie, zwalniamy zasoby M. Alichniewicz (SKALP) Python vol / 66

57 Wyj tki w Pythonie - programowanie wyj tkami Dosy cz st praktyk w±ród programistów, jest podej±cie upewnij si trzy razy, zanim co± wykonasz -»eby nie byªo bª dów. Przykªadem takiej praktyki jest m.in. wspomniane wcze±niej sprawdzanie, czy mo»emy dzieli przez dan liczb. Python z kolei, promuje podej±cie totalnie odmienne: spróbuj co± zrobi, co najwy»ej Ci nie wyjdzie - wtedy zrób co± innego - czyli rób i ªap wyj tki. Takie podej±cie skutkuje m.in. tym,»e Python rzuca wyj tkami na przysªowiowe prawo i lewo - i czasami nie da si zastosowa pierwszego podej±cia. Przykªadowo - jak sprawdzi, czy w danym sªowniku jest element o danym indeksie/kluczu (jak by wygl daªa taka funkcja?) M. Alichniewicz (SKALP) Python vol / 66

58 Wyj tki w Pythonie - programowanie wyj tkami Mniej wi cej tak: def haskey(dict, name): """ Sprawdza, czy w slowniku `dict` istnieje klucz `name` """ try: _ = dict[name] # Pobierz wartosc # do jakiejs zmiennej except KeyError: return False else: return True # Wyjatek - a wiec klucza # nie ma # Udalo sie - wiec klucz # istnieje To podej±cie jest zastosowane nawet wewn trz wbudowanych w Pythona funkcji! M. Alichniewicz (SKALP) Python vol / 66

59 Zadania do wykonania M. Alichniewicz (SKALP) Python vol / 66

60 Zadanie 1 Napisz 2 funkcje realizuj ce silni na 2 sposoby: rekurencyjnie oraz iteracyjnie. M. Alichniewicz (SKALP) Python vol / 66

61 Zadanie 2 Napisz funkcj, która sprawdzi czy w podanej przez u»ytkownika kolekcji (lista, tupla, sªownik, tekst) istnieje element o podanym przez u»ytkownika kluczu. Funkcja powinna zwraca warto± logiczn True je»eli dany klucz istnieje, oraz logiczne False w przeciwnym wypadku. M. Alichniewicz (SKALP) Python vol / 66

62 Zadanie 3 Napisz funkcj, która stworzy list b d c sum dwóch list a i b tak,»e lista wynikowa b dzie miaªa tylko unikalne warto±ci z obu list (mo»esz zaªo»y,»e warto±ci listy a jak i b s unikalne wewn trz tych list). Obrazowo: a = suma_list([1,2,3,4], [3,4,5,6]) # a powinno wynosic [1,2,3,4,5,6] M. Alichniewicz (SKALP) Python vol / 66

63 Zadanie 4 Zaimplementuj algorytm sita Erastotenesa (wyszukiwanie liczb pierwszych z zadanego zakresu - patrz - w inny sposób ni» podany - bez usuwania elementów listy, a tworz c now ) M. Alichniewicz (SKALP) Python vol / 66

64 Materiaªy M. Alichniewicz (SKALP) Python vol / 66

65 Materiaªy Dokumentacja j zyka Python Forum StackOverow Python Enchancement Proposals M. Alichniewicz (SKALP) Python vol / 66

66 Spotkania z Pythonem Cz ± 1 - podstawy Michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. M. Alichniewicz (SKALP) Python vol / 66

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP Spotkania z Pythonem Cz ± 1 - podstawy - rozwi zania zada«michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike

Bardziej szczegółowo

1. Wprowadzenie do C/C++

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

Bardziej szczegółowo

1. Wprowadzenie do C/C++

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

Bardziej szczegółowo

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe 1 Wprowadzenie 1.1 rodowisko programistyczne NetBeans https://netbeans.org/ 1.2 Dokumentacja j zyka Java https://docs.oracle.com/javase/8/docs/api/

Bardziej szczegółowo

Przetwarzanie sygnaªów

Przetwarzanie sygnaªów Przetwarzanie sygnaªów Laboratorium 1 - wst p do C# Dawid Poªap Przetwarzanie sygnaªów Pa¹dziernik, 2018 1 / 17 Czego mo»na oczekiwa wzgl dem programowania w C# na tych laboratoriach? Dawid Poªap Przetwarzanie

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

Metodydowodzenia twierdzeń

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

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

Bardziej szczegółowo

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Bash i algorytmy. Elwira Wachowicz. 20 lutego Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad

Bardziej szczegółowo

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5. Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Lekcja 12 - POMOCNICY

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

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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

Bardziej szczegółowo

Listy, krotki, słowniki, funkcje

Listy, krotki, słowniki, funkcje Listy, krotki, słowniki, funkcje Listy Lista jest najbardziej elastycznym typem obiektu uporządkowanej kolekcji. Może zawierać różne typy danych - liczby, łańcuchy znaków, a nawet inne listy. Tworzy się

Bardziej szczegółowo

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java J zyk programowania JAVA c 2011 Vincent Van GOGH: M»czyzna pij cy li»ank kawy Zadanie 6. Napisz program, który tworzy tablic 30 liczb wstawia do tej tablicy liczby od 0 do 29 sumuje te elementy tablicy,

Bardziej szczegółowo

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...); Rozdziaª 4 P tle 4.1 Wst p Niniejszy rozdziaª zawiera opis p tli w j zyku C, wraz z przykªadowymi programami oraz ich obja±nieniem. 4.2 P tle P tla to element j zyka programowania, pozwalaj cy na wielokrotne,

Bardziej szczegółowo

ZAJ CIA 4. Podstawowe informacje o algorytmie. Operatory relacyjne i logiczne, instrukcja warunkowa if

ZAJ CIA 4. Podstawowe informacje o algorytmie. Operatory relacyjne i logiczne, instrukcja warunkowa if ZAJ CIA 4. Podstawowe informacje o algorytmie. Operatory relacyjne i logiczne, instrukcja warunkowa if. ALGORYTM Algorytm jest przepisem opisuj cym krok po kroku rozwi zanie problemu lub osi gni cie jakiego

Bardziej szczegółowo

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

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

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 3 - operatory oraz instrukcje warunkowe i wyboru mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 19 października 2018 1 / 35 mgr inż. Krzysztof

Bardziej szczegółowo

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

Programowanie i struktury danych 1 / 44

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

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie Cz ± II Podziaª pracy 1 Tablica sortuj ca Kolejka priorytetowa to struktura danych udost pniaj ca operacje wstawienia warto±ci i pobrania warto±ci minimalnej. Z kolejki liczb caªkowitych, za po±rednictwem

Bardziej szczegółowo

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy. Logika i teoria mnogo±ci, konspekt wykªad 12 Teoria mocy, cz ± II Def. 12.1 Ka»demu zbiorowi X przyporz dkowujemy oznaczany symbolem X obiekt zwany liczb kardynaln (lub moc zbioru X) w taki sposób,»e ta

Bardziej szczegółowo

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki. Wydziaª Matematyki, Fizyki i Informatyki 10 marca 2008 Spis tre±ci Listy 1 Listy 2 3 Co to jest lista? Listy List w Mathematice jest wyra»enie oddzielone przecinkami i zamkni te w { klamrach }. Elementy

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał

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

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

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

Bardziej szczegółowo

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

Lab. 02: Algorytm Schrage

Lab. 02: Algorytm Schrage Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Środowisko programisty

Środowisko programisty Środowisko programisty 1/35 Środowisko programisty Język Python cz. 3 dr inż. Grzegorz Michalski 7 kwietnia 2014 Środowisko programisty 2/35 Kod samotestujący Tworzenie def t e s t e r ( ) : p r i n t

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X. Relacje 1 Relacj n-argumentow nazywamy podzbiór ϱ X 1 X 2... X n. Je±li ϱ X Y jest relacj dwuargumentow (binarn ), to zamiast (x, y) ϱ piszemy xϱy. Relacj binarn okre±lon w zbiorze X nazywamy podzbiór

Bardziej szczegółowo

1 Bª dy i arytmetyka zmiennopozycyjna

1 Bª dy i arytmetyka zmiennopozycyjna 1 Bª dy i arytmetyka zmiennopozycyjna Liczby w pami ci komputera przedstawiamy w ukªadzie dwójkowym w postaci zmiennopozycyjnej Oznacza to,»e s one postaci ±m c, 01 m < 1, c min c c max, (1) gdzie m nazywamy

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

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Python dla początkujących Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Wstęp Stworzony w latach 90 przez Guido van Rossum Nazwa pochodzi od

Bardziej szczegółowo

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 6 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 21 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

Odczyt danych z klawiatury Operatory w Javie

Odczyt danych z klawiatury Operatory w Javie Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje

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

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

Sposoby przekazywania parametrów w metodach.

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

Bardziej szczegółowo

Algorytmy zwiazane z gramatykami bezkontekstowymi

Algorytmy zwiazane z gramatykami bezkontekstowymi Algorytmy zwiazane z gramatykami bezkontekstowymi Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

Bardziej szczegółowo

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP Spotkania z Pythonem Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike

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

Przegląd języka Python. Łukasz Anwajler

Przegląd języka Python. Łukasz Anwajler Przegląd języka Python Łukasz Anwajler lukasz.anwajler@pjwstk.edu.pl Nie wierzcie mi na słowo Zaraz zobaczymy: czym jest Python dlaczego warto go używać jakie ma zastosowania gdzie z niego korzystają jakzacząć

Bardziej szczegółowo

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW http://metodycy.torun.pl/ m.informatyka@metodycy.torun.pl 1. Wprowadzenie do Pythona podstawowe informacje Python to język programowania wysokiego poziomu,

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

Podstawy. Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS Informatyka Stosowana

Podstawy. Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS Informatyka Stosowana Podstawy 1 Plan prezentacji Garść informacji Komentarze Stringi Wbudowane typy liczbowe Konstrukcja print Pobieranie danych Konstrukcja if Konstrukcja if else Konstrukcja if elif else Pętla while Pętla

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Listy i operacje pytania

Listy i operacje pytania Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik

Bardziej szczegółowo

x y x y x y x + y x y

x y x y x y x + y x y Algebra logiki 1 W zbiorze {0, 1} okre±lamy dziaªania dwuargumentowe,, +, oraz dziaªanie jednoargumentowe ( ). Dziaªanie x + y nazywamy dodawaniem modulo 2, a dziaªanie x y nazywamy kresk Sheera. x x 0

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym. ZESTAWY A Zestaw 1 Organizacja plików: Wszystkie pliki oddawane do sprawdzenia nale»y zapisa we wspólnym folderze o nazwie b d cej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko ¹ródªa programów

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,

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

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

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

Bardziej szczegółowo

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

Programowanie funkcyjne. Wykªad 13

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

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje

Bardziej szczegółowo

Wska¹niki, tablice dynamiczne wielowymiarowe

Wska¹niki, tablice dynamiczne wielowymiarowe Rozdziaª 11 Wska¹niki, tablice dynamiczne wielowymiarowe 11.1 Wst p Identycznie, jak w przypadku tablic statycznych, tablica dynamiczna mo»e by tablic jedno-, dwu-, trójitd. wymiarow. Tablica dynamiczna

Bardziej szczegółowo

Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ

Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ Sterowanie Zak lad Chemii Teoretycznej UJ 29 października 2007 1 2 3 4 arytmetyczne +, -, *, / % (dzielenie modulo) operatory sa lewostronnie l aczne priorytety: (*, /, %), (+, -) nie istnieje operator

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

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

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 7 1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

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

Python. Wprowadzenie. Jolanta Bachan

Python. Wprowadzenie. Jolanta Bachan Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=

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

Struktura pliku projektu Console Application

Struktura pliku projektu Console Application Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne 1 Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

O autorze... 9 Wprowadzenie... 11

O autorze... 9 Wprowadzenie... 11 Spis tre ci O autorze... 9 Wprowadzenie... 11 Rozdzia 1. Sterownik przemys owy... 15 Sterownik S7-1200... 15 Budowa zewn trzna... 16 Budowa wewn trzna... 19 Cykl programu oraz tryby pracy... 21 Zestaw

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

PowerShell. Sławomir Wawrzyniak 05.11.2010

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

Bardziej szczegółowo

Metody dowodzenia twierdze«

Metody dowodzenia twierdze« Metody dowodzenia twierdze«1 Metoda indukcji matematycznej Je±li T (n) jest form zdaniow okre±lon w zbiorze liczb naturalnych, to prawdziwe jest zdanie (T (0) n N (T (n) T (n + 1))) n N T (n). 2 W przypadku

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń: W pierwszym kroku nauczymy się uruchamiać w Pythonie tradycyjny* program ". Dzięki temu nauczysz się pisać w języku Python, a także zapisywać i uruchamiać swoje pythonowe programy. *Jest taka tradycja,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Język ludzki kod maszynowy

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

Bardziej szczegółowo

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

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

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1 Ciaªa i wielomiany 1 Ciaªa i wielomiany 1 Denicja ciaªa Niech F b dzie zbiorem, i niech + (dodawanie) oraz (mno»enie) b d dziaªaniami na zbiorze F. Denicja. Zbiór F wraz z dziaªaniami + i nazywamy ciaªem,

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