Linguagem de Programação -           Ruby Diego Rubin - rubin.diego@gmail.com
Ruby - Introdução●   Desenvolvida por Yukishiro Matsumoto;●   Lançada em 1995;●   Baseado nas linguagens Perl, SmallTalk e...
Ruby - Características●   Interpretada;
Ruby - CaracterísticasUma Linguagem Interpretada●   Não há compilação do código;●   A analise sintática acontece em tempo ...
Ruby - Características●   Interpretada;●   Tipagem dinâmica e forte;
Ruby - CaracterísticasTipagem●   Não é necessário a declaração das variáveis;    Exemplo em Pascal        Exemplo em Ruby ...
Ruby - Características●   Interpretada;●   Tipagem dinâmica e forte;●   Obedece ao paradigma da orientação a    objeto;
Ruby - CaracterísticasOrientação a Objetos●   Considerada totalmente orientadas a objetos;●   Tipos primitivos são classes...
Ruby - Características●   Interpretada;●   Tipagem dinâmica e forte;●   Obedece ao paradigma da orientação a    objeto;●  ...
Ruby - CaracterísticasLinguagem de Propósito Geral●   Scripts●   Aplicativos Desktop●   Aplicativos Web●   Serviços Web
Ruby - Características●   Interpretada;●   Tipagem dinâmica e forte;●   Obedece ao paradigma da orientação a    objeto;●  ...
Ruby - Características           É Livre
Instalando o InterpretadorNo Linux:Nas principais distros ele já vem instalado, se não vier e sóusar o gerenciador de paco...
Ferramentas - IRBEspecie de “prompt de comando”.Muito útil para teste de código. Instalação: Em ambos os sistemas operacio...
Ferramentas - GEMGerenciador de bibliotecas do Ruby.Possui funcionamento semelhante ao apt, yum, yast, etc...Possui mais d...
RubyForgeRepositório de projetos.Os principais projetos em Ruby são hospedados nele.Grande fonte de documentação.
Sintaxe●   Variáveis●   Blocos de Códigos●   Definição de Métodos●   IF – ELSE●   CASE●   WHILE●   FOR●   UNTIL●   Operado...
Sintaxe - Variáveis→ Variáveis Globais   As variáveis globais devem começar com “$”.   Exemplo:$i = “global”              ...
Métodos/Funçõesdef nome_da_funcao(parametro1, parametro2, ...)   <bloco de comandos>endExemplo:def alo(nome)   puts “Oi #{...
Sintaxe – Blocosdo   <comandos>           Com Parâmetros:end                     def metodo(n)                           y...
Sintaxe – IF   if (booleano)      comandos   endExemploif (i == 5)   ou   puts(i)         puts(i) if (i == 5)end
Sintaxe – IF - ELSE if ( teste logico)    comandos else    comandos endExemploif ( i.nil?)    puts(“Valor de i é nil”)else...
Sintaxe – Operadores Lógicos     Operadores      Função  &&      and        E  ||      or         OU  !       not        N...
1º Exemplo : Fatorial  def fatorial(n)    if(n > 1)       n * fatorial(n-1)    else       1    end  end  puts fatorial(ARG...
Sintaxe – Case case ( variavel) when valor    comandos when valor2    comandos else    comandos endExemplo1               ...
Sintaxe – WHILE while (teste logico)   comandos endExemplowhile (i < 10)   puts i   i = i +1end
Sintaxe – UNTIL begin   comandos end until (teste logico)Exemploi = 10begin    puts i    i=i–1end until ( i == 0)
Sintaxe – FOR for variavel in intervalo    comandos endExemplofor i in 0..10   puts iend
Sintaxe – ARRAYSConstrutor:nome_array = []Atribuindo Valores:nome_array[0] = 5nome_array[1] = “String”nome_array[2] = Pess...
Sintaxe – HASHESConstrutor:nome_hash = {}Atribuindo Valores:nome_hash= {1 => 2, “a” => “b” }nome_hash[“palavra”] = “word”n...
Módulosmodule Nome_do_modulo   comandosendExemplo:module Lobo   def self.uivar       “ahuuu”   endend Saída: irb(main):036...
Classes - Construçãoclass Nome_da_classe    comandosend                                Exemplo 2:                         ...
Classes - Herançaclass Nome_da_classe < Nome_da_classe_pai    comandos                 Exemplo 2:end                      ...
Classes – Método SingletonConsiste em definir um metodo para uma instancia que a classe painão possui.Exemplo:class Mamife...
Classes – Attribute Readers e Writers Gera, em tempo de execução, os métodos setters e getters dos atributos. Exemplo: cla...
Classes – MixinsAlternativa a herança múltiplaclass Nome_da_classe < Nome_da_classe_pai    include nome_do_moduloendExempl...
Sintaxe – REQUIREImporta arquivos de código.Equivalente ao “uses” do Pascal.Exemplo:require “arquivo_de_classes.rb”require...
2º Exemplo - Ordenararq_novo = File.open("lista_ordenada.txt", "w")File.open("lista.txt").sort.each do |nome| arq_novo.put...
Link`s Meu blog: Http://diegorubin.github.com Repositório do Minicurso no GitHub http://github.com/diegorubin/Minicurso-As...
Próximos SlideShares
Carregando em…5
×

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

10.670 visualizações

Publicada em

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.

  • Seja o primeiro a comentar

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

  1. 1. Linguagem de Programação - Ruby Diego Rubin - rubin.diego@gmail.com
  2. 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. 3. Ruby - Características● Interpretada;
  4. 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. 5. Ruby - Características● Interpretada;● Tipagem dinâmica e forte;
  6. 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. 7. Ruby - Características● Interpretada;● Tipagem dinâmica e forte;● Obedece ao paradigma da orientação a objeto;
  8. 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. 9. Ruby - Características● Interpretada;● Tipagem dinâmica e forte;● Obedece ao paradigma da orientação a objeto;● Linguagem de propósito geral;
  10. 10. Ruby - CaracterísticasLinguagem de Propósito Geral● Scripts● Aplicativos Desktop● Aplicativos Web● Serviços Web
  11. 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. 12. Ruby - Características É Livre
  13. 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. 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. 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. 16. RubyForgeRepositório de projetos.Os principais projetos em Ruby são hospedados nele.Grande fonte de documentação.
  17. 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. 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. 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. 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. 21. Sintaxe – IF if (booleano) comandos endExemploif (i == 5) ou puts(i) puts(i) if (i == 5)end
  22. 22. Sintaxe – IF - ELSE if ( teste logico) comandos else comandos endExemploif ( i.nil?) puts(“Valor de i é nil”)else puts(i)end
  23. 23. Sintaxe – Operadores Lógicos Operadores Função && and E || or OU ! not NÃO == IGUAL != DIFERENTE
  24. 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. 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. 26. Sintaxe – WHILE while (teste logico) comandos endExemplowhile (i < 10) puts i i = i +1end
  27. 27. Sintaxe – UNTIL begin comandos end until (teste logico)Exemploi = 10begin puts i i=i–1end until ( i == 0)
  28. 28. Sintaxe – FOR for variavel in intervalo comandos endExemplofor i in 0..10 puts iend
  29. 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. 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. 31. Módulosmodule Nome_do_modulo comandosendExemplo:module Lobo def self.uivar “ahuuu” endend Saída: irb(main):036:0> Lobo.uivar => "ahuuu"
  32. 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. 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. 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. 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. 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. 37. Sintaxe – REQUIREImporta arquivos de código.Equivalente ao “uses” do Pascal.Exemplo:require “arquivo_de_classes.rb”require “libmysql”require “rexml/document”
  38. 38. 2º Exemplo - Ordenararq_novo = File.open("lista_ordenada.txt", "w")File.open("lista.txt").sort.each do |nome| arq_novo.puts nomeend
  39. 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

×