rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania...

34
Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski [email protected] A-1 p. 411B

Transcript of rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania...

Page 1: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Wstęp do programowaniaINP003203Lrok akademicki 2019/20

semestr zimowy

Laboratorium 1

Karol Tarnowski

[email protected]

A-1 p. 411B

Page 2: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• Wprowadzenie

– Dlaczego warto uczyć się programować?

– Sprzęt i oprogramowanie

– Jak komputer przechowuje dane?

– Jak działa procesor?

– Co to jest język wysokiego poziomu?

– Czym się różni interpreter od kompilatora?

– Co jest potrzebne do pisania programów

w języku python?

Na podstawie: T. Gaddis, Python dla zupełnie początkujących, Helion, 2019

Plan prezentacji (1)

Page 3: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• Interpreter pythona

– Tryb interaktywny

– Tryb skryptowy

• Proces programowania

Plan prezentacji (2)

Na podstawie: T. Gaddis, Python dla zupełnie początkujących, Helion, 2019

Page 4: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• Programowanie uczy analitycznego myślenia

• Programowanie rozwija kreatywność, pracy w grupie

• Programowanie to umiejętność, na którą rośnie

zapotrzebowanie

Dlaczego warto uczyć się

programowania?

Page 5: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• Sprzęt (hardware) to wszystkie urządzenia,

z których zbudowany jest komputer

• Oprogramowanie (software) steruje pracą

komputera

• Komputer jest elastycznym narzędziem,

dzięki oprogramowaniu

Sprzęt i oprogramowanie

Page 6: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• Sprzęt:

– procesor

– pamięć operacyjna

– nośniki danych

– urządzenia wejściowe

– urządzenia wyjściowe

Sprzęt i oprogramowanie

Page 7: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

W jaki sposób komputer

przechowuje dane?

• Pamięć komputera możemy wyobrażać sobie

jako zestaw przełączników, które mogą

przyjmować jeden z dwóch stanów (podobnie

jak przełącznik oświetlenia)

• Pojedynczy przełącznik nazywamy bitem

• Grupę ośmiu bitów nazywamy bajtem

OFF ON OFF OFF ON ON OFF ON

0 1 0 0 1 1 0 1

Page 8: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

W jaki sposób komputer

przechowuje dane?

• Ciąg zer i jedynek można interpretować jako

liczbę całkowitą zapisaną w systemie

dwójkowym

• Podobnie liczby można interpretować jako znaki

(litery, cyfry, znaki specjalne)

• Stosując bardziej zaawansowane kodowania

można w ten sposób zapisywać także liczby

rzeczywiste

Page 9: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Jak działa procesor?

• Procesor wykonuje bardzo proste operacje

(„działania na przełącznikach”), np. odczytaj

dane, dodaj dwie liczby, …

• Lista instrukcji procesora także jest zakodowana

w postaci liczb

• Program komputerowy to lista instrukcji

zapisanych w języku maszynowym

Page 10: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• Aby programowanie umożliwić programowanie

bez znajomości instrukcji procesora stworzono

języki wysokiego poziomu (języki

programowania)

• Wybrane języki programowania:

– Fortran

– Pascal

– C/C++

– Java

– Python

Co to jest język wysokiego

poziomu?

Page 11: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Czym się różni kompilator od

interpretera?

print('Hello')

print('world!')

...

10100001

10111000

...

10100001

10111000

...Procesor (CPU)

1.Kompilator tłumaczy program w języku wysokiego poziomu na

program w języku maszynowym

kompilator

2. Program w języku maszynowym jest wykonywany na procesorze

Page 12: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Czym się różni kompilator od

interpretera?

10100001

print('Hello')

print('world!')

...

Procesor

(CPU)

Interpreter tłumaczy instrukcję języka wysokiego poziomu na instrukcje

języka maszynowego, która jest wykonywana

Następnie przechodzi do kolejnej instrukcji w języku wysokiego poziomu

interpreter

Page 13: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• Interpreter języka python (www.python.org)

• Zintegrowane środowisko programistyczne

(Integrated DeveLopment Environment)

Co jest potrzebne do pisania

programów w języku python?

Page 14: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Co jest potrzebne do pisania

programów w języku python?

Page 15: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Co jest potrzebne do pisania

programów w języku python?

Page 16: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Co jest potrzebne do pisania

programów w języku python?

Page 17: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Co jest potrzebne do pisania

programów w języku python?

Page 18: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Co jest potrzebne do pisania

programów w języku python?

Page 19: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

• Interpreter Pythona może pracować w trybie

interaktywnym oraz skryptowym

• Interpreter działający w trybie interaktywnym

nazywany jest powłoką Pythona (python shell)

Page 20: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

• W trybie interaktywnym interpreter oczekuje na

polecenia pythona wpisywane z klawiatury

• Przykładowo

Page 21: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

• W trybie interaktywnym interpreter oczekuje na

polecenia pythona wpisywane z klawiatury

• Przykładowo

Page 22: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

Page 23: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

Page 24: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

• Zaletą trybu interaktywnego jest natchmiastowe

wyświetlenie informacji o błędzie, jeśli jakiś

popełnimy

Page 25: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

Page 26: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

• Tryb interaktywny jest użyteczny podczas

testowania kodu, ale wpisywane polecenia nie

będą zapisane jako program

• Kod programu przechowywany jest w pliku

tekstowym

• Prostym sposób pracy ze skryptami zapewnia

zintegrowane środowisko programistyczne

(Integrated Development Environment)

Page 27: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

Page 28: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

Page 29: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

Page 30: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

Page 31: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

Interpreter pythona

Page 32: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

1. Dokładne określenie planowanej

funkcjonalności programu

2. Napisanie kodu programu

3. Sprawdzenie, czy program nie zawiera

błędów składni, i ewentualnie ich

naprawienie

4. Uruchomienie programu i sprawdzenie,

czy działa prawidłowo (zgodnie z

oczekiwaniami), ewentualna poprawa

Proces programowania

Page 33: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• zainstaluj interpreter języka Python na swoim

komputerze

• uruchom interpreter w trybie interaktywnym

• wywołaj funkcję print w trybie

interaktywnym

Absolutne minimum (1)

Page 34: rok akademicki 2019/20 semestr zimowytarnowski/201920z/wdp_ftopt_w01.pdf · Wstęp do programowania INP003203L rok akademicki 2019/20 semestr zimowy Laboratorium 1 Karol Tarnowski

• w zintegrowanym środowisku

programistycznym przygotuj skrypt pythona,

który spowoduje wypisanie na ekran

wybranego cytatu (wiersza, piosenki…)

Absolutne minimum (2)