Programowanie w Ruby

Podobne dokumenty
Programowanie w Ruby

Programowanie obiektowe

Kurs rozszerzony języka Python

Wykład nr 1 Język Ruby i framework Rails

Zaawansowany kurs języka Python

Programowanie w Ruby

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

1 Podstawy c++ w pigułce.

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

Algorytmy i struktury danych

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

Redis, skrypty w języku Lua

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Wprowadzenie do języka Ruby

Struktura pliku projektu Console Application

Microsoft IT Academy kurs programowania

Język Python. Język Python 1/35

Bloki anonimowe w PL/SQL

Pętla for. Wynik działania programu:

Wstęp do programowania

Magia Ruby : programowanie na wesoło / Eric Weinstein. Warszawa, Spis treści

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Wykresy i interfejsy użytkownika

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

Środowisko programisty

Instrukcje sterujące. Programowanie Proceduralne 1

Cw.12 JAVAScript w dokumentach HTML

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

1 Podstawy c++ w pigułce.

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Programowanie w Ruby

Przegląd języka Python. Łukasz Anwajler

Programowanie, algorytmy i struktury danych

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

System operacyjny Linux

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

KURSY PROGRAMOWANIA DLA DZIECI

Programowanie w Ruby

Podstawy programowania - 1

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

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

Metody Metody, parametry, zwracanie wartości

Programowanie strukturalne i obiektowe

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

ForPascal Interpreter języka Pascal

KURSY PROGRAMOWANIA DLA DZIECI

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

Podstawy programowania (1)

Podstawy Programowania.

EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

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

System operacyjny Linux

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

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

Umieszczanie kodu. kod skryptu

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Pascal - wprowadzenie

Wprowadzenie do Scilab: podstawy języka Scilab

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

LibreOffice Calc VBA

Programowanie w języku Python. Grażyna Koba

Programowanie Obiektowe i C++

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

Matlab Składnia + podstawy programowania

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

Warunki logiczne instrukcja if

Języki skryptowe w programie Plans

Visual Basic for Applications. Wstęp

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Programowanie proceduralne w języku C++ Pętle, tablice

Wprowadzenie do języka Java

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

JAVAScript w dokumentach HTML (1)

Wstęp do Informatyki dla bioinformatyków

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

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Podstawy Programowania

Wstęp do ruby dla programistów javy

Warsztaty dla nauczycieli

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Podstawy programowania w języku C

KOTLIN. Język programowania dla Androida

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

Ruby. Leksykon kieszonkowy

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

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

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

Transkrypt:

Programowanie w Ruby 1 Marcin Młotkowski 8 października 2018

Plan wykładu 1 2 Źródła wiedzy Zaliczenia 3 4 5 Marcin Młotkowski Programowanie w Ruby 2 / 432

Informacje organizacyjne Strona wykładu http://www.ii.uni.wroc.pl/~marcinm/dyd/ruby/ Marcin Młotkowski Programowanie w Ruby 3 / 432

Plan wykładu Źródła wiedzy Zaliczenia 1 2 Źródła wiedzy Zaliczenia 3 4 5 Marcin Młotkowski Programowanie w Ruby 4 / 432

Cele wykładu Źródła wiedzy Zaliczenia Poznanie języka Ruby, jego składni i semantyki poznanie środowiska Ruby on Rails Marcin Młotkowski Programowanie w Ruby 5 / 432

Plan wykładu Źródła wiedzy Zaliczenia 1 Język Ruby: typy podstawowe, składania, semantyka 2 Typy wbudowane 3 refleksje (introspekcje) 4 wątki 5 środowisko graficzne 6 Ruby on Rails Marcin Młotkowski Programowanie w Ruby 6 / 432

Źródła internetowe Źródła wiedzy Zaliczenia Oficjalna strona http://www.ruby-lang.org/pl/ Marcin Młotkowski Programowanie w Ruby 7 / 432

Źródła internetowe Źródła wiedzy Zaliczenia Oficjalna strona http://www.ruby-lang.org/pl/ Dokumentacja http://www.ruby-doc.org/ Inne materiały internetowe Np. Ruby Coans Marcin Młotkowski Programowanie w Ruby 7 / 432

Książki do Ruby Źródła wiedzy Zaliczenia D. Thomas, C. Fowler, A. Hunt. Programowanie w języku Ruby, Helion 2006 Marcin Młotkowski Programowanie w Ruby 8 / 432

Książki do Ruby Źródła wiedzy Zaliczenia D. Thomas, C. Fowler, A. Hunt. Programowanie w języku Ruby, Helion 2006 tzw. The PickAxe (od obrazka na okładce); dostępna w internecie; podobno najlepiej sprzedająca się książka z informatyki w Amazonie w 2005 i 2006 roku. Marcin Młotkowski Programowanie w Ruby 8 / 432

Książki do Ruby Źródła wiedzy Zaliczenia L. Carlson, L. Richardson. Ruby. Receptury, Helion 2007 H. Fulton. Ruby. Tao programowania w 400 przykładach, Helion 2008 D. Flanagan, Y. Matsumoto. Ruby. Programowanie, Helion 2009 M.Fitzgerald. Ruby. Wprowadzenie, Helion 2007 Marcin Młotkowski Programowanie w Ruby 9 / 432

Książki do Ruby on Rails Źródła wiedzy Zaliczenia S. Holzner. Ruby on Rails, Helion 2008 B. Tate, L. Carlson, C. Hibbs. Ruby on Rails. Wprowadzenie, Helion 2009 Marcin Młotkowski Programowanie w Ruby 10 / 432

Zasady prowadzenia pracowni Źródła wiedzy Zaliczenia Pierwsza część semestru (ok. 10 tyg) Po wykładzie będą ogłaszane listy krótkich zadań do zrobienia na najbliższą pracownię. Marcin Młotkowski Programowanie w Ruby 11 / 432

Zasady prowadzenia pracowni Źródła wiedzy Zaliczenia Pierwsza część semestru (ok. 10 tyg) Po wykładzie będą ogłaszane listy krótkich zadań do zrobienia na najbliższą pracownię. Druga część semestru Do wykonania będzie większy projekt, preferowane środowisko: Ruby on Rails Marcin Młotkowski Programowanie w Ruby 11 / 432

Zasady prowadzenia pracowni Źródła wiedzy Zaliczenia Pierwsza część semestru (ok. 10 tyg) Po wykładzie będą ogłaszane listy krótkich zadań do zrobienia na najbliższą pracownię. Druga część semestru Do wykonania będzie większy projekt, preferowane środowisko: Ruby on Rails Zaliczenie semestru Zdobycie przynajmniej połowy możliwych do zdobycia punktów. Marcin Młotkowski Programowanie w Ruby 11 / 432

Zasady prowadzenia pracowni Źródła wiedzy Zaliczenia Pierwsza część semestru (ok. 10 tyg) Po wykładzie będą ogłaszane listy krótkich zadań do zrobienia na najbliższą pracownię. Druga część semestru Do wykonania będzie większy projekt, preferowane środowisko: Ruby on Rails Zaliczenie semestru Zdobycie przynajmniej połowy możliwych do zdobycia punktów. Egzamin To jest kurs, więc egzaminu nie ma ;-) Marcin Młotkowski Programowanie w Ruby 11 / 432

Plan wykładu 1 2 Źródła wiedzy Zaliczenia 3 4 5 Marcin Młotkowski Programowanie w Ruby 12 / 432

Yukihiro Matsumoto a.k.a Matz Marcin Młotkowski Programowanie w Ruby 13 / 432

Yukihiro Matsumoto a.k.a Matz Pochodzenie nazwy języka Marcin Młotkowski Programowanie w Ruby 13 / 432

Stan obecny języka Aktualna wersja 2.5.1 (stan na 2 października 2018) Marcin Młotkowski Programowanie w Ruby 14 / 432

Stan obecny języka Aktualna wersja 2.5.1 (stan na 2 października 2018) Rozwój języka Społeczność Marcin Młotkowski Programowanie w Ruby 14 / 432

Pochodzenie języka trochę z Perla ($, $ ); trochę ze Smalltalka; trochę z Pythona; trochę z CLOS a; trochę z Lispu. Marcin Młotkowski Programowanie w Ruby 15 / 432

Co jest fajnego w Rubym programowanie strukturalne programowanie obiektowe programowanie funkcjonalne Marcin Młotkowski Programowanie w Ruby 16 / 432

Ogólnie o języku język interpretowany; typowanie dynamiczne (duck typing); brak deklaracji typów; sporo typów wbudowanych. Marcin Młotkowski Programowanie w Ruby 17 / 432

Co jest fajnego w Ruby? Zoptymalizowany dla przyjemności programisty. Marcin Młotkowski Programowanie w Ruby 18 / 432

Co jest fajnego w Ruby? Zoptymalizowany dla przyjemności programisty. Index TIOBE, wrzesień 2018 12. pozycja Marcin Młotkowski Programowanie w Ruby 18 / 432

Co jest fajnego w Ruby? Zoptymalizowany dla przyjemności programisty. Index TIOBE, wrzesień 2018 12. pozycja Skąd taka popularność? Ruby on Rails!!! Marcin Młotkowski Programowanie w Ruby 18 / 432

Zastosowania Gdzie się używa Ruby ego Open Domain Server telefonia 3G (Lucent); robotyka (Siemens); systemy webowe (Basecamp, Blue Sequence dla Toyota Motors); i wiele innych. Marcin Młotkowski Programowanie w Ruby 19 / 432

Praca interaktywna $ irb irb(main):001:0> puts("a kuku") A kuku => nil irb(main):002:0> 2+2 => 4 irb(main):003:0> Marcin Młotkowski Programowanie w Ruby 20 / 432

Wyrażenia w Ruby m Arytmetyka literały: 1024, 3.1415 wyrażenia: (2 + 2) * 4 Marcin Młotkowski Programowanie w Ruby 21 / 432

Wyrażenia w Ruby m Arytmetyka Napisy literały: 1024, 3.1415 wyrażenia: (2 + 2) * 4 napis, napis Marcin Młotkowski Programowanie w Ruby 21 / 432

Składnia Separacja instrukcji instrukcje są w kolejnych wierszach instrukcje można oddzielać średnikiem Marcin Młotkowski Programowanie w Ruby 22 / 432

Zmienne Nazwy zmiennych Na razie piszemy małą literą. Nazwy mogą się też zaczynać podkreśleniem. Marcin Młotkowski Programowanie w Ruby 23 / 432

Zmienne Nazwy zmiennych Na razie piszemy małą literą. Nazwy mogą się też zaczynać podkreśleniem. pierwsza = 11 r, g, b = 12, 23, 34 test = test Marcin Młotkowski Programowanie w Ruby 23 / 432

Instrukcja warunkowa if slowo = dlugie if krótkie.length < slowo.length puts Krótkie else ; puts Długie end Marcin Młotkowski Programowanie w Ruby 24 / 432

Instrukcja warunkowa case zwierze = hau case zwierze when hau, woof puts pies when miau puts kot else puts gatunek nieznany nauce end Marcin Młotkowski Programowanie w Ruby 25 / 432

Jeszcze inna instrukcja warunkowa puts Zimno if temperatura <= -20 puts Pogoda unless temp < 15 or temp > 20 Marcin Młotkowski Programowanie w Ruby 26 / 432

Wyrażenia logiczne Fałsz: nil oraz false prawda: cała reszta; Operatory: and, or, not, ==, <=, <, >, defined? Marcin Młotkowski Programowanie w Ruby 27 / 432

Pętla while a, b = 0, 1 while b < 10 puts b a, b = b, a + b end Marcin Młotkowski Programowanie w Ruby 28 / 432

Pętla for for x in 1..10 puts x end for el in [1,2,3,4,5,6,7,8,9,10] sum = sum + el end Marcin Młotkowski Programowanie w Ruby 29 / 432

I jeszcze inne pętle 5.times do puts Hurra!\n end i += 1 while i < 100 Marcin Młotkowski Programowanie w Ruby 30 / 432

Pętle, uzupełnienie Instrukcja break kończy pętlę Marcin Młotkowski Programowanie w Ruby 31 / 432

Pętle, uzupełnienie Instrukcja break kończy pętlę Instrukcja next przechodzi na koniec pętli Marcin Młotkowski Programowanie w Ruby 31 / 432

Pętle, uzupełnienie Instrukcja break kończy pętlę Instrukcja next przechodzi na koniec pętli Instrukcja redo powtarza pętlę od początku bez przeliczania warunku lub pobierana kolejnego elementu (w iteratorze) Marcin Młotkowski Programowanie w Ruby 31 / 432

Tablice [ 1, dwa, 3.0 ] Przetwarzanie bloków tablica = [ [1,2,3], [4,5]] suma = 0 i = 0 while i < tablica.length subtablica = tablica[i] j = 0 while j < subtablica.length suma += subtablica[j] j += 1 end i += 1 end Marcin Młotkowski Programowanie w Ruby 32 / 432

Sumowanie liczb: przykład def suma(n) s=i=0 for i in 1..n s += i end return s end Marcin Młotkowski Programowanie w Ruby 33 / 432

Sumowanie liczb: przykład def suma(n) s=i=0 for i in 1..n s += i end return s end def suma(n) s=i=0 for i in 1..n s += i end s end Marcin Młotkowski Programowanie w Ruby 33 / 432

Zasięg zmiennych Zmienne mają zasięg tylko lokalny, np. zmienna = A kuku def wypisz puts zmienna end in wypisz : undefined local variable or method zmienna for main:object (NameError) Marcin Młotkowski Programowanie w Ruby 34 / 432

Plan wykładu 1 2 Źródła wiedzy Zaliczenia 3 4 5 Marcin Młotkowski Programowanie w Ruby 35 / 432

Wypisanie komunikatu Instrukcje puts i print puts zawsze dodaje na końcu \n print nie dodaje na końcu \n. Marcin Młotkowski Programowanie w Ruby 36 / 432

Wypisanie komunikatu Instrukcje puts i print puts zawsze dodaje na końcu \n print nie dodaje na końcu \n. tablica = [1,2,3] puts tablica print tablica 1 2 3 123 Marcin Młotkowski Programowanie w Ruby 36 / 432

Wczytywanie danych z terminala gets puts Skąd jesteś miasto = gets Ale gets wczytuje ze znakiem \n, lepiej więc puts Skąd jesteś miasto = gets.chomp Marcin Młotkowski Programowanie w Ruby 37 / 432

Prosty przykład printf Cześć. Jak masz na imię? moje imie = gets.chomp puts #{moje imie}. Milo mi Cię poznać. Marcin Młotkowski Programowanie w Ruby 38 / 432

Plan wykładu 1 2 Źródła wiedzy Zaliczenia 3 4 5 Marcin Młotkowski Programowanie w Ruby 39 / 432

Dygresja I Kompilator wsadowy $ ruby plik.rb Marcin Młotkowski Programowanie w Ruby 40 / 432

Dygresja I Kompilator wsadowy $ ruby plik.rb Plik wykonywalny #!/usr/bin/ruby def silnia(n) if n == 0; 1 else n * silnia(n-1) end end puts silnia(10) Marcin Młotkowski Programowanie w Ruby 40 / 432

Dygresja II Środowisko/edytor vim, gedit, geany, notepad,... Marcin Młotkowski Programowanie w Ruby 41 / 432

Dygresja II Środowisko/edytor vim, gedit, geany, notepad,... RubyMine firmy JetBrains Produkt bezpłatny do celów edukacyjnych. Marcin Młotkowski Programowanie w Ruby 41 / 432

Dygresja II Środowisko/edytor vim, gedit, geany, notepad,... RubyMine firmy JetBrains Produkt bezpłatny do celów edukacyjnych. TryRuby.org Można uruchomić kod w przeglądarce Marcin Młotkowski Programowanie w Ruby 41 / 432