Last active
December 12, 2015 06:49
-
-
Save lrlucena/4731769 to your computer and use it in GitHub Desktop.
Lista de Exercicios 08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Escreva um programa que leia n números e mostre a soma deles. | |
# O programa deve parar de ler quando o usuário digitar -1. | |
soma = 0 | |
n = gets.to_i | |
while n!=-1 do | |
soma = soma + n | |
n = gets.to_i | |
end | |
# alternativa em Ruby 2.0 (linhas 4-9) | |
# entrada = (1..(1.0/0)).lazy.map{gets.to_i} | |
# soma = entrada.take_while{|n| n!=-1}.inject(0,:+) | |
puts soma |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Escreva um programa que lê uma sequência de nomes e mostre-os | |
# em ordem alfabética. O programa deve parar de ler quando o | |
# usuário digitar fim. | |
lista = [] | |
n = gets.chomp | |
while n!="fim" do | |
lista << n | |
n = gets.chomp | |
end | |
# Alternativa em Ruby 2.0(linhas 5-10) | |
# entrada = (1..(1.0/0)).lazy.map{gets.chomp} | |
# lista = entrada.take_while{|a| a!="fim"} | |
puts lista.sort |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Um determinado material radioativo perde metade de sua massa a | |
# cada 50 segundos. Dada a massa inicial, em gramas, desenvolva | |
# um algoritmo que determine o tempo necessário para que a massa | |
# se torne menor que 0,5 grama. O algoritmo deve mostrar a massa | |
# inicial, a final e o tempo calculado mostrado na forma de horas, | |
# minutos e segundos. | |
inicial = gets.to_f | |
final = inicial | |
tempo = 0 | |
while final>0.5 do | |
final = final / 2 | |
tempo = tempo + 50 | |
end | |
# Alternativa em Ruby 2.0 (linhas 10-15) | |
# passos = (1..(1.0/0)).lazy.map{|n| [inicial/2**n, 50*n]} | |
# final, tempo = passos.drop_while{|massa,b| massa>0.5}.first | |
horas = tempo.to_i / 3600 | |
minutos = tempo.to_i % 3600 / 60 | |
segundos = tempo.to_i % 60 | |
puts "Massa inicial: #{inicial}" | |
puts "Massa final: #{final}" | |
puts "Tempo: #{horas}:#{minutos}:#{segundos}" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# encoding: utf-8 | |
# Em Ruby, para a geração de um número aleatório usamos o método | |
# rand(MAX), onde MAX determina o valor máximo a ser gerado. | |
# Exemplo: para gerar um número entre 0 e 100 podemos aplicar a | |
# seguinte linha | |
# num = rand(100) | |
# Escreva um programa (jogo) que gere um número entre 0 e 1000 e | |
# peça para o usuário adivinhar o número. A cada tentativa o | |
# programa informa se o número informado pelo usuário é maior ou | |
# menor que o número a ser descoberto. Ao final o programa deve | |
# informar quantas tentativas foram feitas até a descoberta do | |
# número. | |
numero = rand(1000) | |
print "Digite um número: " | |
n = gets.to_i | |
while n!=numero do | |
print "Digite um número: " | |
n = gets.to_i | |
end | |
# alternativa em Ruby 2.0(linhas 17-22) | |
# entrada = (1..(1.0/0)).lazy.map{print "Digite um número: "; gets.to_i} | |
# entrada.take_while{|n| n!=numero}.force | |
puts "Acertou" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Lista de Exercicios |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment