Visitante!
Faça seu Login ou Registre-se!

Galeria de Jogos

[Ruby] Aula 5 - Estruturas de Repetição 17 Respostas | 3610 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Akugam

  • *
  • Mensagens: 29 Ouro: 9
  • "Meu lugar é no topo"
    • RPG Maker VX/Ace
    • Ver perfil
    • E-mail
[Ruby] Aula 5 - Estruturas de Repetição
Resposta 15 Online: 11 Jan 2017, 20:15
@Raizen
Tive bastante dificuldade no dos números primos e no da raiz quadrada, o do números primos eu não usei repetição, não consegui encontrar um jeito, mas aprendi umas coisas que talvez eu consiga agora, mas já to sem saco de ficar mais um tempo tentando nesse. De qualquer forma, o da raiz quadrada tive uns problemas com arredondamento, já que a soma de "0.01" não é exata, até fiz um tópico pedindo ajuda, se puder avaliar agradeço.


FÁCEIS:
Spoiler
Código: [Selecionar]
#-------------------------------------------------------------------------------
#               Exercício 1 Aula 5 do Raizen RGSS3: NÍVEL FÁCIL               
#-------------------------------------------------------------------------------
a = 0
while a != 20
  a += 2
  p a
end


#-------------------------------------------------------------------------------
#               Exercício 2 Aula 5 do Raizen RGSS3: NÍVEL FÁCIL               
#-------------------------------------------------------------------------------
Mult = 10
for a in Mult..Mult * 10
  if a % Mult == 0 then p a end
end
[close]


MÉDIO:
Spoiler
Código: [Selecionar]
#-------------------------------------------------------------------------------
#               Exercício 1 Aula 5 do Raizen RGSS3: NÍVEL MÉDIO               
#-------------------------------------------------------------------------------
class Nunnu
  def operações
    @a = 2
    @b = 2
    loop do
      soma
      subtração
      multiplicação
      divisão
    end
  end

  def soma
    loop do
      p @a + @b
      break
    end
  end
 
  def subtração
    loop do
      p @a - @b
      break
    end
  end
 
  def multiplicação
    loop do
      p @a * @b
      break
    end
  end
 
  def divisão
    loop do
      p @a / @b
      break
    end
  end
end
nun = Nunnu.new
nun.operações


#-------------------------------------------------------------------------------
#               Exercício 2 Aula 5 do Raizen RGSS3: NÍVEL MÉDIO               
#-------------------------------------------------------------------------------
class Nunnu
  def mmc
    a = 6
    b = 4
    c = 1
    while c % a != 0 or c % b != 0
      c += 1
    end
    p c
  end
end
nun = Nunnu.new
nun.mmc
[close]


DIFÍCEIS:
Spoiler
Código: [Selecionar]
#-------------------------------------------------------------------------------
#              Exercício 1 Aula 5 do Raizen RGSS3: NÍVEL DIFÍCIL               
#-------------------------------------------------------------------------------
class Nunnu
  def met1(a)
    if a == 1
      print "Não é um número primo."
      return
    end
    if a == 2 or a == 3
      print "É um número primo."
      return
    end
    if a % 2 == 0 or a % 3 == 0 or a % 5 == 0
      print "Não é um número primo."
    else
      print "É um número primo."
    end
  end
end
nun = Nunnu.new
nun.met1(3)

#-------------------------------------------------------------------------------
#              Exercício 2 Aula 5 do Raizen RGSS3: NÍVEL DIFÍCIL               
#-------------------------------------------------------------------------------
a = 25
b = 1.00
while b * b  < a
  b += 0.01
  b * b
end
p b.round(2)
[close]

Eu não consigo pensar em outra forma de fazer o primeiro exercício dos difíceis, o dos números primos, a não ser a forma que o nunnu fez, apenas encontrei um pequeno erro, que é: quando eu coloco o numero 5 a ser testado, ele retorna a resposta de que o numero 5 não é primo, tomei a liberdade de corrigir no próprio código e ficou assim:

Spoiler
Código: [Selecionar]
class Nunnu
  def met1(a)
    if a == 1
      print "Não é um número primo."
      return
    end
    if a == 2 or a == 3 or a == 5
      print "É um número primo."
      return
    end
    if a % 2 == 0 or a % 3 == 0 or a % 5 == 0
      print "Não é um número primo."
    else
      print "É um número primo."
    end
  end
end
nun = Nunnu.new
nun.met1(5)
[close]

não encontrei mais erros, mas não sei se é possível fazer esse exercício com os comandos de repetição (eu pelo menos não consigo pensar em uma forma de fazer isso)

já o segundo exercício sobre raiz quadrada, não consigo nem de longe pensar numa forma de resolver, e não entendi muito bem nem vendo o código do nunnu, se puder me passar a resposta pra eu tentar entender eu agradeço Raizen  :*-*:

e tenho uma pequena duvida, o que seria esse comando "return" dentro do if? obrigado  :XD:
YO :3

Conspiracy

  • *
  • Mensagens: 83 Ouro: 26
  • Eventer, Roteirista, e revendo ticket de loteria..
    • RPG Maker MV
    • Ver perfil
    • E-mail
[Ruby] Aula 5 - Estruturas de Repetição
Resposta 16 Online: 11 Jan 2017, 20:50
Spoiler
@Raizen
Tive bastante dificuldade no dos números primos e no da raiz quadrada, o do números primos eu não usei repetição, não consegui encontrar um jeito, mas aprendi umas coisas que talvez eu consiga agora, mas já to sem saco de ficar mais um tempo tentando nesse. De qualquer forma, o da raiz quadrada tive uns problemas com arredondamento, já que a soma de "0.01" não é exata, até fiz um tópico pedindo ajuda, se puder avaliar agradeço.


FÁCEIS:
Spoiler
Código: [Selecionar]
#-------------------------------------------------------------------------------
#               Exercício 1 Aula 5 do Raizen RGSS3: NÍVEL FÁCIL               
#-------------------------------------------------------------------------------
a = 0
while a != 20
  a += 2
  p a
end


#-------------------------------------------------------------------------------
#               Exercício 2 Aula 5 do Raizen RGSS3: NÍVEL FÁCIL               
#-------------------------------------------------------------------------------
Mult = 10
for a in Mult..Mult * 10
  if a % Mult == 0 then p a end
end
[close]


MÉDIO:
Spoiler
Código: [Selecionar]
#-------------------------------------------------------------------------------
#               Exercício 1 Aula 5 do Raizen RGSS3: NÍVEL MÉDIO               
#-------------------------------------------------------------------------------
class Nunnu
  def operações
    @a = 2
    @b = 2
    loop do
      soma
      subtração
      multiplicação
      divisão
    end
  end

  def soma
    loop do
      p @a + @b
      break
    end
  end
 
  def subtração
    loop do
      p @a - @b
      break
    end
  end
 
  def multiplicação
    loop do
      p @a * @b
      break
    end
  end
 
  def divisão
    loop do
      p @a / @b
      break
    end
  end
end
nun = Nunnu.new
nun.operações


#-------------------------------------------------------------------------------
#               Exercício 2 Aula 5 do Raizen RGSS3: NÍVEL MÉDIO               
#-------------------------------------------------------------------------------
class Nunnu
  def mmc
    a = 6
    b = 4
    c = 1
    while c % a != 0 or c % b != 0
      c += 1
    end
    p c
  end
end
nun = Nunnu.new
nun.mmc
[close]


DIFÍCEIS:
Spoiler
Código: [Selecionar]
#-------------------------------------------------------------------------------
#              Exercício 1 Aula 5 do Raizen RGSS3: NÍVEL DIFÍCIL               
#-------------------------------------------------------------------------------
class Nunnu
  def met1(a)
    if a == 1
      print "Não é um número primo."
      return
    end
    if a == 2 or a == 3
      print "É um número primo."
      return
    end
    if a % 2 == 0 or a % 3 == 0 or a % 5 == 0
      print "Não é um número primo."
    else
      print "É um número primo."
    end
  end
end
nun = Nunnu.new
nun.met1(3)

#-------------------------------------------------------------------------------
#              Exercício 2 Aula 5 do Raizen RGSS3: NÍVEL DIFÍCIL               
#-------------------------------------------------------------------------------
a = 25
b = 1.00
while b * b  < a
  b += 0.01
  b * b
end
p b.round(2)
[close]

Eu não consigo pensar em outra forma de fazer o primeiro exercício dos difíceis, o dos números primos, a não ser a forma que o nunnu fez, apenas encontrei um pequeno erro, que é: quando eu coloco o numero 5 a ser testado, ele retorna a resposta de que o numero 5 não é primo, tomei a liberdade de corrigir no próprio código e ficou assim:

Spoiler
Código: [Selecionar]
class Nunnu
  def met1(a)
    if a == 1
      print "Não é um número primo."
      return
    end
    if a == 2 or a == 3 or a == 5
      print "É um número primo."
      return
    end
    if a % 2 == 0 or a % 3 == 0 or a % 5 == 0
      print "Não é um número primo."
    else
      print "É um número primo."
    end
  end
end
nun = Nunnu.new
nun.met1(5)
[close]

não encontrei mais erros, mas não sei se é possível fazer esse exercício com os comandos de repetição (eu pelo menos não consigo pensar em uma forma de fazer isso)

já o segundo exercício sobre raiz quadrada, não consigo nem de longe pensar numa forma de resolver, e não entendi muito bem nem vendo o código do nunnu, se puder me passar a resposta pra eu tentar entender eu agradeço Raizen  :*-*:

e tenho uma pequena duvida, o que seria esse comando "return" dentro do if? obrigado  :XD:
[close]

Então, (me intrometendo aqui, para te responder.) o "return" é um comando utilizado que encerra a função.
Utilizando o return, ao invés da função terminar no end. Ela ignora todos os comandos depois dele, e finaliza.
Como em:
Código: [Selecionar]
def minha_funcao
  for var in 0..10
    return if var == 2
  end
end
No código acima, a funcao "retorna" quando var for 2, e não chega nos valores 3 ou mais.
obs.: o return tem outras funções, mas o raizen deve falar disso depois.
« Última modificação: 11 Jan 2017, 20:57 por Conspiracy »
Writing codes. Writing novels. Writing... Fates.

Akugam

  • *
  • Mensagens: 29 Ouro: 9
  • "Meu lugar é no topo"
    • RPG Maker VX/Ace
    • Ver perfil
    • E-mail
[Ruby] Aula 5 - Estruturas de Repetição
Resposta 17 Online: 11 Jan 2017, 22:17
Entendo... Obrigado pela explicação XD
Deu pra pegar a ideia, parece realmente útil.
YO :3

 

Versão Mobile