EPI: Interfejs Graczny 2009/2010 Wbudowane typy danych

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

Programowanie obiektowe

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++

Wprowadzenie do języka Ruby

EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego

Programowanie w Ruby

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

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

Programowanie w Ruby

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Przetwarzanie sygnaªów

Microsoft IT Academy kurs programowania

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

Python. Wprowadzenie. Jolanta Bachan

Podstawy programowania w języku C i C++

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

Kiedy i czy konieczne?

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

1 Podstawy c++ w pigułce.

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Podstawowe części projektu w Javie

1. Podstawy budowania wyra e regularnych (Regex)

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13

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

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

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

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

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

ZMIENNE. Podstawy PHP

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Bash i algorytmy. Elwira Wachowicz. 20 lutego

MATERIAŁY DO ZAJĘĆ II

Programowanie i struktury danych 1 / 44

Programowanie w Ruby

Algorytmika i Programowanie VBA 1 - podstawy

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

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

dr inż. Jarosław Forenc

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

Tablice (jedno i wielowymiarowe), łańcuchy znaków

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

Odczyt danych z klawiatury Operatory w Javie

Algorytmy i struktury danych

1 Strumienie. 2 Pliki. 2.1 Zapis do pliku tekstowego. Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

Podstawy i języki programowania

Wstęp do programowania

Oczywiście plik musi mieć rozszerzenie *.php

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Podstawy programowania w Pythonie

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

Bazy danych, 4. wiczenia

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

Algorytmy zwiazane z gramatykami bezkontekstowymi

1 Podstawy c++ w pigułce.

Programowanie i struktury danych

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Logika dla matematyków i informatyków Wykªad 1

Typy danych i formatowanie

Podstawy Programowania C++

Programowanie funkcyjne. Wykªad 13

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Pytania dla języka Python

Przykªadowe tematy z JiMP

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

Visual Basic for Application (VBA)

System operacyjny Linux

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

Cw.12 JAVAScript w dokumentach HTML

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

LibreOffice Calc VBA

Proces tworzenia programu:

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

Programowanie w Ruby

Struktura pliku projektu Console Application

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

1 Bª dy i arytmetyka zmiennopozycyjna

Test przykładowy 2 PAI WSB Wrocław /06/2018

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

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

Bazy Danych i Usługi Sieciowe

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

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

Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ

Programowanie w Ruby

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Wprowadzenie do języka Java

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

EPI: Interfejs Graficzny 2011/2012 Laboratorium nr 2 Programowanie obiektowe

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

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ć

Transkrypt:

EPI: Interfejs Graczny 2009/2010 Wbudowane typy danych 8 czerwca 2010

Plan prezentacji Ša«cuchy Liczby Symbole i inne W. regularne Tablice i inne Struktury j zyka

Ša«cuchy znaków sekwencje 8-bitowych bajtów (w wersji 1.9 peªne wsparcie dla Unicode oraz innych kodowa«) ograniczane za pomoc ' lub " cytowanie apostrofów: 'test apostrophe: \'' "test quote: \"" tylko ªa«cuchy ograniczone podwójnymi cudzysªowami mog by 'interpolowane' za pomoc wyra»e«rubiego: name = 'john' "hello #{name}" 'hello #{name}'

Ša«cuchy wielowierszowe zaczynaj si od znaków << i ci gu znaków, który ma symbolizowa koniec ªa«cucha: str = <<END_OF_STRING The body of the string is the input lines up to one ing with the same text that followed the '<<' END_OF_STRING

Operacje na ªa«cuchach Mno»enie i konkatenowanie: "hello "+"world" #=> "hello world" "hello "*3 #=> 'hello hello hello " a="hello" a << " world" a << "!!!" #=> "hello world!!!" Badanie zawarto±ci ªa«cucha: "Test".empty? #=> false "hello".length #=> 5 "hello".size #=> 5 "hello".index('l') #=> 2 "hello".rindex('l') #=> 3 "hello"[0..3] #=> "hell" "hello"[-3..-1] #=> "llo"

Operacje na ªa«cuchach Manipulowanie ªa«cuchami: "223".to_i #=> 223 "223.5".to_i #=> 223 "223.5".to_f #=> 223.5 "FF".to_i(16) #=> 255 "101010".to_i(2) #=> 42 "hello! how are you?".split #=> ["hello!","how","are","you?"] "hello! how are you".split(/[!\?]?/) #=> ["hello","how are you"] "too many spaces ".squeeze(" ") #=> "too many spaces " "Test".downcase #=> "test" "hello \n".chomp #=> "hello " "hello...".gsub(/\./,'!') #=> "hello!!!" "hello...".sub(/\./,'!') #=> "hello!.."

Operacje na ªa«cuchach " trailing and leading spaces ".strip #=> "trailing and leading spaces" konwencje nazewnicze: operacje modykuj ce i niemodykuj ce strip - zwraca nowy ªa«cuch strip! - modykuje oryginalny ªa«cuch ª czenie operacji: "HELLO WITH SPACES ".squeeze.strip.downcase

Zadania Napisz funkcj o nazwie conversion, która zamienia liczb zapisan w jednym systemie pozycyjn, na liczb w innym systemie pozycyjnym. Funkcja powinna przyjmowa trzy argumenty: pierwszy to ªa«cuch znaków reprezentuj cy liczb podlegaj c konwersji; drugi - to podstawa systemu, w którym zapisana jest przekazana liczba; trzeci - to podstawa systemu, w którym ma zosta zwrócony wynik. conversion(100, 10, 16) => 64

Zadania cd. Napisz funkcj hex_adder, która akceptuje dwa argumenty b d ce ªa«cuchami znaków reprezentuj cymi liczby szesnastkowe i jako wynik zwraca ªa«cuch znaków b d cy reprezentacj szesnastkow sumy tych liczb: hex_adder(a,b) => 15. Napisz funkcj cleaner, która w przekazanym jej ªa«cuchu znaków usuwa ostatni znak, je±li jest znakiem nowej linii, usuwa spacje wyst puj ce na jego pocz tku i ko«cu (po usuni ciu znaku nowej linii) oraz zamienia litery na maªe: cleaner( aaaaa a) => aaaaa a.

Plan prezentacji Ša«cuchy Liczby Symbole i inne W. regularne Tablice i inne Struktury j zyka

Liczby liczby caªkowite obiekty klasy Fixnum lub Bignum liczby zmiennopozycyjne obiekty klasy Float zamiana typu jest automatyczna: a = 5 #=> 5 a.class #=> Fixnum a = a + 1.0 #=> 6.0 a.class #=> Float

Liczby ale mo»e prowadzi do niespodzianek: a = 5 a / 2 #=> 2 a / 2.0 #=> 2.5 jawna konwersja typów: 7.5.to_i #=> 7 8.to_f #=> 8.0 8.5.to_s #=> "8.5" 8.to_s(2) #=> "1000" 15.to_s(16) #=> "f"

Podstawowe operacje na liczbach Przypisanie: a = 2 a,b = 3,4 Operacje arytmetyczne: + dodawanie - odejmowanie * mno»enie / dzielenie % dzielenie modulo ** pot gowanie

Podstawowe operacje na liczbach Obiektowa interpretacja operacji arytmetycznych: 2 + 3 * 7 #=> 2.+(3.*(7)) Operatory zachowuj swoje naturalne priorytety (np. mno»enie wykonywane jest przed dodawaniem). Operatory porównania: <, <=, ==, >=, > <=> komparator: 2 <=> 2 #=> 0 2 <=> 3 #=> -1 2 <=> 0 #=> 1

Liczby jako obiekty 0.zero? #=> true 0.nonzero? #=> false b = 5.5 b.round #=> 6 c = -7 c.abs #=> 7 10.between?(12,15) #=> false 2.5.integer? #=> false 7.succ #=> 8

Zadania Napisa funkcj sum przyjmuj c dwa argumenty, zwracaj c jako rezultat sum argumentów: sum(1,2) => 3. Napisz funkcje o nazwie math1, która dla przekazanego jej argumentu zwraca nast pnik z warto±ci bezwzgl dnej jej zaokr glenia: math1(-9.5) => 11. Napisz funkcj o nazwie divide, która zwraca wynik dzielenia caªkowitego jej pierwszego argumentu przez argument drugi. Je±li do funkcji przekazane zostan warto±ci uªamkowe, to powinna by brana najwi ksza warto± caªkowita, niewi ksza od przekazanych warto±ci (tzw. podªoga): divide(7.5,2.5) => 3.

Plan prezentacji Ša«cuchy Liczby Symbole i inne W. regularne Tablice i inne Struktury j zyka

Symbole Symbol reprezentuje w Rubim pewn nazw. Jest tworzony automatycznie poprzez u»ycie :dwukropka na pocz tku nazwy: :ruby Tylko jeden obiekt klasy Symbol o danej nazwie jest tworzony w ci gu caªego wykonania programu: f1,f2 = :ruby,:ruby f1.object_id f2.object_id #ten sam obiekt f1,f2 = "ruby","ruby" f1.object_id f2.object_id #dwa ró»ne obiekty

Zakresy 1..10 (zawiera 10) 1...10 (nie zawiera 10) a = 1..10 a.min #=> 1 a.max #=> 10 a.include?(10) #=> true jako sekwencje: (1..10).to_a #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] jako interwaªy: (1..10) === 5 #=> true (1..10) === 3.1415 #=> true

Plan prezentacji Ša«cuchy Liczby Symbole i inne W. regularne Tablice i inne Struktury j zyka

Wyra»enia regularne obiekty klasy Regexp zapisywane z wykorzystaniem uko±ników, np. /hel.*/ deniuj wzorce dopasowywane do ªa«cuchów wszystkie znaki dopasowywane s do siebie samych, z wyj tkiem znaków specjalnych:.,, (, ), [, {, +,,, $, *,? aby dopasowa znak specjalny, nale»y poprzedzi go odwrotnym uko±nikiem /hel/ dopasowuje hel w dowolnym miejscu ªa«cucha /hel/ =~ "hello" #=> 0 - indeks pocz tku dopasowania /hel/ =~ "goodbye" #=> nil - brak dopasowania /^hel/ #dopasuj tylko na pocz tku /hel$/ #dopasuj tylko na ko«cu

Operacje na wyra»eniach regularnych powtórzenia: je±li r jest aktualnym znakiem, to: r * dopasowuje zero lub wi cej wyst pie«r r + dopasowuje jedno lub wi cej wyst pie«r r? dopasowuje zero lub jedno wyst pienie r r {m,n} dopasowuje co najmniej m i co najwy»ej n wyst pie«r r {m,} dopasowuje co najmniej m wyst pie«r alternatywa: dopasowuje jedn z alternatyw /hello goodbye/

Operacje na wyra»eniach regularnych Klasy znaków: [] dopasowuje dokªadnie jeden ze znaków wymienionych w nawiasie Skróty klas znaków \d [0-9] cyfry \D [ 0-9] nie-cyfry \s [\s\t\r\n\f] biaªe spacje \S [ \s\t\r\n\f] nie-biaªe spacje \w [A-Za-z0-9_] znaki alfanumeryczne \W [ A-Za-z0-9_] znaki nie-alfanumeryczne

Operacje na wyra»eniach regularnych Przykªady: /hel.*/ #dopasowuje "hello" /hello!?/ #dopasowuje "hello" i "hello!" /hello!+/ #dopasowuje "hello!!!!!", ale nie "hello" /hello[!\.]/ #dopasowuje 'hello!' i 'hello.' grupowanie: () wszystko wewn trz nawiasów traktowane jest jako pojedyncze wyra»enie /hello (John James)!/

Operacje na wyra»eniach regularnych Przechwytywanie podgrup: "123Jan Kowalski456".sub(/([a-zA-Z]+) ([a-za-z]+)/,"\\2 \\1") #=> "123Kowalski Jan456" match_data = /([a-za-z]+) ([a-za-z]+)/.match("123jan Kowalski456") #=> #<MatchData:0xb7aa6b8c> match_data[0] #=> "Jan Kowalski", inaczej $& match_data[1] #=> "Jan", inaczej $1 match_data[2] #=> "Kowalski", inaczej $2 match_data.pre_match #=> "123", inaczej $` match_data.post_match #=> "456", inaczej $'

Zadania Napisa funkcj words_swap, która akceptuje jeden argument b d cy napisem. Funkcja powinna zamienia miejscami pierwsze i trzecie sªowo wyst puj ce w napisie. Sªowa pisane s maªymi literami alfabetu ªaci«skiego i oddzielone pojedynczymi spacjami. words_swap(ala kot zenon) => zenon kot ala Napisz funkcj proto_validator, która akceptuje jeden argument b d cy ªa«cuchem znaków. Funkcja ta powinna zwraca warto± prawda (tzn. ró»n od false oraz nil) je±li ªa«cuch znaków rozpoczyna si od poprawnego okre±lenia protokoªu w adresie URL. Poprawna nazwa protokoªu skªada si od 3 do 5 maªych liter, po których nast puje sekwencja :// proto_validator(http://ala.ma.kota.pl) && true => true

Zadania cd. Napisz funkcj postal_code, która akceptuje jeden argument b d cy napisem. Funkcja powinna zwraca warto± prawda (tzn. ró»n od false oraz nil), je±li napis skªada si z poprawnego kodu pocztowego, po którym nast puje nazwa miasta pisana z wielkiej litery. W ªa«cuchu nie wyst puj polskie znaki. Poprawny napis nie mo»e zawiera spacji, ani innych biaªych znaków na pocz tku, ani na ko«cu, a nazwa miasta musi skªada si z co najmniej 2 liter. postal_code("44-100 Gliwice") && true => true

Plan prezentacji Ša«cuchy Liczby Symbole i inne W. regularne Tablice i inne Struktury j zyka

Tablice arr = ["fred",1,3.14] arr[0] #=> "fred" arr[1] #=> 1 arr[-1] #=> 3.14 arr[-2] #=> 1 arr[0..1] #=> ["fred",1] arr[-2..-1] #=> [1, 3.14] arr[0] = "Wilma" arr #=> ["Wilma",1,3.14] Array.new #=> [] Array.new(3) #=> [nil, nil, nil] Array.new(3,"a") #=> ["a", "a", "a"] zwi zªy zapis tablic zawieraj cych ªa«cuchy: arr = %w(fred wilma barney betty the\ flinstones) #=> ["fred", "wilma", "barney", "betty", "the flinstones"]

Operacje na tablicach a = [1,2,3] b = [3,4] a + b #=> [1,2,3,3,4] a - b #=> [1,2] a b #=> [1,2,3,4] a & b #=> [3] a = [2,3] a << 2 #=> [2,3,2] a.push(5) #=> [2,3,2,5] a.unshift(1) #=> [1,2,3,2,5] a.index(2) #=> 1 a.rindex(2) #=> 3

Operacje na tablicach a = [1,2,3,4] a.length #=> 4 a.empty? #=> false a.reverse #=> [4,3,2,1] a.first #=> 1 a #=> [1,2,3,4] a.shift #=> 1 a #=> [2,3,4] a.last #=> 4 a #=> [2,3,4] a.pop #=> 4 a #=> [2,3]

Operacje na tablicach a = ["a",nil,"b","b",nil,"c"] a.compact #=> ["a","b","b","c"] a #=> ["a",nil,"b","b",nil,"c"] a.compact! #=> ["a","b","b","c"] a #=> ["a","b","b","c"] a.uniq! #=> ["a","b","c"] a.join(", ") #=> "a, b, c" a.delete("a") #=> "a" a #=> ["b", "c"] a.delete_at(1) #=> "c" a #=> ["b"] a == ["b"] #=> true

Tablice asocjacyjne h = {"name" => "Fred", "surname" => "Flinstone"} h["name"] h["name"] = "Wilma" h[:name]= "Wilma" h1 = Hash.new h1[:foo] h2 = Hash.new(0) h2[:foo]

Tablice asocjacyjne h = {:foo => "bar", :bar => "baz"} h.empty? #=> false h.size #=> 2 h.length #=> 2 h.include?(:foo) #=> true h.has_key?(:foo) #=> true #synonim include? h.has_value?("bar") #=> true h.index("bar") #=> :foo h.keys #=> [:bar, :foo] h.values #=> ["baz","bar"] h.delete(:foo) h.clear

Algebra Boole'a Jakie obiekty maj warto± true w Rubim? Wszystko co: nie jest warto±ci pust (nil) nie jest faªszem (false) 0 nie ma warto±ci faªsz and && or not! Badanie deklaracji zmiennych: defined?(dummy) #=> nil dummy.nil? #=> niezdefiniowana metoda lub zmienna lokalna

Równo± == równo± === komparator w instrukcji case (switch) < <= >= > <=> (-1,0,1) = dopasowanie wyra»e«regularnych eql? ten sam typ i identyczna warto± equal? to samo object_id (uwaga: symbole i liczby typu Fixnum posiadaj zawsze tylko jedn instancj dla danej warto±ci) m, n = 1, 1.0 m == n #=> true m.eql? n #=> false m, n = 1.0, 1.0 m.eql? n #=> true m.equal? n #=> false

Plan prezentacji Ša«cuchy Liczby Symbole i inne W. regularne Tablice i inne Struktury j zyka

Warunki if (ext == "rb") (then) lang="ruby" elsif (ext == "pl") (then) lang="perl" else lang="unknown" if zwraca warto± ostatniego obliczonego wyra»enia, wi c lang = if (ext == "rb") "ruby" elsif (ext == "pl") "perl" else "unknown"

Warunki then lub : wymagane w przypadku jednolinijkowców lang = if (ext == "rb") then "ruby" elsif (ext == "pl") then "perl" else "unknown" lang = if (ext == "rb") : "ruby" elsif (ext == "pl") : "perl" else "unknown"

Warunki unless (ext == "rb") hint = "go for ruby!" else hint = "good choice!" hint = ext=="rb"? "good choice!" : "go for ruby" if oraz unless jako modykatory: puts "a = #{a}" if debug return unless go_on

Warunki idiom Rubiego Mamy zmienn words, któr chcemy wykorzysta jako tablic sªów. Chcemy doda element, lecz nie wiemy, czy tablica zostaªa zainicjowana Mo»emy to zrobi nast puj co: if words.nil? words = [] words << "new word" Najlepiej jednak wykorzysta ten idiom Rubiego: words = [] words << "new word"

Warunki case case ext when "rb" then lang="ruby" when "pl" then lang="perl" else lang="unknown" operator === wykorzystywany jest do porównywania: century = case year when 1901..2000 "XX" when 2001..2100 "XXI"

P tle while wykonywana dopóki warunek jest prawdziwy while line = gets print line until wykonywana do czasu gdy warunek stanie si prawdziwy count=100 until count < 10 count-=1

P tle while i until jako modykatory: a=0 puts a+=1 while a<10 puts a-= until a<8

Bloki def even(tab) result = [] for e in tab if e % 2 == 0 # tylko ta linia jest inna result << e result def odd(tab) result = [] for e in tab if e % 2!= 0 # tylko ta linia jest inna result << e result tab.select{ e e % 2 == 0} tab.select{ e e % 2!= 0}

Bloki def three_times yield yield yield three_times{puts "Hello!"} # "Hello!" # "Hello!" # "Hello!" three_times do puts "Hello!"

Bloki def three_times yield 1 yield 2 yield 3 three_times{ i puts "Hello! #{i}"} # "Hello! 1" # "Hello! 2" # "Hello! 3"

Bloki def three_times puts yield(1) puts yield(2) puts yield(3) three_times{ i puts "Hello! #{i}"; "#{i} pozdrowienia z bloku"} # "Hello! 1" # "1 pozdrowienia z bloku" # "Hello! 2" # "2 pozdrowienia z bloku" # "Hello! 3" # "3 pozdrowienia z bloku"

Bloki def fancy_format(str) if block_given? yield str else "~#{str}~" fancy_format("hello") #=> "~hello~" fancy_format("hello"){ s "***#{s}***"} #=> "***hello***" s=1 fancy_format("hello") do s "---#{s}---" s =>"hello"

Iteratory 3.times{print "Ho! "} => "Ho! Ho! Ho! " 0.upto(9){ x print x," "} => "0 1 2 3 4 5 6 7 8 9 " 0.step(12,3){ x print x," "} => "0 3 6 9 12 " [1,2,3,4,5].each{ e print e," "} File.open("myfile.txt").each do line #... loop do #...

Iteratory for e in ['fee','fie','foe','fum'] print e ['fee','fie','foe','fum'].each do e print e for i in 0..9 print i+1

Kontrola p tli break opuszcza aktualn p tl redo powtarza iteracj bez sprawdzania warunku lub pobierania nast pnego elementu next nast pna iteracja retry powtarza caª p tl (u»ywa z rozwag ) do break, redo i next mo»na przekaza warto± : result = while line = gets break(line) if line =~ /^\d/

Materiaªy ¹ródªowe wbudowane typy Rubiego ruby-doc: http://www.ruby-doc.org/core/ http://www.ruby-doc.org/stdlib/ wbudowane typy w ksi»ce z kilofem: http://www.rubycentral.com/pickaxe/builtins.html http://www.rubycentral.com/pickaxe/lib_standard.html gotapi.com nie tylko Ruby http://www.gotapi.com Why's poignant guid to Ruby nieco inne spojrzenie na j zyk ;-) Typy standardowe, struktury j zyka http://www.apohllo.pl/dydaktyka/ruby/intro

Materiaªy ¹ródªowe Typy standardowe http://www.rubydoc.org/docs/programmingruby/html/tut_stdtypes.html Kontenery, bloki http://www.rubydoc.org/docs/programmingruby/html/tut_containers.html Wyra»enia http://www.rubydoc.org/docs/programmingruby/html/tut_expressions.html Zmienne, warto±ci, obiekty http://talklikeaduck.denhaven2.com/articles/2006/09/13/onvariables-values-and-objects