Linux slogan
Visite também: BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: lamborghini
Por JoseRenan
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Luciano Alexandre de Farias Silva em (última atualização em 27/11/2012)   [ 2192 hits ]

Login: LucianoAlexandre, 60615 pontos

Homepage: http://www.tecsource.blogspot.com.br/

Download:


Descrição

Esse é um script bem interessante, que busca simular um sistema de controle de fabricantes de carros. O script traz em seu código a utilização de alguns conceitos de orientação a objetos bem interessantes, como: herança, classes, métodos etc.


[ Download: 5620.Carro.rb ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#  Carro.rb
#  
#  www.tecsource.blogspot.com.br
#
#  Created by Luciano Alexandre on 13/11/12.

class Automovel
   attr_reader :marca, :modelo, :cor, :tanque
   attr_writer :cor

   def initialize(marca,modelo,cor,tanque)
      @marca = marca
      @modelo = modelo
      @cor = cor
      @tanque = tanque
   end

   def to_s
      "marca:#{@marca} modelo:#{@modelo} cor:#{@cor} capac.tanque#{@tanque}"
   end
end

class Carro < Automovel
  def to_s
    "Carro:"+super
  end
end
  
class Caminhao < Automovel
  def to_s
    "Caminhao:"+super
  end
end
  
class Montadora
   attr_reader :nome, :modelos, :qtde_fabricados

   @@qtde_total_de_automoveis = 0

   def initialize(nome,modelos)
      @nome = nome
      @modelos = modelos
      @qtde_fabricados = 0
   end
   
   def fabrica(modelo,cor)
   if !@modelos.include? modelo
      puts "ATENCAO! A montadora #{@nome} nao fabrica o modelo #{modelo}"
      return nil
   end
   
   puts "Fabricando um #{modelo} na montadora #{@nome}..."
   @@qtde_total_de_automoveis += 1
   @qtde_fabricados += 1
  # se tiver um tanque com menos de 100 litros, e &#769; um carro
  if @modelos[modelo] < 100
    Carro::new(@nome,modelo,cor,@modelos[modelo])
  else
    Caminhao::new(@nome,modelo,cor,@modelos[modelo])
  end
end

   def Montadora.qtde_total_de_automoveis
      @@qtde_total_de_automoveis
   end
end

# criando as montadoras
volks = Montadora::new("Volkswagen",{"Gol"=>50,"Golf"=>55,"Polo"=>45,"17210C"=>275})
ford  = Montadora::new("Ford",{"Ka"=>42,"Fiesta"=>42,"Focus"=>55,"C-815"=>150})

# criando automoveis da Volkswagen (com um carrinho ali no meio)
automoveis_volks = []
automoveis_volks.push(volks.fabrica("Gol",  :azul))
automoveis_volks.push(volks.fabrica("Golf", :preto))
automoveis_volks.push(volks.fabrica("Ka",   :verde))
automoveis_volks.push(volks.fabrica("17210C",:branco))
puts "#{volks.nome} fabricou #{volks.qtde_fabricados} automoveis ate o momento"
automoveis_volks.each {|v| puts v unless v.nil?}
puts

# criando os automoveis da Ford
automoveis_ford = []
automoveis_ford.push(ford.fabrica("Ka",:verde))
automoveis_ford.push(ford.fabrica("Fiesta",:vermelho))
automoveis_ford.push(ford.fabrica("Focus",:preto))
automoveis_ford.push(ford.fabrica("C-815",:branco))
puts "#{ford.nome} fabricou #{ford.qtde_fabricados} automoveis ate o momento"
automoveis_ford.each {|v| puts v unless v.nil?}
puts

puts "Qtde total de automoveis no mundo: #{Montadora::qtde_total_de_automoveis}"



Scripts recomendados
   Script Linux recomendado Média de 4 notas
   Script Linux recomendado Inversor de links com Shoes
   Script Linux recomendado Cadastro simples em Ruby
   Script Linux recomendado Scan Port Interno
   Script Linux recomendado Exemplos de comentários e operadores de impressão na tela

Comentários
[1] Comentário enviado por taq em 27/11/2012 - 13:38h:

Como parece que o exemplo foi bem "inspirado" pelo exemplo sobre isso no meu livro de Ruby, fica aqui a dica para quem quiser conhecer mais sobre a linguagem no conteúdo do livro (e mais um pouco!) distribuído agora como um tutorial, gratuitamente (se alguém quiser doar alguma coisa, também tá bom ehehe) em http://eustaquiorangel.com/tutorial-ruby
Divirtam-se com a linguagem. :-)


[2] Comentário enviado por LucianoAlexandre em 27/11/2012 - 17:05h:

Realmente o script foi "inspirado" no seu livro sobre ruby, um ótimo material por sinal, parabens!!!


[3] Comentário enviado por andreuebe em 30/11/2012 - 20:17h:

Luciano

Acredito que o taq tenha tido a mesma percepção minha de que não fizeste por má intenção. Mas fica a dica de que a divulgação é sempre bem vinda, mas com a devida atribuição de autoria. :-) Abração


[4] Comentário enviado por LucianoAlexandre em 01/12/2012 - 17:03h:

ok. gente vlw e desculpe.


[5] Comentário enviado por taq em 03/12/2012 - 10:08h:

Acha, não acho que foi por má intenção não, só aproveitei a dica pra divulgação. :-)


[6] Comentário enviado por taq em 03/12/2012 - 10:10h:


[4] Comentário enviado por LucianoAlexandre em 01/12/2012 - 17:03h:

ok. gente vlw e desculpe.


Que isso, não precisa pedir desculpa, eu é quem agradeço na divulgação da linguagem. Não porque escrevi livro, tutorial, blá blá blá, mas por eu gostar da danada mesmo e achar que muita gente pode gostar e ser bem produtivo com ela. :-)


[7] Comentário enviado por taq em 03/12/2012 - 10:11h:


[2] Comentário enviado por LucianoAlexandre em 27/11/2012 - 17:05h:

Realmente o script foi "inspirado" no seu livro sobre ruby, um ótimo material por sinal, parabens!!!


Obrigado. :-)


[8] Comentário enviado por LucianoAlexandre em 03/12/2012 - 14:55h:


[7] Comentário enviado por taq em 03/12/2012 - 10:11h:


[2] Comentário enviado por LucianoAlexandre em 27/11/2012 - 17:05h:

Realmente o script foi "inspirado" no seu livro sobre ruby, um ótimo material por sinal, parabens!!!

Obrigado. :-)


De nada cara, tbm gosto muito da linguagem por iss que tou tentando divulga-la o maximo!!!



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.