Skip to content

Instantly share code, notes, and snippets.

@lrlucena
Last active December 12, 2015 00:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save lrlucena/4685753 to your computer and use it in GitHub Desktop.
Save lrlucena/4685753 to your computer and use it in GitHub Desktop.
Lista07
# encoding: utf-8
# Escreva um programa que leia um número inteiro n e um nome. O
# programa deve mostrar o nome n vezes, cada um em uma linha.
puts "Digite um número"
n = gets.to_i
puts "Digite um nome"
nome = gets.chomp
n.times do puts nome end
# for i in 1..n do puts nome end
# Escreva um programa que leia dois números n e m. O programa
# deve mostrar todos os números menores que m que sejam
# múltiplos de n.
puts "Digite o valor de n"
n = gets.to_i
puts "Digite o valor de m"
m = gets.to_i
for i in 1..(m-1) do
puts i if i%n==0
end
# Alternativas:
# puts (1..(m-1)).select do |i| i%n==0 end
# puts (1..(m-1)).select{|i| i%n==0}
# Escreva um programa que efetue a soma de dois arrays.
print "Digite o primeiro array (valores separdos por virgula): "
s1 = gets.chomp
a1 = s1.split(",")
print "Digite o segundo array (valores separdos por virgula): "
s2 = gets.chomp
a2 = s2.split(",")
a3 = a1 + a2
print a3
# encoding: utf-8
# Escreva um programa que leia n notas e calcule a média da turma
# (soma das notas dividido por n). O programa deve então mostrar
# quantas notas estão acima da média calculada e quais são e
# mostrar quantas estão abaixo da média calculada e quais são.
print "Quantas notas: "
n = gets.to_i
puts "Digite as #{n} notas"
notas = n.times.map{gets.to_i}
soma = 0
for nota in notas do
soma = soma + nota
end
media = 1.0 * soma / notas.length
acima = []
abaixo = []
for nota in notas do
if nota>=media then
acima << nota
else
abaixo << nota
end
end
# Alternativa (linhas 14 - 28):
# media = 1.0*notas.inject(:+)/notas.length
# acima, abaixo = notas.partition{|nota| nota>=media}
puts "#{acima.length} notas acima da média: #{acima}"
puts "#{abaixo.length} notas acima da média: #{abaixo}"
# Escreva um programa que leia dois números inteiros m e n e gere
# um vetor (array) contento n+1 elementos, contendo a sequencia de m
# até m+n
m = gets.to_i
n = gets.to_i
vetor = (m..(m+n)).to_a
print vetor
# Alternativa (linhas 8-9)
# for i in m .. m+n do puts i end
# Escreva um programa que leia um número inteiro e mostre o fatorial
# do mesmo.
n = gets.to_i
fat = 1
for i in 2 .. n do
fat = fat * i
end
# Alternativa (linhas 6-9)
# fat = (2..n).inject(1, :*)
puts fat
# Escreva um programa que mostre todos os números entre 1 e 100
# que são múltiplos de 3 e 7.
for n in 1 .. 100 do
puts n if n%3==0 or n%7==0
end
# Alternativa (linhas 4-6)
# multiplos = (1..100).select{|n| n%3==0 or n%7==0}
# print multiplos
# Escreva um programa que leia um número inteiro n e mostre a
# tabuada de multiplicar de n
n = gets.to_i
for i in 1..9 do
puts "#{i} * #{n} = #{i*n}"
end
# Alternativa (linhas 6-8)
# puts (1..9).map{|i| "#{i} * #{n} = #{i*n}"}
# Escreva um programa que leia dois números inteiros a e b, de uma
# equação do primeiro grau na forma f(x)=ax+b. O programa deve
# mostrar todos os valores de f(x) e x para o intervalo de 0 a 100,
# separados por vírgula, um par por linha.
a = gets.to_i
b = gets.to_i
for x in 0 .. 100 do
puts "#{x} , #{a*x+b}"
end
# Alternativa (linhas 9-11)
# puts (0..10).map{|x| "#{x} , #{a*x+b}"}
# Escreva um programa que leia um número inteiro positivo n, calcule
# e mostre a soma: 1/1+1/2+1/3+1/4+...+1/(n-1)+1/n
n = gets.to_i
soma = 0.0
for i in 1..n do
soma = soma + 1.0/i
end
# Alternativa (linhas 6-9)
# soma = (1..n).map{|i| 1.0/i}.inject(:+)
puts soma
# Escreva um programa que leia duas palavras e mostre a
# quantidade de letras que aparecem nas duas palavras.
a = gets.chomp
b = gets.chomp
soma1 = 0
for c in a.upcase.split("") do
soma1 = soma1 + 1 if c>="A" and c<="Z"
end
soma2 = 0
for c in b.upcase.split("") do
soma2 = soma2 + 1 if c>="A" and c<="Z"
end
# Alternativa (linhas 7-15)
# soma1 = a.upcase.split("").select{|c| c>="A" and c<="Z"}.length
# soma2 = b.upcase.split("").select{|c| c>="A" and c<="Z"}.length
puts soma1
puts soma2
# encoding: utf-8
# Escreva um programa que leia um número inteiro n e mostre todos
# os números entre 0 e n.
puts "Digite um número"
n = gets.to_i
print (0..n).to_a
# for i in 0..n do puts i end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment