Programowanie w Ruby

Podobne dokumenty
Programowanie w Ruby

Programowanie obiektowe

Programowanie w Ruby

Wprowadzenie do języka Ruby

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

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Programowanie w Ruby

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Kurs rozszerzony języka Python

Programowanie w Ruby

Wstęp do programowania 2

Programowanie w Ruby

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

EPI: Interfejs Graficzny Wykład nr 2 Wbudowane typy danych Rubiego

Programowanie w Ruby

Programowanie w Ruby

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

MATERIAŁY DO ZAJĘĆ II

Programowanie w Ruby

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

Podstawy programowania C. dr. Krystyna Łapin

Programowanie w Ruby

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

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

Java Podstawy. Michał Bereta

Wstęp do ruby dla programistów javy

Wstęp do programowania. Różne różności

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Tworzenie aplikacji w języku Java

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Microsoft IT Academy kurs programowania

System operacyjny Linux

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

LibreOffice Calc VBA

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

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

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

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

PHP: bloki kodu, tablice, obiekty i formularze

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

PARADYGMATY PROGRAMOWANIA Wykład 4

Podstawy programowania w języku C++

Narzędzia informatyczne w językoznawstwie

Zmienne, stałe i operatory

Programowanie w Ruby

dr inż. Jarosław Forenc

Podstawowe części projektu w Javie

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

DYNAMICZNE PRZYDZIELANIE PAMIECI

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w języku C++

ZASADY PROGRAMOWANIA KOMPUTERÓW

1. Wprowadzenie do języka PHP

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie

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

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

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Programowanie i struktury danych

Języki programowania wysokiego poziomu. PHP cz.2.

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

Język programowania PASCAL

STL: Lekcja 1&2. Filozofia STL

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

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Stałe i zmienne znakowe. Stała znakowa: znak

Kurs WWW. Paweł Rajba.

Zaawansowany kurs języka Python

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Podstawy Programowania C++

Tablice deklaracja, reprezentacja wewnętrzna

Informatyka 1. Przetwarzanie tekstów

Język C zajęcia nr 11. Funkcje

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Programowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop Spis treści

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Wstęp do Programowania potok funkcyjny

Tablice, funkcje - wprowadzenie

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

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

Programowanie obiektowe

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

System operacyjny Linux

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

Podstawy programowania w Pythonie

Transkrypt:

Programowanie w Ruby Wykład 2 Marcin Młotkowski 10 października 2012

Plan wykładu Typy proste Typy złożone Napisy Tablice Przedziały Tablice asocjacyjne Bloki

Liczby całkowite Fixnum Zakres: [ 2 30... 2 30 1] Przykłady: 119, 0xFFFF, 0b1101001 Konwencja: 8 388 608 Bignum Dowolnie wielkie liczby Automatyczna konwersja, jeśli wynik działania lub stała przekracza Fixnum

Operacje na typie Fixnum wyrażenie wynik x <=> y porównuje liczby, zwraca -1, 0, 1 123[2] zwraca 2 bit (licząc od 0) 5.size liczba bitów 5.to f przekształca na liczbę klasy Float 3.to s przekształcenie do String 15.to s(2) przekształcenie do String, ale przy podstawie 2 x.zero? sprawdzenie, czy liczba jest równa zero

Liczby typu Float Zakres: [Float::MIN..FLOAT::MAX] Standardowe operatory, oraz operator <=> 3.14.to s w.finite?

Plan wykładu Typy proste Typy złożone Napisy Tablice Przedziały Tablice asocjacyjne Bloki

Napisy (typ: String) Przykłady: string, string alfabet Morse\ a to jest \ cytat\

Notacja Q %q/ciągłe cytowanie jest bardzo żmudne/ %Q!Ale w Ruby m bardzo łatwe!

here documents napis = <<END OF STRING Ogary poszły w las. Echo ich grania słabło coraz bardziej, aż wreszcie utonęło w milczeniu leśnym. END OF STRING

Wyrażenia wewnątrz napisów 2+2=#{2 + 2} Hip hip #{ Hura! * 3} pi = 3.1415 puts pi = #{pi}

Operacje na napisach irb(main):001:0> abc + def => "abcdef"

Operacje na napisach irb(main):001:0> abc + def => "abcdef" irb(main):001:0> x = abc => "abc" irb(main):002:0> x << def => "abcdef"

Odwołania do elementów wyrażenie wynik abcdef [3] 100 abcdef [3,1] d abcdef [3..4] de abcdef [-3..-1] def abcdef [/(d.f)/] def

Modyfikacja napisów Operacja x = skówka x[2] = u x[/w/] = f x[0..1]= zas wartość zmiennej x x = skówka x = skuwka x = skufka x = zasufka

Modyfikowanie a tworzenie Modyfikowany jest napis operacje modyfikowania [ ]=, << Napis nie jest modyfikowany, za to tworzony jest nowy, który jest wynikiem operacje tworzenia +, *

Pary metod Zwraca kopię modyfikuje napis opis aaa.capitalize aaa.capitalize! zamienia litery na wielkie str\n.chomp str\n.chomp! usuwa białe znaki z końców napisu

Formatowanie tekstu Pi = %.2f % 3.1415 Imię %s nazw %s % [ Jan, Kowalski ]

Inne operacje na stringach Całe mnóstwo ;-)

Inne operacje na stringach Całe mnóstwo ;-) http://ruby-doc.org/core/ String

Dygresja: dokumentacja wbudowana RDoc $ ri String $ ri String.chomp $ ri chomp

Przykłady tablic Tworzenie tablic [1, dwa, 3.0] %w{ poniedziałek wtorek środa } daje: [ poniedziałek, wtorek, środa ]

Przykłady tablic Tworzenie tablic [1, dwa, 3.0] %w{ poniedziałek wtorek środa } daje: [ poniedziałek, wtorek, środa ] Parę uwag o tablicach indeksowanie jest od zera dołączanie elementów na koniec [1, 2, 3] << 4 << 5 Usuwanie ostatniego elementu arr.delete(arr.length - 1)

Operacje na tablicach Odwołania do elementów [ zero, jeden, dwa, trzy, cztery ][1,3] daje [ jeden, dwa, trzy ] [ zero, jeden, dwa, trzy, cztery ][1..3] daje [ jeden, dwa, trzy ]

Operacje na tablicach Odwołania do elementów [ zero, jeden, dwa, trzy, cztery ][1,3] daje [ jeden, dwa, trzy ] [ zero, jeden, dwa, trzy, cztery ][1..3] daje [ jeden, dwa, trzy ] Modyfikacje y = [1,1,2,3,5,8] y[3..5] = [1,1,2] daje [1, 1, 2, 1, 1, 2]

Operacje na tablicach Odwołania do elementów [ zero, jeden, dwa, trzy, cztery ][1,3] daje [ jeden, dwa, trzy ] [ zero, jeden, dwa, trzy, cztery ][1..3] daje [ jeden, dwa, trzy ] Modyfikacje y = [1,1,2,3,5,8] y[3..5] = [1,1,2] daje [1, 1, 2, 1, 1, 2] Więcej operacji na tablicach $ ri Array

Przykłady przedziałów Przedziały 1..7 0...256 a.. z Konwersja przedziału na tablicę (1..5).to_a ==> [1,2,3,4,5] ( aac.. aaf ).to_a ==> ["aac", "aad", "aae", "aaf"]

Zastosowanie przedziałów epoka = case rok when 476..1453: średniowiecze when 1454..1918: nowożytność when 1918..2010: współczesność end

Deklaracja słownika slownik = { one => 1, two => 2, three => 3 }

Deklaracja słownika slownik = { one => 1, two => 2, three => 3 } Pusty słownik slownik = { } slownik = Hash.new(0)

Przetwarzanie słowników slownik = { 1=> jeden, 2 => dwa } for k in slownik.keys puts [ + k.to s + ]= + slownik[k].to s end

Plan wykładu Typy proste Typy złożone Napisy Tablice Przedziały Tablice asocjacyjne Bloki

Składnia { } instrukcje do instrukcje end

Bloki z parametrem (parametrami) { z1, z2 instrukcje }

Zastosowania bloków Przetwarzanie tablic arr = [ czerwony, biały, zielony ] arr.each { item printf( Kolor %s\n, item) }

Zastosowania bloków Przetwarzanie tablic arr = [ czerwony, biały, zielony ] arr.each { item printf( Kolor %s\n, item) } Przetwarzanie słowników slownik.each { k, v puts #{k} => #{v} }

Zastosowania bloków Przetwarzanie tablic arr = [ czerwony, biały, zielony ] arr.each { item printf( Kolor %s\n, item) } Przetwarzanie słowników slownik.each { k, v puts #{k} => #{v} } Inne przykłady 15.downto(0) { i printf( %04b\n, i) } xxx.upto( xyz ) { i puts i }

Ostatnie przykłady [1,2,3,4].collect! { i 2**i } [2, 4, 8, 16]

Ostatnie przykłady [1,2,3,4].collect! { i 2**i } [2, 4, 8, 16] [1,2,3,4].delete if { i i % 2 == 0 } [1, 3]