Język programowania Python

Wielkość: px
Rozpocząć pokaz od strony:

Download "Język programowania Python"

Transkrypt

1 Język programowania Python Wrocławska Wyższa Szkoła Informatyki Stosowanej we Wrocławiu Piotr Kardasz, Wrocław, 2015r.

2 Spis treści WSTĘP INSTALACJA I KONFIGURACJA ŚRODOWISKA WPROWADZENIE DO POWŁOKI PIERWSZY PROGRAM ZMIENNE I ŁAŃCUCHY ZMIENNE ŁAŃCUCHY PROSTE SPOSOBY WPROWADZANIA DANYCH PODSTAWA SKŁADNI NIE NALEŻY STOSOWAĆ RAZEM SPACJI I TABÓW KLASY I OBIEKTY DŁUGOŚĆ KODU NAZWY SEKWENCJE ŁAŃCUCHY LISTY KROTKI SŁOWNIKI ZBIORY INNE TYPY DANYCH ĆWICZENIA TYPY DANYCH WBUDOWANE TYPY DANYCH TWORZENIE OBIEKTÓW ZE ZDEFINIOWANYCH TYPÓW OBIEKT NULL LICZBY ŁAŃCUCHY PORÓWNYWANIE OPERACJE MATEMATYCZNE INDEKSOWANIE I ODCINANIE METODY UŻYWANE W ŁAŃCUCHACH LISTY... 34

3 11. KROTKI SŁOWNIKI ZBIORY PRZYKŁADOWE OPERACJE MATEMATYCZNE KONTROLA PRZEPŁYWU DANYCH KONTROLA DECYZJI WYRAŻENIA WARUNKOWE WPROWADZANIE DANYCH OPERACJE NA PLIKACH FUNKCJE BŁĘDY PRACA Z MODUŁAMI BIBLIOGRAFIA... BŁĄD! NIE ZDEFINIOWANO ZAKŁADKI.

4 Wstęp Poniższy skrypt został stworzony z myślą o przedstawieniu podstawowych zagadnień związanych z programowaniem w języku Python. Podane poniżej informacje powinny pomóc zrozumieć nie tylko aspekty charakterystyczne dla tego języka programowania, ale również poszerzyć wiedzę w zakresie działania samego programowania obiektowego. Skrypt został stworzony z myślą o osobach, które dopiero zaczynają przygodę z programowaniem, a Python jest ich pierwszym językiem, którego chcą się nauczyć.ze względu na ograniczoną objętość, nie uwzględnia on poziomu zaawansowanego. Kod programu w skrypcie, został wyróżniony na ciemnych polach, by można go było go łatwo zrozumieć i zinterpretować, jest to ważne, ponieważ w Pythonie przywiązuje się uwagę do tzw. białych znaków. Elementy na które czytelnik powinien zwrócić szczególną uwagę zostały otoczone pomarańczową ramką, dzięki temu łatwiej wychwycić ich większe znaczenie. W skrypcie występuje też taka oto charakterystyczna czcionka. Wyszczególnione są nią zazwyczajelementy w tekście związane bezpośrednio z kodem programu, jak na przykład funkcje, czy polecenia. Czcionką wyróżnione są także wyniki działania poszczególnych programów, które nie są w żaden sposób formatowane. 1. Instalacja i konfiguracja środowiska Python jest opartym na licencji open-source, wysoko poziomowym, językiem programowania, który znajduje szeroki wachlarz zastosowań w różnych zadaniach programistycznych. Został on stworzony przez Guido Van Rossum, w latach 90, a swoją nazwę zawdzięcza programowi komediowemu Flying Circus, w reżyserii Monty Pythona. Język programowania cieszy się szczególnie dużą popularnością wśród administratorów systemów, jest też za łatwym językiem do nauki przez początkujących programistów. Z drugiej strony Python jest wykorzystywany przez NASA w celu stworzenia inteligentnego systemu planowania lądowania. Jest to język multiplatformowy, co oznacza że posiadając odpowiednie biblioteki, to napisany kod powinien uruchomić się zarówno na MS Windows, Linux i MAC OS. W celu korzystania z języka programowania Python, należy na początku go pobrać i uruchomić. 1

5 MS Windows Dla systemu MS Windows istnieją 2 popularne instalatory: 1. ActivePython- zawierający kompletną wersję Pythona, IDE z edytorem kodu, oraz kilka rozszerzeń dla systemu MS Windows. 2. Instalator z Python.org- samo środowisko programistyczne. W zależności od wybranej wersji, aby napisać pierwszy program, należy uruchomić PythonWin IDE lub Python GUI. Zaleca się również modyfikację ścieżki systemowej w celu uzyskania dostępu do komendy Python, niezależnie od katalogu. W tym celu należy wykonać poniższe kroki: wybrać START, kliknąć prawym przyciskiem myszy na komputer, wybrać właściwości, wybrać zaawansowane ustawienia systemu, wybrać zmienne środowiskowe, w zmiennych systemowych wybrać ścieżkę, i po znaku : wkleić: C:\Python27 Gdzie folder Python27 oznacza domyślny katalog instalacji języka, przy aktualnej wersji języka programowania. W przypadku instalacji nowszej wersji, albo zmiany katalogu podczas instalacji, należy podać swoją ścieżkę. Linux W przypadku korzystania z systemu Linux instalacja jest jeszcze bardziej bezobsługowa. Większość dystrybucji systemu zawiera Pythona w swoich repozytoriach. Aby go zainstalować w systemie Debian i pochodnych (Ubuntu,Mint itp.) należy wykonać polecenie w terminalu: apt-getinstallpython aby uruchomić interaktywną powłokę, należy wpisać w terminalu: Python Istnieje również oczywiście możliwość samodzielnej kompilacji języka ze źródeł, w tym celu należy go pobrać z adresu: 2

6 Polecane zintegrowane środowiska programistyczne ( IDE) Aby ułatwić sobie pracę, należy zainstalować również inne IDE np. Eclipse, razem z odpowiednimi wtyczkami (PyDEV), lub Emacs razem z Pythonmode. Kod na potrzeby tego poradnika powstawał w IntelIJ IDEA. Każdy z tych programów można znaleźć na stronie producenta, a ich instalacja jest zależna od systemu operacyjnego, jest to jednak operacja na tyle prosta, że nie została tutaj omówiona. 2. Wprowadzenie do powłoki Python w swoim pakiecie instalacyjnym zawiera dwie powłoki. Pierwszą z nich jest powłoka interaktywna, za pomocą której można debugować oraz uruchamiać aplikacje,czy też sprawdzać działanie poszczególnych funkcji. Powłoka jest bardzo elastyczna i można wykorzystać ją do wielu celów, Poniżej jako przykład przedstawiono kalkulatorsłużący do obliczania pola trójkąta: >>>print ("program do obliczania pola trójkąta") program do obliczania pola trójkąta >>> a=4 >>> h=2 >>> 0.5*a*h >>> 4 W powłoce można też wykonywać inne zadania matematyczne, bez użycia zmiennych, na przykład: >> Drugim typem powłoki jest powłoka normalna. Pozwala ona na uruchamianie skryptów zakończonych rozszerzeniem.py przez praser. 3. Pierwszy program Pierwszy, podstawowy program będzie uruchamiany od razu poprzez interpreter. Należy utworzyć nowy katalog, gdzie będą przechowywane wszystkie pliki nowych programów (w przypadku MS Windows, najlepiej aby znajdował się on bezpośrednio na dysku twardym). Następnie należy uruchomić wybrane przez siebie IDE, lub dowolny edytor tekstu i przepisać poniższy kod[1]: 3

7 Następie należy zapisać plik jako pierwszy_program.py, wejść do katalogu w którym się on znajduje, i uruchomić poleceniem: Python pierwszy_program.py Jako wynik działania programu w rezultacie powinniśmy otrzymać: Hello, world! W przypadku posiadania zintegrowanego środowiska programistycznego, programów nie będzie trzeba za każdym razem uruchamiać poleceniem. Zazwyczaj mają one wbudowane funkcje, które robią to za użytkownika. Zaleca się poświęcenie chwili czasu na poznanie funkcjonalności wybranego przez siebie IDE. 4. Zmienne i łańcuchy W tym rozdziale przedstawione zostaną informacje, czym różnią się zmienne (ang. Variables) i łańcuchy (ang. Strings), oraz jak ich używać Zmienne Zmienna, jest czymś co przechowuje wartość, która może się zmieniać. Jest ona swojego rodzaju pudełkiem, w którym można trzymać poszczególne elementy, dowolnie wyciągać je, zmieniać, i umieszczać ponownie. Można używać zmiennych aby przechowywać dane różnego typu, zacznijmy od danych liczbowych: W powyższym kodzie utworzono zmienną o nazwie zyciakota (jak wiadomo koty mają 9 żyć). Następnie wykorzystano funkcję print(), aby uzyskać informację o zawartości tejzmiennej. Powszechnie w programowaniu zmienne zaczynają się z małej litery, natomiast zmienne składające się z dwóch wyrazów mają to do siebie, że ich druga część zaczyna się z dużej litery. Zasada jest prosta nazwę zmiennej umieszczamy po lewej stronie znaku równości, a wartość po prawej. 4

8 Polskie znaki Aby w Pythonie używać bez obaw i ograniczeń polskich znaków, należy na samej górze pliku z kodem dodać linijkę: Polskich, ani innych regionalnych znaków nie powinno się jednak stosować w innym wypadku niż wewnątrz łańcuchów, w których jest to wymagane. Modyfikacje Możemy dowolnie modyfikować wartość zmiennych. Wynikiem działania programu: będzie: 8 7 W powyższym przykładzie zadeklarowana została zmienna cukierki, do której przypisano początkowo liczbę całkowitą (ang. Integer) równą 8. Osobę, która miała wcześniej do czynienia z innymi językami programowania (jak choćby JAVA czy C++) w zdumienie wprowadzić może fakt, że w nie zadeklarowano rodzaju zmiennej. Otóż należy wiedzieć, że w Pythonie nie ma czegoś takiego jak deklaracja, czy inicjacja zmiennej. Dla przykładu, wynikiem działania programu: rok = 365 # ilość pozostałych dni życia kota print rok rok = "przestępny" # charakterystyka roku print rok będzie: 365 przestępny Powyżej, do tej samej zmiennej, linijka pod linijką przypisano zarówno wartości liczbowe całkowite, jak i ciąg znaków, a mimo to interpreter języka nie zwrócił żadnego błędu. 5

9 Ważne: Interpreter rozróżnia wielkość liter w zmiennych, dlatego też zmienna Kot, nie jest tożsama ze zmienną kot Łańcuchy Upraszczając, string jest po prostu listą znaków. Znak zaś, jest tym co można wpisać z klawiatury, jak np. litera, cyfra czy hashtag. Na przykład: witaj jest wartością typu String. Ma ona 5 znaków. Wartości string mogą mieć też spacje. Np. witaj czytelniku ma16 znaków i zawiera też jedną spację. Nie ma limitów liczby znaków, które może zawierać pojedynczy string może on mieć zarówno milion znaków, jak i ani jednego (te ostatnie nazywane są jako puste łańcuchy, ang. emptystrings). Występują trzy sposoby deklarowania stringów w Pythonie: pojedynczym cytowaniem( ), podwójnym cytowaniem( ), oraz potrójnym cytowaniem ( ). W każdym z tych przypadków, należy zakończyć łańcuch w taki sam sposób, w jaki został utworzony. Na przykład: W rezultacie otrzymuje się wynik: jestem stringiem z pojedynczym cytowaniem jestem stringiem z podwójnym cytowaniem jestem stringiem z potrójnym cytowaniem W takiej sytuacji nasunąć się może słuszne pytanie: A co w przypadku kiedy zechcę zacytować tekst w zmiennej?, jest to możliwe poprzez użycie znaków backslasha \\ : W tensposób dwa pierwsze, wykonane print() będą wyglądać tak samo: I wtedy powiedziałem, nie wejdziesz I wtedy powiedziałem, nie wejdziesz Stało się tak, ponieważ sam backslash jest uznawany za tzw. escpaing symbol, który stosuje się w momencie gdy w stringu trzeba dokonać pewnej szybkiej widocznej zmiany, jaką 6

10 jest w tym wypadku cytowanie, bez potrzeby użytkowania np. dodatkowych zmiennych. Użycie escaping symbol wprowadza większą czytelność kodu. Ważne jest, aby pamiętać o tym, że gdyby zaszła potrzeba umieszczenia w stringu \, to tak naprawdę należy umieścić dwa \\. Dlatego właśnie trzeci przykład zwróci wynik: Ten print wyświetli tylko trzy backshlashe: \ \ \ Aby umożliwić lepsze zrozumienie escaping symbol, poniżej w tabeli 4.1 znajduje się większa ilość znaków możliwa do wykorzystania wraz z krótkim wyjaśnieniem. Tabela 4.1. Lista escaping symbol [2] Escape Sequence Znaczenie \newline Ignored \\ Backslash (\) \ Single quote ( ) \ Doublequote ( ) \a ASCII Bell (BEL) \b ASCII Backspace (BS) \f ASCII Formfeed (FF) \n ASCII Linefeed (LF) \r ASCII Carriage Return (CR) \t ASCII HorizontalTab (TAB) \v ASCII VerticalTab (VT) \ooo ASCII character with octalvalueooo \xhh ASCII character with hexvaluehh. Operacje na łańcuchach Pierwszy przykład programu przedstawionego w skrypcie wyglądał tak: Aby połączyć ze sobą dwa łańcuchy, należy użyć operatora +. Po wykonaniu kodu: otrzymano: Hello, world! Warto zwrócić uwagę, że na końcu stringa Hello występuje spacja. Gdyby nie została tam użyta, wynik działania programu wyglądałby tak: 7

11 Hello,world! Do powtarzania łańcuchów można natomiast użyć operatora *. W wyniku działania programu: Otrzymano: Witam Witam Witam Witam Witam Witam Witam Witam Witam Witam W celu sprawdzenia długości łańcucha, należy użyć funkcji len(), która w prosty sposób policzy ilość znaków w łańcuchu. Jej nazwę można łatwo zapamiętać, ponieważ jest skrótem od angielskiego słowa length (długość). Aby sprawdzić ilość znaków w wyrażeniu Hello, World należy wykonać: Otrzymano: Proste sposoby wprowadzania danych W powyższych rozdziałach przedstawiono działanie zarówno zmiennych jak i łańcuchów, aby podsumować zdobytą wiedzę, należy wykorzystać je razem, w tym celu konieczne jest przypisanie łańcucha do zmiennej: Po wykonaniu programu powyżej, otrzymano: Jak się masz? W programie powyżej, stworzono zmienną o nazwie pytanie i przypisano do niej łańcuch Jak się masz?. Następnie w funkcji print() jako argumentu użyto zmiennej pytanie, co spowodowało jej wypisanie na ekranie. Warto zwrócić uwagę na to, że aby wyświetlić zmienną, musi ona zostać wpisana jako argument funkcji bez cudzysłowów, w przeciwnym razie, w tym wypadku wynik programu byłby następujący: pytanie Warto teraz pójść o krok dalej, i sprawić, aby użytkownik mógł samemu wprowadzać dane do programu, dzięki czemu możliwa będzie interakcja. Aby tego dokonać, należy użyć funk- 8

12 cji raw_input() w przypadku używania Pythona w wersji < 3, oraz funkcji input() w przeciwnym wypadku. Przykładowe wykonanie powyższego programu może wyglądać następująco: Co zamierzasz zjeść na obiad? pizze A więc mówisz, że pizze, To brzmi super! W powyższym programie, przypisano łańcuch Co zamierzasz zjeść na obiad, do zmiennej pytanie, następnie wywołano funcjęprint(), i jako jej argument podano zmienną pytanie, co spowodowało wyświetlenie na ekranie pytania: Co zamierzasz zjeść na obiad. Następnie do zmiennej odpowiedz, przypisalisano funkcję funkcję raw_input(), odpowiedzialną za pobranie danych od użytkownika. Na końcu do funkcji print(), jako argument wpisano łańcuch, w którym wykorzystano znak + w celu wstawienia zmiennej do łańcucha. Zarówno funkcja raw_input() jak iinput() działa w podobny sposób, mianowicie oczekuje ona na odpowiedź od użytkownika, i kończy swoje działanie w momencie, kiedy zostanie wciśnięty klawisz enter. Łańcuchy i numery razem W przypadku wykorzystania zarówno łańcuchów, jak i numerów, często mogą pojawić się błędy. W celach naukowych, warto uruchomić poniższy kod programu: Powyższy program jest jednak wadliwy i się nie uruchomi, a interpreter powinien zwrócić błąd: Traceback (most recentcalllast): File "/Users/pawelwiejkut/IdeaProjects/Python-skrypt/zmienne.py", line 43, in <module> dodajdziesiec = liczba /2 TypeError: unsupported operand type(s) for /: 'str' and 'int' 9

13 Gdzie wystąpił błąd? Otóż interpreter zwrócił błąd o nazwie TypeError, który oznacza problem z typami użytych informacji. Uproszczając Python nie jest w stanie zinterpretować typów danych, które zostały użyte razem (w tym przypadku liczba i łańcuch). Kompilator uważa domyślnie, że wartość wczytana od użytkownika jest łańcuchem (a nie tak jak w przypadku powyższego programu liczbą). To jeszcze nie koniec problemów w powyższym programie. W momencie kiedy użyto funkcji print() według błędnego założenia, kompilator powinien połączyć łańcuch Jeśli podzielimy twoją liczbę przez 2 otrzymamy: wraz z wynikiem dzielenia, pozyskanym ze zmiennej liczba. Kompilator nie wie jednak jak ma wykonać tą operację operator + potrafi bowiem jedynie łączyć ze sobą dwie wartości o tym samym typie danych, więc nawet gdyby ominąć TypeError, w momencie pobrania danych do zmiennej liczba poprzez wyjaśnienie interpreterowi z jakiego typu zmienną ma do czynienia to błąd powtórzyłby się w momencie wywołania zmiennej. Jak rozwiązać powyższe problemy? Otóż należy skorzystać z dwóch funkcji: 1. Int() służy do konwersji danych na liczbę całkowitą 2. Str() służy do konwersji danych na łańcuch Poprawioną wersję programu przedstawiono poniżej: Teraz kod kompiluje się bez problemu, ale w związku z użyciem funkcji int(), działa poprawnie jedynie w przypadku kiedy użytkownik programu wprowadzi do niego liczbę całkowitą, jest to tzw. funkcja wbudowana. Więcej funkcji przedstawiono w tabeli 4.2. Tabela 4.2. Funkcje wbudowane[3]. abs() divmod() input() open() staticmethod() all() enumerate() int() ord() str() any() eval() isinstance() pow() sum() basestring() execfile() issubclass() print() super() bin() file() iter() property() tuple() bool() filter() len() range() type() bytearray() float() list() raw_input() unichr() callable() format() locals() reduce() unicode() chr() frozenset() long() reload() vars() classmethod() getattr() map() repr() xrange() 10

14 cmp() globals() max() reversed() zip() compile() hasattr() memoryview() round() import () complex() hash() min() set() delattr() help() next() setattr() dict() hex() object() slice() dir() id() oct() sorted() Dokładny opis przedstawionych powyżej funkcji można znaleźć w oficjalnej dokumentacji języka dostępnej pod adresem: gdzie można rozwiać wszystkie swoje możliwości Ćwiczenia 1. Napisz program, który pobierze od użytkownika łańcuch, a następnie zwróci jego liczbę znaków. 2. Napisz program, który pobierze od użytkownika liczby i łańcuchy, a następnie wyświetli je razem. 3. Napisz program, który pobierze od użytkownika łańcuch, oraz liczbę jego powtórzeń, a następnie wyświetli ten łańcuch tyle razy ile użytkownik wskaże w liczbie. Ważne: Istnieją jeszcze inne sposoby na wprowadzenie zmiennej do łańcucha. Można użyć znaku % : W celu wstawienia 2 zmiennych należy w tym przypadku wykonać: Możemy również użyć funkcji format(): 11

15 5. Podstawa składni 5.1. Nie należy stosować razem spacji i tabów Ponieważ w Pythonie ważną rzeczą są tzw. białe znaki, w postaci spacji, dlatego nie należy ich zastępować. Pomimo tego, że w edytorze mogą wyglądać one tak samo, to będą błędnie interpretowane Klasy i obiekty W pytonie jak w każdym innym języku zorientowanym obiektowo istnieją zbiory danych zwane obiektami, które mają za zadanie reprezentacje koncepcji modelu systemu.obiekty w Pythonie są tworzone za pomocą szablonów nazywanych klasami[4]. Mają one atrybuty, które reprezentują różne części kodu, i dane które zawierają obiekty. W celu lepszego zrozumienia obiektów, poniżej umieszczono rysunek, który pomoże zrozumieć ich zastosowanie: 1. Klasa szablon dla obiektu. Jest to definicja zestawu cech i funkcjonalności danego elementu, nie zawierającego konkretnych wartości. Przykładowe elementy klasy autobus: ilość drzwi, rodzaj autobusu, barwy miasta, kolor felg, marka 2. Obiekt- jest to konkretna reprezentacja klasy np. marka Ikarus, typ: jednoczłonowy, kolor malowania: wrocławski. 12

16 Przykładowe elementy obiektu ikarus: ilość drzwi =2, rodzaj autobusu= jednoczłonowy, barwy miasta = Wrocław, kolor felg = srebrny, marka = Ikarus, Aby dostać się do atrybutów obiektu, należy po jego nazwiepostawić kropkę i dodać nazwę atrybutu. Założyć można, że konieczne jest uzyskanie dostępu do zmiennej iloscdrzwi w obiekcie ikarus klasy autobus. Aby to zrobić należy: Warto też wiedzieć, jak dostać się do funkcji zawartej w klasie. Można na przykład hipotetycznie założyć, że w przedstawionym obiekcie autobus, istnieje atrybut kolornadwozia, który ma za zadanie połączyć ze sobą zmienne kolorwiodacy i kolordrugi, aby go użyć w przypadku ikarusa należałoby wykonać: 13

17 5.3. Długość kodu W sytuacji, kiedy programista ma za zadanie zbudowanie dużego programu należy podzielić go na mniejsze części kodu, tak aby stał się on bardziej czytelny, oraz aby ułatwić późniejsze zmiany w jego kodzie tymosobom, które nie są zaangażowane w jego tworzenie. Ponadto podzielenie kodu, na poszczególne jego części pomaga zapobiec błędom wynikającym np. z powtarzających się nazw zmiennych, ponieważ wyodrębniony kod w swoim wnętrzu może stać się zupełnie niezależny od reszty programu. W Pythonie można wyodrębnić części kodu korzystając z funkcji lub modułów. Każdy z nich ma różne sposoby uzyskiwania dostępu do zwracanych przez nie danych Nazwy Właściwie nauka programowania w języku Python mogłaby nie zawierać koncepcji przestrzeni nazw (namespaces), ponieważ są one bardzo podobne do atrybutów.jest ona jednak uniwersalna i używana w każdym języku programowania. Python posiada wbudowaną funkcję dir(), która umożliwia lepsze ich zrozumienie. Używa się jej np. gdy uruchomiony zostanie interpreter Pythona w interactivemode: Type%"help",%"copyright",%"credits"%or%"license"%for%more%information.% >>>%dir()% [' builtins ',%' doc ',%' name ',%' package ']% >>>%% Zadania Stwórz klasę mieszkanie, oraz obiekt moje mieszkanie, i wyświetl wszystkie informacje o nim. 14

18 6. Sekwencje Sekwencje pozwalają na przechowywanie danych w zorganizowany i wydajny sposób. W Pythonie występują cztery typy sekwencji[5]: Łańuchy Listy Krotki Zbiory Kontenerami dla danych sekwencyjnych są słowniki i zestawy Łańcuchy W poprzednich rozdziałach omówiono już po części łańcuchy, oraz ich zastosowanie. Nie znalazła się tam natomiast informacja, jak można dostać się do ich poszczególnych znaków. Aby tego dokonać należy używać nawiasów kwadratowych: Po wykonaniu kodu program wyświetli: W i a e Indeksy są numerowane od 0, na przykładzie przedstawionego łańcucha Witaj Świecie numerowanie wygląda następująco: W i t a j Ś w i e c i e ,7, UWAGA: Aby zapisać znak w UNICODE, (w tym wpadku UTF-8) Python rezerwuje w swojej pamięci aż 3 znaki. Jest to ważne, ponieważ aby wyświetlić samo Ś należy podać zakres [6:8], więcej informacji o wyświetlaniu łańcucha z zakresu przedstawiono poniżej. 15

19 Istnieje również sposób aby wyświetlać elementy łańcucha licząc je od końca: W i t a j Ś w i e c i e ,7, Aby tego dokonać należy używać w nawiasach kwadratowych kolejnych numerów znaków liczonych od końca wraz ze znakiem -. Program po wykonaniu powyższego kodu zwróci wynik: e a w j Jak wspomniano powyżej znak :, umożliwi zwrócenie całego zakresu łańcucha w podanym przedziale, na przykład po wykonaniu programu: Otrzymano: Św Witaj Ś Witaj Św Witaj Świecie Iecie Dzieje się tak, ponieważ wszystko przed znakiem : można rozumieć jako lewą stronę łańcucha, natomiast po znaku - jako prawą stronę łańcucha. Dlatego też zapis: print "Witaj Świecie"[:-5] można rozumieć jako polecenie: wyświetl wszystkie znaki od początku łańcucha do piątego od końca znaku. 16

20 6.2. Listy Listy, zawierają różne typy danych, gdzie każda pozycja ma swój przypisany numer. Listy tworzy się poprzez użycie nawiasów kwadratowych []. Na przykład pusta lista może być zainicjowana za pomocą polecenia: Zawartość listy należy oddzielić przecinkami: Listy nie muszą zawierać oczywiście jednego typu danych, można również mieszać w nich łańcuchy i numery: Podobnie do łańcuchów, listy również są numerowane od 0. Aby dostać się do wybranego elementu listy należy wstawić numer interesującej nas pozycji w nawiasy kwadratowe. Na przykład: Powyższy program zwróci wynik: jajka mleko Identycznie, jak w przypadku łańcuchów, można używać tutaj liczb ujemnych w celu uzyskania dostępu do elementów listy liczonych od końca. Sprawdzanie długości listy Aby sprawdzić ilość elementów w zadanej tablicy, należy użyć znanej już funkcji len().[6] Jako argument, funkcja przyjmuje w tym wypadku nazwę tablicy. W przypadku powyższej tablicy zawartosc, aby zwrócić liczbę elementów tablicy należy: Funkcja zwraca liczbę wszystkich elementów w tablicy, jednak wykonanie programu: Zwróci błąd: 17

21 IndexError: list index out of range Stało się tak, ponieważ elementy tablicy numerowane są od 0. Aby dostać się do ostatniego elementu tablicy przy użyciu funkcjilen(), należy odjąć 1 od całkowitej ilości elementów zwracanych przez funkcję: 63 Nadpisywanie elementów listy Elementy listy mogą być nadpisywane w taki sam sposób jak zmienne: ['jajka', 'mleko', 'woda', 'ciastka'] jabłko Dodawanie elementów do listy Istnieje kilka metod dodania elementu do listy. Jedną z nich jest użycie metody append(): ['jajka', 'mleko', 'woda', 'ciastka'] ['jajka', 'mleko', 'woda', 'ciastka', 'kawa'] Jeśli zajdzie potrzeba dodania elementu do listy na określone miejsce należy użyć funkcji insert(): ['jajka', 'mleko', 'woda', 'ciastka'] ['rogale', 'jajka', 'mleko', 'woda', 'ciastka'] Kasowanie elementów z listy Kasowanie wybranego elementu z listy odbywa się poprzez użycie funkcji del(): 18

22 W efekcie lista ulegnie samoczynnemu uporządkowaniu: ['rogale', 'jajka', 'mleko', 'woda', 'ciastka'] ['jajka', 'mleko', 'woda', 'ciastka'] Po skasowaniu jednego z elementów, bez żadnej ingerencji ze strony programisty, pozycja jajka znów wróciła na swoje pierwotne miejsce, i jest dostępna dlauzytkownika po indeksem 0 (zakupy[0]). Zależności pomiędzy listami Listy mają specyficzne zależności. Jeśli na przykład utworzymy i przypiszemy listę zakupymarka do listy zakupyani, a następnie nastąpi usunięcie elementu z listy zakupów Marka, wówczas na liście Ani ta zmiana również wystąpi. Na przykład po wykonaniu programu: Otrzymano wynik: ['rogale', 'mleko', 'woda', 'ciastka'] ['rogale', 'mleko', 'woda', 'ciastka'] Warto zwrócić uwagę, że sytuacja ta ma miejsce mimo tego, że przypisanie nastąpiło przed usunięciem elementu.takie zachowanie Pythona można obejść używając znaku :. W poniższym programie problem ten nie zostanie już zaobserwowany: 6.3. Krotki Krotki są bardzo zbliżone do list, z tą różnicą, że są one niezmienne[7]. Jeśli raz zostaną ustawione nie ma sposobu na ich zmianę. Nie można dodawać do nich elementów, zmieniać 19

23 ich, ani usuwać. Poza tym ich użycie i obsługa jest bardzo zbliżona do list. Deklaracja wygląda następująco: W przypadku gdyby zaszła potrzeba zadeklarowania dwóch krotek w jednej linijce należy użyć nawiasów () : Nawiasy mogą wyrządzić jednak szkody w napisanym programie i należy na nie uważać. W poniższym przypadku, obie deklaracje krotek są poprawne: ('drewno', 'grafit', 'farba', 'gumka') ('drewno', 'farba', 'gumka') Jednak kiedy użyjemy wewnątrz dodatkowych nawiasów, mogą pojawić się niespodziewane problemy. Po wykonaniu poniższego programu: Kompilator zwróci: 3 3 Stało się tak, ponieważ, zastosowany nawias sprawił, że wartości w nim ( farba,gumka ) traktowanesą jako osobna krotka Słowniki Słowniki podobnie do list są modyfikowalne ich zawartość można dodawać, zmieniać, i usuwać z niej wybrane elementy. Elementy w słownikach różnią się między innymi tym od list, że nie mają przypisanych numerów[8]. Każdy element słownika składa się z dwóch członów: klucza umożliwiającego identyfikację i jego wartości. Można sobie wyobrazić, że jest to taka sama budowa jak w przypadku listy, z tym, że w liście zmiana klucza nie jest możliwa (jest on ciągły i automatycznie przypisywany do każdego elementu począwszy od 0). Deklaracja słownika odbywa się poprzez użycie nawiasów {} oraz :. Na przykład: 20

24 {'odpowiedz': 12, 'olowek': 'przyzad do pisania'} 12 przyzad do pisania 2 Dodawanie kolejnych elementów Aby dodać kolejne elementy do słownika należy zadeklarować je podobnie jak zmienne: {'odpowiedz': 12, 'olowek': 'przyzad do pisania'} {'odpowiedz': 12, 'olowek': 'przyzad do pisania', 'nowy element': 'nowa wartosc'} 6.5. Zbiory Zbiory (ang. sets) są podobne do list, są jednak nieuporządkowane i nie pozwalają na zduplikowanie wartości. Elementy w zbiorach nie są przyporządkowane ani do poszczególnych wartości (jak w listach czy krotkach), ani do ustalonego klucza (jak w krotkach)[9]. Zbiorów warto jednak używać, ponieważ są one znacznie szybsze dla dużej liczby pozycji. Pozwalają one na szybsze wprowadzanie, kasowanie i sprawdzanie istnienia elementu. Zbiory cechują się również wsparciem dla operacji matematycznych, takich jak na przykład odejmowanie dwóch zbiorów od siebie. set([(23, 4), 99, 'lancuch']) Pozostałe operacje na zbiorach są bardzo podobne do tych poruszanych w poprzednich przypadkach w tym rozdziale: 21

25 UWAGA: W przypadku zbiorów, elementy są nieuporządkowane, ich kolejność nie jest w żaden sposób określona, i może ulegać zmianie. Zbiory mogą zawierać tylko niezmienne typy danych takie jak: liczby całkowite, łańcuchy i kortki. Do zbiorów nie można przypisywać list, słowników i innych zbiorów (za wyjątkiem tzw. zamrożonych zbiorów, które przedstawiono poniżej). Zamrożone zbiory Zależność pomiędzy zmrożonymi zbiorami (ang. frozenset) i zbiorami, jest zbliżona do zależności pomiędzy krotkami i listami. Zamrożony zbiór, to niezmienna wersja zbioru. Aby go użyć, należy posłużyć się funkcjąfrozenset(): frozenset(['wartosc', (18, 7), 100]) 6.6. Inne typy danych Python zawiera również inne typy danych sekwencji, od tych przedstawionych powyżej, są one jednak rzadziej używane i muszą być zaimportowane ze standardowego modułu przed ich użyciem: array - lista, która może zawierać jedynie wartości jednorodne, collections.default słownik, który zamiast błędu, zwraca wartość domyślną, w wypadku kiedy element nie zostanie odnaleziony, collections.deque- kolejka o dwóch końcach, ułatwia szybkie manipulowanie po obu jej stronach heapq- priorytet kolejki Queaue- kolejka stworzona do używania przez programy wielowątkowe. Lista też może być stosowana jako kolejka w jednowątkowym kodzie. 22

26 6.7. Ćwiczenia 1. Napisz program, który wstawi dwie cyfry 2,8 do listy. Następnie usunie 8 z listy. 2. Napisz program, który wstawi cyfry 2,8 do kortki. 3. Napisz program który skonstruuje krotke, której jednym z elementów będzie zamrożony zbiór. 7. Typy danych Typy danych pozwalają na określenie, kiedy dany obiekt może coś zrobić, a kiedy nie ma to sensu. Różne typy pozwalają również na zidentyfikowanie, czy w danym miejscu wykorzystywana będzie liczba (1,2,3), znak ( a, b, c ), czy wartość logiczna (prawda, fałsz). Inne języki programowania mogą określić, czy operacja ma sensdla obiektu, upewniając się, że obiekt nigdy nie może być przechowywany gdzieś, gdzie operacja zostanie na nim wykonana. Python jednak tak nie robi. Zamiast tego przechowuje typ obiektu i sprawdza czy operacja ma sens, podczas gdy jest ona wykonywana (jest to nazywane dynamicznym typowaniem). Dlatego tak ważne w Pythonie jest debugowanie programów 7.1. Wbudowane typy danych Wbudowane w język programowania typy danych dzieli się na kilka klas: typy numeryczne (ang. numerictypes), sekwencje (ang. sequences), zestawy i mapowania (ang. sets and mappings). boolean typ danych zawierający dwie wartości: Prawda i Fałsz. Użyteczny w przypadku wyrażeń warunkowych. Inne wbudowane typy danych przedstawiono poniżej, jednak niektóre z nich, dostępne są tylko w wybranych wersjach Pythona: Typy numeryczne: int- ang. integers, typ liczb całkowitych w Pythonie 2.* ograniczony do w Pythonie 3* nieograniczony, long ang. longintegers, liczby całkowite o nie ograniczonym rozmiarze, istnieje tylko w Pythonie 2.*, float typ zmiennoprzecinkowy, 23

27 complex ang. complexnumbers, typ liczb zespolonych.. Sekwencje: str ang. string typ reprezentujący sekwencje 8 bitowych znaków w Pythonie 2.*, byte sekwencja liczb całkowitych w przedziale 0-255, dostępna tylko w Python 3.*, list lista, tuple krotka. Zestawy: set- nieuporządkowany zbiór unikatowych obiektów, dostępny od wersji Pythona 2.6, frozen set- podobnie do zestawu, nieuporządkowany zbiór, jednak nie zmienny, również dostępny odpythona w wersji 2.6. Mapowania: dict typ słownikowy, każdy element listy (klucz) związany jest z odpowiadającą mu wartością. Szczegółowy podział typów danych przedstawiono w tabeli 7.1. Tabela 7.1.Szczegółowy podział typów danych Nazwa obiektu Kategoria Czy podlega zmianą? int, float, long, complex Typy numeryczne TAK str Sekwencje TAK bytes Sekwencje TAK tuple Sekwencje TAK frozen set Zestawy TAK bytearray Sekwencje NIE list Sekwencje NIE set Zestawy NIE dict Mapowania NIE 24

28 Tylko zmienne obiekty obsługują metody które umożliwiają zmianę obiektu w miejscu, takim jak zmiana przypisania kawałka sekwencji. Ważne jest aby pamiętać, że zmienne w Pythonie są w rzeczywistości odwołaniami do obiektów w pamięci. Na przykład przypisanie obiektu do zmiennej: spowodowało, że zmienne q,w,e prowadzą do obiektów 1, asd,['start', 999, ('to','bardzo','wazne')]. Są one przechowywane gdzieś w pamięci urządzenia, jako wygodny sposób dostępu. W przypadku zmiany przypisania zmiennej: Zmienia się jedynie obiekt. Jak wspominano wcześniej, tylko zmienne obiekty mogą być zmieniane w miejscu Tworzenie obiektów ze zdefiniowanych typów Poszczególne liczby całkowite mogą być wprowadzane na kilka sposobów: 1. liczby dziesiętne mogą być wprowadzane bezpośrednio, 2. liczby szesnastkowe mogą być wprowadzone przez poprzedzenie 0x lub 0X (0xff - hex FF lub 255 w systemie dziesiętnym) 3. format ósemkowy zależy od wersji Pythona: 1. Python 2.*- format ósemkowy może być wprowadzany poprzez poprzezenie 0 2. Python 3.* format ósemkowy może być wprowadzony oporzez poprzedzenie 0o lub 0O 7.3. Obiekt NULL W Pythonie, podobnie jak w innych językach programowania, występuje obiekt NULL, który dosłownie można przetłumaczyć jako obiekt, który na nic nie wskazuje - None. Jest to domyślna wartość każdego obiektu, zanim zostanie wypełniony on wartościami lub danymi. 25

29 8. Liczby Jak już wspominano, Python w wersji 2.* wspiera 4 typy numeryczne int, long, float i complex. W wersji 3.* typ long został porzucony, i zastępuje go typ int, który jest na tę chwilę nie ograniczony pod względem długości. W Pythonie oczywiście nie jest konieczne deklarowanie jakiego rodzaju zmiennej zamierza się użyć zostanie to zrobione automatycznie. Aby sprawdzić z jakiego rodzaju jest dana zmienna, możemy użyć funkcji type(): <type 'int'> <type 'long'> <type 'float'> <type 'complex'> Wcześniej, jako jeden z pierwszych programów w skrypcie, opisany został kalkulator. Jak wspominano, nie dzielił on poprawnie z resztą, teraz przyszedł czas na wyjaśnienia dlaczego tak się działo. Jest to nic innego jak minusy związane z brakiem deklaracji zmiennych przez użytkownika. Otóż w wersji 2.* po użyciu operatora / na dwóch liczbach całkowitych otrzymuje się trzecią liczbę całkowitą. Aby obejść takie zachowanie kompilatora, można dać mu do zrozumienia, że jedna z naszych zmiennych jest liczbą zmiennoprzecinkową (float). Nastąpi wtedy tzw. promocja typu, na skutek której wynik również będzie przedstawiany jako liczba zmiennoprzecinkowa. Począwszy od Pythona w wersji 2.2, jest jeszcze inne wyjście, polegające na zaimportowaniu modułufrom future import division (aby po załadowaniu modułu wykonać dzielenie z wynikiem całkowitym należy użyć operatora // ). W Pythonie 3.* natomiast, rezultatem użycia operatora / będzie zawsze prawidłowy, zmiennoprzecinkowy wynik. :

30 Łańcuchy 9.1. Porównywanie Łańcuchy są takie same, kiedy zawierają taką samą treść, są takiej samej długości, zawierają tyle samo miejsca w pamięci, oraz gdy znak jest dokładnie na tym samym miejscu. W programowaniu występują różne sposoby na sprawdzenie równości łańcuchów, w Pythonie najlepiej jest używać do tego celu operatora is w postaci == : True True True False False 9.2. Operacje matematyczne Są dwa typy operacji matematycznych, które można wykonywać na łańcuchach w Pythonie dodawanie i mnożenie. Dodawanie łańcuchów, to nic innego, jak powiązanie ich razem, mnożenie natomiast może służyć zarówno powiązaniu, jak i powtarzaniu: w wb wbwbwbwbwb 27

31 Występują sytuacje, w których należy sprawdzić występowanie zawartości jednego łańcucha w drugim. W Pythonie operator in, zwraca on wartość True jeśli pierwsza wprowadzona do niego wartość odpowiada drugiej: False True 9.3. Indeksowanie i odcinanie Wcześniejsze rozdziały zawierają już opis procederu wyświetlania poszczególnych znaków ze zmiennych. Teraz informacje te muszą zostać uzupełnione o ważną kwestię nie można do istniejącego łańcucha przypisać innej wartości podanej w zakresie[10]: Obie powyższe próby skończą się niepowodzeniem Metody używane w łańcuchach W tabeli 9.1, przedstawiono najczęstsze metody używane w łańcuchach. Tabela 9.1. Najczęstsze operacje wykonywane w łańcuchach capitalize center count decode encode endswith expandtabs find index isalnum isalpha isdigit islower isspace istitle isupper join ijust lower lstrip replace rfind rindex rjust rsrip split splitlines startswith strip swapcase title translate upper zfill Funkcje is*() W skład omawianych funkcji wchodzą: Isalnum(), isalpha(), isdigit(), isuper(), isspace() and istitle(). isalnum() zwraca True, jeżeli łańcuch zawiera cyfry, isalpha() zwraca True, jeżeli łańcuch zawiera tylko litery, isdigit() zwraca True, jeżeli łańcuch zawiera tylko cyfry, 28

32 isuper zwraca True, jeżeli znaki w łańcuchu są tylko duże, isspace zwraca True jeżeli łańcuch zbudowany jest jedynie z białych znaków, istitle zwraca True, jeżeli pierwszy znak w pierwszym wyrazie łańcucha jest duży, a reszta znaków mała. Przykłady wykorzystania powyższych funkcji przedstawiono poniżej: Metody Title, Upper, Lower, Swapcase, Capitalize W Pythonie istnieje grupa metod odpowiedzialna za zmiany w wielkości znaków, są to między innymi: title() metoda odpowiedzialna za zwiększenie pierwszego znaku w pierwszym wyrazie łańcucha. upper() metoda odpowiedzialna za powiększanie wszystkich znaków w łańcuchu, lower() metoda odpowiedzialna za pomniejszanie wszystkich znaków w łańcuchu, swapcase() metoda odpowiedzialna za zmianę małych znaków w duże, a dużych w małe. capitalize() metoda odpowiedzialna za zwiększanie wszystkich znaków w łańcuchu. Przykłady wykorzystania powyższych funkcji przedstawiono powyżej: 29

33 macintosh to znana odmiana jablek w USA Macintosh To Znana Odmiana Jablek W Usa MACINTOSH TO ZNANA ODMIANA JABLEK W usa MACINTOSH TO ZNANA ODMIANA JABLEK W USA macintosh to znana odmiana jablek w usa Macintosh to znana odmiana jablek w usa Metoda count Jeżeli niezbędne będzie policzenieilości wystąpień danego znaku w łańcuchu, należy użyć metody count(): Metoda, jako argument przyjmuje znak, którego ilość wystąpień jest później zwracana: 2 Metody strip, rstrip, lstrip Grupa metod odpowiedzialna za usuwanie białych znaków z łańcucha. Funkcje lstrip() i rstrip() usuwają znaki odpowiednio z lewej i prawej strony łańcucha. Funkcja strip() natomiast, usuwa białe znaki zarówno z lewej, jak i prawej strony: Witajcie w Pythonie Witajcie w Pythonie Witajcie w Pythonie Witajcie w Pythonie Metoda strip() może być również używana do usuwania innych typów danych: 30

34 Metody ljust, rjust, center Aby wyrównać tekst w podanym przez siebie zakresie, należy wykorzystać metody: ljust() wyrównuje tekst do lewej, rjust() wyrównuje tekst do prawej, center() wyrównuje tekst do środka Przykłady wykorzystania metod przedstawiono poniżej: linux linux linux Metoda join Aby połączyć rozdzielone ze sobą łańcuchy (np. całą listę) należy użyć funkcji join(): Metody find, index, rfind, rindex W celu określenia lokalizacji szukanego przez użytkownikaciągu znaków (bądź znaku) w łańcuchu należy użyć funkcji: 1. find(), index() w celu otrzymania numeru znaku podanego jako argument(liczonego od lewej strony łańcucha), 31

35 2. rfind(), r.index() w celu otrzymania numeru znaku podanego jako argument (liczonego od prawej strony łańcucha). Przykłady użycia powyższych funkcji przedstawiono powyżej: Stallman jest tworca G Richard Metoda replace Aby zastąpić jeden znak, innym znakiem w łańcuchu, należy skorzystać z metody raplce(): Microsoft jest tworca Linuksa Linus Torvaldis jest tworca Linuksa Metoda expandtabs Aby zastąpić znak tabulacji, odpowiednią ilością spacji, należy użyć metody expandtabs(): to lancuch z testowy 20 to lancuch z testowy 31 Metoda jako argument może przyjmować ilość spacji, która zastępuje znak tabulacji: 32

36 to lancuch z testowy 20 to lancuch z testowy 21 Metoda split Jeżeli zajdzie potrzeba podzielenia łańcucha i umieszczenia go w liście, należy użyć funkcji split(): Gratulacje, umiesz coraz wiecej! ['Gratulacje,', 'umiesz', 'coraz', 'wiecej!'] ['Grat', 'lacje, ', 'miesz coraz wiecej!'] Jako argument, metoda przyjmuje znak według którego może podzielić łańcuch na poszczególne elementy listy. 33

37 Ćwiczenia 1. Napisz program który zmienia pierwszą literę łańcucha na dużą, stworzy listę z jego wyrazów, a następnie policzy występowanie znaku i 2. Napisz program który zamieni łańcuch testowy na testowy (1). 10. Listy Tworzenie Jak wcześniej opisano w rozdziale z sekwencjami, aby utworzyć listę, należy umieścić jej elementy w nawiasach kwadratowych[11]: Na podstawie powyższego przykładu, nasuwają się dwa wnioski: Listy mogą zawierać różne typy danych, w tym na przykład: liczby całkowite, łańcuchy i klasę autobus Klasy mogą być dodawane w locie do listy. Świadczy o tym stworzenie w ostatnim elemencie klasy, nowej instancji klasy autobus. Tworzenie list na skróty Aby szybko utworzyć listę zawierającą podstawowe elementy, o zadanym rozmiarze można użyć operatora * : [0, 0, 0, 0, 0] Metoda ta może być stosowana dla różnego typu danych: ['witaj', 'witaj', 'witaj'] Łączenie list Listy można łączyć ze sobą na kilka sposobów. Najłatwiejszym z nich jest skorzystanie ze znanego już operatora + : 34

38 Następnym sposobem jest użycie metody extend(): Kolejną możliwość dodania wartości do listy oferuje metoda append(): ['q', 'w', 'e', ['r', 't', 'y']] W powyższym przypadku wartości ['r', 't', 'y']], nie są jednak elementami listy. Metoda append() zawsze dodaje tylko jeden element na końcu listy, więc jeżeli zamysłem jest połączenie dwóch list razem, należy użyć metody extend(). Pobieranie elementów listy Podobnie jak w przypadku łańcuchów, elementy list mogą być wyszukiwane po numerach znaków: 2 [2, 7.0] Porównywanie list Listy podobnie do łańcuchów można porównać za pomocą operatora == : True 35

39 Listy mogą być również porównywane za pomocą operatorów > i < : False False Sortowanie list Aby posortować listę, należy użyć funkcji sort(): [3, 7, 8, 'e', 'q', 'w'] Można również użyć funkcji sorterd [3] (): Funkcja sorted() różni się tym od sort(), że nie wykonuje ona operacji bezpośrednio na łańcuchu. Literacja Aby jedynie wyświetlić kolejno wszystkie elementy na liście należy dokonać literacji: q w e Możemy też dokonać literacji z modyfikacją elementów listy: 36

40 [2, 3, 4, 8, 9, 10] Usuwanie elementów Aby usunąć element z listy znając jego numer indeksu możemy użyć metody pop(): [2, 3, 4] [2, 3] lub metody del(): [2, 3, 4] [2, 3] Jeśli lokalizacja znaku w łańcuchu nie jest określona, możemy użyć metody remove(): ['w', 'e', 3, 8, 7] Można również usunąć te elementy z listy, które nie spełniają wymaganych warunków: [3, 4] Działania arytmetyczne W Pythonie jest kilka wbudowanych funkcji, które umożliwiają działania arytmetyczne, takie jakmaximum(),minimum(), i sum(): 37

41 Funkcje te działają również w przypadku łańcuchów: w e Kopiowanie list Kopiowanie list można podzielić na dwa rodzaje: kopiowanie płytkie i kopiowanie głębokie.kopiowanie płytkie, charakteryzuje się problemem o którym wspomniano już w przypadku sekwencji, a mianowicie po zmianie elementu w skopiowanej liście, zmieni się on także w oryginalnej: [2, 'w', 'e', 8] [2, 'w', 'e', 8] W przypadku kopiowania głębokiego, problem ten nie występuje: ['q', 'w', 'e', 8] [2, 'w', 'e', 8] Usuwanie zawartości listy Aby usunąć zawartość listy można użyć po prostu użyć funkcji del() i jako argumenty podać cały zakres listy: 38

42 [] Zadania 1. Utwórz listę, składającą się z elementów: ['ab', 'ac', 'ad', 'bb', 'bc', 'bd']. 2. Spraw aby lista wyglądała następująco: ['ab', 'ad', 'bc']. 3. Z listy [82,89,71,932,098] wybierz automatycznie największą wartość, następnie podziel przez najmniejszą. 4. Wyświetl kolejno całą zawartość listy: ['hb', 'ay', 'ak', 'bb', 'bc', 'bd']. 11. Krotki Krotki mogą być tworzone niezależnie, lub mogą być skonwertowaną listą, aby dokonać konwersji należy użyć metody tuple(): Krotki mogą być też tworzone z elementów oddzielonych przecinkami: ('a', 'b', 'c', 'd') Operacje na krotkach W związku z tym, że krotki z założenia są niezmienne, nie działają na nich operacje mające zastosowanie w przypadku list, takie jak np. append() czy też zwykłe przypisania wartości. Można jednak połączyć dwie krotki w jedną za pomocą operatora + : 39

43 12. Słowniki Jak wspominano w poprzednim rozdziale dotyczącym sekwencji, słowniki są typem danych bardzo zbliżonym do listy, różniącym się jednak od nich sposobem dostępu do danych. W słownikach bowiem indeks nie jest nadawany automatycznie dla każdego elementu (1,2,3), a nadaje go użytkownik. Poniżej przedstawiono przykład przypisywania i usuwania wartości ze słownika: {'computerclass': 'pc'} {} Porównywanie słowników Aby porównać dwa różne słowniki, należy użyć znanego już ze skryptu operatora == : False True Operacje na słownikach Operacje na słownikach są dość specyficzne, głównie z uwagi na brak przypisywanego automatycznie klucza. Aby wyświetlić wszystkie klucze w wybranym słowniku należy użyć funkcji keys(): ['q', 'r', 'e', 'w'] Można również wyświetlić wszystkie wartości elementów korzystając z metody keys(): [1, 'alltimefirst keyboard keys', 3, 2] 40

44 Łączenie słowników Aby połączyć ze sobą dwa słowniki, należy użyć metody update(): {'e': 3, 'i': 'alltimefirst keyboard keys', 'q': 9, 'r': 'alltimefirst keyboard keys', 't': 7, 'w': 2, 'y': 8} UWAGA: W przypadku gdy w słowniku występują dwa takie same klucze, a użyta zostanie metoda update(), wtedy wartość klucza ze słownika podanego jako argument metody update()zastąpi wcześniejszą. Usuwanie elementów słownika Aby usunąć element słownika, należy użyć znanej już funkcji del(): {'q': 1, 'e': 3, 'w': 2} 13. Zbiory Przykładowe operacje na zbiorach przedstawiono poniżej. Aby stworzyć zbiór, a następnie dodać do niego elementy można użyć metod add() i update(). W celu wykonania literacji po wszystkich elementach zbioru, trzeba użyć pętli for(): Operacje matematyczne na zbiorach Zbiory w matematyce charakteryzują się specyficzną grupą operacji, które można na nich wykonać, zalicza się do nich między innymi wyświetlanie elementów wspólnych zbiorów, czy ich łączenie. Przykłady tego typu operacji przedstawiono poniżej: 41

45 set(['szafa']) set(['stolik', 'barek', 'biurko', 'komoda', 'szafa']) set(['stolik', 'biurko']) set(['komoda', 'stolik', 'barek', 'biurko']) False False Dodawanie elementów do zbiorów Istnieje kilka sposobów dodawania elementów do zbiorów, jeśli zbiór jeszcze nie istnieje można użyć metody set(): set([0, 1, 2, 3]) set(['s', 'e', 't']) Ponieważ w powyższym przykładzie jedynie utworzono zbiory,a jako argumentu funkcji set() użyto bezpośrednio łańcucha test, spowodowało to podział każdej z liter na osobny element. Z uwagi na to, że wartości w zbiorach nie mogą się powtarzać, funkcjaprint() zwróciła tylko jeden znak t. Istnieją dwa sposoby na dodanie wartości do istniejących zbiorów: set(['stolik', 'szafa', 'biurko', 13]) set([4, 5, 'biurko', 13, 'stolik', 'szafa']) 42

46 Kopiowanie zbiorów W celu skopiowania zbioru należy użyć metody copy(): set(['stolik', 'szafa', 'biurko']) set(['stolik', 'biurko', 'szafa']) Sprawdzanie zawartości W przypadku list, można w bardzo prosty sposób sprawdzić, czy poszukiwany element znajduje się w zbiorze[12]. W tym celu należy skorzystać z operatora in : True False Usuwanie zawartości Jest kilka sposobów usunięcia zawartości ze zbiorów. Pierwszym z nich jest użycie metody remove(): set(['stolik', 'szafa']) W przypadku stosowania tej metody, podczas usunięcia elementu, który jest na liście, wyświetli ona błąd KeyError, a działanie programu zostanie przerwane. Z tego powodu lepiej używać metody discard(): 43

47 Powyższy kod po wykonaniu nie zwróci żadnego wyniku, ponieważ jako argument metody, podana została wartość, która nie istnieje w zbiorze. Może pojawić się potrzeba wyczyszczenia wszystkich elementów zbioru. W tym celu należy użyć metody clear(): set([]) Literacja Aby dokonać literacji przez wszystkie elementy zbioru należy użyć pętli: stolik szafa biurko 44

48 14. Przykładowe operacje matematyczne Poniżej przedstawiono wzór, który umożliwia przeliczenie kilowatów na konie mechaniczne: KM = KW Wzór, po przetworzeniu na kod programu może wyglądać następująco: Poniżej w tabeli 9.2 przedstawiono najczęściej używane operatory w Pythonie: Tabela 9.2. Najczęściej używane operatory w Pythonie Działanie matematyczne Składnia w Pythonie Nazwa x + y x+y dodawanie x y x-y odejmowanie x y x/y dzielenie x y x*y mnożenie [x y] x//y x mod y x%y modulo (reszta z dzielenia) y -y liczba ujemna y abs(y) wartość bezwzględna x y x**y potęgowanie y math.sqrt(y) pierwiastek UWAGA: Aby stworzyć pierwiastek kwadratowy za pomocą polecenia math.sqrt(), należy wcześniej zaimportować niezbędną bibliotekę math: 45

49 Dostosowywanie wyniku Wyniki obliczeń matematycznych nie zawsze kończą się uzyskaniem liczby całkowitej, i czasami wynik działania programu może wyglądać na przykład tak: Domyślnie Python zwraca jedynie 10 znaków po przecinku, co jednak w przypadku gdy oczekuje się od programu tylko 2-3 znaków? Wtedy należy zastosować zaokrąglenie, czyli funkcję round(). Funkcja round() przyjmuje dwa argumenty: liczbę którą należy zaokrąglić, oraz ilość miejsc po przecinku: 15. Kontrola przepływu danych W Pythonie występują trzy główne możliwości (kategorie) kontroli przepływu danych: Pętle Gałęzie Zapytania funkcyjne Jako zaawansowane formy kontroli przepływu danych uważa się generatory, i porównywania list, jednak nie zostaną one omówione w skrypcie, zapytania funkcyjne natomiast zostaną omówione w kolejnym rozdziale. Pętle Pętle są bardzo użyteczną częścią w każdym języku programowania. Można by było wręcz stwierdzić, że bez pętli, programowanie nie miałoby większego sensu. Nie trudno bowiem wyobrazić sobie sytuację, w której musimy wczytać/sprawdzić 100 różnych wartości. W Pythonie występują dwa rodzaje pętli[13]: while pętla, której działanie można przetłumaczyć jako: dopóki warunek jest prawdziwy, powtarzaj kod pętli. Jako, że pętla ta nie ma na stałe przypisanego zakresu działania, to ilość jej przebiegów, w większej mierze zależy od innego czynnika na przykład tego co wprowadzi użytkownik podczas wykonywania programu: 46

50 3 2 1 Powyższykod można przetłumaczyć w następujący sposób: dopóki x nie będzie mniejszy od 0, wyświetl wartość x, pomniejsz x o 1. Widać tutaj sporą różnicę we wspominanym już wcześniej braku ograniczenia, dlatego wewnątrz pętli znalazł się zapis x=x-1, pomniejszający wartość x dzięki temu program nie popadł w ciągłą pętle i zakończył poprawnie pracę. Zarówno w pętlach, jak i w gałęziach, można również używać polecenia else. Elsepozawala przerwać działanie pętli while, w przypadku, gdy nie może ona spełnić już zadanej zależności: Istnieje także inny sposób na zatrzymanie działania pętli, jest nim użycie wyrażenia break : Jeśli zajdzie potrzeba przejścia do kolejnej literacji pętli, bez czekania na wynik poprzedniej, należy użyć continue : 47

Wstęp do informatyki. Python 1

Wstęp do informatyki. Python 1 Wstęp do informatyki Python 1 Python - wprowadzenie Wysokopoziomowy język programowania obiektowego stworzony na początku lat dziewięćdziesiątych XXw. Cechy Pythona: - wszechstronne zastosowania (GUI,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

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?

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? Część XVIII C++ Funkcje 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? Umiemy już podzielić nasz

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

Bardziej szczegółowo

Typy danych, cd. Łańcuchy znaków

Typy danych, cd. Łańcuchy znaków Typy danych, cd. Łańcuchy znaków Typ danych string, jest rozumiany jako łańcuch znaków - liter, cyfr i symboli. Stringi definiuje się w podwójnych lub pojedyńczych cudzysłowach. typ_ kawy = " latte " typ_herbaty

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

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

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

Bardziej szczegółowo

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Podstawy programowania. Python wykład 6

Podstawy programowania. Python wykład 6 Podstawy programowania Python wykład 6 Funkcja wbudowana chr() Wywołanie funkcji chr() z argumentem m zwraca łańcuch znaków reprezentujący znak, którego punktem kodowym w Unicode jest liczba całkowita

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

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

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne

Bardziej szczegółowo

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.

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. Część XXII C++ w 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. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

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

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język PYTHON Podstawowe informacje Python to język skryptowy, interpretowany - co oznacza, że piszemy skrypt, a następnie wykonujemy go za

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

lekcja 8a Gry komputerowe MasterMind lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych

Bardziej szczegółowo

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7 Spis treści 1 Funkcje 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 1.5 Zadanie 5 1.6 Zadanie 6 1.7 Zadanie 7 Funkcje Przy programowaniu często zdarza się, że pewne czynności chcemy wykonywać

Bardziej szczegółowo

Listy, krotki, słowniki, funkcje

Listy, krotki, słowniki, funkcje Listy, krotki, słowniki, funkcje Listy Lista jest najbardziej elastycznym typem obiektu uporządkowanej kolekcji. Może zawierać różne typy danych - liczby, łańcuchy znaków, a nawet inne listy. Tworzy się

Bardziej szczegółowo

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

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 JEZYK PROGRAMOWANIA PYTHON: SEKWENCJE (ŁAŃCUCHY, LISTY, KROTKI), METODY LIST E. Dyguda-Kazimierowicz 1 Sekwencje: indeksowanie i wycinanie Poznane dotąd obiekty łańcuchowe należą do typu danych złożonych

Bardziej szczegółowo

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

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for

Bardziej szczegółowo

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

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

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

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

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

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

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

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

Bardziej szczegółowo

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 JEZYK PROGRAMOWANIA PYTHON: WPROWADZANIE DANYCH I FORMATOWANIE WYNIKÓW, WEWNETRZNA DOKUMENTACJA, PROGRAMY I MODUŁY E. Dyguda-Kazimierowicz 1 Formatowanie danych wyjściowych Do formatowania wyświetlanych

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

1. Wypisywanie danych

1. Wypisywanie danych 1. Wypisywanie danych Przykłady 1.1. Napisz program, który wypisze na ekran słowa Hello, world!. 1 // Przyklad 1: Hello, world! 3 using namespace std; 5 int main() { 6 cout

Bardziej szczegółowo

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

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Python dla początkujących Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Wstęp Stworzony w latach 90 przez Guido van Rossum Nazwa pochodzi od

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

Bardziej szczegółowo

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

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

JAVA?? to proste!! Autor: wojtekb111111

JAVA?? to proste!! Autor: wojtekb111111 1 JAVA?? to proste!! 2 Niniejszy tutorial przedstawia krótkie wprowadzenie do programowania w języku JAVA. Jakie narzędzia na początku potrzebujemy do rozpoczęcia programowania w tym języku? JDK (java

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 1. 6 października 2017 Plan wykładu 1 2 3 4 Plan wykładu 1 2 3 4 Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/ marcinm/dyd/python Materiały

Bardziej szczegółowo

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

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

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

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

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

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

Bardziej szczegółowo

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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

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

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2 Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje

Bardziej szczegółowo

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

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nazwa implementacji: Nauka języka Python wyrażenia warunkowe Autor: Piotr Fiorek Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nasz kalkulator umie już liczyć, ale potrafi przeprowadzać

Bardziej szczegółowo

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

FUNKCJE TEKSTOWE W MS EXCEL

FUNKCJE TEKSTOWE W MS EXCEL FUNKCJE TEKSTOWE W MS EXCEL ASC W językach korzystających z dwubajtowego zestawu znaków (DBCS) zmienia znaki o pełnej szerokości (dwubajtowe) na znaki o połówkowej szerokości (jednobajtowe). : ASC(tekst)

Bardziej szczegółowo

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

Python. Skąd taka nazwa? Kurs systemu UNIX 1 Python Skąd taka nazwa? Kurs systemu UNIX 1 Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Kiedy i czy konieczne?

Kiedy i czy konieczne? Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle

Bardziej szczegółowo

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright 2018 Spis treści Część I. Wprowadzenie do programowania 13 Rozdział 1. Wprowadzenie 15 Struktura

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

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

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst. Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Wykresy i interfejsy użytkownika

Wykresy i interfejsy użytkownika Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka

Bardziej szczegółowo

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt

Serwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt Serwer WWW Apache http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Katalog który ma być serwowany Moduły, które mają zostać uruchomione na serwerze m.in. PHP, mod_rewrite Wirtualne

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

Bardziej szczegółowo

Języki i metody programowania

Języki i metody programowania Języki i metody programowania Wykład 4 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Podstawy języka Python

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

1 Powtórzenie wiadomości

1 Powtórzenie wiadomości 1 Powtórzenie wiadomości Zadanie 1 Napisać program, który w trybie dialogu z użytkownikiem przyjmie liczbę całkowitą, a następnie wyświetli informację czy jest to liczba parzysta czy nieparzysta oraz czy

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

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

do drukowania tekstu służy funkcja echo <?php echo hello world!;?> jeżeli użyjemy jej kilka razy: <?php S t r o n a 1 Podstawy PHP 1. stwórz plik tekstowy o nazwie index.php Zawartość pliku musi mieć postać: Znaczniki kodu php: Przykładowy kod typu "hello world!" Wpisz powyższy kod do plkiku index.php Skopiuj

Bardziej szczegółowo

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

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

Powtórka algorytmów. Wprowadzenie do języka Java. Powtórka algorytmów. Wprowadzenie do języka Java. BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż 10! ) END. 1. Narysować schemat blokowy

Bardziej szczegółowo

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

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania

Bardziej szczegółowo

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

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Obliczenia, zmienne Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych. Proste

Bardziej szczegółowo

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 JEZYK PROGRAMOWANIA PYTHON: WYRAŻENIA LOGICZNE I INSTRUKCJA WARUNKOWA, METODY OBIEKTÓW ŁAŃCUCHOWYCH E. Dyguda-Kazimierowicz 1 Wyrażenia i operatory logiczne Wyrażenia logiczne (warunkowe, boolowskie) to

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

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

Liczby losowe i pętla while w języku Python Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak

Bardziej szczegółowo

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 1. 4 października 2013 Plan wykładu 1 2 3 4 Typy proste Kolekcje Instrukcje w języku (przypomnienie) Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/

Bardziej szczegółowo

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

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak: Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak: accept - typy zawartości MIME akceptowane przez serwer (opcjonalny) accept-charset - zestaw znaków akceptowanych

Bardziej szczegółowo

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo