Wstęp do programowania

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

Download "Wstęp do programowania"

Transkrypt

1 Wstęp do programowania Wykład 7 Funkcje Janusz Szwabiński Plan wykładu: Zastosowania funkcji Funkcje wbudowane Funkcje biblioteczne Funkcje użytkownika Zastosowania funkcji Z punktu widzenia programowania funkcje to nazwane sekwencje instrukcji. Tworzymy je z następujących powodów: nadawanie nazw pewnym sekwencjom instrukcji może uczynić kod bardziej czytelnym i skrócić czas usuwania błędów dzięki funkcjom kod źródłowy programu jest z reguły krótszy, ponieważ eliminują one potrzebę powtarzania tych samych sekwencji poleceń program jest łatwiejszy w utrzymaniu ponieważ dana sekwencja wprowadzana jest tylko raz, w definicji funkcji, ewentualnych zmian dokonujemy tylko w jednym miejscu podzielenie programu na części o dobrze zdefiniowanych funkcjonalnościach powoduje, że możemy każdą część debuggować z osobna dobrze zaprojektowane funkcje mogą być używane ponownie przez inne programy Funkcje wbudowane Interpreter Pythona oferuje pewną liczbę funkcji wbudowanych, czyli zawsze dostępnych dla programisty. Część z nich stosowaliśmy już na poprzednich wykładach intuicyjnie, bez wnikania w ich naturę. Z innych będziemy korzystać niezmiernie rzadko lub wcale (przynajmniej w ramach tego wykładu). Pełną listę tych funkcji można znaleźć pod adresem ( Polecenia wykorzystywane do konwersji typów to właśnie przykład funkcji wbudowanych, z których już korzystaliśmy: In [1]: int('32') Out[1]: 32

2 In [2]: int('hello') ValueError Traceback (most recent ca ll last) <ipython-input-2-3f8bc6d8fcab> in <module>() ----> 1 int('hello') ValueError: invalid literal for int() with base 10: 'Hello' In [3]: int(-2.3) Out[3]: -2 In [4]: float(32) Out[4]: 32.0 In [5]: str(32) Out[5]: '32' Funkcje do tworzenia typów złożonych również należą do tej grupy: In [6]: dict(a=1,b=2,c=3) Out[6]: {'a': 1, 'b': 2, 'c': 3} In [7]: list('anyway') Out[7]: ['a', 'n', 'y', 'w', 'a', 'y'] Do dyspozycji mamy kilka funkcji matematycznych:

3 In [8]: abs(-1) Out[8]: 1 In [9]: round(2.3) Out[9]: 2 In [10]: pow(2,3) Out[10]: 8 In [11]: oct(15) Out[11]: '0o17' In [12]: bin(3) Out[12]: '0b11' In [13]: hex(255) Out[13]: '0xff' Przy pomocy funkcji wbudowanych wczytujemy również dane z klawiatury: In [14]: s = input('--->') --->python In [15]: print(s) python

4 In [16]: l = input('podaj liczbę: ') Podaj liczbę: 4 In [22]: l** TypeError Traceback (most recent ca ll last) <ipython-input-22-0c bb4> in <module>() ----> 1 l**2 TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int' In [23]: type(l) Out[23]: str In [18]: int(l)**2 Out[18]: 16 Ogólnie rzec biorąc, funkcja oczekuje podania na wejściu argumentu lub listy argumentów i produkuje jakiś wynik na wyjściu (w dalszej części wykładu omówimy kilka wyjątków). Wynik ten możemy przypisać zmiennej, lub bezpośrednio wyprowadzić na ekran. Funkcje biblioteczne Instalując dystrybucję Pythona, instalujemy również jego bibilotekę standardową, która zawiera bardzo dużo modułów z funkcjami rozszerzającymi podstawowe możliwości języka. Pełna dokumentacja biblioteki znajduje się pod adresem ( Aby skorzystać z funkcji zdefiniowanej w bibliotece standardowej (i nie będącej funkcją wbudowaną), musimy załadować moduł, w którym jest ona zdefiniowana. Najbezpieczniejszy sposób zaimportowania definicji (o tym więcej w dalszej części kursu) ma składnię import nazwa_modułu Na przykład, jeśli chcemy korzystać z funkcji matematycznych, importujemy moduł mathz biblioteki standardowej:

5 In [24]: import math W wyniku wykonania tego polecenia interpreter tworzy obiekt modułu o nazwie math In [25]: print(math) <module 'math' (built-in)> Moduł zawiera szereg definicji. Aby je przeglądnąć, możemy wywołać na nim funkcję dir:

6 In [26]: dir(math)

7 Out[26]: [' doc ', ' loader ', ' name ', ' package ', ' spec ', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

8 Dostęp do poszczególnych funkcji i stałych odbywa się w następujący sposób: nazwa_modułu.nazwa_funkcji In [27]: angle = math.pi In [28]: math.sin(math.pi/2) Out[28]: 1.0 Argumentem funkcji (ogólnie, nie tylko matematycznej) może być wyrażenie, w skład którego wchodzą inne funkcje:

9 In [29]: p = '3.14' math.sin(p) TypeError Traceback (most recent ca ll last) <ipython-input a> in <module>() 1 p = '3.14' ----> 2 math.sin(p) TypeError: a float is required In [30]: math.sin(float(p)) Out[30]: In [31]: math.sin(math.acos(0.0)) Out[31]: 1.0 Funkcje użytkownika Do tej pory rozważaliśmy jedynie gotowe funkcje, albo wbudowane w interpreter, albo zawarte w bibliotece standardowej. Python oczywiście oferuje nam również możliwość definiowania własnych funkcji. Składnia takiej definicji jest następująca: def nazwa_funckji(arg1,arg2,arg3,...): <instrukcje> return wynik Słowo kluczowe defwprowadza definicję funkcji. Po nim następuje nazwa funkcji oraz lista parametrów formalnych otoczonych nawiasami okrągłymi. Parametry formalne to po prostu argumenty funkcji. Może ich być dowolna liczba, również 0. Pierwszy wiersz definicji kończy się dwukropkiem, o którym wiemy już, że otwiera blok zawierający sekwencję instrukcji. Wszystkie polecenia w tym bloku powinny być wcięte w stosunku do słowa kluczowego def. Kolejne słowo kluczowe, returnzwraca wynik działania funkcji i przekazuje kontrolę do części programu, z poziomu którego funkcja zostanie później wywołana. Jeżeli efektem działania funkcji ma być np. wypisanie czegoś na ekranie, zamiast wyliczenia konkretnego wyniku, wiersz zawierający returnmożemy pominąć. Funkcja zwróci wówczas wartość specjalną None.

10 Definiowanie funkcji Rozważmy przykład: In [32]: def print_lyrics(): print("jak człowiek wierzy w siebie,") print("to cała reszta to betka,") print("nie ma takiej rury na świecie,") print("której nie można odetkać") W wyniku wykonania definicji tworzony jest obiekt funkcji o odpowiedniej nazwie: In [33]: print(print_lyrics) <function print_lyrics at 0x7ffbd835d158> In [34]: type(print_lyrics) Out[34]: function Funkcje zdefiniowane przez użytkownika wywołujemy tak samo, jak funkcje wbudowane: In [35]: print_lyrics() Jak człowiek wierzy w siebie, to cała reszta to betka, nie ma takiej rury na świecie, której nie można odetkać In [36]: test = print_lyrics() Jak człowiek wierzy w siebie, to cała reszta to betka, nie ma takiej rury na świecie, której nie można odetkać In [37]: print(test) None Raz zdefiniowana funkcja może zostać wykorzystana w innych definicjach:

11 In [38]: def repeat_lyrics(n): for i in range(n): print_lyrics() print("****") Nowa funkcja oczekuje jednego argumentu, dlatego wywołanie jej bez argumentów spowoduje błąd: In [39]: repeat_lyrics() TypeError Traceback (most recent ca ll last) <ipython-input-39-cd0a4288b2d7> in <module>() ----> 1 repeat_lyrics() TypeError: repeat_lyrics() missing 1 required positional argument: 'n' Natomiast wywołanie funkcji z odpowiednim argumentem zadziała w oczekiwany sposób: In [40]: repeat_lyrics(3) Jak człowiek wierzy w siebie, to cała reszta to betka, nie ma takiej rury na świecie, której nie można odetkać **** Jak człowiek wierzy w siebie, to cała reszta to betka, nie ma takiej rury na świecie, której nie można odetkać **** Jak człowiek wierzy w siebie, to cała reszta to betka, nie ma takiej rury na świecie, której nie można odetkać **** Dzięki własnościom Pythona proste funkcje potrafią być bardzo uniwersalne. Rozważmy np. funkcję, która dodaje do siebie dwa argumenty: In [41]: def dodaj(x,y): a = x + y return a Funkcja ta zadziała dla liczb całkowitych, rzeczywistych, zespolonych, łańcuchów znaków i list:

12 In [42]: print(dodaj(2,7)) #całkowite print(dodaj(3.14,7.2)) #rzeczywiste print(dodaj(1+1j,2+3j)) #zespolone print(dodaj('burczy','mucha')) #napisy print(dodaj([1,2],[3,4])) #listy (3+4j) burczymucha [1, 2, 3, 4] Oczywiście, wszystkiego ze sobą nie doda: In [43]: print(dodaj('abc',1)) TypeError Traceback (most recent ca ll last) <ipython-input bce1fea> in <module>() ----> 1 print(dodaj('abc',1)) <ipython-input a25a78b> in dodaj(x, y) 1 def dodaj(x,y): ----> 2 a = x + y 3 return a TypeError: Can't convert 'int' object to str implicitly Nazwy funkcji i zmienne Powyżej widzieliśmy już, że funkcjom zdefiniowanym w Pythonie odpowiadają obiekty określonego typu. Obiekty te możemy przypisywać innym zmiennym: In [44]: fun = dodaj print(fun) <function dodaj at 0x7ffbd835dd08> In [45]: fun(1,2) Out[45]: 3 Argumenty i parametry Wewnątrz funkcji, argumenty jej wywołania są przypisane do zmiennych nazywanych parametrami. Parametry są zmiennymi lokalnymi, tzn. istnieją tylko wewnątrz bloku definiowanego przez funkcję:

13 In [46]: def concat(text1,text2): txt = text1 + text2 print(txt) In [47]: concat("nad naszą wsią ","przeleciał meteoryt.") Nad naszą wsią przeleciał meteoryt. Po zakończeniu działania funkcji wszystkie zmienne, które zostały zdefiniowane w jej ciele, zostają zniszczone. Dlatego próba odwołania do nich generuje błąd: In [48]: print(txt) NameError Traceback (most recent ca ll last) <ipython-input-48-54ac9f963c34> in <module>() ----> 1 print(txt) NameError: name 'txt' is not defined Przez referencję czy przez wartość? W dokumentacji Pythona możemy przeczytać ( ( functions)), że przekazywanie argumentów odbywa się zawsze przez wartość, przy czym ta wartość jest zawsze referencją do obiektu, a nie wartością tego obiektu. W praktyce oznacza to, że w przypadku niezmiennych typów danych funkcje w Pythonie działają tak, jakby ich argumenty przekazywane były przez wartość, natomiast w przypadku typów zmiennych na ogół jak przez referencję. Jako pierwszy przykład rozważymy funkcję, która zwiększa wartość argumentu o 1: In [49]: def add_1(number): number = number + 1 print("wartość wewnątrz funkcji: ", number) return number In [50]: number = 10 print("wartość przed wykonaniem funkcji: ", number) add_1(number) print("wartość po wykonaniu funkcji: ", number) Wartość przed wykonaniem funkcji: 10 Wartość wewnątrz funkcji: 11 Wartość po wykonaniu funkcji: 10

14 Wynik ten zrozumiemy, jeżeli przypomnimy sobie, jak działa Python wiersz number = number + 1 nie zmienia wartości obiektu, do którego odnosi się zmienna number, a tworzy nowy obiekt o wartości number + 1i następnie przypisuje mu etykietę number. Ponieważ wewnątrz funkcji ta zmienna ma charakter lokalny, wskazuje ona na inny obiekt, niż zmienna o tej samej nazwie zdefiniowana poza ciałem funkcji. Sytuacja będzie wyglądać trochę inaczej dla funkcji, której argumentem jest lista: In [51]: def changeme(mylist): mylist.append([1,2,3,4]) print("wartość wewnątrz funkcji: ", mylist) In [52]: lista = [10,20,30] print ("Wartość przed wykonaniem funkcji: ", lista) changeme(lista) print ("Wartość po wykonaniu funkcji: ", lista) Wartość przed wykonaniem funkcji: [10, 20, 30] Wartość wewnątrz funkcji: [10, 20, 30, [1, 2, 3, 4]] Wartość po wykonaniu funkcji: [10, 20, 30, [1, 2, 3, 4]] W tym wypadku oryginał również uległ zmianie, tzn. wynik jest taki, jak w przypadku przekazywania wartości przez referencję w przypadku tradycyjnych języków programowania. Jednak również w przypadku list (ogólniej zmiennych typów danych) możliwe jest zdefiniowanie funkcji, która zachowuje się tak, jakby argument przekazywany był przez wartość: In [53]: def changeme2(mylist): mylist = mylist[:] mylist.append([1,2,3,4]) print("wartość wewnątrz funkcji: ", mylist) In [54]: lista = [10,20,30] print("wartość przed wykonaniem funkcji: ", lista) changeme2(lista) print("wartość po wykonaniu funkcji: ", lista) Wartość przed wykonaniem funkcji: [10, 20, 30] Wartość wewnątrz funkcji: [10, 20, 30, [1, 2, 3, 4]] Wartość po wykonaniu funkcji: [10, 20, 30] Różnica w porównaniu z poprzednim przykładem jest taka, że teraz wewnątrz funkcji stworzyliśmy nowy obiekt w pamięci, a następnie przypisaliśmy mu lokalną nazwę mylist. Po zakończeniu funkcji nazwa ta przestała istnieć, i Python wrócił do nazwy globalnej mylist, która wskazuje na inny obiekt w pamięci.

15 Domyślne wartości argumentów Python wspiera kilka mechanizmów pozwalających na wywoływanie funkcji ze zmienną liczbą argumentów. Jednym z nich jest możliwość określenia wartości jednego lub większej liczby argumentów na liście argumentów formalnych: In [55]: def wypisz(wiadomosc, powtorz=1): print(wiadomosc*powtorz) In [56]: wypisz('zbliża się') Zbliża się In [57]: wypisz('sesja ',3) Sesja Sesja Sesja Wartość domyślna ustalana jest w momencie definiowania funkcji: In [58]: i = 5 def f(arg=i): print(arg) i = 6 f() 5 Uwaga! Wartość domyślna jest ustalana tylko raz. Ma to pewne konsekwencje w sytuacji, w której argumentem domyślnym jest obiekt, który może być zmieniany. Dla przykładu, następująca funkcja zapamiętuje argumenty jej wywołań: In [59]: def f(a, L=[]): L.append(a) return L In [60]: print(f(1)) print(f(2)) print(f(3)) [1] [1, 2] [1, 2, 3] Jeżeli jest to działanie niepożądane, musimy zmodyfikować nieco definicję funkcji:

16 In [61]: def f(a,l=none): if L is None: L = [] L.append(a) return L In [62]: print(f(1)) print(f(2)) print(f(3)) [1] [2] [3] Argumenty kluczowe Inna możliwość to użycie argumentów kluczowych w formie klucz=wartość: In [63]: def papuga(napiecie, stan='racja', akcja='voom', typ='norwegian Blue'): print("-- Ta papuga nie zrobiłaby", akcja, ',') print("jeśli przyłożysz do niej", napiecie, "woltów.") print("-- Śliczne upierzenie, ten", typ) print("-- Tak,", stan, "!") Taką funkcję możemy wywołać na kilka sposobów: In [64]: papuga(1000) -- Ta papuga nie zrobiłaby voom, jeśli przyłożysz do niej 1000 woltów. -- Śliczne upierzenie, ten Norwegian Blue -- Tak, racja! In [65]: papuga(akcja = 'VOOOOOM', napiecie = ) -- Ta papuga nie zrobiłaby VOOOOOM, jeśli przyłożysz do niej woltów. -- Śliczne upierzenie, ten Norwegian Blue -- Tak, racja! In [66]: papuga('tysiąc', stan = 'już wącha kwiatki od spodu') -- Ta papuga nie zrobiłaby voom, jeśli przyłożysz do niej tysiąc woltów. -- Śliczne upierzenie, ten Norwegian Blue -- Tak, już wącha kwiatki od spodu!

17 Jednak nie wszystkie wywołania będą prawidłowe: In [67]: papuga() #brakuje wymaganego argumentu niekluczowego (napiecie) TypeError Traceback (most recent ca ll last) <ipython-input ee02938> in <module>() ----> 1 papuga() #brakuje wymaganego argumentu niekluczowego (napie cie) TypeError: papuga() missing 1 required positional argument: 'napiec ie' In [68]: papuga(napiecie=5.0,'trup') #niekluczowy argument za kluczowym File "<ipython-input-68-5bc21b90ed2e>", line 1 papuga(napiecie=5.0,'trup') #niekluczowy argument za kluczowym ^ SyntaxError: non-keyword arg after keyword arg In [69]: papuga(110,napiecie=220) #zduplikowana wartość parametru TypeError Traceback (most recent ca ll last) <ipython-input-69-b77f6d85e7e8> in <module>() ----> 1 papuga(110,napiecie=220) #zduplikowana wartość parametru TypeError: papuga() got multiple values for argument 'napiecie' In [70]: papuga(aktor="john Cleese") #nieznany klucz TypeError Traceback (most recent ca ll last) <ipython-input-70-80b90f873433> in <module>() ----> 1 papuga(aktor="john Cleese") #nieznany klucz TypeError: papuga() got an unexpected keyword argument 'aktor' W ogólności lista parametrów wywołania musi mieć jakiś argument pozycyjny, po którym następuje jakikolwiek argument kluczowy, gdzie klucze wybrane są z listy parametrów formalnych (w definicji funkcji). Nie jest ważne, czy parametr formalny ma wartość domyślną, czy też nie. Żaden z argumentów nie może otrzymać wartości więcej niż jeden raz nazwy parametrów formalnych odpowiadające argumentom pozycyjnym w wywołaniu nie mogą być w nim użyte jako kluczowe:

18 In [71]: def fun(a): pass In [72]: fun(0,a=0) TypeError Traceback (most recent ca ll last) <ipython-input-72-8b4daa4ef384> in <module>() ----> 1 fun(0,a=0) TypeError: fun() got multiple values for argument 'a' Lista dowolnych argumentów Gdy na liście parametrów pojawi się argument *nazwa, w momencie wywołania stanie się on krotką zawierającą wszystkie argumenty pozycyjne (niekluczowe) wymienione w wywołaniu funkcji za parametrami formalnymi: In [73]: def calkowite_wydatki(*wydatki): return sum(wydatki) In [74]: calkowite_wydatki(1,2,3,4) Out[74]: 10 In [75]: calkowite_wydatki(1,2,3,4,5,6,7,8,9,10) Out[75]: 55 Jeszcze jeden przykład: In [76]: def sklep_z_serami(rodzaj, *argumenty): print("-- Czy macie", rodzaj, '?') print("-- Przykro mi,", rodzaj, "właśnie się skończył.") for arg in argumenty: print(arg)

19 In [77]: sklep_z_serami('limburger', "Jest bardzo dojrzały, proszę pana.", "Jest naprawdę bardzo, BARDZO dojrzały, proszę pana.") -- Czy macie Limburger? -- Przykro mi, Limburger właśnie się skończył. Jest bardzo dojrzały, proszę pana. Jest naprawdę bardzo, BARDZO dojrzały, proszę pana. Podobnie, jeśli na liście parametrów formalnych pojawi się **nazwa, to przy wywołaniu funkcji przypisywany jest mu słownik zawierający wszystkie klucze, które nie odpowiadają nazwom parametrów formalnych: In [78]: def slownik(**wpisy): return wpisy In [79]: tel = slownik(yoda=1111, Chewie=2222, Darth=6666) print(tel) {'Darth': 6666, 'Chewie': 2222, 'Yoda': 1111} I jeszcze jeden przykład: In [80]: def sklep_z_serami(rodzaj, *argumenty, **klucze): print("-- Czy macie", rodzaj, '?') print("-- Przykro mi,", rodzaj, "właśnie się skończył.") for arg in argumenty: print(arg) print('-'*40) for kl in klucze.keys(): print(kl, ':', klucze[kl]) In [81]: sklep_z_serami('limburger', "Jest bardzo dojrzały, proszę pana.", "Jest naprawdę bardzo, BARDZO dojrzały, proszę pana.", klient='john Cleese', wlasciciel='michael Palin', skecz='skecz ze sklepem z serami') -- Czy macie Limburger? -- Przykro mi, Limburger właśnie się skończył. Jest bardzo dojrzały, proszę pana. Jest naprawdę bardzo, BARDZO dojrzały, proszę pana skecz : Skecz ze sklepem z serami wlasciciel : Michael Palin klient : John Cleese

20 Formy lambda Formy lambda to zapożyczenie z języków funkcjonalnych. To małe, anonimowe (nienazwane) funkcje, które mogą zostać użyte we wszystkich miejscach, w których wymagane są obiekty funkcji. Składniowo ograniczone są do pojedynczego wyrażenia: In [82]: def dodawacz(n): return lambda x:x+n In [83]: f = dodawacz(42) In [84]: print(f(0)) print(f(10)) In [85]: g = dodawacz(3.14) In [86]: print(g(1)) print(g(10)) Inny przykład: In [87]: pary = [(1,'jeden'),(2,'dwa'),(3,'trzy'),(4,'cztery')] In [88]: pary.sort(key=lambda para: para[1]) In [89]: print(pary) [(4, 'cztery'), (2, 'dwa'), (1, 'jeden'), (3, 'trzy')] Jeszcze inny przykład:

21 In [90]: def sq(x): return x**2 liczby = [1,2,3,4,5,6,7,8] list(map(sq,liczby)) Out[90]: [1, 4, 9, 16, 25, 36, 49, 64] In [91]: liczby = [1,2,3,4,5,6,7,8] list(map(lambda x: x**2,liczby)) Out[91]: [1, 4, 9, 16, 25, 36, 49, 64]

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

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

Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36

Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36 Wstęp do Pythona Janusz Szwabiński szwabin@ift.uni.wroc.pl Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36 Wstęp do Pythona Zasoby w sieci Python jako zaawansowany kalkulator Pierwszy

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 1. 4 października 2013 Plan wykładu 1 2 3 4 Typy proste Kolekcje Instrukcje w języku (przypomnienie) Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/

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

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

C++ Przeładowanie operatorów i wzorce w klasach

C++ Przeładowanie operatorów i wzorce w klasach C++ i wzorce w klasach Andrzej Przybyszewski numer albumu: 89810 14 listopada 2009 Ogólnie Przeładowanie (przeciążanie) operatorów polega na nadaniu im nowych funkcji. Przeładowanie operatora dokonuje

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

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

Spis treści. Dekoratory. 1 Dekoratory 1.1 Zadanie Zadanie Zadanie Zadanie 4

Spis treści. Dekoratory. 1 Dekoratory 1.1 Zadanie Zadanie Zadanie Zadanie 4 Spis treści 1 Dekoratory 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 Dekoratory Dekoratory w Pythonie służą do zastępowania zdefiniowanych przez nas funkcji przez funkcje (lub inne obiekty)

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

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

rozdział 4: ZMIENNE I INSTRUKCJE

rozdział 4: ZMIENNE I INSTRUKCJE rozdział 4: ZMIENNE I INSTRUKCJE ostatnia modyfikacja: 04.12.18 definicja: zmienna to nazwany kontener służący do przechowywania danych na razie skupimy się na zmiennych przechowujących dane liczbowe i

Bardziej szczegółowo

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne

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

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 JEZYK PROGRAMOWANIA PYTHON: FUNKCJE, SŁOWNIKI E. Dyguda-Kazimierowicz 1 Definiowanie i korzystanie z funkcji Funkcje pozwalają na wyodrębnienie często powtarzanych działań, dzięki czemu struktura kodu

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nazwa implementacji: Nauka języka Python wyrażenia warunkowe Autor: Piotr Fiorek Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nasz kalkulator umie już liczyć, ale potrafi przeprowadzać

Bardziej szczegółowo

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1 Funkcje czyli jak programować proceduralne. Programowanie Proceduralne 1 Struktura programu w C # include / Dyrektywy p r e p r o c e s o r a / #define PI 3.1415 float g =. 5 ; / Zmienne

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

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

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

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

Język Python. Język Python 1/35

Język Python. Język Python 1/35 Język Python Język Python 1/35 Język Python 2/35 Wstęp Uruchamianie interpretera python Skrypty wykonywalne #!/usr/bin/python #!/usr/bin/env python lub #!/usr/bin/python3 #!/usr/bin/env python3 chmod +x

Bardziej szczegółowo

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury, , Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer

Bardziej szczegółowo

Podstawy programowania w Pythonie

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

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Funkcje Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. V Jesień 2013 1 / 32 Funkcje Funkcje w matematyce f : D W D dziedzina W zbiór wartości Funkcja może

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

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1 Rachunek Prawdopodobieństwa i Statystyka lab 3. Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) 1. Funkcje: - Funkcje nie powinny korzystać ze zmiennych globalnych. - Funkcje powinny być możliwie krótkie.

Bardziej szczegółowo

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania). Funkcje w Pythonie Funkcje to części programu wielokrotnego użytku. Pozwalają nam nadad nazwę blokowi wyrażeo, a następnie uruchamiad ten blok używając tej nazwy gdziekolwiek w programie, dowolną ilośd

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Obiekty i klasy w Pythonie Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. III Jesień 2013 1 / 23 Klasy i obiekty Klasy w implementacji

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy

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

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1 Funkcje czyli jak programować proceduralne. Programowanie Proceduralne 1 Struktura programu w C # include # define PI 3. 1415 float g =. 5 ; float kwadrat ( float x ) { return x x ; } int

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Informatyka I: Instrukcja 4.2

Informatyka I: Instrukcja 4.2 Informatyka I: Instrukcja 4.2 1 Wskaźniki i referencje - bezboleśnie Nauczyliśmy się do tej pory, że funkcje w języku C mogą zwracać wartość. Co jednak, gdybyśmy chcieli napisać funkcję, która rozwiąże

Bardziej szczegółowo

Podstawowe wyrażenia matematyczne

Podstawowe wyrażenia matematyczne Lech Sławik Podstawy Maximy 3 Wyrażenia matematyczne.wxmx 1 / 7 Podstawowe wyrażenia matematyczne 1 Nazwy Nazwy (zmiennych, stałych, funkcji itp.) w Maximie mogą zawierać małe i duże litery alfabetu łacińskiego,

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 2. 13 października 2017 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Deklaracja klasy Klasy i obiekty Przykłady class Figura: Pierwsza

Bardziej szczegółowo

Dekoratora używa się wstawiając linijkę zaczynającą się przed definicją dekorowanego obiektu (klasy czy funkcji).

Dekoratora używa się wstawiając linijkę zaczynającą się przed definicją dekorowanego obiektu (klasy czy funkcji). Dekoratory są w miarę ezoteryczną cechą Pythona w przeciwieństwie do funkcji, klas czy iteratorów nie są powszechną cechą języków programowania. Niemniej, warto je omówić mimo wszystko, gdyż są niezwykle

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Programowanie funkcyjne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XIV Jesień 2013 1 / 25 Paradygmaty programowania Programowanie imperatywne Program

Bardziej szczegółowo

Języki skryptowe Python

Języki skryptowe Python Języki skryptowe Python Wykład 3 Zmienne, wyrażenia, instrukcje Janusz Szwabiński Plan wykładu: Wartości i ich typy Zmienne Instrukcje warunkowe Łańcuchy znaków Pętle Wartości i ich typy Wartości (liczby

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

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

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

Python wstęp do programowania dla użytkowników WCSS

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Metaprogramowanie (w Pythonie) Paweł Daniluk Wydział Fizyki Jesień 2016 P. Daniluk(Wydział Fizyki) PO w. XI Jesień 2016 1 / 32 Wstęp ideologiczny Języki programowania

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Tablice, funkcje - wprowadzenie

Tablice, funkcje - wprowadzenie Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Środowisko programisty

Środowisko programisty Środowisko programisty 1/34 Środowisko programisty Język Python cz. 1 dr inż. Grzegorz Michalski 24 marca 2014 Środowisko programisty 2/34 Wstęp Uruchamianie interpretera python Wykonywalne skrypty #!/usr/bin/python

Bardziej szczegółowo

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35 Programowanie w C++ Wykład 3 Katarzyna Grzelak 12 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35 Zakres ważności obiektów K.Grzelak (Wykład 1) Programowanie w C++ 2 / 35 Zakres ważności obiektów

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

Wstęp do programowania

Wstęp do programowania wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Funkcje w języku C Zasięg zmiennych Przekazywanie

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

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

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

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

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

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

Typy danych, cd. Łańcuchy znaków

Typy danych, cd. Łańcuchy znaków Typy danych, cd. Łańcuchy znaków Typ danych string, jest rozumiany jako łańcuch znaków - liter, cyfr i symboli. Stringi definiuje się w podwójnych lub pojedyńczych cudzysłowach. typ_ kawy = " latte " typ_herbaty

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

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

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

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Program 6 Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Funkcja pobierz_osobe wczytuje dane osoby podanej jako argument. Funkcja wypisz_osobe

Bardziej szczegółowo

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan Podstawy programowania: Python Wprowadzenie Jolanta Bachan Informacje do kontaktu email: jolabachan@gmail.com strona internetowa: http://bachan.speechlabs.pl/ dyżury w sali 312aB środa, 9:30-10:00 czwartek,

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 3 Podstawy programowania w T-SQL Zmienne i operatory Instrukcje sterujące Komunikaty Format daty

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

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

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski Wprowadzenie do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski M A T L A B : Computation Visualization Programming easy to use environment MATLAB = matrix laboratory podstawowa jednostka

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

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

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

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

Kurs języka Python. Wykład 11. Marcin Młotkowski. 4 stycznia Kontrola poprawności podczas biegu programu. 2 Testowanie oprogramowania

Kurs języka Python. Wykład 11. Marcin Młotkowski. 4 stycznia Kontrola poprawności podczas biegu programu. 2 Testowanie oprogramowania Wykład 11. 4 stycznia 2010 1 Kontrola poprawności podczas biegu programu 2 3 4 Asercje Asercja to formuła logiczna; Asercji używa się do kontrolowania czy np. wartość zmiennej ma odpowiedni typ lub mieści

Bardziej szczegółowo

Definicje wyższego poziomu

Definicje wyższego poziomu Definicje wyższego poziomu Interpreter Scheme-a nie będzie narzekad w przypadku wystąpienia niezdefionowanej zmiennej w ciele wyrażenia lambda dopóki nie będzie zastosowana Przykład braku informacji o

Bardziej szczegółowo

Wstęp do Informatyki dla bioinformatyków

Wstęp do Informatyki dla bioinformatyków Wstęp do Informatyki dla bioinformatyków Wykład 12 - Programowanie w BASHu Trochę bardziej zaawansowane Bartek Wilczyński 25.1.2016 Organizacyjne Bardzo proszę o wypełnienie ankiet w USOS Szczególnie zależy

Bardziej szczegółowo

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe

Bardziej szczegółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 3 Marcin Młotkowski 22 października 2018 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie w Ruby 70 / 432 Z poprzedniego wykładu String to ciąg bajtów zwykle reprezentujących

Bardziej szczegółowo

Python wstęp. Michał Bereta www.michalbereta.pl

Python wstęp. Michał Bereta www.michalbereta.pl Python wstęp Michał Bereta www.michalbereta.pl Wprowadzenie... 1 Źródła wiedzy... 1 Uruchomienie interpretera Pythona... 2 Python jako kalkulator użycie interaktyne... 2 Uruchamianie skryptów z plików...

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

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 4 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 24 października 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

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

Programowanie strukturalne i obiektowe. Funkcje

Programowanie strukturalne i obiektowe. Funkcje Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy

Bardziej szczegółowo

Elementy języka Scheme

Elementy języka Scheme Elementy języka Scheme Historia języka Lisp Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje

Bardziej szczegółowo

Języki i metody programowania

Języki i metody programowania Języki i metody programowania Wykład 4 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Podstawy języka Python

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

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

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo