Skip to content

Instantly share code, notes, and snippets.

@marioplumbarius
Last active April 9, 2021 23:11
Show Gist options
  • Save marioplumbarius/4725210 to your computer and use it in GitHub Desktop.
Save marioplumbarius/4725210 to your computer and use it in GitHub Desktop.
Programinhas que fiz utilizando a linguagem de programação Ruby enquanto estudo pelo code academy.
=begin
Recebe uma entrada de dados (palavra(s)), faz a contagem de cada palavra e mostra na tela em ordem crescente por quantidade de repetições
=end
puts "Enter some text"
text = gets.chomp # recebe a entrada de dados
words = text.split(" ") # cria um array, onde cada palavra ficará em uma posição
# cria um hash vazio para armazenar as palavras e a quantidade de vezes que apareçem
frequencies = Hash.new(0) # o valor padrão de cada hash será '0'
=begin
1. cada vez que a palavra for encontrada, criamos uma 'key' e adicionamos '1' no 'value' do 'hash'
2. caso a 'key' já esteja criada, o programa simplesmente adiciona '1' no valor do 'hash'
=end
words.each do |x|
frequencies[x] += 1
end
# ordenamos os dados por value de cada hash e depois invertemos para ficar em ordem crescente
frequencies = frequencies.sort_by {|x, y| y}
frequencies.reverse!
# para cada palavra, mostramos a quantidade de vezes que foi encontrada
frequencies.each do |x, y|
puts x + " " + y.to_s
end
=begin
Recebe uma entrada de dados (palavra ou frase) e substitui uma palavra por outra
=end
# variaveis globais
length_error = "Você deve digitar alguma frase/palavra"
words = ""
new_text = ""
loop do
puts "Digite uma frase"
text = gets.chomp
# verifica se o usuário realmente digitou algo
if text.length < 1
puts length_error
else
# transforma as palavras em letras minúsculas e separa em um array
text.downcase
words = text.split(" ")
break # sai do loop
end
end
loop do
puts "Digite uma palavra para substituir na frase"
find_word = gets.chomp
# verifica se o usuário realmente digitou algo
if find_word.length < 1
puts length_error
else
puts "Qual a nova palavra que substituirá '#{find_word}' ?"
new_word = gets.chomp
# guarda cada palavra da frase em um índice de um array
words.each do |word|
# condição para substituir as palavras
if word != find_word
new_text = "#{new_text} #{word}"
else
new_text = "#{new_text} #{new_word}"
end
end
print new_text
break # sai do loop
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment