[Tutorial] Macros , Condicionais e Operadores [Iniciante]
#1

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
Reply
#2

Topico ta morto da uma vida a ele.
Reply
#3

@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(playeridtext[]); public Escreve(playeridtext[]) {
    
printf("[%i]%s"playeridtext);
    return 
1;

Para que a define se nгo usou ela ?
Reply
#4

Quote:
Originally Posted by Hiuship
View Post
@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(playeridtext[]); public Escreve(playeridtext[]) {
    
printf("[%i]%s"playeridtext);
    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
Reply
#5

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.
Reply
#6

O tуpico poderia estar um pouco melhor organizado.
Reply
#7

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.
Reply
#8

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.
Reply
#9

Quote:
Originally Posted by JuninTJF
View Post
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..
Reply
#10

Quote:
Originally Posted by DannielCooper
View Post
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.
Reply
#11

Quote:
Originally Posted by DanDRT
View Post
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);
Reply
#12

Quote:
Originally Posted by DannielCooper
View Post
Eu reduzo por:

pawn Code:
new str[128];
printf(%s, str);
pawn Code:
printf("%s", "texto");
Reply
#13

Quote:
Originally Posted by PT
View Post
pawn Code:
printf(%s, "texto");
printf("%s", "texto");

Boa intenзгo do tutorial, continue estudando e se esforзando
Reply
#14

Quote:
Originally Posted by DannielCooper
View Post
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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)