Macros , Condicionais e Operadores [Iniciante] -
JuninTJF - 05.02.2015
Bom sou iniciante no Mundo Pawn e venho aprendendo a um bom tempo e quem sabe poder ajudar quem queira realmente aprender .
Fiz um tutorial de tudo que venho aprendendo , fazendo um resumo de vбrias vнdeo aula , Tutoriais e colocando em um sу se caso eu estiver errado pode mim corrigir pois eu sou iniciante e quero cada vez aprender mais e mais й isso 1 Tutorial sу foi pra ter uma pratica melhor de como fazer e como postar acredito que os prуximos serгo melhores . Vamos lб
Definiзхes
Code:
#define Numero 250
new Var = Numero; // Substituirб Numero Por 250
printf("%i", Var); // Printarб o valor da Variavel
Definiзхes com parвmetros
Code:
Simplificando a Criaзгo de Novas Callbacks como Forward e Public
Escreve(5, "Ola Mundo!"); // Em OnGamemodeInit
forward Escreve(playerid, text[]); public Escreve(playerid, text[]) {
printf("[%i]%s", playerid, text);
return 1;
}
Definiзхes com Loop
Code:
#define Loop(%0,%1) for(new %0; %0 !=%1; %0++) // defines
Loop(i,10) { // Ficarб de 0 a 9 no Samp-serve
printf("%i", i); // Printarб o valor de 0 a 9
}
Exemplo de definiзхes
Code:
new Str[128];
#define printf2(%0,%1) \
format(Str, 128,%0,%1), print(Str)
// em OnGameModeInit()
new Nome1[] = "Seu Nome"; //
new Teste[] = "Exemplo";
printf("Meu Nome й %s", Nome1); // Setarб para Seu Nome
printf2("e sou %s", Israel); // Setarб o Teste para Exemplo
return 1;
}
Vamos Passar agora para Condicionais й a Parte mais Legal da Programaзгo й a onde vocк faz a Pergunta eo Processador responde
a condicional mais usada й a condicional : if й a mais basica que tem , a condicional if ela sу tem 1 parametro , esse parametro tem que retonar um valor boleano para que ela entenda
Vamos ao exemplo :
Code:
new Var = 10;
if(Var == 10) { // == significa que ele compara Var de 10 se for igual ele retonarб uma condiзгo verdadeira
print("Var й igual a 10.")
} else { // else significa "Ou" Ficando Var й igual a 10 ou Var nгo й igual a 10
print("Var nгo й igual a 10.")
}
return 1;
}
obs : else if : faz outra pergunta para o processamento , quando se usa else ou else if ele sу executa uma sу
Exemplo de Var verdadeiro e falso
Code:
// Verdadeiro
new Var = 10; // Setamos o valor de 10 para a Var
if(Var == 10){ // Verifica se Var й igual a 10
print("Var й igual a 10."); // Printarб o resultado Var й igual a 10.
} else {
print("Var nгo й igual a 10.");
}
return 1;
}
Quando abrir o Samp-serve O resultado serб Var й igual a 10
// Falso
new Var = 11; // Setamos o valor de 11 para a Var
if(Var == 10){ // Verifica se Var й igual a 10 , definimos Var acima 11 por isso nгo й igual a 10
print("Var й igual a 10."); // Printarб o resultado Var nгo й igual a 10.
} else {
print("Var nгo й igual a 10.");
}
return 1;
}
Detalhando o operadores de comparaзгo
sгo eles o operador de comparaзгo :
== se o da esquerda й igual ao da direita. = TRUE || FALSE
> se o da esquerda й maior que o da direita. TRUE || FALSE
< se o da esquerda й menor que o da direita. TRUE || FALSE
>= se o da esquerda й maior ou menor que o da direita. TRUE || FALSE
<= se o da esquerda й menor ou maior que o da direita. TRUE || FALSE
Explicando
|| = Significa OU ficando Verdadeiro OU Falso
== se o da esquerda for igual ao da direita. "Verdadeiro" true caso ao contrario false "Falso" .
> se o da esquerda й maior que o da direita. "Verdadeiro" true caso ao contrario false "Falso" .
< se o da esquerda й menor que o da direita. "Verdadeiro" true caso ao contrario false "Falso" .
>= se o da esquerda й maior ou menor que o da direita "Verdadeiro" true caso ao contrario false "Falso" .
<= se o da esquerda й menor ou maior que o da direita "Verdadeiro" true caso ao contrario false "Falso" .
// Comenta uma Linha .
/* se vocк quiser Comenta Vбrias Linha .
*/ Termina o comentario da linha .
Conclusгo : Vocк faz uma Pergunta o Processador responde com Sim ou Nгo .
Operadores Lуgicos
Sгo os Operadores:
&& verifica se o da esquerda й verdadeiro e tambйm o da direita й verdadeiro , quero dizer com isso que ele vai verificar se os 2 sгo verdadeiro .
|| Se o da esquerda for true e o da direita for false ele retorna true para condicional , se o da esquerda for false e o da direita verdadeiro ele retorna verdadeiro , se os 2 for false ele retornarб false
Vamos ver a Tabela da Verdade da Conjuзгo E
A B A^B
V V V
V F F
F V F
F F F
Retorna 1 true e 3 false
Code:
new Var = 9, Teste = 11; // Criamos 2 Variaveis com o Valor 9 e 11
if(Var == 9 && Teste == 11) // Verifica se as 2 Variaveis й true e retorna para condicional if
Var = 9 // Sim Verdadeiro
Teste = 11 // Sim verdadeiro
ou Seja ele retornarб verdadeiro para a condicional
Explicando a Tabela :
V = Valor A Verdadeiro V = Valor B Verdadeira V = Retornarб true (Verdadeiro) para a condicional
V = Valor A Verdadeiro F= Valor B Falso F= Retornarб false (Falso) para a condicional
F = Valor A Verdadeiro V = Valor B Verdadeiro F = Retornarб false (Falso) para a condicional
F = Valor A Falso F= Valor B Falso F = Retornarб false (Falso) para a condicional
Agora Vamos para a conjunзгo OU
A B AvB
V V V
V F V
F V V
F F F
conjunзгo OU Retorna 3 vezes true e 1 False
a conjunзгo й um pouco diferente da E que aceita somente um Caso a OU aceita 3
Exemplo
Code:
// Verdadeiro
new Var = 10, Teste = 11; // Setamos o valor de 10 e 11
if(Var == 10 || Teste == 11){ // Verifica se Var e teste realmentй й igual a 10 e 11
print("Verdadeiro"); // Printarб o resultado Verdadeiro Porque Var й Igual a 10 e Teste й igual a 11
} else {
print("Falso.");
}
return 1;
}
// Falso
new Var = 15, Teste = 14; // Setamos o valor de 15 e 14
if(Var == 10 || Teste == 11){ // Verifica se Var й 15 e Teste 14 como nгo й retornarб o valor falso
print("Verdadeiro"); // Nгo printarб o resultado verdadeiro
} else {
print("Falso."); // Printarб o resultado falso .
}
return 1;
}
Operador NOT
Tabela
V F
F V
o Operador NOT ele inverte o Resultado veja o Exemplo :
new Var = 15; // Setamos o valor de 15 para a Var
if(!(Var == 10)){ // Ver se o valor de Var й diferente de 10
print("Verdadeiro"); // Printarб o resultado verdadeiro .
} else {
print("Falso.");
}
return 1;
}
Ou seja tudo que й diferente de 10 й verdadeiro
Tutorial Simples sobre Macros , Condicionais e Operadores
Crйditos : Israel
Re: Macros , Condicionais e Operadores [Iniciante] -
ZeZin - 05.02.2015
Topico ta morto da uma vida a ele.
Re: Macros , Condicionais e Operadores [Iniciante] -
Hiuship - 05.02.2015
@Topic
PHP Code:
Simplificando a Criaзгo de Novas Callbacks como Forward e Public
#define Function%0(%1) forward%0(%1) public%0(%1) // Nas defines
Escreve(5, "Ola Mundo!"); // Em OnGamemodeInit
forward Escreve(playerid, text[]); public Escreve(playerid, text[]) {
printf("[%i]%s", playerid, text);
return 1;
}
Para que a define se nгo usou ela ?
Re: Macros , Condicionais e Operadores [Iniciante] -
JuninTJF - 05.02.2015
Quote:
Originally Posted by Hiuship
@Topic
PHP Code:
Simplificando a Criaзгo de Novas Callbacks como Forward e Public
#define Function%0(%1) forward%0(%1) public%0(%1) // Nas defines
Escreve(5, "Ola Mundo!"); // Em OnGamemodeInit
forward Escreve(playerid, text[]); public Escreve(playerid, text[]) {
printf("[%i]%s", playerid, text);
return 1;
}
Para que a define se nгo usou ela ?
|
Obrigado pela dica , foi porque tentei resumir o mбximo o tutorial e que nгo fique sem entender . irei retira-lo
Re: Macros , Condicionais e Operadores [Iniciante] -
PT - 05.02.2015
Tem imensos tutoriais melhor que o seu, nao tente ensinar antes de nao saber.
https://sampforum.blast.hk/showthread.php?tid=240266
https://sampforum.blast.hk/showthread.php?pid=2249016#pid2249016
parece que tem algumas coisas dai.
Re: Macros , Condicionais e Operadores [Iniciante] -
Locky_ - 05.02.2015
O tуpico poderia estar um pouco melhor organizado.
Re: Macros , Condicionais e Operadores [Iniciante] -
Dolpin - 06.02.2015
Como vocк й iniciante, merece apoio, atй porque o Tutorial nгo estб ruim, continue assim.
Уtimo o tutorial, vocк explicou da sua maneira, mas atй que estб certo, Parabйns.
Falhas:
Portuguкs(Falta de acentuaзгo).
'Else' nгo quer dizer "Ou", Pode ser um "Se nгo"(Nгo estб tгo incorreto mais o termo deixa mais confuso).
Pois 'Ou' quer dizer que 'Tambйm pode ser'(mais ou menos isso).
Por exemplo em Pseudocуdigo:
pawn Code:
Se(Variavel == 1)
{
print("Variбvel 1");
}
Se nгo
{
print("Variбvel nгo й igual a 1");
}
De resto tudo ok, achei legal a parte da 'Conjunзгo'.
E Vocк poderia especificar mais qual tipo de Operador й usado, e vocк usou apenas os 'Lуgicos'.
E Troque de Condicionais para: 'Estrutura Condicional IF & Else'.
Poderia colocar um нndice tambйm.
Ai sim fica show, Parabйns de novo.
Re: Macros , Condicionais e Operadores [Iniciante] -
Skream - 06.02.2015
Loop em macro й muita preguiзa mesmo em, hehe. E outra, iniciante que usa loop com macro tem que tomar cuidado. Muitas vezes o pessoal aqui larga aqueles codes de usar GetMaxPlayers no lugar de MAX_PLAYERS e se tacar isso no macro a funзгo vai ser chamada 200x, o que logicamente atrasaria ao invйs de otimizar.
Re: Macros , Condicionais e Operadores [Iniciante] -
DannielCooper - 08.02.2015
Quote:
Originally Posted by JuninTJF
Bom sou iniciante no Mundo Pawn
|
Parei de ler aqui.
O que hб com vocкs, querem ensinar o que acabaram de aprender? O resultado acaba saindo esse, codes que nгo estгo totalmente "corretos", mas funcionais, que ensina a outro que faz isso enquanto codar. Por isso que ninguem evolui..
Re : Re: Macros , Condicionais e Operadores [Iniciante] -
DanDRT - 08.02.2015
Quote:
Originally Posted by DannielCooper
Parei de ler aqui.
O que hб com vocкs, querem ensinar o que acabaram de aprender? O resultado acaba saindo esse, codes que nгo estгo totalmente "corretos", mas funcionais, que ensina a outro que faz isso enquanto codar. Por isso que ninguem evolui..
|
Nгo acho errado, porйm, o que vale й o esforзo. Imagina o cara chegar aqui se esforзando.. ai chega eu e falo "achei uma bosta", em vez de falar "poderia corrigir X por que Y й melhor ou mais apropriado", isso й tenso.
+4 rep pela intenзгo.
Re: Re : Re: Macros , Condicionais e Operadores [Iniciante] -
DannielCooper - 09.02.2015
Quote:
Originally Posted by DanDRT
Nгo acho errado, porйm, o que vale й o esforзo. Imagina o cara chegar aqui se esforзando.. ai chega eu e falo "achei uma bosta", em vez de falar "poderia corrigir X por que Y й melhor ou mais apropriado", isso й tenso.
+4 rep pela intenзгo.
|
Vai do ponto de vista de cada um. Eu nгo aprovo a idйia de que eu acabei de ver um tutorial, faзo um code que nem sempre estarб correto, mas pode estar funcional, e com certeza vou deduzir que aprendi. Aн 2 minutos depois eu crio um tutorial.
Exemplo disso:
pawn Code:
new Str[128];
#define printf2(%0,%1) \
format(Str, 128,%0,%1), print(Str)
Eu reduzo por:
pawn Code:
new str[128];
printf(%s, str);
Re: Re : Re: Macros , Condicionais e Operadores [Iniciante] -
PT - 09.02.2015
Quote:
Originally Posted by DannielCooper
Eu reduzo por:
pawn Code:
new str[128]; printf(%s, str);
|
Re: Re : Re: Macros , Condicionais e Operadores [Iniciante] -
n0minal - 09.02.2015
Quote:
Originally Posted by PT
|
printf(
"%s
", "texto");
Boa intenзгo do tutorial, continue estudando e se esforзando
Re: Re : Re: Macros , Condicionais e Operadores [Iniciante] -
JuninTJF - 11.02.2015
Quote:
Originally Posted by DannielCooper
Vai do ponto de vista de cada um. Eu nгo aprovo a idйia de que eu acabei de ver um tutorial, faзo um code que nem sempre estarб correto, mas pode estar funcional, e com certeza vou deduzir que aprendi. Aн 2 minutos depois eu crio um tutorial.
Exemplo disso:
pawn Code:
new Str[128]; #define printf2(%0,%1) \ format(Str, 128,%0,%1), print(Str)
Eu reduzo por:
pawn Code:
new str[128]; printf(%s, str);
|
Como eu disse estou aprendendo mais depois que eu aprender nгo vou vender Aprendizado .
"Programo PAWN por R$. "
Ridнculo