SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Minicurso de Ruby
  XIV SACOMP
Robson Dornelles
 Gustavo Graña
Introdução
✔   Características:
    −
     Interpretada – irb
    −
     Puramente orientada a objetos
    −
     Herança única:
      Módulos – 'mixins'
        ●




    −
     Tipagem dinâmica
    −
     Garbage collector
    −
     Threads nativas
    −
     Tratamento de exceções
    −
     Sintaxe elegante
Introdução
✔   Biblioteca padrão:
    −
     Inteiros 'infinitos' (Fixnum e Bignum)
    −
     Expressões regulares
    −
     Iteradores
    −
     Arrays
    −
     Hashes
    −
     Blocos de código
    −
     Protocolos da Internet
    −
     Conexão com banco de dados
    −
     Etc, etc, etc, etc, etc, etc...
IRB
✔   IRB:
    −
     Interpretador (como python)
Variáveis
✔   Variaveis:
    −
     Não possuem tipo fixo – tipagem dinâmica
    −
     Não necessitam de declaração
    −
     Referência
Variáveis
✔ Escopo:
   variavel_comum = 10
    −




   $var_global = 10
    −




   @atributo_de_classe = 10
    −




   @@atributo_estático_de_classe = 10
    −



✔ Conversões:


   to_s, to_i, to_f, to_a
    −



✔ Variaveis simples → var = “abc” (referência mutável)


✔ Constante → Pi = 3,1415... (imutável)


✔ Símbolo → :simb
Classes Numéricas

✔   Classes Numéricas:
    −
     Float, Fixnum e Bignum
    −
     Coerção entre os tipos
    −
     Representação com precisão 'infinita'
    −
     Caso um Fixnum de overflow, conversão é
     automática
    −
     Valores imediatos
      'Embarcados' na referência → + desempenho
        ●
Strings


✔   String:
    −
     Alguns métodos:
      reverse, chomp, upcase, upcase!, split, slice,
        ●




      size, +, *
    −
     Mais métodos:
      String.methods
        ●




      Onde conhecer e testar os métodos → IRB
        ●
Expressões Regulares
Estruturas de controle
✔   If-then-else:




✔   While:
Arrays, Ranges e Iteradores
Hashes
Funções
✔   Criar arquivo com extensão .rb




✔ $ ruby 'arquivo'.rb lalala lululu
✔ Exercício! criar programa que receba um nome e


conte o numero de letras deste nome (cuidado para
não contar os espaços)
Blocks
Entrada e Saída
✔   Entrada/Saída padrão
Arquivos
Arquivos
✔ Outros métodos:
   rewind
    −




   readlines
    −




   File.methods.sort
    −



✔ Exercicio! criar programa que o nome de um arquivo


entrada.txt e crie um novo arquivo com as linhas do arquivo
orinigal invertidas. O nome do novo arquivo deve ser {nome
do arquivo original)_invertido.txt
✔ Dica:


   a = “123”
    −




   b = “#{a}456”
    −




   ou b = a + “456”
    −
Classes
Exercício
✔Criar um programa que receba um nome próprio e
gere um acronimo:
  Ex:
    −




   ruby prog.rb Robson Sejanes Soares Dornelles
        ●




   Saída: RSSD
        ●




  Dica: no exemplo, o array de argumentos passados
    −




  ao programa, ARGV, possuirá quatro elementos
Exercício
✔ Conseguimos entender as palavras mesmo que elas
estejam embaralhadas
   Ex: Etse cruso etsa miuto leagl
    −



✔ Criar um programa que receba o nome de um arquivo


de texto como argumento e bagunce as palavras deste
arquivo. O texto bagunçado deve ser apresentado na
saída padrão
✔ Dicas:


   array.sort_by
    −




   array.slice
    −




   www.google.com
    −
E agora?
✔ Muito material na internet
   http://mislav.uniqpath.com/poignant-guide/book/
    −




   http://www.ruby-lang.org/en/
    −



✔ Tópicos interessantes


   Programação com sockets
    −




   Programação para web (Ruby On Rails)
    −




   Threads
    −




   Ruby-gtk
    −

Mais conteúdo relacionado

Destaque

Ruby - praticamente falando
Ruby - praticamente falandoRuby - praticamente falando
Ruby - praticamente falandos4nx
 
Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e ExpressivoRodrigo Martins
 
Revista Venus Cuba (revista cubana de variedades femeninas)
Revista Venus Cuba  (revista cubana de variedades femeninas)Revista Venus Cuba  (revista cubana de variedades femeninas)
Revista Venus Cuba (revista cubana de variedades femeninas)Etres Publi
 
Seja burro e preguiçoso! v2
Seja burro e preguiçoso! v2Seja burro e preguiçoso! v2
Seja burro e preguiçoso! v2s4nx
 
Desenvolvimento de produtos web com ruby on rails
Desenvolvimento de produtos web com ruby on railsDesenvolvimento de produtos web com ruby on rails
Desenvolvimento de produtos web com ruby on railss4nx
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em RubyDaniel Andrade
 
Minicurso Ruby e Rails
Minicurso Ruby e RailsMinicurso Ruby e Rails
Minicurso Ruby e RailsSEA Tecnologia
 
Empreendendo com Software Livre
Empreendendo com Software LivreEmpreendendo com Software Livre
Empreendendo com Software Livres4nx
 
Mais humano que exato
Mais humano que exatoMais humano que exato
Mais humano que exatos4nx
 
Motivação
MotivaçãoMotivação
Motivaçãos4nx
 
Ruby Programming Language
Ruby Programming LanguageRuby Programming Language
Ruby Programming LanguageDuda Dornelles
 

Destaque (13)

Ruby - praticamente falando
Ruby - praticamente falandoRuby - praticamente falando
Ruby - praticamente falando
 
A Linguagem Ruby
A Linguagem RubyA Linguagem Ruby
A Linguagem Ruby
 
Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e Expressivo
 
Revista Venus Cuba (revista cubana de variedades femeninas)
Revista Venus Cuba  (revista cubana de variedades femeninas)Revista Venus Cuba  (revista cubana de variedades femeninas)
Revista Venus Cuba (revista cubana de variedades femeninas)
 
Seja burro e preguiçoso! v2
Seja burro e preguiçoso! v2Seja burro e preguiçoso! v2
Seja burro e preguiçoso! v2
 
Desenvolvimento de produtos web com ruby on rails
Desenvolvimento de produtos web com ruby on railsDesenvolvimento de produtos web com ruby on rails
Desenvolvimento de produtos web com ruby on rails
 
El viajero social
El viajero socialEl viajero social
El viajero social
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em Ruby
 
Minicurso Ruby e Rails
Minicurso Ruby e RailsMinicurso Ruby e Rails
Minicurso Ruby e Rails
 
Empreendendo com Software Livre
Empreendendo com Software LivreEmpreendendo com Software Livre
Empreendendo com Software Livre
 
Mais humano que exato
Mais humano que exatoMais humano que exato
Mais humano que exato
 
Motivação
MotivaçãoMotivação
Motivação
 
Ruby Programming Language
Ruby Programming LanguageRuby Programming Language
Ruby Programming Language
 

Semelhante a Introdução ao Ruby com exemplos práticos

Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Julio Betta
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-phpJuan Maiz
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHPJuan Maiz
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorFelipe Hummel
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Apostila logica algoritmos e estrutuara de dados
Apostila  logica algoritmos e estrutuara de dadosApostila  logica algoritmos e estrutuara de dados
Apostila logica algoritmos e estrutuara de dadosGelber Freitas
 
Minicurso Python - Apresentado no JOLIM 2012
Minicurso Python - Apresentado no JOLIM 2012Minicurso Python - Apresentado no JOLIM 2012
Minicurso Python - Apresentado no JOLIM 2012Nathan Hartmann
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Otávio Santana
 
Curso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de ProgramacaoCurso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de ProgramacaoJosé Araújo
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN StackBruno Catão
 

Semelhante a Introdução ao Ruby com exemplos práticos (20)

Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-php
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHP
 
Oz
OzOz
Oz
 
Php Math and arrays
Php Math and arraysPhp Math and arrays
Php Math and arrays
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitor
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Apostila logica algoritmos e estrutuara de dados
Apostila  logica algoritmos e estrutuara de dadosApostila  logica algoritmos e estrutuara de dados
Apostila logica algoritmos e estrutuara de dados
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 
MongoDB
MongoDBMongoDB
MongoDB
 
Minicurso Python - Apresentado no JOLIM 2012
Minicurso Python - Apresentado no JOLIM 2012Minicurso Python - Apresentado no JOLIM 2012
Minicurso Python - Apresentado no JOLIM 2012
 
Clean code
Clean codeClean code
Clean code
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]
 
Curso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de ProgramacaoCurso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de Programacao
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Tema 2 | Linguagem PHP Básico (II)
Tema 2 | Linguagem PHP Básico (II)Tema 2 | Linguagem PHP Básico (II)
Tema 2 | Linguagem PHP Básico (II)
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 

Introdução ao Ruby com exemplos práticos

  • 1. Minicurso de Ruby XIV SACOMP Robson Dornelles Gustavo Graña
  • 2. Introdução ✔ Características: − Interpretada – irb − Puramente orientada a objetos − Herança única: Módulos – 'mixins' ● − Tipagem dinâmica − Garbage collector − Threads nativas − Tratamento de exceções − Sintaxe elegante
  • 3. Introdução ✔ Biblioteca padrão: − Inteiros 'infinitos' (Fixnum e Bignum) − Expressões regulares − Iteradores − Arrays − Hashes − Blocos de código − Protocolos da Internet − Conexão com banco de dados − Etc, etc, etc, etc, etc, etc...
  • 4. IRB ✔ IRB: − Interpretador (como python)
  • 5. Variáveis ✔ Variaveis: − Não possuem tipo fixo – tipagem dinâmica − Não necessitam de declaração − Referência
  • 6. Variáveis ✔ Escopo: variavel_comum = 10 − $var_global = 10 − @atributo_de_classe = 10 − @@atributo_estático_de_classe = 10 − ✔ Conversões: to_s, to_i, to_f, to_a − ✔ Variaveis simples → var = “abc” (referência mutável) ✔ Constante → Pi = 3,1415... (imutável) ✔ Símbolo → :simb
  • 7. Classes Numéricas ✔ Classes Numéricas: − Float, Fixnum e Bignum − Coerção entre os tipos − Representação com precisão 'infinita' − Caso um Fixnum de overflow, conversão é automática − Valores imediatos 'Embarcados' na referência → + desempenho ●
  • 8. Strings ✔ String: − Alguns métodos: reverse, chomp, upcase, upcase!, split, slice, ● size, +, * − Mais métodos: String.methods ● Onde conhecer e testar os métodos → IRB ●
  • 10. Estruturas de controle ✔ If-then-else: ✔ While:
  • 11. Arrays, Ranges e Iteradores
  • 13. Funções ✔ Criar arquivo com extensão .rb ✔ $ ruby 'arquivo'.rb lalala lululu ✔ Exercício! criar programa que receba um nome e conte o numero de letras deste nome (cuidado para não contar os espaços)
  • 15. Entrada e Saída ✔ Entrada/Saída padrão
  • 17. Arquivos ✔ Outros métodos: rewind − readlines − File.methods.sort − ✔ Exercicio! criar programa que o nome de um arquivo entrada.txt e crie um novo arquivo com as linhas do arquivo orinigal invertidas. O nome do novo arquivo deve ser {nome do arquivo original)_invertido.txt ✔ Dica: a = “123” − b = “#{a}456” − ou b = a + “456” −
  • 19. Exercício ✔Criar um programa que receba um nome próprio e gere um acronimo: Ex: − ruby prog.rb Robson Sejanes Soares Dornelles ● Saída: RSSD ● Dica: no exemplo, o array de argumentos passados − ao programa, ARGV, possuirá quatro elementos
  • 20. Exercício ✔ Conseguimos entender as palavras mesmo que elas estejam embaralhadas Ex: Etse cruso etsa miuto leagl − ✔ Criar um programa que receba o nome de um arquivo de texto como argumento e bagunce as palavras deste arquivo. O texto bagunçado deve ser apresentado na saída padrão ✔ Dicas: array.sort_by − array.slice − www.google.com −
  • 21. E agora? ✔ Muito material na internet http://mislav.uniqpath.com/poignant-guide/book/ − http://www.ruby-lang.org/en/ − ✔ Tópicos interessantes Programação com sockets − Programação para web (Ruby On Rails) − Threads − Ruby-gtk −