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

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

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

1 Podstawy c++ w pigułce.

Wstęp do programowania

Wstęp do programowania

Technologie Informacyjne Mechatronika 2012/2013 Algorytmy. Podstawy programowania

1 Podstawy c++ w pigułce.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Pascal - wprowadzenie

Programowanie w języku Python. Grażyna Koba

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?

Cw.12 JAVAScript w dokumentach HTML

Warsztaty dla nauczycieli

Wykresy i interfejsy użytkownika

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

Algorytm. a programowanie -

Programowanie obiektowe i C++ dla matematyków

Metody numeryczne Laboratorium 2

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

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

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

ECDL Podstawy programowania Sylabus - wersja 1.0

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

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

3. Instrukcje warunkowe

Paradygmaty programowania

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

Ćwiczenie 25 Działania matematyczne we Flashu

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Laboratorium nr 1. i 2.

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

JAVAScript w dokumentach HTML - przypomnienie

1 Powtórzenie wiadomości

Python. Wprowadzenie. Jolanta Bachan

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

ALGORYTMY I STRUKTURY DANYCH

Podstawy i języki programowania

Technologie Informacyjne Wykład 4

Języki programowania zasady ich tworzenia

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

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

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

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

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

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

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

PROGRAMOWANIE W JĘZYKU PYTHON

Algorytmy i struktury danych

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

Podstawy programowania funkcjonalnego

JAVA?? to proste!! Autor: wojtekb111111

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

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Warunki logiczne instrukcja if

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Plan. krótkie opisy modułów. 1 Uwagi na temat wydajności CPython a. 2 Podstawowe techniki poprawiające wydajność obliczeniową

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Konstrukcje warunkowe Pętle

Funkcje Andrzej Musielak 1. Funkcje

Część 4 życie programu

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

Wstęp do Programowania, laboratorium 02

Wstęp do programowania

PYTHON NA LEKCJACH INFORMATYKI W SZKOLE PONADGIMNAZJALNEJ

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Liczby zespolone. x + 2 = 0.

Podstawy i języki programowania

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Podstawy Programowania Podstawowa składnia języka C++

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

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

Programowanie - wykład 4

Algorytmy i struktury danych

Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 2

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Podstawy Programowania C++

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

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

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Klasy: String, Random, Math. Korzystanie z dokumentacji.

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Podstawy programowania skrót z wykładów:

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

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Ćwiczenie 1. Wprowadzenie do programu Octave

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

Logarytmy. Historia. Definicja

Podstawy Programowania

Transkrypt:

Technologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python. 1. Cel laboratorium Celem laboratorium jest znalezienie przez studentów przykładów błędów popełnianych przez komputery podczas prostych obliczeń oraz oszacowanie ich wielkości. 2. Instrukcja instalowania programu Python Otwieramy stronę o następującym adresie: http://www.python.org/getit/ następnie wybieramy wersję Python 2.7.3 Windows Installer. Instalujemy program. W efekcie zainstaluje się wszystko co jest potrzebne do normalnej pracy Python Docs zawiera wygodny interfejs do dokumentacji. IDLE to proste, ale wygodne środowisko IDE 2 ułatwiające pisanie programów i ich uruchamianie. 3. Zadania do wykonania A. Uruchamiamy program python Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information.

B. Rzogrzewka napisz 2*2 2*2 4 napisz 7/2 7/2 3 napisz 7./2 7./2 3.5 napisz 3.1415*2 3.1415*2 6.283 C. Opisz metodę konwersji liczb dziesiętnych (0.1, 3.1415, 0.3333333) całkowitych i ułamkowych na dwójkowe a. dokonaj konwersji kilku niecałkowitych liczb dziesiętnych do postaci dwójkowej, zapisując wynik jako liczbę: i. ośmiobitową ii. szesnastobitową iii. trzydziestodwubitową b. w każdym przypadku dokonaj konwersji odwrotnej i policz błąd bezwzględny i względny 4. Materiały pomocnicze 4.1 Python Python jest językiem programowania wysokiego rzędu przeznaczonym do rozwiązywania najróżniejszych zadań (język programowania ogólnego przeznaczenia). Historia jego jest już dosyć długa: używany jest od 19 lat. Może być stosowany do tworzenia różnego rodzaju aplikacji, ale także do prowadzenia obliczeń w trybie doraźnym (ad-hoc). Python jest wykorzystywany bardzo szeroko: standardowo dołączany jest do systemu Linux i Mac OS. Używany jest bardzo szeroko przez: Google, YouTube, BitTorrent został napisany w Pythonie, Industrial Light & Magic, Pixar, używają oprogramowania napisanego w Pythonie do produkcji swoich filmów animowanych,

Dla osób znających inne języki programowania pomocne mogą być zestawienia umieszczone w serwisie Hyperpolyglot Programming Languages Reference Sheets. 4.2 Operacje arytmetyczne Podstawowe operacje (+,, ) działają tak jak można się spodziewać. Operacja dzielenia ( ) może sprawiać pewne kłopoty: 3/2 1 Dopiero napisanie 3./2 1.5 3/2. 1.5 daje oczekiwany efekt. Potęgowanie oznaczane jest znakiem, zatem 3 do potęgi trzeciej (3 3 ) wygląda tak: 3**3 27 Inne operatory arytmetyczne to % reszta z dzielenia albo modulo: 3 dzielone przez dwa to 1 (bo dwójka mieści się w trójce całkowicie jeden raz) i reszta 1: 3%2 1 W bardziej skomplikowanych obliczeniach można posługiwać się podstawowym zestawem funkcji (tak zwane funkcje wbudowane): abs (a) wartość bezwzględna divmod(a,b) zwraca wynik dzielenia całkowitoliczbowego i resztę z dzielenia jako parę liczb 3./2 1.5 2/2. 1.0 3/2. 1.5

raw_input ("") wczytuje dane. Uwaga wczytywane dane są typu tekstowego., stąd konieczność konwersji na liczby np. za pomocą funkcji float aby była możliwość użycia ich w dalszych obliczeniach A = raw_input("a:") A:4 A '4' float konwertuje liczbę do postaci zmiennoprzecinkowej float(3) 3.0 print wyświetla ciąg znaków czy też zapamiętane zmienne x=5 print "wynik ", x wynik 5 round(x[,n]) zaokrągla liczbę do n miejsc po przecinku: round(3.1415) 3.0 round(3.1415,3) 3.1419999999999999 round(3.1415,2) 3.1400000000000001 round(3.1415,1) 3.1000000000000001 Użycie innych funkcji matematycznych wymaga specjalnych zabiegów: podpowiedzenia programowi, że będziemy chcieli z nich korzystać: import math mówi, że zechcemy używać modułu math zawierającego różne funkcje i stałe matematyczne. Po wydaniu tego polecenia możemy napisać: math.sqrt(4) 2.0 math.cos(math.pi / 4.0) 0.70710678118654757 math.log(1024, 2) 10.0

math.pi 3.1415926535897931 Dostępne stają się funkcje trygonometryczne, hiperboliczne, logarytmiczne i wykładnicze, funkcje specjalne oraz stałe: π i e math.e 2.7182818284590451 4.3 Obliczenia W prostych obliczeniach można korzystać z pythona jak z podręcznego kalkulator: wyniki obliczeń podawane będą na bieżąco. Można też wyniki zapamiętywać (coś jak pamięci kalkulatora). Z tym, że poszczególne pamięci możemy nazywać według naszego uznania: r=5 obwod=2*math.pi*r pole=math.pi*r**2 Podanie w linii nazwy pamięci (zmiennej) powoduje wydrukowanie jej wartości: r 5 r, pole (5, 78.539816339744831) r, pole, obwod (5, 78.539816339744831, 31.415926535897931) 4.4 Bloki instrukcji Cechą odróżniającą język python od innych języków (Na przykład C czy Pascal) jest sposób wyróżniania bloków instrukcji. W języku C używa się do tego nawiasów klamrowych {}, a w języku Pascal słów kluczowych begin i end. W pythonie używa się wcięć. Potrzeba korzystania z bloków instrukcji pojawia się, między innymi: 1. podczas wykonywania instrukcji warunkowych, 2. przy tworzeniu pętli, 3. podczas definiowania funkcji. Na przykład: for i in range(1,10): print i

if a > b : print A większe od B elif a=b : print B równe A else print B mniejsze od A 4.5 Instrukcje warunkowe Instrukcja warunkowa używana jest podczas programowania do wprowadzenia rozgałęzienia w zależności od wartości jakiegoś parametru czy spełnienia jakiegoś warunku. Typowy przykład konieczności wprowadzenia instrukcji warunkowej to program wyliczania rzeczywistych miejsc zerowych trójmianu kwadratowego. W zależności od wartości parametru Δ albo wyliczamy jeden pierwiastek rzeczywisty, albo dwa, albo musimy stwierdzić, że pierwiastków rzeczywistych nie ma. 4.6 Pętle Pętla to taka konstrukcja programistyczna, która nakazuje wykonanie jakiejś czynności: kilka razy for i in range(3,12) : print i tak długo aż jakiś warunek zostanie spełniony. i=3 while i < 12 : print i i = i+1 W obu powyższych przypadkach efekt powinien być taki: 3 4 5 6 7 8 9 10 11 (Oczywiście nie ma wielkiej różnicy pomiędzy tymi sytuacjami, ale, tradycyjnie, robione jest takie rozróżnienie).

4.7 Funkcje Bardzo często programując w jakimś języku programowania musimy skorzystać z jakiejś funkcji. Python dostarcza bardzo wiele funkcji, a na przykład najbardziej podstawowe funkcje matematyczne dostępne są w module math. Na początku programu piszemy: import math a poźniej możemy z funkcji korzystać swobodnie: print math.sin(30. math.pi/180.) (Sprawdź jaki będzie wynik!) Możemy również zdefiniować własną funkcję. Będzie to funkcja f(x) = 3x 2 5x + 2. (Zwracam uwagę na wcięcie!) def f(x): a = 3. b = 5. c = 2. return a x x + b x + c Po jej zdefiniowaniu możemy już funkcji używać: print f(1) albo z = 5 + f(10) albo for x in range ( 10, 11): print x, :, f(x) W powyższym przykładzie x jest zmienną niezależną (tak jak w funkcji sin(x)), a polecenie return powoduje wyliczenie wartości i podstawienie jej pod f(x). Funkcję można zdefiniować również tak: def f(x): a = 3. b = 5. c = 2. y = a x x + b x + c return y Teraz polecenie return zwraca (wyliczoną wcześniej) wartość y jako wartość funkcji f(x).

4.8 Rekurencja Poniżej rekurencyjna definicja funkcji silnia def silnia(n): if n == 0: return 1 else: return n silnia(n 1) Sprawdź czy funkcja działa. 5. Program do samodzielnego napisania Napisz program rozwiązujący równanie kwadratowe. Najwygodniej napisać cokolwiek np. w notatniku. Następnie zapisać z rozszerzeniem nazwa.py i otworzyć zapisany plik za pomocą Edit with IDLE (Prawy przycisk myszy na pliku -> wybieramy z listy poleceń). Klawisz F5 służy do kompilowania. Wzory: Jeżeli >0 to Jeżeli =0 to = b 2 4 ac = 2 = + 2 = 2