Conectar-se
Quem está conectado
23 usuários online :: 3 usuários cadastrados, Nenhum Invisível e 20 Visitantes

MrRafael, rafaelviodres1, ReisBlender

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Diferença de formataçao e motivos dos erros?

em Qui 12 Abr 2012, 13:25
Criei um tópico anterior, para tentar resolver um problema com minha engine(IA), e dentro desse tópico, fiz uma pergunta que deveria ser sido postada em outro tópico, pois dependendo da resposta iria ajudar muitos outros que tivessem a mesma dúvida mas nao soubessem explicar de outro modo, ou procurar Sendo assim, decidi postar este tópico, incluindo tanto a minha pergunta quanto a resposta obtida. Talvez sejam úteis e é claro, acrescentada por voces e seus pontos de vista. Nao quero ser egoísta, vamos aprender juntos!

Caso lhe interesse este é o tópico:Codigos anulando outro?
E aqui está motivo deste novo tópico (no meu caso a dúvida foi elucidada):[quote="moisesBR"](...)Queria tambem entender a diferença de formataçao e os motivos dos erros:
Código:
formato1:
se algo = isso entao faça isso
se algo = isso entao faça isso
se algo = isso entao faça isso

formato2
começo
se algo = isso entao faça isso
se algo = isso entao faça isso
fim

formato3
começo
se algo = isso entao faça isso
else
se algo = isso entao faça isso
else
se algo = isso entao faça isso
fim[/quote]
Resposta do user:
@Saim escreveu:Diferença entre os formatos
1 e 2: Nenhuma
1-2 e 3: Nos primeiros casos, o código verifica cada uma das declarações "if" e, se todas forem verdadeiras, executas todas elas.
Se a execução significa definir o valor de uma variável, essa variável pode ser definida várias vezes
No terceiro caso, o código vai procurando alguma declaração verdadeira e pára assim que encontra ela, executando o que estiver dentro dela.

Por exemplo, se estiver chovendo, você define vspeed como "+5", se estiver ventando, como "-5". Note que os eventos não estão relacionados, pode ocorrer só um, ambos ou nenhum. Agora, vejamos o comportamento dos seus códigos:

Nos primeiros casos:
se chove { vspeed = 5}
se venta { vspeed = -5}
se estiver chovendo e ventando, o valor de vspeed final será -5. Não é porque não está chovendo, é porque o código passa pela chuva, define vspeed como 5, depois olha o vento e muda o valor da variável.

No último caso:
se chove { vspeed = 5}
senão, se venta {vspeed = -5}
Agora, o código faz o seguinte: se esitver chovendo, ele define vspeed pro valor de 5 e fim. Não quer mais saber do "senão". Ele diz "hm, se está chovendo... opa, está chovendo, deixa eu obedecer aqui! Pronto, que mais? Senão... ah, quero nem saber, não é o caso!". Aí, se não estiver chovendo - só se não estiver chovendo - o código prossegue e verifica se está ventando e, se estiver, define vspeed como -5.

Nos dois casos, se não estiver chovendo nem ventando, vspeed permanece como estava.
Foi isso! Nao sabia onde postar isso, entao como o assunto era de ajuda, postei aqui. Espero que isso seja útil para alguem. Vale lembrar, que esse post, pode ser acrescentado, e deve adicionar suas experiencias sobre este assunto, tal como links para tópicos relacionados. O termo que eu nao sabia era Identação!
Tomei a liberdade de colocar alguns links de posts que li sobre o assunto:
Do Pedro: Identacao nos codigos

Do Fudêncioo: [url=http://gmbr.forumeiros.com/t397-identacao-para-que-serve-e-como-usar?highlight=identa%E7ao ]identacao para que serve e como usar?[/url]

(...)Ei você! Alguem aí, sabe como colocar download do 4shared aqui sem ter que ir para o Adfly?


Última edição por moisesBR em Qui 12 Abr 2012, 14:49, editado 1 vez(es)
avatar
Data de inscrição : 12/04/2012
Número de Mensagens : 20
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: Diferença de formataçao e motivos dos erros?

em Qui 12 Abr 2012, 13:32
Desculpa, vc não poderia me explicar melhor Question Eu não entendí seu tópico, mas agora fiquei com ele encucado na minha cabeça.
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Re: Diferença de formataçao e motivos dos erros?

em Qui 12 Abr 2012, 14:53
Xi! fiz foi complicar mais as coisas! Espere um pouco ... [Ok! Editado]

Como disse; ja tinha sido respondido, mas achei por bem postar aqui, já que a pergunta fugia do tópico em questaotentando ajudar e responder também, dúvidas parecidas com a minha, postei aqui!
Veja-o para entender o contexto:
http://gmbr.forumeiros.com/t21935-diferenca-de-formatacao-e-motivos-dos-erros

Eu desejava saber se o modo de dispor os mesmos códigos, mudava alguma coisa na execuçao, e o Sain me mostrou que sim! No meu exemplo coloquei algo assim tipo uma traduçao:

O normal seria:
if (keyboard_check(vk_rigth)) then {move_toyard_point(5,0,sprite)}
Traduzido:
se (pressionar (seta para direita)) entao {move(5 pixeis para a dieita)}

Entao minha duvida era se ao mudar ou acrescentar marcadores no mesmo codigo mudava algo, e assim fiz meu exemplo mais resumido, traduzido (tem um termo para isso... lógica?):
(Obs: nao tente colocar isso é só um exemplo, uma traduçao)

Modo de montar o codigo1 (normal como eu usava):
Código:
Se teclo algo, entao faz isso!
Se teclo algo, entao faz isso!
Se teclo algo, entao faz isso!
Modo de montar o codigo2 (adicionando begin e end = começo e fim):
Código:
begin
Se teclo algo, entao faz isso!
Se teclo algo, entao faz isso!
Se teclo algo, entao faz isso!
end
Modo de montar o codigo3 (acrescentando else = "ou"):
Código:
começo
Se teclo algo, entao faz isso!
  ou
      Se teclo algo, entao faz isso!
        ou
              Se teclo algo, entao faz isso!
fim
É isso! Percebi neste exato momento que, tem sim, algo a ver com o contexto do outro tópico! Pois meu problema era justamente o codigo cancelando outro o qual era do tipo do exemplo 3!

Entendi que:
E que no exemplo 1 e 2 o resultado é o mesmo!
e no exemplo 3, só o primeiro comando verdadeiro é reconhecido! É isso.

"Arguem!!! Sarva ieu aí! Ajudi ieu ixpricá!!!!"


Última edição por moisesBR em Qui 12 Abr 2012, 15:05, editado 1 vez(es) (Razão : corrigindo algo)
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum