Centro RPG Maker

Centro de Criação => Programação => Tópico iniciado por: Raizen online 12/03/2013 às 15:00

Título: [Ruby] Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 12/03/2013 às 15:00
[box class=windowbg1]
Índice das aulas básicas
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Kvothe online 13/03/2013 às 10:16
 Bem legal as suas aulas, bom você está de parabéns pois as aulas estão bem explicadas e tão... Aí fiz o dever de casa... Optei pelo avançado.;

red = 3
[1, 2, 3].each { |i| if red == i then p "red é #{i}" else p "red não é #{i}" end }
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: cristianoforce online 13/03/2013 às 11:21
Muito boa a aula Raizen, como sempre! ^^.

Duas coisas:

== # se for igual
!= # diferente de
> #maior que
>= #maior ou igual a que
< #menor que
< #menor ou igual que

Exercícios & Comclusão

Dois pequenos erros de digitação xD.

Não fiz os exercícios, até porque eu já conhecia tudo o que havia escrito xD, mas eu li o tópico para ver se não encontrava algo novo em folha :B

Parabéns!
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 13/03/2013 às 14:06
Citação de: Dax online 13/03/2013 às 10:16
Bem legal as suas aulas, bom você está de parabéns pois as aulas estão bem explicadas e tão... Aí fiz o dever de casa... Optei pelo avançado.;

red = 3
[1, 2, 3].each { |i| if red == i then p "red é #{i}" else p "red não é #{i}" end }

Vish, mas ai é avançado demais k x], mas gostei do medo que você fez :D, essas aulas são básicas, então é só para quem está começando mesmo :P, tipo você qé é bolado nisso já kk, tira isso de letra u_u.

@cristianoforce: oooops xD, vlws manin já arrumei :D.
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: felipefalcon online 08/04/2013 às 23:15
Agora corrija meu código, sei que têm algo errado, acho.
class Felipef
   def laranjas
     laranjas = 12
if laranjas == 12
   p "Possui uma dúzia de laranjas"
else
   p "Não tem uma dúzia"
   end
end
def horas
   horas = 24
   if horas == 1
     p "ímpar"
   elsif horas == 3
     p "ímpar"
   elsif horas == 5
     p "ímpar"
   elsif horas == 9
     p "ímpar"
   elsif horas == 11
     p "ímpar"
   elsif horas == 13
     p "ímpar"
   elsif horas == 15
     p "ímpar"
   elsif horas == 17
     p "ímpar"
   elsif horas == 19
     p "ímpar"
   elsif horas == 21
     p "ímpar"
   elsif horas == 23
     p "ímpar"
   else
     p "par"
     end
   end
     end
   conta = Felipef.new
   conta.laranjas
   conta.horas


Tem como você me explicar, se tiver como, deixar esta condição que eu fiz das horas, tipo bem simplificada XD?(Acho que escrevi mt)
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 09/04/2013 às 00:00
Sim sim k ^^, na verdade era algo assim apenas que eu esperava xD.

class Felipef
   def laranjas
     laranja = 12
if laranja == 12
   p "Possui uma dúzia de laranjas"
else
   p "Não tem uma dúzia"
   end
end
def horas
   hora = 24
   if hora % 2 == 1
     p "ímpar"
   else
     p "par"
     end
   end
     end
   conta = Felipef.new
   conta.laranjas
   conta.horas


Lembrando 2 coisas, não use nome de variáveis iguais a nome de métodos :X.

Você havia colocado laranjas e laranjas, e horas e horas, isso não é muito legal xD, na verdade da StackError se você testar, provavelmente... porque ele tenta chamar o método dentro dele mesmo, então só deixar uma variável com nome diferente do método =D.

E, a ideia do impar e par, era usar esse simbolo %, que é resto logo... 5 % 2 == 1
4 % 2 == 0

O resto de 5 por 2, é 1.
O resto de 4 por 2, é 0.
=D
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: felipefalcon online 09/04/2013 às 12:37
Citação de: Raizen online 09/04/2013 às 00:00
Sim sim k ^^, na verdade era algo assim apenas que eu esperava xD.

class Felipef
   def laranjas
     laranja = 12
if laranja == 12
   p "Possui uma dúzia de laranjas"
else
   p "Não tem uma dúzia"
   end
end
def horas
   hora = 24
   if hora % 2 == 1
     p "ímpar"
   else
     p "par"
     end
   end
     end
   conta = Felipef.new
   conta.laranjas
   conta.horas


Lembrando 2 coisas, não use nome de variáveis iguais a nome de métodos :X.

Você havia colocado laranjas e laranjas, e horas e horas, isso não é muito legal xD, na verdade da StackError se você testar, provavelmente... porque ele tenta chamar o método dentro dele mesmo, então só deixar uma variável com nome diferente do método =D.

E, a ideia do impar e par, era usar esse simbolo %, que é resto logo... 5 % 2 == 1
4 % 2 == 0

O resto de 5 por 2, é 1.
O resto de 4 por 2, é 0.
=D
Obrigadopor corrigir, não sabia deste troço aí dos métodos e váriaveis não vlw XD
Vai ver porque nunca precisei usar.^^
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 09/04/2013 às 17:56
Na verdade, sendo bem chato kk, mas se ler acho que entenderá bem, isso funciona para qualquer coisa.
Imagina o seguinte, eu tenho uma caixa.

Essa caixa eu coloco o nome de box, sempre que no programa eu buscar o box, ele vai pegar essa caixa e abrir, abrindo a caixa é que vemos se é uma variável, método, tanto que se eu buscar box2, e eu não criei essa box2, ele vai falar objeto não encontrado, ou seja não existe. Então criando com o nome laranja o método, só haverá uma caixa com nome laranja, se houver por exemplo uma classe com nome Laranja, não pode haver uma constante com nome Laranja. Isso porque Laranja já está sendo ocupado por outra coisa, ele pega um espaço no programa :P, então serve para qualquer coisa, não "nomeie" 2 coisas diferentes com mesmo nome, isso em qualquer linguagem ^^.
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: RyanKamos online 11/04/2013 às 19:33
Aeee, to aprendendo hehe
Fiz a lição 1:
Spoiler

=begin
###############################################################################
                              TESTE [Horas/Maçãs]
###############################################################################
=end

class Ryan_bag
  def apples
    all_apples = 12
    if all_apples == 12
      p "Você tem 12 maçãs!"
    else all_apples < 12
      p "Você não tem 12 maçãs!"
    end
  end
  def clock
    hours = 19
    if hours % 2 == 1
      p "Impar"
    else
      p "Par"
    end
  end
end
 
resultado = Ryan_bag.new
resultado.apples
resultado.clock

[close]
E Lição 2:  :clap:
Spoiler

=begin
###############################################################################
                              TESTE 2 [Soma/Poções]
###############################################################################
=end
class Ryan_potions
  def potions (x, y)
    all_potions = x + y
    if all_potions >= 10
      p "Você tem 10 poções"
    else all_potions < 10
      p "Você não tem 10 poções"
    end
  end
end

resultado = Ryan_potions.new
resultado.potions(5,5)

[close]

A 3º não entendi muito bem kkkk, já quebrei a cabeça pra fazer a 2 kkkk
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 11/04/2013 às 19:47
Perfeito  :wow:, depois tente os outros, a 3 na verdade, é só escrever aquele código de um jeito mais curto do que está xD.

Ah e na um eu havia pedido constante que seria...

Constante, aquele valor que não muda, de resto parabéns, e fico feliz que esteja acompanhando :D, a aula 5 deve sair lá na próxima semana provavelmente.
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: RyanKamos online 11/04/2013 às 20:34
Ok, ops sorry kkkk, mas entendi como funfa, isso é o mais importante kk agradeço a você pelas aulas, eu sempre quis aprender scripts :3
Nossa, eu to caçando a 5º aula aqui e to "Cadê? Só tem 6º" kkkkk, aguardo então, enquanto isso leio as outras. obrigado :3
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: NetinhoMaker online 27/07/2013 às 02:52
O exercício fácil, mas acho que não é assim a verificação se é impar ou par. :rei:

class Netinho
  laranjas = 12
  hora = 12
  if laranjas == 12
    p "uma dúzia"
  else
    p "não tem 12"
  end
  if hora =
  if horas = 0 or 2 or 4 or 6 or 8 or 10 or 12 or 13 or 14 or 15 or 16 or 18 or 20 or 22 or 24
    p "par"
  else
    p "impar"
  end
 
end



Esse intermediário foi um pouco fácil também, só não entendi direito o segundo ponto pedido.
"Crie um método de somar, em que os argumentos sejam 2 números, porém que imprima se a soma é acima de 10, ou abaixo de 10."

red = 5
if red >= 1 and red <= 5
  p "red está entre 1 e 5"
else
  p "red não é nenhum dos anteriores"
end


Posso melhorar em alguma coisa?!
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Mepps online 27/07/2013 às 09:44
Exercícios Facieis

Laranjas

class Laranjas;
def laranja(x);

laranja = x

if laranja < 0
puts " você não tem nenhuma Laranja";
elsif laranja.between?(1,5);
puts " Voce tem #{laranja} Laranjas ";
elsif laranja == 6 then puts " Você tem meia duzia ";
elsif laranja.between?(7,11);
puts " Voce tem #{laranja} Laranjas ";
elsif laranja == 12 then puts " Você tem uma duzia ";
elsif laranja > 12;
puts " Voce tem #{laranja} Laranjas ";

end;
end;
end;

resultado = Laranjas.new
resultado.laranja(6)


Horas

class Tempo;
def horas;
hora = 23;
if hora % 2 == 1;
puts "ímpar";
else;
puts "par";
end;
end;
end;

resultado = Tempo.new
resultado.horas



Codigo Optimizado - Intermediario


case red = 4

when 1
puts "red é 1"

when 2
puts "red é 2"
 
when 3
"red é 3"
   
else
puts "red nao é nenhum dos anteriores"

end


Programa de  Soma de 2 Algoritimos
class Matematica;
def soma(x,y);
soma = x + y;

if soma < 10;
puts " A soma e menor que 10 seu valor é #{soma}";
elsif soma > 10
puts " a soma e Maior que 10 seu valor é #{soma}";

end;
end;
end;

resultado = Matematica.new
resultado.soma(5,6)
resultado.soma(5,6)



Avançado



class Division;
def arg(x)
arg = [x]
divisivel  = "Divisivel por 3 "
ndivisivel = "Desculpe Não é divisivel por 3"

if arg.each{|chave,valor,retorno|puts"#{chave} => #{divisivel} e seu resultado é : #{chave/3}  " if chave%3==0}
if arg.each{|chave,valor|puts"#{chave} => #{ndivisivel}" unless chave%3==0}

end
end
end
end

resultado = Division.new
resultado.arg(11)


Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 27/07/2013 às 18:22
Vou só responder a esse exercicio Mepps, das outras aulas nem preciso falar que está certo né shUAs xD.

Bom você manja a valer, nem tem tanta razão de eu corrigir algo rs, mas muito bem x], usou até um bloco para uma array, apesar que nem precisava de tanto x], anyway vlws por ter dado uma olhada na aula, tento fazer de um modo simples para ser entendível e claro, vamos movimentar essa área mais :D, boa sorte man.
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: NetinhoMaker online 27/07/2013 às 20:52
Faltou corrigir o meu Raizen, que está acima do Mepps.
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 27/07/2013 às 21:03
Citação de: NetinhoMaker online 27/07/2013 às 20:52
Faltou corrigir o meu Raizen, que está acima do Mepps.
Me desculpe eu não havia visto D:

Citação de: NetinhoMaker online 27/07/2013 às 02:52
O exercício fácil, mas acho que não é assim a verificação se é impar ou par. :rei:

class Netinho
  laranjas = 12
  hora = 12
  if laranjas == 12
    p "uma dúzia"
  else
    p "não tem 12"
  end
  if hora =
  if horas = 0 or 2 or 4 or 6 or 8 or 10 or 12 or 13 or 14 or 15 or 16 or 18 or 20 or 22 or 24
    p "par"
  else
    p "impar"
  end
 
end



Esse intermediário foi um pouco fácil também, só não entendi direito o segundo ponto pedido.
"Crie um método de somar, em que os argumentos sejam 2 números, porém que imprima se a soma é acima de 10, ou abaixo de 10."

red = 5
if red >= 1 and red <= 5
  p "red está entre 1 e 5"
else
  p "red não é nenhum dos anteriores"
end


Posso melhorar em alguma coisa?!

então o segundo não vou bem corrigir, pois é bem diferente do pedido xD, acho que não entendeu muito, bem, seria um método de somar tipo.

def soma(x, y)....

e ai ele imprime se a soma é mais que 10, ou menor que 10.

O primeiro, acho melhor vc testar no maker para ver o erro que dará, tem alguns erros ai :P, um de digitação, e o de par o ideal é usar isso daqui. %, isso é simbolo de resto, então dá para fazer uma verificação com o resto, tem outro modo que seria o .even, mas tente fazer com o resto(%).
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: NetinhoMaker online 28/07/2013 às 01:15
Obrigado Raizen pela correção, me dei uma segunda chance, espero que não seja incomodo:

class Netinho
  def laranja
    laranjas = 12
    if laranjas == 12
      p "Você tem uma dúzia"
    else
      p "Você não tem uma dúzia"
    end
  end
  def hora
    horas = 14
    if horas % 2 == 0
      p "Par"
    else
      p "Impar"
    end
  end
end

result = Netinho.new
result.laranja
result.hora


Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Lincoln online 30/07/2013 às 18:37
Optei pelos níveis fáceis e intermediários x3

Fácil
1. Crie uma Constante, que indica o número de laranjas, esse número é colocado pelo usuário, e se tiver um número exato a 12, imprima "uma dúzia".

module Orange_Number # O módulo do número de laranjas
  ORANGE_NUMBER = 12
end

class Orange_Print # A classe que vai checar e printar o número de laranjas
  include Orange_Number
  def print
    if ORANGE_NUMBER == 12
      p 'Uma dúzia'
    end
  end
  print = Orange_Print.new
  print.print
end


2. Crie uma condição aonde eu imprima a hora, que é colocado pelo usuário e que imprima se a hora é ímpar, ou ela é par.

hour = 13

if hour % 2 == 0
  p "A hora atual é #{hour}, que é par."
else
  p "A hora atual é #{hour}, que é ímpar."
end

[close]

Intermediário
1. Optimize o código a seguir com o que foi aprendido nessa aula.

código antigo:
red = 5
if red == 1 then
  p "red eh 1"
else
  if red == 2 then
    p "red eh 2"
  else
    if red == 3 then
      p "red eh 3"
    else
      p "red nao é nenhum dos anteriores"
    end
  end
end


código novo:
red = 5
if red == 1
  p "red eh 1"
elsif red == 2
  p "red eh 2"
elsif red == 3
  p "red eh 3"
else
  p "red nao é nenhum dos anteriores"
end


2. Crie um método de somar, em que os argumentos sejam 2 números, porém que imprima se a soma é acima de 10, ou abaixo de 10.

def addition(a1,a2)
  a12 = a1 + a2
  if a12 >= 10
    p "O resultado da soma foi maior ou igual à 10"
  else
    p "O resultado da soma foi menor que 10"
  end
end

addition(3,2)
print "\n"
addition(4,6)
print "\n"
addition(6,19)
 
[close]

Espero que goste de meus humildes códigos PAKSPOAKS' u_u
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Ryugo online 30/07/2013 às 19:37
Opa,terminei as tarefas dessa aula(não fiz avançado,porque é avançado  :lol: )

Fácil:
Spoiler
Laranja:
class Laranja
def laranjas(x)
  laranjas = x
  if laranjas == 12
    p "Uma duzia"
  elsif laranjas < 12
    p "Menos que 12"
  else
    p "Mais que 12"
    end
  end
end

seila = Laranja.new
seila.laranjas(12)


Hora:
class Tarefa_horas
  def hora(x)
    horas = x
    if horas >= 25
      p "Não é uma hora"
    elsif horas %2 == 1
      p "Impar"
    else
      p "Par"
    end
  end
end
result = Tarefa_horas.new
result.hora(16)


Spoiler
Edit: Fiz do jeito que era esperado agora,esta ali em cima,mas deixo aqui o antigo:
class Horas
  def hora(x)
    hora = x
    case hora
    when 1
      p "Hora impar"
    when 3
      p "Hora impar"
    when 5
      p "Hora impar"
    when 7
      p "Hora impar"
    when 9
      p "Hora impar"
    when 11
      p "Hora impar"
    when 13
      p "Hora impar"
    when 15
      p "Hora impar"
    when 17
      p "Hora impar"
    when 19
      p "Hora impar"
    when 21
      p "Hora impar"
    when 23
      p "Hora impar"
    when 
      if hora >= 25
        p "Não é uma hora"
      else
        p "Hora par"
      end
    end
  end
end

seila = Horas.new
seila.hora(10)

Eu sei que não é assim o da hora,eu fiz do jeito que achei que era,e agora vim ler os posts e vi que não fiz do jeito mais fácil. Vou fazer do jeito que você mostrou e depois dou um edit aqui.
[close]
[close]

Intermediário:
Spoiler
Adaptar código:
red = 5
if red == 1
  p "red eh 1"
elsif red == 2
  p "red eh 2"
elsif red == 3
  p "red eh 3"
else
  p "red nao é nenhum dos anteriores"
end


Soma de dois valores mostrando se é maior ou menos que 10:
class Tarefa_interme
  def somar(x, y)
    soma = x + y
    if soma == 10
      p "O resultado é 10 exato"
    elsif soma > 10
      p "O resultado é maior que 10"
    else
      p "O resultado é menor que 10"
    end
  end
end

result = Tarefa_interme.new
result.somar(3, 3)
[close]

Está aí,não entendi nenhum dos dois avançados,aí fui olhar a tarefa dos outros,e quem fez avançado usou uns código que não conheço  :ded:

E já aproveito pra perguntar: Essas aulas você esta ensinando ruby(e não rgss em si).Então tudo aprendido nas suas aulas poderá ser usado no rgss1,rgss2 e no 3 néh?!
E quais são as particularidades de cada rgss?A diferença de programar nas 3 é muita?


Té  :wow:
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 01/08/2013 às 13:34
@Netinho: bem melhor :D, agora tentar as outras tarefas mais difíceis  :malvado:

@Ryugo: Sobre o de horas, bom qualquer modo que mostrou está correto, apenas que como pode ver, usar o resto(%), é beeem mais fácil :P. Mas de resto está bem legalz.
Sobre sua pergunta, o RGSS é só uma biblioteca, não é todo feito em Ruby o RGSS, porém aquela parte de scripts que editamos lá no editor é, para o RGSS1/2, pelo que eu sei, ele tem 95% de todos os comandos/classes de Ruby, então sem problemas, e o RGSS3 tem ele inteiro(até agora pelo menos :D).
Você aprendendo Ruby, você programa em qualquer RGSS, você aprendendo RGSS, tem mais dificuldade para transitar de um para outro  :=p:, então sim, pegando bem a linguagem, você programa em qualquer versão.
  Tem mais diferença apenas na hora de usar comandos de RGSS, por exemplo $game_player.x, ou algo que é da biblioteca mesmo, mas sabendo o Ruby, você mexe em todos sem problema. Basta ver que os scripters mais avançados no dia que o Ace foi lançado, já tinha vários scripts saindo.


@SuperPig:  Bão bão xD, eu não usaria um método/objeto com nome de print, não é politicamente correto kk, é que tem a função print no Ruby, e você está basicamente usando o mesmo nome o que daria erro.
E nada a comentar dos outros 2, eles estão bons :D.





Boa sorte com as lições, qualquer dúvida podem mandar aqui, ah e sempre testem, é bom para ver como está rodando o código.
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Lincoln online 26/01/2014 às 00:27
Opa, hola Raizen! Como estou persistindo no RGSS3, voltei aqui para te mostrar os exercícios avançados que fiz, acredito que estejam certos. ^^

1:
Spoiler

def divisores(d)
  d1 = d % 3
  d2 = d % 4
  d3 = d % 5
  p "Divisível por 3" if d1 == 0
  p "Divisível por 4" if d2 == 0
  p "Divisível por 5" if d3 == 0
end

divisores(90)
[close]

2: (OBS: Obrigado pela dica dos floats ^^)
Spoiler

class Aleatory
  def metho1(a,b)
    @a = a
    @b = b
    if a % b == 0
      p metho2
    else
      p metho3
    end
  end 
  def metho2
    return @a / @b
  end
  def metho3
    return @a / @b
  end
end

test = Aleatory.new
test.metho1(6.0,2.0)
[close]

Dá uma olhada aí, ^^
Título: Re:  Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 29/01/2014 às 23:18
Citação de: SuperPig online 26/01/2014 às 00:27
Opa, hola Raizen! Como estou persistindo no RGSS3, voltei aqui para te mostrar os exercícios avançados que fiz, acredito que estejam certos. ^^

1:
Spoiler

def divisores(d)
  d1 = d % 3
  d2 = d % 4
  d3 = d % 5
  p "Divisível por 3" if d1 == 0
  p "Divisível por 4" if d2 == 0
  p "Divisível por 5" if d3 == 0
end

divisores(90)
[close]

2: (OBS: Obrigado pela dica dos floats ^^)
Spoiler

class Aleatory
  def metho1(a,b)
    @a = a
    @b = b
    if a % b == 0
      p metho2
    else
      p metho3
    end
  end 
  def metho2
    return @a / @b
  end
  def metho3
    return @a / @b
  end
end

test = Aleatory.new
test.metho1(6.0,2.0)
[close]

Dá uma olhada aí, ^^

Muitoooo bom :D, de verdade. Não vejo como poderia ser muito melhor, fico feliz de estar acompanhando, agora faltam poucas aulas pela frente :)
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Linksplays online 24/05/2015 às 21:05
Mais um dever pronto, fiz os fáceis e os intermediários
#-------------------------------------------------------------------------------
#                           Dever de Condições
#-------------------------------------------------------------------------------

#Fáceis

class Links1
  def laranjas
    laranja = 10
  if laranja = 12
    p "Tenho uma dúzia de laranjas"
  else
    p "Não tenho uma dúzia de laranjas"
  end
end
  def horas
    hora = 20
  if hora % 2 == 0
    p "A hora é par"
  else
    p "A hora é ímpar"
  end
end
  end
  resultado1 = Links1.new
  resultado1.laranjas
  resultado1.horas
 
#Intermediários

#Original
red = 5
if red == 1 then
  p "red eh 1"
else
  if red == 2 then
    p "red eh 2"
  else
    if red == 3 then
      p "red eh 3"
    else
      p "red nao é nenhum dos anteriores"
    end
  end
end

#Reduzido
red = 5
if red == 1
  p "red eh 1"
elsif red == 2
  p "red eh 2"
elsif red == 3
  p "red eh 3"
else
  p "red não é nenhum dos anteriores"
end

class Links2
  def somar(x, y)
    soma = x + y
  if soma > 10
    p "A soma é maior que 10"
  else
    p "A soma é menor que 10"
  end
end
  end
  resultado2 = Links2
  resultado2.somar(7, 6)

Só não entendi uma coisa, o segundo intermediário eu fiz só que quando testo dá erro, o que fiz de errado? Obs.: Esses números depois das palavras é por que acho que pode dar conflito com os scripts das outras aulas.
Título: Re:  Aula 4 - Condições e Estruturas de Controle
Enviado por: Raizen online 25/05/2015 às 10:15
Citação de: Linksplays online 24/05/2015 às 21:05
Mais um dever pronto, fiz os fáceis e os intermediários
#-------------------------------------------------------------------------------
#                           Dever de Condições
#-------------------------------------------------------------------------------

#Fáceis

class Links1
  def laranjas
    laranja = 10
  if laranja = 12
    p "Tenho uma dúzia de laranjas"
  else
    p "Não tenho uma dúzia de laranjas"
  end
end
  def horas
    hora = 20
  if hora % 2 == 0
    p "A hora é par"
  else
    p "A hora é ímpar"
  end
end
  end
  resultado1 = Links1.new
  resultado1.laranjas
  resultado1.horas
 
#Intermediários

#Original
red = 5
if red == 1 then
  p "red eh 1"
else
  if red == 2 then
    p "red eh 2"
  else
    if red == 3 then
      p "red eh 3"
    else
      p "red nao é nenhum dos anteriores"
    end
  end
end

#Reduzido
red = 5
if red == 1
  p "red eh 1"
elsif red == 2
  p "red eh 2"
elsif red == 3
  p "red eh 3"
else
  p "red não é nenhum dos anteriores"
end

class Links2
  def somar(x, y)
    soma = x + y
  if soma > 10
    p "A soma é maior que 10"
  else
    p "A soma é menor que 10"
  end
end
  end
  resultado2 = Links2
  resultado2.somar(7, 6)

Só não entendi uma coisa, o segundo intermediário eu fiz só que quando testo dá erro, o que fiz de errado? Obs.: Esses números depois das palavras é por que acho que pode dar conflito com os scripts das outras aulas.

resultado2 = Links2

Não faltou o .new xD? Para instanciar a classe :)?

Do jeito que fez daria certo de outro modo, mas ai é nas aulas avançadas que verá, mas acho que só faltou isso mesmo.
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Linksplays online 25/05/2015 às 15:59
Citação de: Raizen online 25/05/2015 às 10:15
Citação de: Linksplays online 24/05/2015 às 21:05
Mais um dever pronto, fiz os fáceis e os intermediários
#-------------------------------------------------------------------------------
#                           Dever de Condições
#-------------------------------------------------------------------------------

#Fáceis

class Links1
  def laranjas
    laranja = 10
  if laranja = 12
    p "Tenho uma dúzia de laranjas"
  else
    p "Não tenho uma dúzia de laranjas"
  end
end
  def horas
    hora = 20
  if hora % 2 == 0
    p "A hora é par"
  else
    p "A hora é ímpar"
  end
end
  end
  resultado1 = Links1.new
  resultado1.laranjas
  resultado1.horas
 
#Intermediários

#Original
red = 5
if red == 1 then
  p "red eh 1"
else
  if red == 2 then
    p "red eh 2"
  else
    if red == 3 then
      p "red eh 3"
    else
      p "red nao é nenhum dos anteriores"
    end
  end
end

#Reduzido
red = 5
if red == 1
  p "red eh 1"
elsif red == 2
  p "red eh 2"
elsif red == 3
  p "red eh 3"
else
  p "red não é nenhum dos anteriores"
end

class Links2
  def somar(x, y)
    soma = x + y
  if soma > 10
    p "A soma é maior que 10"
  else
    p "A soma é menor que 10"
  end
end
  end
  resultado2 = Links2
  resultado2.somar(7, 6)

Só não entendi uma coisa, o segundo intermediário eu fiz só que quando testo dá erro, o que fiz de errado? Obs.: Esses números depois das palavras é por que acho que pode dar conflito com os scripts das outras aulas.

resultado2 = Links2

Não faltou o .new xD? Para instanciar a classe :)?

Do jeito que fez daria certo de outro modo, mas ai é nas aulas avançadas que verá, mas acho que só faltou isso mesmo.

Caraca não acredito que não vi isso vei, vlw ai.
Agora sim:
[code]#-------------------------------------------------------------------------------
#                           Dever de Condições
#-------------------------------------------------------------------------------

#Fáceis

class Links1
  def laranjas
    laranja = 10
  if laranja = 12
    p "Tenho uma dúzia de laranjas"
  else
    p "Não tenho uma dúzia de laranjas"
  end
end
  def horas
    hora = 20
  if hora % 2 == 0
    p "A hora é par"
  else
    p "A hora é ímpar"
  end
end
  end
  resultado1 = Links1.new
  resultado1.laranjas
  resultado1.horas
 
#Intermediários

#Original
red = 5
if red == 1 then
  p "red eh 1"
else
  if red == 2 then
    p "red eh 2"
  else
    if red == 3 then
      p "red eh 3"
    else
      p "red nao é nenhum dos anteriores"
    end
  end
end

#Reduzido
red = 5
if red == 1
  p "red eh 1"
elsif red == 2
  p "red eh 2"
elsif red == 3
  p "red eh 3"
else
  p "red não é nenhum dos anteriores"
end

class Links2
  def somar1(x, y)
    soma = x + y
  if soma > 10
    p "A soma é maior que 10"
  else
    p "A soma é menor que 10"
  end
end
  end
  resultado2 = Links2.new
  resultado2.somar1(7, 6)


kkkkk
Título: Re: Aula 4 - Condições e Estruturas de Controle
Enviado por: Henrique A. M. online 08/11/2015 às 10:52
Cara ótimas aulas, estou gostando muito, ai esta meu dever de casa:

Fáceis:

Laranja = 24
if Laranja == 12
  p "Você possui uma dúzia de laranjas"
elsif Laranja < 12
  p "Você possui menos que uma dúzia de laranjas"
else
  p "Você possui mais que uma dúzia de laranjas"
end


horas = 15
if horas % 2 == 0
  p "É par"
else
  p "É impar"
end


Intermediário:


red = 5
case red
if red == 1 then
  p "red é 1"
elsif red == 2 then
  p "red é 2"
elsif red == 3 then
  p "red é 3"
else
  p "red nao é nenhum dos anteriores"
end


def soma(x, y)
  z = x + y
  if z > 10
    p "A soma é maior que 10"
  elsif z < 10
    p "A soma é menor que 10"
  else
    p "A soma é igual a 10"
  end
end

soma(3, 8)


Avançado:

def verifica (x)
  if x % 3 == 0
    p "O número é divisivel por 3"
  end
  if x % 4 == 0
    p "O número é divisivel por 4"
  end
  if x % 5 == 0
    p "O nùmero é divisivel por 5"
  end
end

verifica(15)


class Qualquer
  def metodo1(x, y)
    @x = x
    @y = y
    if x % y == 0
      p metodo2
    else
      p metodo3
    end
  end
  def metodo2
    return @x / @y
  end
  def metodo3
    if @x > @y
      return @x / @y
    else
      return @y / @x
    end
  end
end

q = Qualquer.new
q.metodo1(3.0, 4.0)
Título: [Ruby] Aula 4 - Condições e Estruturas de Controle
Enviado por: Nunnu online 11/07/2016 às 00:39
@Raizen

Rapaz... que dificuldade que eu tive no último do avançado, acho que não foi como tu queria, mas foi o máximo que consegui encontrar de lógico para se fazer. Me corrija se eu errei em alguns dos exercícios:


Nível Fácil: Exercício 1
Spoiler
#-------------------------------------------------------------------------------
#               Exercício 1 Aula 4 do Raizen RGSS3: NÍVEL FÁCIL
#-------------------------------------------------------------------------------
class Laranja
  def laranjas
    a = 12
    if a == 12
      print "uma dúzia"
    else
      print a
    end
  end
end
var = Laranja.new
var.laranjas
[close]


Nível Fácil: Exercício 2
Spoiler
#-------------------------------------------------------------------------------
#             Exercício 2 Aula 4 do Raizen RGSS3: NÍVEL FÁCIL
#-------------------------------------------------------------------------------
class Tempo
  def horas
  hrs = 12
    if hrs % 2 == 1
      print "Número ímpar."
    else
      print "Número par."
    end
  end
end
var = Tempo.new
var.horas
[close]


Nível Intermediário: Exercício 1 e 2
Spoiler
#-------------------------------------------------------------------------------
#          Exercício 1 e 2 Aula 4 do Raizen RGSS3: NÍVEL INTERMEDIÁRIO   
#-------------------------------------------------------------------------------
class Red_class
  def red
    red = 5
    if red == 1 then p "red eh 1"
    else
      if red == 2 then p "red eh 2"
      else
        if red == 3 then p "red eh 3"
        else
          p "red nao é nenhum dos anteriores"
        end
      end
    end
  end         
#-------------------------------------------------------------------------------
  def red1(a, b)
    if a + b > 10
      print "acima de 10"
    elsif a + b == 10
      print ""
    else
      print "abaixo de 10"
    end
  end
end
var = Red_class.new
var.red
var.red1(5, 5)
[close]


Nível Avançado: Exercício 1
Spoiler
#-------------------------------------------------------------------------------
#              Exercício 1 Aulas 4 do Raizen RGSS3: NÍVEL AVANÇADO
#-------------------------------------------------------------------------------
class Number
  def divo(a)
    if a % 3 == 0 then print "É divisível por 3.\n" end
    if a % 4 == 0 then print "É divisível por 4.\n" end
    if a % 5 == 0 then print "É divisível por 5.\n" end
    if a % 3 != 0 and a % 4 != 0 and a % 5 != 0
      print "Não é divisível por nenhum."
    end
  end
end
var2 = Number.new
var2.divo(3)
[close]


Nível Avançado: Exercício 2
Spoiler
#-------------------------------------------------------------------------------
#              Exercício 2 Aulas 4 do Raizen RGSS3: NÍVEL AVANÇADO
#-------------------------------------------------------------------------------
class Nunnu
  def met1
    @x = 2.0
    @y = 4.0
    if @x / @y % 1 == 0
      p met2
    else
      p met3
    end
  end

  def met2
    @x = 2
    @y = 4
    if @x > @y == true
      @x / @y
    else
      @y / @x
    end
  end

  def met3
    if @x > @y == true
      @x / @y
    else
      @y / @x
    end
  end
end
var = Nunnu.new
var.met1
[close]


Desculpe ter que fazer tu trabalhar mais xD, tá cheio de exercício pendente. Mas é que realmente é importante pra mim aprender Ruby atualmente, preciso saber se estou indo no caminho certo. As tuas aulas são muito boas e tal, mas o que eu mais gosto são dos exercícios, se não fosse isso não lembraria tão facilmente do que aprendi.

Resumindo, está muito bom seu trabalho, continue com as aulas se já não terminou.

OBS: Desculpem em reviver o tópico, mas é importante pra mim saber meu desempenho.