[Tutorial] Bбsico sobre algorнtimos.
#1

• Introduзгo.
Hoje estou aqui para trazer aos iniciantes em programaзгo a lуgica bбsica para formar qualquer script, pode nгo parecer mas o que vou ensinar aqui irб resolver muitos problemas durante o desenvolvimento do seu projeto.

Nгo pretendo ser muito longo na explicaзгo pois й para ser algo resumido porйm didбtico e prбtico.
• O que sгo algorнtimos?
Algorнtimos й uma sequкncia finita de passos que algo deve seguir para chegar ao seu destino. Simples, nгo?

Exemplo de um algorнtimo utilizando um exemplo do dia-a-dia:
Код:
Acordar.
---- Ir ao banheiro.
-------- Se alguйm estiver no banheiro.
------------ Esperar atй sair.
-------- Se o banheiro estiver livre.
------------ Entrar
---- Fim da aзгo de ir ao banheiro.
Fim da aзгo de acordar.
Basicamente й um roteiro de aзхes.
• Como aplicar a linguagem de programaзгo PAWN?
Vamos pegar um exemplo bбsico..
Queremos que o nosso jogador ao pressionar a tecla Y ele fique congelado, porйm, se ele estiver logado como administrador RCON essa aзгo nгo seja executada. Como iriamos construir essa lуgica?

Код:
Pressionou a tecla 'Y'.
---- Verificar se й administrador RCON.
-------- Se for.
------------ Nгo executar nada.
-------- Se nгo for.
------------ Congelar jogador.
---- Fim da verificaзгo.
Fim da aзгo.
Agora, para aplicar temos que utilizar as funзхes que a linguagem nos fornece e assim chegando ao script:
PHP код:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys)  
{  
    if(
newkeys KEY_YES// verifica se o jogador(a) pressionou a tecla Y.
    
{  
        if(
IsPlayerAdmin(playerid))    // Se o jogador for um administrador RCON. 
        

               
//nгo executa nada
        
}
        else 
// Caso nгo seja.
        
{
              
TogglePlayerControllable(playeridfalse); // Congela o jogador.
        
}
    } 
// Finaliza a verificaзгo.  
    
return true

• Resumo.
Algorнtimos й a forma que criamos a lуgica para que o nosso cуdigo siga passos especнficos para concluir uma aзгo com exito.
Reply
#2

Bem explicado, parabйns.
Reply
#3

Quote:
Originally Posted by Relaxed
Посмотреть сообщение
Bem explicado, parabйns.
Obrigado pelo feedback.
Reply
#4

Bom tutorial,
O problema й de quem precisa realmente ler isso, nгo vai nem abrir o topico, e ainda vai criar topicos de ajuda repetidos, e se alguйm mandar o link deste tuto, vгo te xingar .-.
Reply
#5

Bem mais ou menos...
Vocк ensinou a escrever um pequeno bloco de comandos, um pequeno algoritmo isolado. Mas sabemos que no SAMP os algoritmos dificilmente sгo totalmente isolados, ainda mais se for um projeto modular (Callbacks "hookadas").
PHP код:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys

    if(
newkeys == KEY_YES// isso nгo deveria funcionar, o correto й if(newkeys & KEY_YES)
    

        if(
IsPlayerAdmin(playerid)) // Verifica se o jogador й administrador RCON. 
            
return false// Nesse passo ele vai retornar falso toda vez que um admin RCON apertar Y
                             //E consequentemente vai invalidar a tecla Y para este admin.                         
        
TogglePlayerControllable(playeridfalse); // Congela o jogador. 
    
// Finaliza a verificaзгo. 
    
return true

Cуdigo corrigido:
PHP код:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys

    if(
newkeys KEY_YES// Verifica se o jogador pressionou a tecla 'Y'. 
    

        if(!
IsPlayerAdmin(playerid)) // Verifica se o jogador й NГO administrador RCON.                   
            
TogglePlayerControllable(playeridfalse); // Congela o jogador. 
    
// Finaliza a verificaзгo. 
    
return true;

A compreensгo de algoritmo й mais que uma metбfora do cotidiano.
Reply
#6

Quote:
Originally Posted by RazorGuigo
Посмотреть сообщение
Bom tutorial,
O problema й de quem precisa realmente ler isso, nгo vai nem abrir o topico, e ainda vai criar topicos de ajuda repetidos, e se alguйm mandar o link deste tuto, vгo te xingar .-.
Bom, ai й com eles.
Quote:
Originally Posted by renatog
Посмотреть сообщение
Bem mais ou menos...
Vocк ensinou a escrever um pequeno bloco de comandos, um pequeno algoritmo isolado. Mas sabemos que no SAMP os algoritmos dificilmente sгo totalmente isolados, ainda mais se for um projeto modular (Callbacks "hookadas").
PHP код:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys

    if(
newkeys == KEY_YES// isso nгo deveria funcionar, o correto й if(newkeys & KEY_YES)
    

        if(
IsPlayerAdmin(playerid)) // Verifica se o jogador й administrador RCON. 
            
return false// Nesse passo ele vai retornar falso toda vez que um admin RCON apertar Y
                             //E consequentemente vai invalidar a tecla Y para este admin.                         
        
TogglePlayerControllable(playeridfalse); // Congela o jogador. 
    
// Finaliza a verificaзгo. 
    
return true

Cуdigo corrigido:
PHP код:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys

    if(
newkeys KEY_YES// Verifica se o jogador pressionou a tecla 'Y'. 
    

        if(!
IsPlayerAdmin(playerid)) // Verifica se o jogador й NГO administrador RCON.                   
            
TogglePlayerControllable(playeridfalse); // Congela o jogador. 
    
// Finaliza a verificaзгo. 
    
return true;

A compreensгo de algoritmo й mais que uma metбfora do cotidiano.
Coloquei o cуdigo de maneira aberta e que pudesse explicar a lуgica que criei para o tуpico, nгo era para ser de maneira optimizada.

Sobre ser um algorнtimo isolado, a ideia base para compreender algorнtimos e sua utilizaзгo й essa, para aprimorar й com o tempo e com um pouco mais de estudo. Dei apenas uma base para iniciantes poderem comeзar a compreender como construir uma lуgica.
Reply
#7

Discordo parcialmente do @renatog na questгo da otimizaзгo. Isso й um tutorial, sгo "cуdigos-exemplo" para melhor interpretaзгo dos leigos.
Contudo, o ultimo cуdigo nгo й exatamente a interpretaзгo correta da construзгo do algoritmo, pois vocк usa SE e SENГO, ficando entгo assim:

Vamos, por um momento, esquecer a otimizaзгo para deixar o exemplo prбtico o mais prуximo possнvel do exemplo teуrico da construзгo do algoritmo.


Код:
Pressionou a tecla 'Y'.
---- Verificar se й administrador RCON.
-------- Se for.
------------ Nгo executar nada.
-------- Se nгo for.
------------ Congelar jogador.
---- Fim da verificaзгo.
Fim da aзгo.
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)  
{  
    if(newkeys & KEY_YES)
    {  
        if(IsPlayerAdmin(playerid))    
        { 
               //nгo executa nada
        }
        else
        {
              TogglePlayerControllable(playerid, false);
        }
    } // Finaliza a verificaзгo.  
    return true; 
}
Reply
#8

Bom tutorial pela parte de lуgica, mas na execuзгo vocк falhou em algumas coisas, atй em nгo explicar a lуgica de condiзхes para um melhor compreendimento.
Reply
#9

Adorei o tutorial, Simples porem ъtil,perfeito.
Reply
#10

Quote:
Originally Posted by G4M30V3R
Посмотреть сообщение
Discordo parcialmente do @renatog na questгo da otimizaзгo. Isso й um tutorial, sгo "cуdigos-exemplo" para melhor interpretaзгo dos leigos.
Contudo, o ultimo cуdigo nгo й exatamente a interpretaзгo correta da construзгo do algoritmo, pois vocк usa SE e SENГO, ficando entгo assim:

Vamos, por um momento, esquecer a otimizaзгo para deixar o exemplo prбtico o mais prуximo possнvel do exemplo teуrico da construзгo do algoritmo.


Код:
Pressionou a tecla 'Y'.
---- Verificar se й administrador RCON.
-------- Se for.
------------ Nгo executar nada.
-------- Se nгo for.
------------ Congelar jogador.
---- Fim da verificaзгo.
Fim da aзгo.
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)  
{  
    if(newkeys & KEY_YES)
    {  
        if(IsPlayerAdmin(playerid))    
        { 
               //nгo executa nada
        }
        else
        {
              TogglePlayerControllable(playerid, false);
        }
    } // Finaliza a verificaзгo.  
    return true; 
}
Obrigado pela correзгo e irei adicionar ao tуpico.
Quote:
Originally Posted by Bruno13
Посмотреть сообщение
Bom tutorial pela parte de lуgica, mas na execuзгo vocк falhou em algumas coisas, atй em nгo explicar a lуgica de condiзхes para um melhor compreendimento.
Pretendo aprimorar o tutorial, se quiser adicionar algo para contribuir me envie via PM que posto com os devidos crйditos.
Quote:
Originally Posted by King..
Посмотреть сообщение
Adorei o tutorial, Simples porem ъtil,perfeito.
Obrigado pelo feedback.
Reply
#11

Eu achei ъtil cara, parabйns
Apesar de nгo ter aprendido com, portugol ajuda bastante quando se vai aprender programar
Reply
#12

Quote:
Originally Posted by Dayvison_
View Post
Eu achei ъtil cara, parabйns
Apesar de nгo ter aprendido com, portugol ajuda bastante quando se vai aprender programar
Haha' Obrigado pelo feedback.
Reply
#13

Seria bacana vocк entrar mais a fundo de algoritmo, passar alguns exercнcios para excitar o raciocнnio lуgico.

Porque pra falar a verdade, vocк basicamente definiu a palavra algoritmo e exemplificou.

Tente iniciar uma discussгo a respeito, passe exercнcios e peзa pra galera tentar resolver.

Enfim, parabйns por ainda ter animaзгo pra postar algo aqui.
Reply
#14

Quote:
Originally Posted by Dolby
View Post
Seria bacana vocк entrar mais a fundo de algoritmo, passar alguns exercнcios para excitar o raciocнnio lуgico.

Porque pra falar a verdade, vocк basicamente definiu a palavra algoritmo e exemplificou.

Tente iniciar uma discussгo a respeito, passe exercнcios e peзa pra galera tentar resolver.

Enfim, parabйns por ainda ter animaзгo pra postar algo aqui.
Dolby meu velho amigo <3.
Bom, posso ver a respeito sobre estes exercнcios.. Assim que tiver com um pouco mais de tempo livre edito e re-organizo o tуpico..

Obrigado pelo feedback.
Reply
#15

Achei muito ъtil seu tutorial tonisantolia meus parabйns!
Reply
#16

Bom tutorial! Parabйns.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)