TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!




Participe do fórum, é rápido e fácil

TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!


TeaM KingS
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[tutorial] Logica de programação inicial

Ir para baixo

[tutorial] Logica de programação inicial Empty [tutorial] Logica de programação inicial

Mensagem por Iky 2011-12-14, 23:47

Bem, eu voltei forte com estudos de jass e agora que o jnpg pegou aqui em casa, acho que nao vou largar a programção jass/vjass, to ate pensando em fazer meu hero em vjass ^^' (é serio)
To criaNdo este artigo/tutorial para falar de logica de programação, pq tava dando uma olhada no topico meu de jass (q por sinal so tenho 2 sobre jass) e vi num post do bills (que ta sumidoooo) que provalvemente niguem aqui tem noção do que é função e parametro, e fiquei com medo de ser verdade. mas vamos la.
OBS: é longo e cheio de conversa fiada, so pra quem ta afim de ler um artigo, se quiser um manual pratico... desculpe ^^' mas isso aqui é pra logica, é pra ser demorado e repetitivo

Agora vou falar é sobre: função, que seguira com parametro, retorno, variaveis

definição: função é um bloco de codigo que pode ser executado no codigo principal
syntase em algoritmo simples:
Código:

função
mas o que é isso? uma palavra? mas é isso msm, todo comando que se da é uma função, mas é assim quando se chama uma função.
e como é para criar uma função?
Código:

função exemplo
finaldafunção
bem simples ne? sim pois so criei e nao coloquei nada, vamos adicionar algo
Código:

função digaOi
diga "Oi"
finaldafunção
simples tb ne? e pra que isso serviria? pra dizer oi, mas da pra fazer isso diretamente ne? ficaria mais rapido e tals, mas
imagine o exemplo:
Código:

programa dialogo
diga "-oi"
diga "-oi"
diga "-como vai?"
diga "-to bem"
diga "e voce, como vai?"
diga "-to bem tb"
diga "fez o que hj?"
diga "-nada"
diga "e voce, fez o que hj?"
diga "-nada"
diga "tchau"
diga "tchau"
finaldeprograma
um dialogo ne? simples mas longo *_*'
conta ai quantas vezes se fala "oi" msm que seja dentro de uma frase
fassa o msm com outros pedaços repetidos, ate que é bastante ne? msm que seja 2 vezes
da pra trocar por funções ne? msm que " diga 'oi' " já seja uma funçao, uma funçao que diz algo, no caso oi
mas imagine ai com é pro programador se ele quisse fazer um monte repetido em varias partes do programa?
ou ate msm um dialogo desse 3, 4 vezes num programa so?
seria bem mais facil por tudo isso em uma funçao e chamar na hora que quisesse ne?

// Entao é pra isso que serve uma funçao? por preguiça?

claro que nao, agora que vem a parte mais legal das funções

Parametros:
definição: dados passados para uma funçao com ituito de usar essa informação, usando assim, uma funçao como uma maquina que gere informações
syntase:
Código:

função digaAlgo2Vezes recebe palavra p  //<< uma funçao de nome digaAlgo2Vezes que recebe uma variavel chamada p do tipo palavra, esse nome p é o nome que a funçao vai usar, nao significa que a variavel que se chamar p  >>//

diga p  //diz a palavra p
diga p  //diz a palavra p

finaldefunçao
simples ne? e ao mesmo tempo legal, pois da pra repetir qualquer palavra
assim:
Código:

digaAlgo2vezes "oi"
claro que tudo que eu escrevi em codigo nao ficaria assim nas linguagens de programação, ai vai um exemplo de diversas linguagens conhecidas e como ficaria o que eu fiz acima :
Spoiler:

Agora vou falar sobre retorno:
definao: faz que uma função retorne uma valor de algum tipo
basicamente toda funçao é um valor de algum tipo, as funções que nao retornao nenhum valor sao denominadas do tipo void (vazio)
syntese:
[code]
inteiro SomaInteiros recebe inteiro a, inteiro b
retorna a+b
final
[code]
há linguagens que tem um recurso que facilita bastante o entendimento do retorno,um recurso q seta a variavel como uma função do nao-tipo void (nulo/vazio), que ficaria mais ou menos assim:
[code]
inteiro integ = inteiro SomaInteiros recebe inteiro a, inteiro b
retorna a+b
final
[/code]
bem mais pratico nao?
em jass, esse negocio é mais interessante, pois encurta bastante,
veja so
[code]
function condicao takes integer a, integer b returns boolean //funçao que retorna verdadeiro ou falso
if a == b then //se o parametro a for igual ao parametro b, entao
return true //retorna verdadeiro
endif //acaba o if
return false //perai!!! já tem um return ali em cima, entao... haaa sim,
endfunction // é que sai da funçao quando se tem um return, entao agiria assim, se a == b, entao vai sair da funçao com
//o valor true, se nao, vai sair com o valor false

function Actions takes nothing returns nothing
local integer i = 1 //aqui eu crio variaveis integer i com valor 1
local integer ii = 2 //aqui eu crio variaveis integer ii com valor 2
if condicao(i,ii) then //se a funçao ali emcima for true (verdadeiro), entao
call BJDebugMsg("a é igual a b") //vai fazer isso aqui
else //se nao
call BJDebugMsg("a nao é igual a b") //vai fazer isso aqui
endif //final do if
endfunction //final do function
[/code]
sei que foi sem uso isso, pois dava pra colocar no lugar de condicao(i,ii) , i == ii ficaria melhor ^^
mas imagine que teria um processo enorme, ne?

agora falarei de variaveis:
definição:variaveis sao espaços na memoria usados para amarzenar valores de diferentes tipos, so ...
tipos de variaveis
ha diveeeersos tipos, mais em todas as linguagens tem:
integer (inteiro, numero positivo e negativo sem decimal)
boolean (boleano, é simplesmente verdadeiro ou falso)
double (numero real/decimal, numeros do tipo 1.2342)
char (caractere, uma unica letra, a, b, c)
string (palavra/cadeia de caracteres,,,esse na verdade é uma estensao do char, pq nada mais é do uma cadeia de caracteres)

se é possivel criar "tipos" de variaveis, tipos que vem de outros tipos, no caso do string, que vem de char
e no jass e outras linguagens, handle, que vem de integer

handle, no warcraft, é tudo que nao é variaveis dos tipos acima, units, timers, special effect, point, regions, etc.
aposto que quem usa points no we sabe o que é handle, já que tem que destruir para nao pesar na memoria ^^.

bem, pessoal, é só .
é um artigo/tutorial/aula, entao , qualquer coisa, falem ai, dem sugestoes e duvidas. ficaria feliz em ajudar


Iky
Iky

Número de Posts : 2065
Data de inscrição : 06/04/2010
Reputação : 99 Pontos : 30459

Warning Necropost
[tutorial] Logica de programação inicial Left_bar_bleue10 / 10010 / 100[tutorial] Logica de programação inicial Right_bar_bleue


http://icaro.glauco

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos