Spis treści. Wprowadzenie

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

Download "Spis treści. Wprowadzenie"

Transkrypt

1 Spis treści 1 Wprowadzenie 1.1 Przykład 2 Parametry funkcji 2.1 Przykład 3 Zmienne lokalne 3.1 Przykład 3.2 Dostęp do zmiennych globalnych Przykład 4 Domyślne wartości argumentów 4.1 Przykład 5 Zaawansowane sposoby przekazywania argumentów 5.1 Argumenty nazwane Przykład 5.2 Zmienna liczba parametrów Przykład W jaki sposób argumenty zostają przyporządkowane? 5.3 Zmienna liczba argumentów nazwanych Przykład 6 Polecenie return 6.1 Przykład 6.2 Przykład 7 Opisy wbudowane w funkcje 7.1 Przykład 7.2 Używanie DocString 7.3 Co powinna zawierać dokumentacja funkcji 8 Ćwiczenia Wprowadzenie Funkcje to fragmenty programu, które można używać wielokrotnie. Możemy nadać nazwę jakiejś grupie instrukcji i uruchamiać ją używając tej nazwy w dowolnym miejscu programu tyle razy ile chcemy. Operację taką nazywamy wywołaniem funkcji. Tak naprawdę używaliśmy już wielu wbudowanych funkcji takich jak len czy range. Funkcje są prawdopodobnie najważniejszym składnikiem budującym każdy program (w dowolnym języku programowania), musimy więc poznać je dokładniej. Funkcje definiujemy w programie używając słowa kluczowego def. Po tym słowie następuje nazwa funkcji oraz para nawiasów, które mogą zawierać nazwy zmiennych (parametrów funkcji), a linia kończy się dwukropkiem. Parametry służą do przekazywania funkcji różnych wartości tzw. wejściowych i uzyskiwania zależnych od nich wyników. Potem następuje blok linii programu, które tworzą funkcję. Poniżej jest przedstawiony przykład definicji i wywołania funkcji.

2 Przykład #!/usr/bin/python # -*- coding: utf-8 -*- # Nazwa pliku: function1.py # początek definicji funkcji def przywitajsie(): print 'Sie ma!' # instrukcje tworzące funkcję # koniec definicji funkcji przywitajsie() # wywołanie (użycie) funkcji przywitajsie() # ponowne wywołanie funkcji Rezultat: Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic,

3 Sie ma! Sie ma! Jak to działa? Definiujemy funkcję o nazwie przywitajsie w sposób opisany powyżej. Ponieważ funkcja ta nie używa żadnych parametrów, nie ma więc żadnych zmiennych wewnątrz nawiasów. Zauważ, że możemy wywołać tę samą funkcję dwukrotnie co oznacza, że nie musimy dwa razy pisać tego fragmentu programu. Parametry funkcji Jak wiemy, funkcja może mieć parametry wywołania. Są to wartości, które dostarczamy funkcji, i których możemy użyć wewnątrz funkcji. Parametry zachowują się tak samo jak zmienne z tą różnicą, że ich wartości są nadawane w momencie wywołania funkcji. Parametry wpisuje się w nawiasach podczas definiowania funkcji oddzielając je przecinkami. Kiedy wywołujemy funkcję, ich wartości podajemy w taki sam sposób. Uwaga: nazwy, które podaliśmy podczas definiowania funkcji nazywamy parametrami, ale wartości podane przy wywołaniu funkcji nazywamy argumentami. Przykład #!/usr/bin/python # -*- coding: utf-8 -*- # Nazwa pliku: func_param.py def printmax(a, b): if a > b: print a, 'jest większe' elif a == b: print a, 'jest równe', b else: print b, 'jest większe' printmax(3, 4) # bezpośrednio podane wartości x = 5 y = 7 printmax(x, y) # zmienne podane jako argumenty Rezultat:

4 Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, 4 jest większe 7 jest większe Jak to działa? Definiujemy tutaj funkcję o nazwie printmax, która używa dwóch parametrów o nazwach a i b. Funkcja ma znaleźć większą z liczb używając instrukcji if..else a następnie wypisać, która liczba jest większa. Podczas pierwszego użycia funkcji printmax podaliśmy bezpośrednio liczby jako argumenty. Przy drugim wywołaniu jako argumentów użyliśmy zmiennych. Instrukcja printmax(x,y) przypisuje wartość pierwszego argumentu (zmiennej x) do parametru a oraz wartość drugiego argumentu (zmiennej y) do parametru b. Samo wyznaczenie większej liczby i jej wypisanie odbywa się wewnątrz funkcji tak samo za każdym razem.

5 Zmienne lokalne Jeśli wewnątrz funkcji zadeklarujemy zmienne, nie mają one żadnego związku ze zmiennymi poza funkcją, nawet jeśli mają takie same nazwy. Mówimy, że nazwy zmiennych wewnątrz funkcji są lokalne dla tej funkcji. Obszar, w którym możemy danej zmiennej używać nazywamy zasięgiem zmiennej. Każda zmienna zdefiniowana w funkcji ma zasięg poczynając od miejsca, w którym po raz pierwszy przypiszemy jej wartość, aż do końca funkcji. Przykład #!/usr/bin/python # -*- coding: utf-8 -*- # Nazwa pliku: func_local.py x = 50 def func(x): print 'x wynosi', x x = 2 print 'Zmieniono lokalne x na', x func(x) print 'x ciągle wynosi', x Rezultat: Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni:

6 mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, x wynosi 50 Zmieniono lokalne x na 2 x ciągle wynosi 50 Jak to działa? Kiedy po raz pierwszy wypisujemy wartość zmiennej x, w pierwszej linii funkcji func, użyta zostaje wartość parametru zadeklarowanego w bloku głównym, powyżej definicji funkcji. Następnie przypisujemy zmiennej x wartość 2. Nazwa x jest lokalna dla funkcji, tak więc gdy zmieniamy wartość x wewnątrz funkcji, zmienna x zdefiniowana w bloku głównym pozostaje niezmieniona. W momencie ostatniego wywołania polecenia print wypisujemy wartość zmiennej x zdefiniowanej w bloku głównym potwierdzając, że nie została ona zmieniona przez przypisanie nowej wartości lokalnej zmiennej x wewnątrz poprzednio wywołanej funkcji. Dostęp do zmiennych globalnych Wewnątrz funkcji, odczytywać zmienne zdefiniowane na wyższym poziomie można bez problemu. Jeśli natomiast chcemy przypisywać wartość do takiej zmiennej, zdefiniowanej poza zakresem danej funkcji, to trzeba tą zmienną określić jako globalną. Służy do tego deklaracja global. Bez użycia tej deklaracji nie jest możliwe przypisanie wartości zmiennej zdefiniowanej na zewnątrz funkcji jedyny efekt takiego przypisania to utworzenie lokalnej zmiennej o tej nazwie, która zasłania zmienną globalną. Należy powiedzieć precyzyjnie, co tutaj znaczy słowo globalna. W Pythonie zmienną globalną nazywa się zmienną zdefiniowaną bezpośrednio w jakimś module, a nie wewnątrz funkcji czy klasy w tym module. Takie znaczenie jest zupełnie inne niż np. w C, gdzie zmienna globalna o danej nazwie w całym programie może być tylko jedna.

7 Przykład #!/usr/bin/python # -*- coding: utf-8 -*- # Nazwa pliku: func_global.py x = 50 def func(): global x print 'x wynosi', x x = 2 print 'Zmieniono zewnętrzny x na', x func() print 'x wynosi teraz', x Rezultat: Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas,

8 spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, x wynosi 50 Zmieniono zewnętrzny x na 2 x wynosi teraz 2 Jak to działa? Deklaracja global została użyta do poinformowania, że chodzi nam o globalną, zewnętrzną zmienną x. Jeśli teraz przypisujemy wartość zmiennej x wewnątrz funkcji, zmieniamy wartość x z głównego bloku. Można określić więcej niż jedną zmienną globalną w tej samej deklaracji global, na przykład: global x, y, z. Wyskakując na moment do rozdziału o modułach, należy wspomnieć, że do do zmiennych zdefiniowanych gdzie indziej można się odwoływać podając nazwę modułu który je zawiera. Na przykład zmienna argv zdefiniowana w module sys jest z poza tego modułu dostępna jako sys.argv. Dlatego atrybut global służy do dostępu do zmiennych zdefiniowanych na poziomie modułu, ale tylko z wewnątrz tego modułu. Domyślne wartości argumentów W przypadku pewnych funkcji nie zawsze chcemy podawać argumenty odpowiadające wszystkim parametrom określonych w definicji funkcji. Parametry mogą być opcjonalne. Nie musimy wtedy ich podawać w wyłaniu funkcji, i jeśli tego nie zrobimy zostaną użyte wartości domyślne. Wartości domyślne definiujemy dopisując w definicji funkcji po nazwie parametru znak = i wartość domyślną. Przykład #!/usr/bin/python # -*- coding: utf-8 -*- # Nazwa pliku: func_default.py def napisz(wiadomosc, razy=1): print wiadomosc * razy napisz('dzień') napisz('dobry', 5)

9 Rezultat: Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, Dzień dobrydobrydobrydobrydobry Jak to działa? Funkcja o nazwie napisz ma za zadanie wypisać tekst tyle razy ile podano. Jeśli nie podamy ile razy, wtedy domyślnie tekst wypisywany jest jeden raz. Osiągamy to podając wartość domyślną argumentu dla parametru razy równą 1. Podczas pierwszego wywołania napisz podajemy tylko tekst i wypisywany jest on jeden raz. Przy drugim wywołaniu napisz podajemy zarówno tekst jak i argument 5 mówiący, że chcemy napisać tekst 5 razy.

10 Uwaga tylko parametry z końca listy parametrów mogą mieć wartości domyślne. Nie można mieć parametru z wartością domyślną przed parametrem bez wartości domyślnej w kolejności deklaracji na liście parametrów funkcji. Dzieje się tak dlatego, że wartości są przypisywane parametrom zgodnie z ich pozycją na liście. Na przykład deklaracja def func(a, b=5) jest prawidłowa, ale deklaracja def func(a=5, b) nie jest, bo wówczas w wywołaniu func(11) nie byłoby jasne, czy podany argument tyczy się a czy b. Zaawansowane sposoby przekazywania argumentów Argumenty nazwane Jeśli chcemy skorzystać z funkcji o dużej liczbie parametrów, wygodne może być jawne użycie nazw parametrów. Działa to tak, że w wywołaniu funkcji podajemy zarówno nazwę parametru, jak i, tak jak poprzednio, właściwy argument. Podanie wartości danego parametru poprzez taki nazwany argument (po angielsku argumenty takie nazywa się keyword arguments), powoduje, że jego wartość w wywołaniu funkcji jest ustalona i zostaje on wyłączony z normalnego przypisywania argumentów do parametrów według kolejności. Rozpoznawanie argumentów po nazwie, a nie kolejności, ma dwie zalety: użycie funkcji jest prostsze, bo nie musimy się martwić o kolejność argumentów możemy podać wartości tylko tych argumentów, których chcemy (pod warunkiem, że parametry które pomieliśmy mają określone wartości domyślne). Przykład #!/usr/bin/python # -*- coding: utf-8 -*- # Nazwa pliku: func_key.py def func(a, b=5, c=10): print 'a wynosi', a, 'oraz b wynosi', b, 'oraz c wynosi', c func(3, 7) func(25, c=24) func(c=50, a=100) Rezultat: Niepoprawny język.

11 Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, a wynosi 3 oraz b wynosi 7 oraz c wynosi 10 a wynosi 25 oraz b wynosi 5 oraz c wynosi 24 a wynosi 100 oraz b wynosi 5 oraz c wynosi 50 Jak to działa? Funkcja o nazwie func ma jeden parametr bez wartości domyślnej, oraz dwa parametry posiadające wartości domyślne. Przy pierwszym użyciu, func(3, 7), parametr a dostaje wartość 3, parametr b dostaje wartość 7, a parametr c dostaje wartość domyślną 10. Przy drugim użyciu, func(25, c=24), zmienna a dostaje wartość 25 ze względu na pozycję na liście argumentów. Parametr c dostaje wartość 24 ze względu na użycie jego nazwy. Zmienna b dostaje wartość domyślną 5. Przy trzecim użyciu, func(c=50, a=100), używamy wyłącznie nazw jako argumentów do podania wartości. Zauważ, że podajemy wartość parametru c przed parametrem a, mimo że a

12 jest podany przed c w definicji funkcji. Użycie argumentu nazwanego nazwą która nie odpowiada żadnemu parametrowi jest błędem. Zmienna liczba parametrów Czasami wygodnie byłoby zdefiniować funkcję, która przyjmowałaby dowolną liczbę parametrów, tak jak polecenie print. Można to uzyskać dodając na końcu listy parametrów zmienną, do której zostanie wpisana lista nadmiarowych argumentów. Ten specjalny parametr jest oznaczony przez gwiazdkę przed jego nazwą. Przykład Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, >>> def powypisuj(rozdzielacz, pierwsze, *reszta)... """Wypisuje podane słowa używając pierwszego argumentu

13 ... jako rozdzielacza."""... print pierwsze... for slowo in reszta:... print rozdzielacz, slowo, >>> powypisuj('-x-', 'ala', 'ma', 'kota') ala-x-ma-x-kota >>> powypisuj('-x-', 'ala') ala >>> powypisuj('-x-') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: powypisuj() takes at least 2 arguments (1 given) W jaki sposób argumenty zostają przyporządkowane? Argumenty nazwane nie mogą występować tylko na końcu listy argumentów, lub patrząc od drugiej strony, argumenty nienazwane muszą znajdować się na początku. Podane argumenty są przyporządkowywane parametrom w ten sposób, że najpierw argumenty bez zadanej nazwy parametru zostają przydzielone do odpowiednich parametrów w kolejności, a potem argumenty nazwane zostają przydzielone do odpowiednich parametrów według nazwy. Tak więc, jeśli argumentów jest więcej niż parametrów bez gwiazki, to trafią one do zmiennej z gwiazdką. Błędem jest jeśli jakiemuś parametrowi zostaną przyporządkowane dwa argumenty &mdash na przykład jeden zwykły, a drugi nazwany. Zmienna liczba argumentów nazwanych Istnieje jeszcze jeden sposób przekazywania zmiennej liczby parametrów, w formie słownika. Ponieważ słowniki będą omówione dopiero w rozdziale o strukturach danych, to reszta tego podrozdziału może być niezrozumiała. Jeśli tak, to nie przejmuj się i najpierw poczytaj o słownikach. Funkcja może mieć jeszcze jeden specjalny parametr poprzedzony dwoma gwiazkami, zwyczajowo nazywający się **kwargs. W wywołaniu takiej funkcji można użyć argumentów nazwanych, których nazwy nie odpowiadają żadnym parametrom funkcji. Te argumenty zostają wstawione do słownika, który zostaje przekazany jako parametr kwargs do funkcji. W tym słowniku, nazwy argumentów są kluczami, a ich wartości wartościami przypisanymi do tych kluczy. Przykład Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source>

14 Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, >>> def f(*args, **kwargs):... print 'args =', args... print 'kwargs =', kwargs... >>> f(1, 2, 3, a=4, b=5, c=6) args = (1, 2, 3) kwargs = {'a': 4, 'b': 5, 'c': 6} Polecenie return Dotychczas rozważane funkcje wykonywały pewne polecenia ale nie oczekiwaliśmy od nich aby zwracały jakieś wartości (tzn. nie potrzebowaliśmy aby wartości wyliczone albo obiekty wytworzone w funkcji były dostępne w miejscu, z którego wywołaliśmy funkcję). Polecenie return jest używane do powrotu z funkcji czyli natychmiastowego przerwania jej wykonania i zwrócenia wartości.

15 Przykład #!/usr/bin/python # -*- coding: utf-8 -*- # Nazwa pliku: func_return.py def maksimum(x, y): if x > y: return x else: return y print maksimum(2, 3) Rezultat: Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic,

16 3 Jak to działa? Funkcja maksimum zwraca większy ze swoich parametrów, czyli liczb przekazanych do funkcji. Do znalezienia większej z liczb użyta jest instrukcja if..else, po znalezieniu ta wartość jest zwracana. Uwaga instrukcja return bez podanej wartości jest równoważna instrukcji return None. None jest obiektem języka Python reprezentującym brak wartości. Jest on używany na przykład do zaznaczenia, że jakaś zmienna nie ma wartości. Każda funkcja domyślnie zawiera instrukcję return None na końcu. Można to zaobserwować wywołując print jakasfunkcja(), gdzie funkcja jakasfunkcja nie używa instrukcji return, na przykład: Przykład Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas,

17 spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, >>> def jakasfunkcja():... pass... >>> print jakasfunkcja() None Instrukcja pass jest w języku Python używana do oznaczenia pustego bloku instrukcji. Uwaga: Istnieje wbudowana funkcja max, która wyszukuje większą z liczb. Jeśli tylko to możliwe należy używać funkcji wbudowanych, a nie pisać własne. Opisy wbudowane w funkcje W Pythonie istnieje wygodna możliwość uzupełniania programu o objaśnienia dokumentację. W ogólności programista może umieszczać swoje uwagi jako komentarze (wykorzystując znak #), które są po prostu ignorowane w trakcie wykonywania programu, lub jako napisy wstawione na początku definicji funkcji (wykorzystując znaki normalnie używane do ograniczania napisów, czyli ' i "). Ta druga forma ma tę przewagę, że mimo iż w trakcie normalnego wykonywania programu jest pomijana podobnie jak zwykłe komentarze, to te napisy zostają także zachowane od specjalnej zmiennej i można je obejrzeć. W trybie interaktywnej pracy z Pythonem służy do tego funkcja help. Linie tekstu z dokumentacją nazywają się po angielsku documentation strings, co skraca się do docstrings. Przez docstring rozumie się tylko taki napis umiejscowiony na początku funkcji (lub klasy czy modułu, mechanizm jest ten sam) stanowiący dokumentację. Przykład #!/usr/bin/python # -*- coding: utf-8 -*- # Nazwa pliku: func_doc.py def printmax(x, y): '''Konwertuje obydwa obiekty na int i wypisuje większą z dwóch liczb. Niepowodzenie konwersji powoduje rzucenie wyjątku ValueError. ''' x = int(x) # konwersja do liczby całkowitej (integer), jeśli możliwa y = int(y)

18 if x > y: print x, 'jest większa' else: print y, 'jest większa' printmax(3, 5) print(printmax. doc ) Rezultat: Niepoprawny język. Musisz wybrać język w następujący sposób: <source lang="html4strict">...</source> Języki obsługiwane w podświetlaniu składni: mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, octave, oobas, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, 5 jest większa Konwertuje obydwa obiekty na int i wypisuje większą z dwóch liczb.

19 Niepowodzenie konwersji powoduje rzucenie wyjątku ValueError. Używanie DocString Napis w pierwszym logicznym wierszu funkcji staje się docstring-iem dla tej funkcji. Dodajmy, że DocStrings również stosują się do modułów i klas, o których będzie mowa później. Konwencją stosowaną dla dokumentacji jest napis w kilku wierszach. Pierwszy wiersz zaczyna się wielką literą i kończy kropką. Następny wiersz jest pusty, a w trzecim wierszu rozpoczynamy dokładniejsze objaśnienia. Jest bardzo wskazane, aby stosować się do tej konwencji opisując napisane przez siebie funkcje. Możemy odczytać dosctring jakiejś funkcji (na przyklad printmax) używając jej atrybutu (czyli nazwy należącej do funkcji) doc (zauważ użycie po dwóch znaków podkreślenia). Atrybuty są częścią obiektów, którymi są też funkcje. O obiektach będzie mowa w następnych rozdziałach. Używając pomocy help() w Pythonie robimy użytek z docstringow. Funkcja help() pobiera z funkcji jej atrybut doc i wypisuje go. Możesz to wypróbować na powyższej funkcji napisz w swoim programie help(printmax). Pamiętaj, żeby nacisnąć klawisz q, żeby zakończyć pomoc help. Automatyczne narzędzia programistyczne pobierają dokumentację z twoich programów właśnie w taki sposób. Dlatego dobrze jest używać docstrings do każdej napisanej funkcji. Komenda pydoc, dostępna w dystrybucji języka Python działa podobnie do funkcji help() używając docstrings. Co powinna zawierać dokumentacja funkcji Nawet krótka dokumentacja funkcji może być bardzo pomocna. Co powinno się w niej znaleźć? 1. Jednolinijkowy opis działania wykonywanego przez funkcję: Mnoży wektorowo argumenty i zwraca ślad wyniku. 2. Nie ma potrzeby pisać, czym jest opisywany obiekt (w tym przypadku funkcją), ani duplikować listy parametrów, bo użytkownik i tak to wie z opisu wygenerowanego automatycznie: To jest funkcja która ma parametry a, b, c. 3. Dobrze jest napisać co funkcja zwraca, jeśli coś zwraca. 4. Jeśli funkcja ma być wykorzystywana przez innych jako funkcja biblioteczna, to opis musi być znacznie dłuższy powinien zawierać głębsze wyjaśnienie tego co funkcja robi, jeśli to jest istotne jakie ma ograniczenia i warunki działania. 5. W przypadku funcji złożonych obliczeniowo, dobrze jest napisać jak czas wykonywania funkcji rośnie wraz ze wzrostem rozmiaru argumentów wejściowych. 6. Dobrze jest podać przykład użycia funkcji i oczekiwanego wyniku. Zob. Docstrings to ważne narzędzie, którego warto używać, bo dzięki dokumentacji program jest łatwiejszy do zrozumienia.

20 Ćwiczenia Proszę napisać następujące funkcje: 1. Która wypisuje sumę dwóch argumentów. 2. Która zwraca sumę dwóch argumentów. 3. Wypisującą wynik dzielenia zmiennoprzecinkowego dla dwóch dowolnych argumentów będących liczbami. 4. Obliczającą i zwracającą pierwiastek zadanego stopnia w liście parametrów podajemy liczbę podpierwiastkową i stopień pierwiastka, domyślnie niech wynosi on dwa. 5. Wypisującą równanie prostej przechodzącej przez współrzędne dwóch zadanych punktów. 6. Wypisującą jedno lub dwa rozwiązania równania kwadratowego, lub informującą, że nie ma rozwiązań rzeczywistych. Parametrami funkcji niech będą,, współczynniki równania kwadratowego. 7. Zwracającą silnię argumentu. Zadanie proszę rozwiązać na dwa sposoby raz z użyciem pętli, a drugi raz rekurencyjnie. 8. Wypisującą żądaną liczbę wyrazów ciągu Fibbonacciego. (,, ) 9. Służącą do obliczania -tego elementu ciągu arytmetycznego o zadanym wyrazie początkowym i różnicy. Funkcja powinna dawać możliwość wypisywania wyników pośrednich (elementów ciągu od pierwszego do przedostatniego obliczonego). 10. Służącą do obliczania -tego elementu ciągu geometrycznego o zadanym wyrazie początkowym i ilorazie. Funkcja powinna dawać możliwość wypisywania wyników pośrednich (elementów ciągu od pierwszego do przedostatniego obliczonego). 11. Służącą do obliczania -tej sumy częściowej ciągu arytmetycznego o zadanym wyrazie początkowym i różnicy. Funkcja powinna dawać możliwość wypisywania wyników pośrednich (kolejno obliczanych elementów ciągu i sum). 12. Służącą do obliczania -tej sumy częściowej ciągu geometrycznego o zadanym wyrazie początkowym i ilorazie. Funkcja powinna dawać możliwość wypisywania wyników pośrednich (kolejno obliczanych elementów ciągu i sum). 13. Służącą do obliczania -tej sumy częściowej ciągu, gdzie i są parametrami. Funkcja powinna dawać możliwość wypisywania wyników pośrednich (kolejno obliczanych elementów ciągu i sum). 14. Funkcję obliczającą długość wektora jedno-, dwu- lub trójwymiarowego. 15. Funkcję, która zwróci napis będący reprezentacją podanej liczby całkowitej. Tę konwersję na napis wykonaj cyfra po cyfrze.

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

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

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

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

1 Powtórzenie wiadomości

1 Powtórzenie wiadomości 1 Powtórzenie wiadomości Zadanie 1 Napisać program, który w trybie dialogu z użytkownikiem przyjmie liczbę całkowitą, a następnie wyświetli informację czy jest to liczba parzysta czy nieparzysta oraz czy

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

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegół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

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

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

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

Bardziej szczegółowo

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

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Liczby w jaki sposób komputery je widzą? Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Czy wiesz, jak komputery wykonują

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

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

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008 PętlaforwOctave Roman Putanowicz kwietnia 008 Zakresyioperator : Zakresy(ang. ranges) są wygodnym sposobem definiowania wektorów reprezentujących ciągi arytmetyczne, czyli ciągi w których różnica pomiędzy

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

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

1. Wypisywanie danych

1. Wypisywanie danych 1. Wypisywanie danych Przykłady 1.1. Napisz program, który wypisze na ekran słowa Hello, world!. 1 // Przyklad 1: Hello, world! 3 using namespace std; 5 int main() { 6 cout

Bardziej szczegółowo

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

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

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

IX. Wskaźniki.(3 godz.)

IX. Wskaźniki.(3 godz.) Opracowała: dr inż. Anna Dubowicka Uczelniane Centrum Komputerowe PK IX. Wskaźniki.(3 godz.) Wskaźnik jest zmienną, która zawiera adres innej. 1. Definiowanie wskaźników. typ * nazwa ; gdzie: znak * informuje

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

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. 1. Identyfikator funkcji,

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

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

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

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

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

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegół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

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana. 8. Wektory Przykłady 8.1. Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana. Uwaga! Kod poniżej. To zadanie można rozwiązać przy użyciu wiedzy

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służ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

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

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

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

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

Warunki logiczne instrukcja if

Warunki logiczne instrukcja if Warunki logiczne instrukcja if Prowadzący: Łukasz Dunaj, strona kółka: atinea.pl/kolko 1. Wejdź na stronę kółka, uruchom edytor i wpisz: use console; def test::main() { var y; y = 1; while (y

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

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

Programowanie - wykład 4

Programowanie - wykład 4 Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include

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

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć. Zadanie 1. Utworzyć klasę reprezentującą liczby wymierne. Obiekty klasy powinny przechowywać licznik i mianownik rozłożone na czynniki pierwsze. Klasa powinna mieć zdefiniowane operatory czterech podstawowych

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

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

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

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

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

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst. Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:

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

Ćwiczenie 3. Python 3: Python 3: Funkcje, moduły i operacje na plikach

Ćwiczenie 3. Python 3: Python 3: Funkcje, moduły i operacje na plikach Wizualizacja danych Ćwiczenie 3 Python 3: Python 3: Funkcje, moduły i operacje na plikach Python Comprehension Jest to mechanizm służący do generowania kolekcji (lista, słownik, zbiór) na podstawie jednowierszowej

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy: Kurs C++ częśd II Podstawowa obsługa konsoli + zmienne. Autor: Dawid Chróścielski. Wprowadzanie i wyprowadzanie danych z/do konsoli. Jak wyprowadzad dane dowiedzieliśmy się już wcześniej (metoda cout z

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

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

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie. Funkcje Deklaracja funkcji typ funkcji identyfikator_funkcji(lista parametrów formalnych); Typ funkcji określa typ wartości zwracanej przez funkcję (typ zdefiniowany pierwotnie jak int, typ zdefiniowany

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 2

Programowanie komputerowe. Zajęcia 2 Programowanie komputerowe Zajęcia 2 Funkcje Funkcje są podstawowym składnikiem programów w C++. Każda funkcja jest fragmentem programu, który można używać wielokrotnie i niezależnie od pozostałych funkcji.

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

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

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

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka

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 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

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

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

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

Bardziej szczegółowo

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 2. Zmienne i stałe Przykłady 2.1. Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 5 int a = 281; int b = 117; 7 8 cout

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

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

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Modelowanie rynków finansowych z wykorzystaniem pakietu R Modelowanie rynków finansowych z wykorzystaniem pakietu R Wprowadzenie do pakietu R Mateusz Topolewski woland@mat.umk.pl Wydział Matematyki i Informatyki UMK Plan działania 1 Co i dlaczego...? 2 Przechowywanie

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini

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

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

Przeciążanie operatorów

Przeciążanie operatorów Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

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

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Python. Skąd taka nazwa? Kurs systemu UNIX 1 Python Skąd taka nazwa? Kurs systemu UNIX 1 Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Laboratorium kryptograficzne dla licealistów 2

Laboratorium kryptograficzne dla licealistów 2 Laboratorium kryptograficzne dla licealistów 2 Projekt Matematyka dla ciekawych świata Łukasz Mazurek 30.03.2017 1 Szyfr Cezara Uwaga We wszystkich zadaniach dotyczących szyfrowania (o ile nie powiedziano

Bardziej szczegółowo

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

Bardziej szczegółowo

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda. Nazwa implementacji: Nauka języka C wyrażenia warunkowe if- Autor: Piotr Fiorek Opis implementacji: Poznanie struktury oraz zastosowania wyrażeń warunkowych if- w języku C. W programie realizującym jakiś

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 1 Środowisko programowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania Przemysław Kobylański Polecenie 1 Zaloguj się do systemu Linux i uruchom okno terminala. Polecenie 2 Utwórz za pomocą

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

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

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

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()

Bardziej szczegółowo

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Podstawy programowania Laboratorium Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Instrukcja warunkowa if Format instrukcji warunkowej Przykład 1. if (warunek) instrukcja albo zestaw

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

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