Last active
April 9, 2021 23:11
-
-
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.
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
=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 |
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
=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