ZAJĘCIA NR 1. Zawartość

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

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

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

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych.

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Programowanie w języku Python. Grażyna Koba

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.

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Wyrażenia arytmetyczne

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

JAVAScript w dokumentach HTML (1)

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?

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

1. Wypisywanie danych

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

Powtórka algorytmów. Wprowadzenie do języka Java.

Warunek wielokrotnego wyboru switch... case

lekcja 8a Gry komputerowe MasterMind

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

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

Warunki logiczne instrukcja if

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

Podstawy i języki programowania

Powtórka algorytmów. Wprowadzenie do języka Java.

Złożoność informacyjna Kołmogorowa. Paweł Parys

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

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

2.8. Algorytmy, schematy, programy

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

EGZAMIN MATURALNY Z INFORMATYKI 13 MAJA 2019 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

Programy wykorzystywane do obliczeń

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

Algorytm. a programowanie -

Wstęp do programowania

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

[WYSYŁANIE MAILI Z PROGRAMU EXCEL]

1. Uruchom stronię poczta.foof.pl (pisane bez www). Powinien wyświetlić się następujący ekran

Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne

Laboratorium kryptograficzne dla licealistów 1

Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 2 Teoria liczby rzeczywiste cz.2

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Rekurencja (rekursja)

Algorytmy i struktury danych

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Akademia ETI Marcin Jurkiewicz

7. Pętle for. Przykłady

Laboratorium kryptograficzne dla gimnazjalistów 1

Wstęp do Programowania, laboratorium 02

JAVA?? to proste!! Autor: wojtekb111111

Informatyka II. Laboratorium Aplikacja okienkowa

6. Pętle while. Przykłady

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

Warsztaty dla nauczycieli

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Laboratorium kryptograficzne dla licealistów 3

Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań.

SCENARIUSZ ZAJĘĆ KOŁA NAUKOWEGO z MATEMATYKI. prowadzonego w ramach projektu Uczeń OnLine

Operatory logiczne. Podstawowe operatory logiczne, składanie wyrażeń z użyciem operatorów logicznych

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

Cw.12 JAVAScript w dokumentach HTML

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

ARKUSZ KALKULACYJNY komórka

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 90 minut

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

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

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

1 Podstawy c++ w pigułce.

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Metody numeryczne Laboratorium 2

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Podstawy Programowania

JAK UCZESTNICY KONKURSU ZAKWALIFIKOWANI DO II ETAPU MAJĄ UDZIELIĆ ODPOWIEDZI NA ZADANIA?

Podstawy programowania w Pythonie

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

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

Programowanie strukturalne i obiektowe. Funkcje

Podstawy JavaScript ćwiczenia

Informatyka I: Instrukcja 4.2

Języki programowania zasady ich tworzenia

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.

3. Instrukcje warunkowe

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Transkrypt:

ZAJĘCIA NR 1 Zawartość ZAJĘCIA 1... 2 # --- PODSTAWY podstaw (50 minut)... 2 Po co pisze się programy komputerowe... 2 Działania matematyczne... 3 Pierwsza komenda: print... 3 # --- Uzupełnienia podstaw... 4 Edytor tekstu... 4 Skrypt w pliku... 4 Komunikaty o błędach... 4 # --- ZMIENNE... 6 # --- TYPY I DZIAŁANIA... 8 Podstawowe typy... 8 Silne typowanie... 9 Priorytety działań... 11 # --- * Liczby losowe... 12 Autor: ŁUKASZ CZERWIŃSKI L.Czerwinski@students.mimuw.edu.pl CzerwinskiLukasz1@gmail.com 2012-09-26

ZAJĘCIA 1 # --- PODSTAWY PODSTAW (50 MINUT) jaki jest cel tworzenia programów komputerowych hasła, pierwsze logowanie, pierwsze uruchomienie konsoli Pythona, działania matematyczne wypisanie w konsoli stringa i liczby (komendą print) Ważne terminy: konsola, linia poleceń, skrypt, bash, interpreter Po co pisze się programy komputerowe Jaki jest cel pisania programów komputerowych? Sensem pisania programów jest ułatwianie sobie życia. Człowiek jest leniwy, więc lubi, gdy ktoś za niego wykona jakąś pracę. Tak jest właśnie z programami komputerowymi - pisze się program (w domyśle: krótki), który po uruchomieniu wykona pracę, która ręcznie człowiekowi zajęłaby znacznie dłużej albo umożliwi człowiekowi korzystanie z pewnych udogodnień tam, gdzie przedtem ich nie było. Przykłady: program komputerowy do obliczania toru pocisku i ustawiający odpowiednio działo w czołgu lub wyrzutnię w samolocie Kiedyś matematycy przez godzinę liczyli tor, uwzględniając masę pocisku, odległość od celu, ukształtowanie terenu, a także prędkość wiatru. Jeżeli przez tę godzinę wiatr się mocno zmienił, całe obliczenia szły do kosza! Teraz takie obliczenia zajmują komputerom sekundy. arkusz kalkulacyjny Podliczanie słupków 10 000 pozycji przy prowadzeniu firmy jest zajęciem czasochłonnym, a przy tym bardzo łatwo o pomyłkę. Arkusz Excel podlicza 10 000 liczb w mniej niż sekundę. projektowanie mostów W czasie projektowania mostów, budynków i innych konstrukcji inżynierowie muszą dokładnie policzyć, jakie siły działają na każdy element, żeby mieć pewność, że konstrukcja się nie zawali. Kiedyś liczyło się to tygodniami, sprawdzając po kilka razy każde obliczenie i mając nadzieję, że żaden błąd się nie prześlizgnął (stąd scena architekta stojącego pod mostem w trakcie próbnego przejazdu obciążonymi ciężarówkami była pełna napięcia i dramatyzmu). Obecnie programy komputerowe symulujące naprężenia elementów i siły fizyczne wykonują obliczenia w ciągu kilku dłuższych chwil. czytnik kodów kreskowych lub kodów QR w telefonie komórkowym Zalet chyba nie trzeba przedstawiać ręczne wpisywanie długiego adresu lub wklepywanie kodu kreskowego jest mocno niewygodne. str. 2

Działania matematyczne Działania: o dodawanie o odejmowanie o mnożenie o dzielenie (całkowite) o reszta z dzielenia o dzielenie niecałkowite (dla floatów) o potęgowanie 12+34 12-34 12*34 12/34 # dzielenie całkowite! 12.1/34 120%34 12**2 * Zadanie 1. Skoro 12/34 to dzielenie całkowite (z resztą), to jak zrobić dzielenie bez reszty? ** Zadanie 2. Jak zrobić pierwiastkowanie? ** Zadanie 3. Obliczyć NWD liczb 35 i 49, używając algorytmu Euklidesa i korzystając z działań w konsoli. *** Zadanie 3b. Obliczyć NWD liczb 35 i 49, używając szybkiego algorytmu Euklidesa korzystając z działań w konsoli. (http://www.oeiizk.waw.pl/~witek/eliwww/strona2.html) Pierwsza komenda: print print 1234 print 1234.56 # uwaga: kropka dziesiętna (przecinek rozdziela dwie wartości) print "ala ma kota" print "ala", "ma", "kota" # przecinek przyda się później str. 3

# --- UZUPEŁNIENIA PODSTAW Jak uruchomić gedit (kate lub inny) Skrypt w pliku nagłówek i uruchamianie skryptu z Shella Komunikaty o błędach jak wyglądają. Ważne terminy: program, skrypt, algorytm. Edytor tekstu W Linuksie jest wiele programów, które przypominają windowsowy Notatnik. Przykładami jest gedit i kate, ale jest też wiele innych, czasem z bardziej egzotycznym sposobem ich obsługi (vim, emacs). Skrypt w pliku Należy pisać nagłówek: #!/usr/bin/python Najlepiej jeszcze od razu dodać obsługę polskich znaków: # -*- coding: utf-8 -*- Można także napisać bez ozdobników, np. tak: # coding: utf-8 Jak uruchamiać: python <nazwapliku> Komunikaty o błędach Pamiętaj, że komunikaty są po angielsku podają nazwę pliku, numer linii i przyczynę (czasem błędnie, np. kolejną linię) Kilka przykładowych błędów błędy składni: pirnt "a" print 3 "a" dzielenie przez zero (zadanie poniżej) polskie litery bez linijki coding: utf-8 (zadanie poniżej) Praktyczna rada Warto parę razy przy różnych okazjach specjalnie popełnili jakiś błąd, żeby zobaczyć, jaki wyświetli się komunikat o błędzie. Dzięki temu później znacznie łatwiej szukać błędów, bazując na komunikatach o błędach bo wszystkie błędy już się kiedyś widziało. Temu właśnie służą poniższe zadania. str. 4

* Zadanie 1. Sprawdź, jaki komunikat o błędzie Python wyświetli, gdy wpiszesz w programie jakieś nieistniejące słowo. * Zadanie 2. Sprawdź, jak Python zareaguje na dzielenie przez zero. * Zadanie 3. Sprawdź, co się stanie, gdy wkleisz do pliku.py program z polskimi literami, a nie napiszesz: # -*- coding: utf-8 -*- ** Zadanie 4. Co się stanie, gdy wpiszesz nieprawidłowe znaki matematyczne, np.: 2++2, 2 2, 2+++2, 2- --2, 2//2, 2///2, 2***2 itp. Sprawdź czy miałeś/miałaś rację. *** Zadanie 5. Napisz dwa programy, które spowodują wyświetlenie jeszcze dwóch innych komunikatów o błędach. Przeczytaj komunikaty ze zrozumieniem. str. 5

# --- ZMIENNE http://docs.python.org/library/stdtypes.html Co to jest zmienna? Pojemnik na wartość Co może być wartością zmiennej? Liczba, napis, prawda/fałsz, a także typy złożone z innych, np. lista wartości (o których później) i in. Zmiennej można przypisać wartość. a = "Witaj!" print a a = 5 print a a = 1.2 print a a = True print a Do zmiennej można przypisywać nie tylko wpisaną przez programistę wartość, ale również: wynik działania, inną zmienną, działanie związanie z inną zmienną (innymi zmiennymi) Na przykład: a = 5 print a # Wypisze: 5 b = a print b # Również wypisze: 5 c = a - 3 print c # Wypisze: 2 c = 3 * b print c # Wypisze: 15 Co wypisze: a = 5 a = a + 5 print a Wypisze: 10. str. 6

Uwaga! Upewnij się, że rozumiesz, jak działa instrukcja: a = a + 5 W razie wątpliwości przyjrzyj się dokładnie poniższemu schematowi. a Popatrz, jak działa przypisywanie do zmiennej: a=5 5 a a=5 5 a a=5 5 a=10 b=a+1 a=a+5 a 10 b 6 a 10 * Zadanie 1. Napisz program, który wypisze zdanie, przedstawiające Ciebie (np. Mam na imię ), a następnie zmodyfikuj program tak, by każdy wyraz był w osobnej zmiennej. * Zadanie 2. Napisz program, który wypisze liczby: 2, 4, 6, 8 i 10, korzystając tylko z jednej zmiennej. Napisz go tak, żeby można było jednym ruchem zmienić program na wyświetlający: 3, 6, 9, 12 i 15. str. 7

# --- TYPY I DZIAŁANIA Podstawowe typy Każda wartość ma swój typ a więc ma go też każda zmienna. Można go sprawdzić, pisząc: type(2) # dla wartości lub: type(a) # dla zmiennych Popatrzmy: a = "Witaj!" print a, type(a) # Witaj! <type 'str'> a = 'Witaj!' print a, type(a) # Witaj! <type 'str'> a = 5 print a, type(a) # 5 <type 'int'> a = 1.2 print a, type(a) # 1.2 <type 'float'> a = True print a, type(a) # True <type 'bool'> Co pokaże: a = 1.0 print type(a) [int czy float?] Oczywiście: float (<type 'float'>) Co pokaże: type('') <type 'str'> Co pokaże: type("") <type 'str'> Co pokaże: type("3") <type 'str'> Typ None Zarezerwowany z myślą o niezainicjowanych zmiennych b = None print type(b) # <type 'NoneType'> str. 8

Silne typowanie Przypomnijmy sobie dodawanie liczb: print 3 + 4 # 7 Przypomnijmy sobie jeszcze łączenie napisów: print "a" + "b" # ab Jaki będzie efekt: print 0 + "3" # nie zadziała - potrzebny str(), ale o tym za chwilę Przeczytaj (ze zrozumieniem!) komunikat o błędzie. str(), int() i float() Żeby połączyć zmienne dwóch typów, w Pythonie trzeba je sprowadzić do tego samego typu (np. str, int lub float ). Dlatego w powyższym przykładzie trzeba skonwertować (zmienić typ) albo 0 (na string), albo "3" (na int lub float). Jak to zrobimy? Wykorzystując funkcje str(), int() i float() (o funkcjach będzie później, ale teraz nauczymy się korzystać z tych trzech). Robimy to w ten sposób: print str(0) print int("3") print float("3") Na oko nic się nie zmieniło przynajmniej w sposobie wyświetlania, ale wyświetlmy typ str(0) i int("3") lub float("3"): Jak wyświetlimy typ str(0) i int("3")? print type(str(0)) print type(int("3")) print type(float("3")) Teraz widzimy, że str(0) ma typ str, int("3") ma typ int, a float("3") ma typ float. * S Zadanie 1. Wypisz wynik dodawania 0 i "3", korzystając z jednej z funkcji int, float lub str. **Której lepiej użyć? Jaki wynik spodziewasz się otrzymać? * S Zadanie 2. Przerób powyższy przykład tak, aby zadziałał. str. 9

Rozwiązanie zad. 1 (szkic): Nie ma odpowiedzi na pytanie, której funkcji lepiej użyć wszystko zależy, co chcesz osiągnąć. Zapewne chcesz otrzymać 3, a więc użyj int() lub float(). Użycie str() da wynik 03 (i typ string!). Co otrzymasz tutaj? print "0" + "3" # oczywiście 03 (string!!) Jak sprawdzić, że to string, a nie int? Użyć type(): print type("0" + "3") # <type 'str'> Co pokaże: print "a" + 3 Komunikat o błędzie. Przeczytaj z uczniami komunikat o błędzie (ze zrozumieniem!). Wniosek: To nie zadziała - potrzebny str(). Rozwiązanie zad. 2 (szkic): Tutaj jest tylko jedno dobre rozwiązanie: str(), bo int() i float() nie zadziałają. str. 10

Priorytety działań Zastanów się, jaki będzie efekt poniższego działania. Sprawdź na komputerze. Dlaczego jest taki, a nie inny? print 2 + 2 * 2 Wynik to: 6. Jest to efektem działania priorytetów operatorów. Mnożenie jest wykonywane przed dodawaniem. Wypróbuj wszystkie działania oraz nawiasy i na tej podstawie określ, jakie są priorytety działań. Przykładowe działania: 2*3/2 (wyniki: 3 lub 2) lub porównanie: 2*(3/2) vs. 2*3/2 2+2-2 (wynik: 4 lub 2) itp. str. 11

# --- * LICZBY LOSOWE Żeby korzystać z liczb losowych (a de facto: z liczb pseudolosowych), trzeba zaimportować dodatkowy moduł poleceniem: import random Następnie można korzystać z szeregu funkcji generujących liczby pseudolosowe: random.random() # zwraca liczbę z przedziału [0, 1) random.uniform(a, b) # zwraca liczbę z przedziału [a, b) random.randrange(a, b) # zwraca liczbę całkowitą z przedziału [a, b) Wyprzedzenie materiału O listach będziemy mówić za jakiś czas, ale dla ambitnych wprowadzam je już tutaj. random.choice(l) # zwraca losowy element z listy L ** Zadanie 1. Zasymuluj rzut kostką do gry. Uruchom program kilka razy i sprawdź, że daje wszystkie możliwe wyniki. ** Zadanie 2. Korzystając wyłącznie z funkcji random.random() wygeneruj liczbę z przedziału [0, 3). ** Zadanie 3. Jak za pomocą funkcji random.random() zasymulować funkcję random.uniform(a, b)? ** Zadanie 4. Jak za pomocą funkcji random.randrange(a, b) zasymulować random.choice(l)? *** Zadanie 5. Jak za pomocą funkcji random.random() zasymulować funkcję random.randrange(a, b)? *** Zadanie 6. Zasymuluj 6 rzutów kostką. Wypisz średnią arytmetyczną, minimum i maksimum wyników. str. 12