Last active
October 7, 2015 01:47
-
-
Save lrlucena/3085575 to your computer and use it in GitHub Desktop.
Resposta da Lista de Exercícios 11
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
def lerInt(n) | |
n.times.map do | |
gets.to_i | |
end | |
end | |
vetor1 = lerInt(3) | |
vetor2 = lerInt(4) | |
vetor3 = vetor1 + vetor2 | |
print vetor3 |
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
def lerMatriz(n) | |
n.times.map do | |
gets | |
.split(" ") | |
.map do |num| | |
num.to_i | |
end | |
end | |
end |
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 uma função usando os métodos de arrays (map, select e | |
# inject) que recebe um array de inteiros e gera como resposta a | |
# soma dos valores pares. | |
def pares(arr) | |
resp = arr.select do |n| | |
n % 2 ==0 | |
end.inject(0) do |soma, n| | |
soma + n | |
end | |
return resp | |
end | |
# Alternativa mais sucinta usando {...} ao invés de do...end | |
def pares2(arr) | |
arr.select{|n| n %2 ==0}.inject(0,:+) | |
end |
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
# Defina a função calcular que recebe como entrada a matriz | |
# turma (contendo um nome e duas notas) e gera uma nova matriz | |
# acrescentando a média aritmética das duas notas e a situação | |
# (Média >=6.0 => “Aprovado”, caso contrário, “Prova Final”). | |
# Abaixo segue um exemplo de uso da função. | |
# turma = [ | |
# ["Joao", 10.0, 10.0], | |
# ["Pedro", 6.0, 5.0], | |
# ["Lucas", 8.0, 3.0] | |
#] | |
#resultado = calcular(turma) | |
#puts resultado | |
#O conteúdo da variável resultado, nesse trecho, deve ser: | |
#resultado = [ | |
# ["Joao", 10.0, 10.0, 10.0, "Aprovado"], | |
# ["Pedro", 6.0, 5.0, 5.5, "Prova Final"], | |
# ["Lucas", 8.0, 4.0, 6.0, "Aprovado"] | |
#] | |
def calcular(matriz) | |
resultado = matriz.map do |nome, nota1, nota2| | |
media = (nota1+nota2)/2.0 | |
situacao = if media>=6.0 then "Aprovado" else "Prova Final" end | |
[nome, nota1, nota2, media, situacao] | |
end | |
return resultado | |
end | |
turma = [ | |
["Joao", 10.0, 10.0], | |
["Pedro", 6.0, 5.0], | |
["Lucas", 8.0, 3.0] | |
] | |
resultado = calcular(turma) | |
puts resultado |
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
# Defina uma função que recebe como entrada o resultado da | |
# questão anterior e gera como resposta o nome do aluno com a | |
# média mais alta | |
def maior(resultado) | |
resultado.sort_by do |aluno| | |
aluno[3] | |
end.last.first | |
end |
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
# Defina uma nova função que recebe como entrada a matriz turma | |
# (questão 5) e gera como resposta o nome do aluno com a média | |
# mais alta. | |
# Sugestão: Faça uma composição das funções das questões anteriores | |
def primeiro(matriz) | |
maior(calcular(matriz)) | |
end |
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
# Reescreva o programa a seguir usando o método inject | |
# ao invés de usar a instrução for. | |
# def fatorial(x) | |
# y = 1 | |
# for i in 1..x do | |
# y = y * i | |
# end | |
# return y | |
# end | |
def fatorial(x) | |
(1..x).inject(1) do |y, i| | |
y * i | |
end | |
end |
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
# Programa para calcular a quantidade de linhas nulas | |
m = 5.times.map do | |
gets | |
.split(" ") | |
.map{|num| num.to_i} | |
end | |
nulas = m.select do |linha| | |
linha.inject(true) do |result, a| | |
resultado and a==0 | |
end | |
end | |
qtd_nulas = nulas.size |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment