Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Ruby ::: Dicas & Truques ::: Matemática e Estatística

Como calcular MDC em Ruby

Quantidade de visualizações: 759 vezes
Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada:

Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comuns de a e b.

O trecho de código abaixo mostra como calcular o MDC de dois números informados:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# função que recebe dois inteiros e retorna
# o Máximo Divisor Comum dos dois 
def MDC(a, b)
  while(b != 0)
    resto = a % b
    a = b
    b = resto
  end
 
  return a
end

# vamos que o usuário informe dois números
print "Informe o primeiro número: "
n1 = Integer(gets)
print "Informe o segundo número: "
n2 = Integer(gets)

# vamos calcular e mostrar o MDC entre os dois
# números
print "O Máximo Divisor Comum de " + n1.to_s +
 " e " + n2.to_s + " é " + MDC(n1, n2).to_s

Ao executar este código Ruby nós teremos o seguinte resultado:

Este programa permite calcular o MDC
Informe o primeiro número: 12
Informe o segundo número: 9
O Máximo Divisor Comum de 12 e 9 é 3

Link para compartilhar na Internet ou com seus amigos:

Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar construtores em Ruby - Programação Orientada a Objetos em Ruby

Quantidade de visualizações: 10355 vezes
Os métodos construtores são recursos muito importantes na construção de objetos de um classe, uma vez que estes permitem inicializar as variáveis de instância do objeto sendo construído.

Dessa forma, na programação orientada a objetos, o método construtor tem por finalidade instanciar um novo objeto e já fornecer (ou não) os valores iniciais para as suas variáveis de instância.

Em Ruby, o construtor de uma classe é definido com o uso da palavra-chave initialize. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# Definição da classe Cliente
class Cliente
  # construtor da classe
  def initialize(nome, idade)
    @nome = nome
    @idade = idade
  end
    
  # método que permite retornar o nome do cliente
  def obter_nome
    @nome
  end
    
  # método que permite retornar a idade do cliente	
  def obter_idade
    @idade
  end
end

# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)

# Efetua uma chamada ao método obter_nome
puts "O nome do cliente é: " + cliente.obter_nome

Ao executar este código Ruby nós teremos o seguinte resultado:

O nome do cliente é: Osmar J. Silva


Ruby ::: Dicas & Truques ::: Data e Hora

Como retornar os minutos em Ruby a partir de um objeto da classe Time usando a função min

Quantidade de visualizações: 6258 vezes
Muitas vezes precisamos obter os minutos de uma determinada hora a partir de um determinado objeto Time. Para isso a classe Time nos fornece o método min. Este método retorna um número inteiro na faixa 0..59.

Veja uma demonstração de como usar este método no trecho de código a seguir:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# constrói um objeto Time com a data e hora atual
agora = Time.now

# obtém os minutos
minutos = agora.min

# exibe o resultado
puts "Os minutos são: " + minutos.to_s

Ao executar este código Ruby nós teremos o seguinte resultado:

Os minutos são: 7


Ruby ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Ruby - Escreva um programa Ruby para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no array

Quantidade de visualizações: 1156 vezes
Pergunta/Tarefa:

Dado o seguinte vetor de inteiros:

# vamos declarar e construir um vetor de 8 inteiros
valores = [0, 3, 0, 5, 7, 4, 0, 9]
Escreva um programa Ruby para mover todos os zeros para o final do vetor, ou seja, para a direita, sem alterar a ordem dos elementos diferentes de zero já presentes no array e sem criar um vetor adicional ou temporário.

Sua saída deverá ser parecida com:

Vetor na ordem original:

0   3   0   5   7   4   0   9   

Vetor com os zeros deslocados para o final:

3   5   7   4   9   0   0   0
Resposta/Solução:

Veja a resolução comentada deste exercício usando Ruby:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# vamos declarar e construir um vetor de 8 inteiros
valores = [0, 3, 0, 5, 7, 4, 0, 9]   
	
# vamos mostrar o vetor na ordem original
print("Vetor na ordem original:\n")
for i in (0..valores.length - 1)
  printf("%d   ", valores[i])
end    
	
# vamos inicializar j como 0 para que ele aponte para
# o primeiro elemento do vetor
j = 0
    
# agora o laço for percorre todos os elementos do vetor,
# incrementanto a variável i e deixando o j em 0
for i in (0..valores.length - 1)
  # encontramos um valor que não é 0
  if(valores[i] != 0)
    # fazemos a troca entre os elementos nos índices
    # i e j
    temp = valores[i]
    valores[i] = valores[j]
    valores[j] = temp
    # e avançamos o j para o elemento seguinte
    j = j + 1
  end
end

# agora mostramos o resultado
print("\n\nVetor com os zeros deslocados para o final:\n")
for i in (0..valores.length - 1)
  printf("%d   ", valores[i])
end

Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes.


Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos

Como acessar variáveis de instâncias para leitura em Ruby sem a necessidade de métodos acessores usando a função attr_reader

Quantidade de visualizações: 6902 vezes
Por padrão, variáveis de instância em Ruby só podem ser acessadas usando métodos acessores, ou seja, uma variável de instância @nome deve ser lida usando um método obter_nome.

É possível dispensar o uso de métodos acessores empregando o método attr_reader nos nomes das variáveis que poderão ser acessadas, para leitura, é claro. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# Definição da classe Cliente
class Cliente
   attr_reader :nome, :idade
   
   def initialize(nome, idade)
      @nome = nome
      @idade = idade
   end
    
   def obter_nome
      @nome
   end
    
   def obter_idade
      @idade
   end
end

# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)

# Acessa as variáveis de instância sem a necessidade de
# métodos acessórios
puts cliente.nome
puts cliente.idade

Sem o uso do método attr_reader, a linha:

puts cliente.nome


causaria o seguinte erro:

teste.rb:25: undefined method `nome' for 
#<Cliente:0x27f540c @nome="Osmar J. S
ilva", @idade=35> (NoMethodError)



Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como inserir uma substring em uma determinada posição de uma string em Ruby usando a função insert()

Quantidade de visualizações: 8914 vezes
Muita vezes precisamos inserir uma substring em uma determinada posição de uma string em Ruby. Esta tarefa pode ser realizada com a função insert() da classe String.

Esta função opera na string original e requer dois argumentos: a posição na string onde a substring será inserida e a substring propriamente dita. A posição é um índice iniciando em 0. Índices negativos são contados a partir do final da string.

Veja o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# declara e inicializa uma variável string
frase = "Gosto muito de Ruby"
puts "A frase original é: " + frase

# vamos inserir " Python e" antes de "Ruby". 
frase.insert(14, " Python e")

# exibe o resultado 
puts "A nova frase é: " + frase

Ao executar este código Ruby nós teremos o seguinte resultado:

A frase original é: Gosto muito de Ruby
A nova frase é: Gosto muito de Python e Ruby


Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como concatenar strings em Ruby usando o operador <<

Quantidade de visualizações: 8386 vezes
Esta dica mostra como podemos usar o operador << para concatenar strings em Ruby. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

frase1 = "Gosto muito de Ruby"
frase2 = " e de Python"

# vamos concatenar as duas strings
res = frase1 << frase2

# exibe o resultado
puts res

Ao executar este código Ruby nós teremos o seguinte resultado:

Gosto muito de Ruby e de Python


Ruby ::: Fundamentos da Linguagem ::: Passos Iniciais

Qual é a diferença entre print e puts em Ruby?

Quantidade de visualizações: 12282 vezes
Tanto a função print quanto a função puts do Ruby nos permite escrever na tela, ou seja, exibir ao usuário o resultado do processamento das operações requisitas. Então, qual a diferença entre elas?

A instrução puts é uma abreviação de "put string" e automaticamente move o cursor para a próxima linha. A instrução print é usada quando queremos escrever e manter o cursor na mesma linha.

Veja um exemplo completo a seguir:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# Este exemplo mostra a diferença entre as funções
# print e puts da linguagem Ruby

# vamos construir uma frase aqui
frase = "Gosto muito de Ruby"

# vamos exibir a frase usando duas chamadas print e
# depois duas chamadas puts
print frase
print frase
puts frase
puts frase

Ao executar este código Ruby nós teremos o seguinte resultado:

Gosto muito de RubyGosto muito de RubyGosto muito de Ruby
Gosto muito de Ruby

Note que as duas primeiras chamadas a print escreveram na mesma linha. Porém, a primeira chamada a puts escreveu na mesma linha anterior, mas já colocou uma quebra de linha após a escrita.

As duas funções, contudo, permitem o uso do caractere de quebra de linha. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# Este exemplo mostra a diferença entre as funções
# print e puts da linguagem Ruby

# vamos construir uma frase aqui
frase = "Gosto muito de Ruby"

# vamos exibir a frase usando duas chamadas print e
# depois duas chamadas puts
print frase + "\n"
print frase + "\n"
puts frase + "\n\n"
puts frase

Ao executar este novo código nós teremos o seguinte resultado:

Gosto muito de Ruby
Gosto muito de Ruby
Gosto muito de Ruby

Gosto muito de Ruby


Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos

Como acessar variáveis de instâncias para escrita em Ruby sem a necessidade de métodos mutatórios usando a função attr_accessor

Quantidade de visualizações: 7185 vezes
Por padrão, variáveis de instância em Ruby só podem ser acessadas para escrita usando métodos mutatórios, ou seja, uma variável de instância @nome deve ser modificada usando um método definir_nome.

É possível dispensar o uso de métodos mutatórios empregando o método attr_accessor nos nomes das variáveis que poderão ser acessadas e modificadas. Lembre-se que, ao contrário de attr_reader, o método attr_accessor possibilita o acesso à variável de instância tanto para leitura quanto para escrita.

Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

# Definição da classe Cliente
class Cliente
   attr_accessor :nome, :idade
   
   def initialize(nome, idade)
      @nome = nome
      @idade = idade
   end
end

# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)

# Acessa as variáveis de instância sem a necessidade
# de métodos acessórios
puts cliente.nome
puts cliente.idade

# Modifica as variáveis de instância sem a necessidade
# de métodos mutatórios
cliente.nome = "Carlos da Silva"
cliente.idade = 56

# Obtém os resultados
puts cliente.nome
puts cliente.idade

Se tentarmos acessar e modificar as variáveis nome e idade diretamente, sem os métodos mutatórios e a função attr_accessor nós teremos um erro do tipo:

Traceback (most recent call last):
estudos.arb:15:in `<main>': undefined method `nome' for #<Cliente:0x0000029a7211f080 @nome="Osmar J. Silva", @idade=35> (NoMethodError)


Desafios, Exercícios e Algoritmos Resolvidos de Ruby

Veja mais Dicas e truques de Ruby

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 25 usuários muito felizes estudando em nosso site.