PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY

Podobne dokumenty
PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Warsztaty dla nauczycieli

Podstawy bioinformatyki 2017/18

Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:

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

Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

if (wyrażenie ) instrukcja

Programowanie w języku Python. Grażyna Koba

Część 4 życie programu

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

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytmy i struktury danych

Proste programy w C++ zadania

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Warunki logiczne instrukcja if

Programowanie - instrukcje sterujące

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

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

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

lekcja 8a Gry komputerowe MasterMind

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Pytania dla języka Python

Podstawy Programowania C++

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

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Funkcje. Wprowadzenie. Mirosław Ochodek

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

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Listy, krotki, słowniki, funkcje

Wstęp do programowania

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

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

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

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

Podstawy Programowania Algorytmy i programowanie

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

LibreOffice Calc VBA

4. Funkcje. Przykłady

do instrukcja while (wyrażenie);

Wstęp do Informatyki

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Ćwiczenia z przetwarzania tablic 2D

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

Tablice. Jones Stygar na tropie zmiennych

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

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Laboratorium nr 1. i 2.

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

1. Napisz program wypisujący w kolejnych wierszach standardowego wyjścia pojedyncze słowa następującego napisu Bardzo dlugi napis. 2.

Jarosław Wróblewski Matematyka Elementarna, zima 2014/15

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

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

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

*W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do 6.0)

Analiza algorytmów zadania podstawowe

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

Języki i metody programowania

Wstęp do programowania

Kurs rozszerzony języka Python

Wstęp do informatyki- wykład 6

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

Rekurencja (rekursja)

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

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

Programowanie w języku Java

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Cw.12 JAVAScript w dokumentach HTML

Wstęp do Programowania Lista 1

3. Instrukcje warunkowe

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Zadeklarowanie tablicy przypomina analogiczną operację dla zwykłych (skalarnych) zmiennych. Może zatem wyglądać na przykład tak:

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

Zaawansowane algorytmy i struktury danych

Algorytmy przeszukiwania wzorca

Spis treści JĘZYK C - PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI, REKURENCJA. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Podstawy programowania w Pythonie

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Matura próbna 2014 z matematyki-poziom podstawowy

Podstawy Informatyki. Wykład 6. Struktury danych

Wstęp do programowania

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Programowanie zespołowe

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

1 Wprowadzenie do algorytmiki

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Wstęp do programowania

Podstawy programowania C. dr. Krystyna Łapin

Programowanie dynamiczne

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

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

Zadanie 1. Suma silni (11 pkt)

Transkrypt:

Informatyka w Edukacji, XV UMK Toruń, 2018 PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY Grażyna Szabłowicz-Zawadzka http://metodycy.torun.pl/ m.informatyka@metodycy.torun.pl 1. Lista typ sekwencyjny zmienny Do realizacji algorytmów tablicowych w języku Python można zastosować listę. Lista to typ sekwencyjny zmienny, a więc możliwe jest przypisywanie wartości pojedynczym elementom tego typu. Listy mogą zawierać wartości różnego typu. POLECENIE lista = [1, 2.0, trzy, 4, 5.0] lista[0] lista[-1] lista[-2] Tabela 1 Typ sekwencyjny lista OPIS POLECENIA przypisanie wartości zmiennej lista odwołanie do pierwszego elementu listy (1), odwołanie do ostatniego elementu listy (5.0), odwołanie do przedostatniego elementu listy (4) lista[2:] od elementu lista[2], wynik: ['trzy', 4, 5.0] lista[1::2] lista[0:4:2] lista *= 2 co drugi element od elementu lista[1], wynik: [2.0, 4] od lista[0]do elementu lista[3] co drugi, wynik: [1.0, 'trzy'] wynik: [1, 2.0, 'trzy', 4, 5.0, 1, 2.0, 'trzy', 4, 5.0] lista = lista[:2] skracanie listy, wynik: [1, 2.0] len(lista) długość listy (liczba elementów), wynik: 5.0 lista[1] = 6 lista[0] += 5 przypisanie elementowi lista[1] wartości 6, instrukcja przypisania (elementom listy można przypisywać wartości), wynik: [1, 6, 'trzy', 4, 5.0] element lista[0] zwiększony o 5, wynik: [6, 2.0, 'trzy', 4, 5.0]

272 Programowanie w Pythone tablice a listy del lista[2] usunięcie elementu lista[2] z listy, wynik: [1, 2.0, 4, 5.0] ==!= < > relacje na listach (listy można porównywać) 1 in lista 2 not in lista lista[i], lista[k] = lista[k], lista[i] sprawdzanie, czy w liście są określone wartości zamiana elementów listy Tabela 2 Indeksowanie list INDEKSOWANIE LIST lista = [7, 8, 9, 2, 5, 6, 1, 10, 3, 4] lista [7, 8, 9, 2, 5, 6, 1, 10, 3, 4] lista[2:] [9, 2, 5, 6, 1, 10, 3, 4] lista[3::2] [2, 6, 10, 4] lista[::-1] [4, 3, 10, 1, 6, 5, 2, 9, 8, 7] lista[::-2] [4, 10, 6, 2, 8] lista[::3] [7, 2, 1, 4] lista[:4:-2] [4, 10, 6] lista[:4:2] [7, 9] lista[0:5:2] [7, 9, 5] lista[3:9:2] [2, 6, 10] Tabela 3 Metody na listach METODY NA LISTACH lista = [7, 8, 9, 2, 5, 6, 1, 10, 3, 4] lista.append(11) lista.extend([13, 14]) lista.count(6) lista.index(1) dołączanie elementu do listy, wynik: [7, 8, 9, 2, 5, 6, 1, 10, 3, 4, 11] dołączanie listy [13, 14] do listy [7, 8, 9, 2, 5, 6, 1, 10, 3, 4], wynik: [7, 8, 9, 2, 5, 6, 1, 10, 3, 4, 13, 14] obliczanie, ile razy podana wartość 6 występuje w liście, wynik: 1 wyznaczanie pozycji (licząc od 0) pierwszego wystąpienia podanej wartości 1, wynik: 6

Programowanie w Pythone tablice a listy 273 lista.insert(4, 0) lista.pop(3) lista.remove(8) lista.reverse() lista.sort() wstawianie liczby 0 do listy na pozycję 4, wynik: [7, 8, 9, 2, 0, 5, 6, 1, 10, 3, 4] zwracanie wartości z podanej pozycji 3 i usunięcie tego element z listy, wynik: 2, [7, 8, 9, 5, 6, 1, 10, 3, 4] usunięcie z listy pierwszej znalezionej wartości 8, wynik: [7, 9, 2, 5, 6, 1, 10, 3, 4] odwracanie kolejności elementów listy, wynik: [4, 3, 10, 1, 6, 5, 2, 9, 8, 7] niemalejące porządkowanie listy, wynik: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 2. Lista przykłady do analizy Przykład 1. Proste działania na liście jednowymiarowej Przeanalizuj kody programów wykonujących następujące operacje: a) obliczenie sumy wszystkich elementów listy, b) obliczenie iloczynu tych elementów listy, które są mniejsze od 8, c) obliczenie liczby tych elementów listy, których numer jest podzielny przez 3, d) zwiększenie o 2 wartości tych elementów listy, które mają nieparzysty numer zawarty w przedziale [1, 7] i wypisanie tej listy. Porównaj zaproponowane rozwiązania dla punktów a i b. Rozwiązanie 1 s = 0 s += T[i] s = 1 if T[i] < 8: s *= T[i]

274 Programowanie w Pythone tablice a listy def zad_c(t): s = 0 if i % 3 == 0: s += 1 def zad_d(t): for i in range(1, 8, 2): T[i] += 2 return T print("zad_a = ", zad_a([7, 9, 4, 2, 1, 3, 4, 5, 5])) print("zad_b = ", zad_b([7, 9, 4, 2, 1, 3, 4, 5, 5])) print("zad_c = ", zad_c([7, 9, 4, 2, 1, 3, 4, 5, 5])) print("zad_d = ", zad_d([7, 9, 4, 2, 1, 3, 4, 5, 5])) zad_a = 40 zad_b = 16800 zad_c = 3 zad_d = [7, 11, 4, 4, 1, 5, 4, 7, 5] Rozwiązanie 2 s = 0 for k in T: s += k s = 1 for k in T: if k < 8: s *= k print("zad_a = ", zad_a([7, 9, 4, 2, 1, 3, 4, 5, 5])) print("zad_b = ", zad_b([7, 9, 4, 2, 1, 3, 4, 5, 5])) zad_a = 40 zad_b = 16800

Programowanie w Pythone tablice a listy 275 Przykład 2. Funkcje logiczne sprawdzanie własności elementów listy jednowymiarowej Przeanalizuj kody programów, które realizują następujące polecenia: a) sprawdzenie, czy na liście znajduje się element o wartości różnej od 5, b) sprawdzenie, czy na liście wszystkie elementy mają wartość mniejszą od 10, c) sprawdzenie, czy na liście jest element o wartości podanej przez użytkownika. Porównaj zaproponowane rozwiązania. Rozwiązanie 1 if T[i]!= 5: if T[i] >= 10: def zad_c(t, k): if T[i] == k: print("zad_a = ", zad_a([5, 7, 9, 4, 3, 4, 5, 2, 1])) print("zad_b = ", zad_b([5, 7, 9, 4, 3, 4, 5, 2, 1])) print("zad_c = ", zad_c([5, 7, 9, 4, 3, 4, 5, 2, 1], 6)) zad_a = True zad_b = True zad_c = False Rozwiązanie 2

276 Programowanie w Pythone tablice a listy for k in T: if k!= 5: for k in T: if k >= 10: def zad_c(t, k): if k in T: print("zad_a = ", zad_a([5, 7, 9, 4, 3, 4, 5, 2, 1])) print("zad_b = ", zad_b([5, 7, 9, 4, 3, 4, 5, 2, 1])) print("zad_c = ", zad_c([5, 7, 9, 4, 3, 4, 5, 2, 1], 6)) zad_a = True zad_b = True zad_c = False Przykład 3. Listy dwuwymiarowe Przeanalizuj kod programu wykonującego następujące operacje na liście dwuwymiarowej: a) wypisywanie elementów listy z podziałem na wiersze, b) obliczenie sumy tych elementów listy, które są podzielne przez 5, c) zmniejszenie o 4 tych elementów listy, które nie znajdują się na głównej przekątnej i wypisanie tej listy. Porównaj zaproponowane rozwiązania dla punktów a i b. Rozwiązanie 1 def zad_a(t, m, n): for i in range(m): print(t[i]) def zad_b(t, m, n): s = 0 for i in range(m): for j in range(n):

Programowanie w Pythone tablice a listy 277 if T[i][j] % 5 == 0: s += T[i][j] def zad_c(t, m, n): for i in range(m): for j in range(n): if i!= j: T[i][j] -= 4 print(t[i]) zad_a([[2, 3, 4, 5], [8, 9, 4, 5], [7, 6, 4, 5]], 3, 4) print("suma = ", zad_b([[2, 3, 4, 5], [8, 9, 4, 5], [7, 6, 4, 5]], 3, 4)) zad_c([[2, 3, 4, 5], [8, 9, 4, 5], [7, 6, 4, 5]], 3, 4) [2, 3, 4, 5] [8, 9, 4, 5] [7, 6, 4, 5] suma = 15 [2, -1, 0, 1] [4, 9, 0, 1] [3, 2, 4, 1] Rozwiązanie 2 for P in T: print(p) s=0 for P in T: for k in P: if k % 5 == 0: s += k zad_a([[2, 3, 4, 5], [8, 9, 4, 5], [7, 6, 4, 5]]) print("suma = ", zad_b([[2, 3, 4, 5], [8, 9, 4, 5], [7, 6, 4, 5]])) [2, 3, 4, 5] [8, 9, 4, 5] [7, 6, 4, 5] suma = 15

278 3. Zadania do wykonania Zadanie 1. Programowanie w Pythone tablice a listy Napisz program wykonujący następujące operacje na liście jednowymiarowej: a) wypisanie wszystkich elementów listy, b) obliczenie liczby tych elementów listy, których numer nie jest podzielny przez 4, c) zmniejszenie o 3 tych elementów listy, które mają nieparzysty numer zawarty w przedziale [3, 7] i wypisanie tej listy, d) sprawdzenie, czy na liście znajduje się element o wartości nieujemnej, e) obliczenie iloczynu tych elementów listy, których wartość jest różna od 6, f) sprawdzenie, czy na liście znajduje się element, którego wartość nie zawiera się w przedziale [4, 8]. Zadanie 2. Napisz program realizujący następujące operacje na liście dwuwymiarowej: a) wypisywanie elementów listy z podziałem na wiersze, b) zamiana dwóch wierszy listy: numer 0 i numer 2, c) zamiana dwóch kolumn listy wskazanych przez użytkownika. Zadanie 3. Napisz program realizujący następujące operacje na liście dwuwymiarowej: a) wypisywanie elementów listy z podziałem na wiersze, b) obliczenie sumy tych elementów listy, których wartość jest większa od 4, c) obliczenie liczby tych elementów listy, których wartość jest różna od 0, d) sprawdzenie, czy na liście znajduje się element, którego wartość jest mniejsza od 5. Literatura 1. Dawson M., Python dla każdego. Podstawy programowania, Helion, Gliwice 2013. 2. Lutz M., Python. Wprowadzenie, Helion, Gliwice 2011. 3. Sysło M.M., Algorytmy, Helion, Gliwice 2016. 4. Szabłowicz-Zawadzka G., Informatyka. Podręcznik dla szkół ponadgimnazjalnych. Informatyka Europejczyka, część I, Wydanie III, Helion, Gliwice 2017. 5. Szabłowicz-Zawadzka G., Python programowanie na maturze, Helion, Gliwice 2018.