• Like
Introdução a Linguagem de Programação Ruby
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Introdução a Linguagem de Programação Ruby

  • 7,609 views
Published

Apresentação utilizada em palestra na ETEC Prof. Armando Bayeux da Silva em 2008 e na Semana de Estudos do curso de Sistemas de Informação na faculdade Asser de Rio Claro em 2009.

Apresentação utilizada em palestra na ETEC Prof. Armando Bayeux da Silva em 2008 e na Semana de Estudos do curso de Sistemas de Informação na faculdade Asser de Rio Claro em 2009.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
7,609
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
190
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Linguagem de Programação - Ruby Diego Rubin - rubin.diego@gmail.com
  • 2. Ruby - Introdução● Desenvolvida por Yukishiro Matsumoto;● Lançada em 1995;● Baseado nas linguagens Perl, SmallTalk e Python;● Escrita em C;● Famosa por causa do framework Rails;● Multiplataforma;● Versão 1.8
  • 3. Ruby - Características● Interpretada;
  • 4. Ruby - CaracterísticasUma Linguagem Interpretada● Não há compilação do código;● A analise sintática acontece em tempo de execução;
  • 5. Ruby - Características● Interpretada;● Tipagem dinâmica e forte;
  • 6. Ruby - CaracterísticasTipagem● Não é necessário a declaração das variáveis; Exemplo em Pascal Exemplo em Ruby var i=5 i:integer begin i = “Inteiro” i:= 5; end.● Tipagem forte;● Objeto tem como limite a memória;
  • 7. Ruby - Características● Interpretada;● Tipagem dinâmica e forte;● Obedece ao paradigma da orientação a objeto;
  • 8. Ruby - CaracterísticasOrientação a Objetos● Considerada totalmente orientadas a objetos;● Tipos primitivos são classes;● Mixins, uma alternativa a herança múltipla;
  • 9. Ruby - Características● Interpretada;● Tipagem dinâmica e forte;● Obedece ao paradigma da orientação a objeto;● Linguagem de propósito geral;
  • 10. Ruby - CaracterísticasLinguagem de Propósito Geral● Scripts● Aplicativos Desktop● Aplicativos Web● Serviços Web
  • 11. Ruby - Características● Interpretada;● Tipagem dinâmica e forte;● Obedece ao paradigma da orientação a objeto;● Linguagem de propósito geral;● E...
  • 12. Ruby - Características É Livre
  • 13. Instalando o InterpretadorNo Linux:Nas principais distros ele já vem instalado, se não vier e sóusar o gerenciador de pacotes deles.Tarball$ tar -zxvf ruby-1.8.x.tar.gz$ cd ruby-1.8.x$ ./configure && make$ su# make installNo Windows:Baixar o instalador no site oficial do ruby.Depois NNF.
  • 14. Ferramentas - IRBEspecie de “prompt de comando”.Muito útil para teste de código. Instalação: Em ambos os sistemas operacionais o IRB já é instalado com o interpretador,
  • 15. Ferramentas - GEMGerenciador de bibliotecas do Ruby.Possui funcionamento semelhante ao apt, yum, yast, etc...Possui mais de 3000 gems no repositório.Instalação:Como no caso do IRB, o gem já vem instalado com o interpretador.
  • 16. RubyForgeRepositório de projetos.Os principais projetos em Ruby são hospedados nele.Grande fonte de documentação.
  • 17. Sintaxe● Variáveis● Blocos de Códigos● Definição de Métodos● IF – ELSE● CASE● WHILE● FOR● UNTIL● Operadores Lógicos● ARRAYS● HASHES● REQUIRE
  • 18. Sintaxe - Variáveis→ Variáveis Globais As variáveis globais devem começar com “$”. Exemplo:$i = “global” def teste $i = “teste” end→ Variareis de Instancia As variáveis de instancia devem começar com “@”. Exemplo: class Pessoa def set_nome(nome) @nome = nome end def get_nome return @nome end end→ Constantes Por padrão, constantes devem possuir todas as letrasmaiúsculas. Exemplo: ARGV
  • 19. Métodos/Funçõesdef nome_da_funcao(parametro1, parametro2, ...) <bloco de comandos>endExemplo:def alo(nome) puts “Oi #{nome}.”endParâmetro Variável:def alo(*args) args.each {|a| puts “Oi #{a}”}endO Comando return:def soma(a,b) def dict(a,b) a+b return aend puts b end
  • 20. Sintaxe – Blocosdo <comandos> Com Parâmetros:end def metodo(n) yield(n) Ou end{ Utilização: <comandos> metodo(2) {|i| i + 3}}Implementação:def metodo yieldendUtilização:metodo { <comandos> }
  • 21. Sintaxe – IF if (booleano) comandos endExemploif (i == 5) ou puts(i) puts(i) if (i == 5)end
  • 22. Sintaxe – IF - ELSE if ( teste logico) comandos else comandos endExemploif ( i.nil?) puts(“Valor de i é nil”)else puts(i)end
  • 23. Sintaxe – Operadores Lógicos Operadores Função && and E || or OU ! not NÃO == IGUAL != DIFERENTE
  • 24. 1º Exemplo : Fatorial def fatorial(n) if(n > 1) n * fatorial(n-1) else 1 end end puts fatorial(ARGV[0].to_i)
  • 25. Sintaxe – Case case ( variavel) when valor comandos when valor2 comandos else comandos endExemplo1 Exemplo2case (i) case (i)when 1..6 when 1..6 puts(“esta entre 1 e 6”) puts(“esta entre 1 e 6”)when 8 when “string” puts (“i igual a 8”) puts (“i não e inteiro”)else else puts (“nao sei”) puts (“nao sei”)end end
  • 26. Sintaxe – WHILE while (teste logico) comandos endExemplowhile (i < 10) puts i i = i +1end
  • 27. Sintaxe – UNTIL begin comandos end until (teste logico)Exemploi = 10begin puts i i=i–1end until ( i == 0)
  • 28. Sintaxe – FOR for variavel in intervalo comandos endExemplofor i in 0..10 puts iend
  • 29. Sintaxe – ARRAYSConstrutor:nome_array = []Atribuindo Valores:nome_array[0] = 5nome_array[1] = “String”nome_array[2] = Pessoa.newExemplo 1: Exemplo 2:for i in 0..3 nome_array.each { |i| puts i} puts nome_array[i]end
  • 30. Sintaxe – HASHESConstrutor:nome_hash = {}Atribuindo Valores:nome_hash= {1 => 2, “a” => “b” }nome_hash[“palavra”] = “word”nome_hash[“classe pessa”] = Pessoa.newExemplo:Saída do exemplo acima no irb.irb(main):014:0> nome_hash=> {5=>10, "pessoa"=>#<Pessoa:0xb7c853f4>, "a"=>"b", 1=>5}
  • 31. Módulosmodule Nome_do_modulo comandosendExemplo:module Lobo def self.uivar “ahuuu” endend Saída: irb(main):036:0> Lobo.uivar => "ahuuu"
  • 32. Classes - Construçãoclass Nome_da_classe comandosend Exemplo 2: class PessoaExemplo 1: def initialize(nome)class Pessoa @nome = nome def set_nome(nome) end @nome = nome def set_nome(nome) end @nome = nome def get_nome end @nome def get_nome end @nomeend end endInstanciando 1: Instanciando 2:pessoa = Pessoa.new pessoa = Pessoa.new(“Exemplo”)Observação:O nome das classes devem começar com uma letra maiúscula
  • 33. Classes - Herançaclass Nome_da_classe < Nome_da_classe_pai comandos Exemplo 2:end class Estudante < Pessoa def initialize(nome,ra)Exemplo 1: @nome = nomeclass Estudante < Pessoa @ra = ra def set_ra(ra) end @ra = ra def set_ra(ra) end @ra = ra def get_ra end @ra def get_ra end @raend end endInstanciando 1: Instanciando 2:estudante = Estudante.new estudante=Estudante.new(“Exemplo”, 001)super
  • 34. Classes – Método SingletonConsiste em definir um metodo para uma instancia que a classe painão possui.Exemplo:class Mamifero def produz_leite puts “usa como alimento para seus filhotes” end def possui_pelos puts “possui pelos” endendmorcego = Mamifero.newdef morcego.voa puts “um mamifero que voa”end
  • 35. Classes – Attribute Readers e Writers Gera, em tempo de execução, os métodos setters e getters dos atributos. Exemplo: class Pessoa attr_accessor :nome end → Para gerar somente os setters attr_writer :nome → Para gerar somente os getters attr_reader :nome
  • 36. Classes – MixinsAlternativa a herança múltiplaclass Nome_da_classe < Nome_da_classe_pai include nome_do_moduloendExemplo:class Lobisomen < Pessoa include Loboend
  • 37. Sintaxe – REQUIREImporta arquivos de código.Equivalente ao “uses” do Pascal.Exemplo:require “arquivo_de_classes.rb”require “libmysql”require “rexml/document”
  • 38. 2º Exemplo - Ordenararq_novo = File.open("lista_ordenada.txt", "w")File.open("lista.txt").sort.each do |nome| arq_novo.puts nomeend
  • 39. Link`s Meu blog: Http://diegorubin.github.com Repositório do Minicurso no GitHub http://github.com/diegorubin/Minicurso-Asser/ Site Oficial, onde pode ser baixado o interpretador: http://www.ruby-lang.org/ RubyForge: http://www.rubyforge.org/ Site Oficial do Binding do Gtk para o Ruby: http://ruby-gnome2.sourceforge.jp