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



Podobne dokumenty
PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Wstęp do programowania

Projektowanie algorytmów rekurencyjnych

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

Programowanie funkcyjne. Wykªad 13

Programowanie funkcyjne w Pythonie

Podstawy programowania w Pythonie

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Języki i metody programowania

Wstęp do programowania

Programowanie w Ruby

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Python i programowanie funkcyjne. Python i programowanie funkcyjne czyli nie tylko obiektowość rządzi. OSEC Funkcyjnie w języku Python 1 z 40

Listy, krotki, słowniki, funkcje

Wstęp do programowania

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Wstęp do programowania

Algorytmy i Struktury Danych. Anna Paszyńska

ALGORYTMY I STRUKTURY DANYCH

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

Analiza algorytmów zadania podstawowe

Przetwarzanie sygnaªów

Algorytmy i struktury danych

Informatyka A. Algorytmy

Wstęp do programowania

Podstawowe algorytmy i ich implementacje w C. Wykład 9

(kod ten służy wprowadzeniu definicji mediany, nie jest to optymalna ani nawet szczególnie dobra implementacja obliczania mediany w praktyce!

Wstęp do Informatyki

Zaawansowany kurs języka Python

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Podstawy. Jan Koprowski Politechnika Gdańska, FTiMS Informatyka Stosowana

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

Warsztaty dla nauczycieli

WHILE (wyrażenie) instrukcja;

Wstęp do informatyki Ćwiczenia. Piotr Fulmański

Przegląd języka Python. Łukasz Anwajler

PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

IV Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 1 kwietnia 2016

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

Algorytmy zwiazane z gramatykami bezkontekstowymi

Programowanie w Ruby

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

Programowanie obiektowe

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Wykresy i interfejsy użytkownika

LibreOffice Calc VBA

WHILE (wyrażenie) instrukcja;

Wstęp do programowania

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Przedmiotowy Konkurs Informatyczny LOGIA powołany przez Mazowieckiego Kuratora Oświaty

Podstawy programowania w Pythonie

Kurs rozszerzony języka Python

Metody Metody, parametry, zwracanie wartości

Podstawy programowania w Pythonie

Algorytmy i Struktury Danych.

Instrukcje sterujące

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

Interpolacja funkcjami sklejanymi

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Wątki i komunikacja między nimi w języku Python

Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Wstęp do programowania

Technologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python.

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

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

- wszystkie elementy - wszystkie elementy

Python. Wprowadzenie. Jolanta Bachan

Wstęp do programowania

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne

Algorytmy i Struktury Danych.

6. Pętle while. Przykłady

Analiza algorytmów zadania podstawowe

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

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

Składnia funkcji i Rekurencja w języku Haskell

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

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

Programowanie wspóªbie»ne

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ Arkusz I. Czas pracy: 60 minut Liczba punktów do uzyskania: 15

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Bash i algorytmy. Elwira Wachowicz. 20 lutego

5. Rekurencja. Przykłady

PYTHON NA LEKCJACH INFORMATYKI W SZKOLE PONADGIMNAZJALNEJ

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

rozdział 4: ZMIENNE I INSTRUKCJE

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Technologie Informacyjne Mechatronika 2012/2013 Algorytmy. Podstawy programowania

E S - uniwersum struktury stosu

Wykład 7 Abstrakcyjne typy danych słownik (lista symboli)

Programowanie robota mobilnego E-puck w języku Python

#!/bin/sh. if [ "$#"!= "1" ]; then echo "Skrypt uruchamiany z parametrem (sciezka do katalogu)" exit 1 fi

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

EPI: Interfejs Graficzny 2011/2012 Laboratorium nr 2 Programowanie obiektowe

Wstęp do informatyki

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

P 0max. P max. = P max = 0; 9 20 = 18 W. U 2 0max. U 0max = q P 0max = p 18 2 = 6 V. D = T = U 0 = D E ; = 6

Transkrypt:

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

Zadanie 1 Napisz 2 funkcje realizuj ce silni na 2 sposoby: rekurencyjnie oraz iteracyjnie. M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 2 / 13

Zadanie 1 - rozwi zanie Wersja rekurencyjna: def silnia(liczba): Oblicza silnie w sposob rekurencyjny. Zwraca False jezeli nie mozna jej obliczyc. if liczba < 0: # Liczba musi byc ostatnia! return False elif liczba == 0: # 0! = 1 return 1 else: # Tradycyjny wzor rekurencyjny # n! = n * (n-1)! return liczba * silnia(liczba-1) M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 3 / 13

Zadanie 1 - rozwi zanie Wersja iteracyjna: def silnia(liczba): Oblicza silnie w sposob iteracyjny. Zwraca False jezeli nie mozna jej obliczyc. if liczba < 0: # Liczba musi byc dodatnia! return False elif liczba == 0: # 0! = 1 return 1 else: # Tradycyjny wzor iteracyjny # n! = n * (n-1) * (n-2) *... return_ = 1 while liczba > 0: return_ *= liczba liczba -= 1 return return_ M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 4 / 13

Zadanie 1 - rozwi zanie Wersje alternatywne korzystaj c z bardziej zaawansowanego Pythona. Rekurencyjnie: silnia = lambda n: 1 if n < 1 else n * silnia(n-1) Iteracyjnie: silnia = lambda n: 1 if n < 1 else \ reduce(lambda x, y: x * y, range(1, n + 1)) M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 5 / 13

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

Zadanie 2 - rozwi zanie def has_index(collection, key): Sprawdza czy w danej kolekcji jest element o zadanym kluczu. try: _ = collection[key] except: # Lapiemy wszystko - moze byc KeyError # albo IndexError - w kazdym razie, # indeksu nie ma return False else: # Udalo sie dobrac do elementu - index jest return True M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 7 / 13

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

Zadanie 3 - rozwi zanie def suma_list(list_1, list_2): Zwraca sume dwoch list, gdzie elementy sa unikalne return_ = list_1 for item in list_2: if item not in list_1: # Element nie istnieje w list_1 return_ += [item] return return_ M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 9 / 13

Zadanie 3 - rozwi zanie Podobnie jak dla zadania 1, da si to zrobi nieco krócej za pomoc Python way: suma_list = lambda x,y: x + [i for i in y if i not in x] M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 10 / 13

Zadanie 4 Zaimplementuj algorytm sita Erastotenesa (wyszukiwanie liczb pierwszych z zadanego zakresu - patrz http://pl.wikipedia.org/wiki/sito_eratostenesa - w inny sposób ni» podany - bez usuwania elementów listy, a tworz c now ) M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 11 / 13

Zadanie 4 - rozwi zanie def sito(zakres): Algorytm sita Erastotenesa w najprostszej implementacji - wykreslanie przez zastapienie zerem. # Liczby do filtracji lista = range(2,zakres) # Wynik liczby_pierwsze = [] # Dla kazdego elementu w liscie for element in lista: if element > 0: # Jak zero - to wykreslony # Dopisz do listy elementow liczby_pierwsze = liczby_pierwsze + [element] for i in range(0,len(lista)): if lista[i] % element == 0: # Wielokrotnosc lista[i] = 0 # Kasujemy return liczby_pierwsze M. Alichniewicz (SKALP) Python vol. 1 - rozwi zania 2014 12 / 13

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