SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

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

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Guia do Iniciante: Arrays Simples/Duas/Multidimensionais

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031971
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Guia do Iniciante: Arrays Simples/Duas/Multidimensionais Empty [Tutorial] Guia do Iniciante: Arrays Simples/Duas/Multidimensionais

    Mensagem por Weslley_Script Ter 4 Abr 2023 - 12:04

    Guia para iniciantes
    Arrays unidimensionais e multidimensionais
    (Estou um pouco livre hoje, então pensei em fazer um tutorial.)

    Neste tutorial, abordaremos apenas as informações básicas e o entendimento sobre como os arrays funcionam.
    O conhecimento sobre "Arrays" é necessário para qualquer scripter. Então vamos começar.

    Requisitos:
    a) Algumas idéias básicas sobre scripting/peão.
    b) Paciência e capacidade de compreensão.

    Conteúdo:
    0. Definição de Array
    1. Unidimensional
    2. Bidimensional (Será postado em breve)
    3. Tridimensional (Será postado em breve)
    Definição
    Array é uma estrutura de dados que contém valores iguais ou diferentes de uma coleção, cada um deles possui um ID exclusivo relacionado à sua posição na estrutura. Fácil, certo? Não, não é realmente para um iniciante, apenas leia o que está escrito abaixo, você entenderá melhor.
    1. Unidimensional
    Vamos começar com um exemplo:
    Código do peão:

    Código:
    novo MeuArray [ 10 ] ;


    Isso criará uma estrutura de 10 elementos que se parece com isso:


    Como isso é apenas uma "Chain", você pode chamá-la de "Single Dimensional" ou "String".

    Se dermos IDs para cada um dos elementos, toda a cadeia seria [0] e cada uma das caixas seria [0]..[9]



    Lembre-se, o primeiro elemento sempre começará com ID "0" e não "1"! Se você contar de 0 a 9, verá que são 10 números. Então, 0-9 = 10 slots.


    Como você pode ver, as caixas estão vazias, mas um elemento não pode estar vazio, então, na verdade, elas são preenchidas com caracteres "NULL".
    Isso ajuda o compilador a entender onde as strings terminam, caso contrário, não seria capaz de verificar o comprimento da string e finalizá-la.
    Agora,



    Observe que '\0' é uma constante de caractere chamada NULL.

    Agora, vamos ver como fica se tivermos uma palavra nele:
    Código do peão:

    Código:
    new MeuArray [ 10 ]  =  "Computadores" ;




    Agora você vê um '\0' no final. Ele diz ao compilador que a string termina ali.

    Se você tivesse feito:
    Código do peão:

    Código:
    new MeuArray [ 10 ]  =  "Computadores" ;


    Você vai se deparar com:
    Código:

    Código:
    erro 018: os dados de inicialização excedem o tamanho declarado


    Porque não há espaço para um caracter NULL!

    Você também pode fazer:
    Código do peão:

    Código:
    new MeuArray [ 10 ]  =  { 'C' , 'o' , 'm' , 'p' , 'u' , 't' , 'e' , ​​'r' , 's' } ;


    //É o mesmo que new MyArray[10] = "Computadores";

    Para utilizar a matriz:
    Código do peão:

    Código:
    new MeuArray [ 10 ]  =  "Computadores" ;




    Código:
    printf ( "%s"  /* identificador %s é para strings */ , MyArray ) ;



    //ou:
       
       

    Código:
    printf
        (
            "%c%c%c%c%c%c%c%c%c%c" , //Se você não sabia, o identificador '%c' é para caracteres.
             MyArray [ 0 ] ,
            MeuArray [ 1 ] ,
            MeuArray [ 2 ] ,
            MeuArray [ 3 ] ,
            MeuArray [ 4 ],
            MeuArray [ 5 ] ,
            MeuArray [ 6 ] ,
            MeuArray [ 7 ] ,
            MeuArray [ 8 ] ,
            MeuArray [ 9 ]
        ) ;



    //Ambos produzirão:
    Computadores

    Código do peão:

    Código:
    //Se fizer:
    printf ( "%i"  /* %i é para inteiros (números) */ , MyArray [ 0 ] ) ;



    // irá gerar:

    Código:
    67



    Porque 67 é o número ASCII para a letra C.

    Então, para um uso simples:
    Código do peão:

    Código:
    new message [ ]  =  "Olá pessoal! Estou lendo o tutorial aqui!" ;
    formato ( mensagem, tamanho da mensagem, "Ela disse: %s" , mensagem ) ;
    imprimir ( mensagem ) ;



    //Vou te dar:

    Código:
    Ela disse : Olá pessoal ! Estou lendo o tutorial aqui!


    Nota: Se você declarar uma string sem tamanho, o pré-compilador definirá automaticamente o tamanho de acordo com o que você inicializou.
    Exemplo:
    Código do peão:

    Código:
    algo novo [ ]  =  "YAY!" ;


    //torna-se:

    Código:
    new something [ 5 ]  =  "YAY!" ;



    2. Bidimensional
    Agora, você sabe muito mais sobre 'Strings'. Um Array 2D é, na verdade, String of Strings.

    Quando você declara um novo Array 2D:
    Código do peão:

    Código:
    novo MeuArray_2D [ 7 ] [ 8 ] ;


    Parece:


    Uma matriz 2D com conteúdo dentro:


    Mais algumas explicações:
    Código do peão:

    Código:
    new MeuArray_2D [ ]  [ ]  =
        {
            "Um" ,
            "Dois" ,
            "Três"
        } ;
       
        printf ( "%s" , MeuArray_2D ) ;


    //dará alguns símbolos estranhos porque MyArray_2D é um Array 2D,
    //você deve indexá-lo com um ID [i].

    //Então faça assim:

    Código:
    printf ( "%s" ,MeuArray_2D [ 0 ] ) ;


    //dá: "One" porque no primeiro índice 0, você tem uma string "One"


    Código:
    printf ( "%s" ,[ 0 ] ) ;


    //Também dá: "One" porque na função printf, você especificou como uma "String" usando %s,
    //ela imprimirá caracteres até atingir um índice NULL.


    Código:
    printf ( "%c" , MeuArray_2D [ 0 ] [ 0 ] ) ;


    //Dá: "O" porque na posição 0, 0 em MyArray_2D, "O" é um caractere.


    Código:
    printf ( "%s" , MeuArray_2D [ 1 ] ) ;


    //Dá: "Dois" e similarmente, MyArray_2D[2] imprimirá "Três"

    Alguns exemplos simples:
    Código do peão:

    Código:
    new NewsHeadlines [ 4 ]  [ 128 ]  =
        {
                    //[0] ..................... ......................... [i]
            /* [0] */  "O servidor foi atacado por um grupo de membros desonestos esta noite!" ,
            /* [1] */  "Uma competição realizada por um administrador causou o travamento do servidor!" ,
            /* [2] */  "O servidor travou devido a um filtro de script ruim esta noite." ,
            /* [3] */  "Não tenho outras notícias na cabeça."
        } ;


       
        SendClientMessageToAll ( - 1 , NewsHeadlines [  random ( sizeofNewsHeadlines )  ]  ) ;

    Aqui, "sizeof NewsHeadlines" dará 4.
    Random de 4 dará 0 ou 1 ou 2 ou 3 (0-3 = 4 números)

    Assim, NewsHeadlines[0-3] dará a mensagem no ID 0-3.

    E como é uma variável, você pode alterar os títulos!
    Código do peão:

    Código:
    format ( NewsHeadlines [ 0 ] , 128 , "O título foi alterado!" ) ;
        printf ( "%s" , NewsHeadlines [ 0 ] ) ;



    3. Tridimensional
    Tudo bem, então a parte mais difícil, matrizes 3D.
    Como eu disse a você, arrays 2D são strings de strings, então arrays 3D são strings de strings de strings. Confuso, hein?

    De qualquer forma, vou mostrar um exemplo:
    Código do peão:

    Código:
    novo Array_3D [ 4 ]  [ 4 ]  [ 4 ] ;


    Ficaria assim:


    E se colocarmos números de índice (IDs de slot):


    Como nos scripts:
    Código do peão:

    Código:
    "Músculo" } } ;

    para  

       
       
       



    Código:
    (  novo índice =  0 ; índice <  tamanho de Array_3D_A; índice ++  )
        {
            printf
            (
                "Objetos: %s | %s | %s | %s | %s" ,
                Array_3D_A [ índice ] [ 0 ] ,
                Array_3D_A [ índice ] [ 1 ] ,
                Array_3D_A [ índice ] [ 2 ] ,
                Array_3D_A [ índice ] [ 3 ] ,
                Array_3D_A [ índice ] [ 4 ]
            ) ;
        }


    Irá produzir:
    Código:

    Código:
    Objetos: Caneta | Livro | Papel | Notas | Lápis
    Objetos: Laptop | Computador | Célula | Almofada | casulo
    Objetos: Carro | Bicicleta | Ônibus | Trem |


    Vamos ver como obtemos os IDs do índice:
    Código do peão:

    Código:
    new Array_3D_A [ 3 ]  [ 5 ]  [ 12 ]  =
    {
        // [0] [1] [2] [3] [4]
        /*[0]*/  { "Caneta" ,     "Livro" ,     "Papel" ,   "Notes" ,   "Pencil" } ,
        /*[1]*/  { "Laptop" ,   "Computador" , "Cell" ,   "Pad" ,     "Pod" } ,
        /*[2]*/  { "Carro" ,     "Bicicleta" ,     "Ônibus",     "Treinar" ,   "Músculo" }
    } ;


    À medida que você se move para baixo nas linhas, está em ordem crescente de índices principais. (Acima, há 3 colunas, 0-2)
    À medida que você move da esquerda para a direita, está em ordem crescente dos segundos índices. (Acima, há 5 linhas, 0-4)
    E conforme você conta os caracteres de cada string (palavra), você vai em ordem crescente dos terceiros índices.
    (Acima, existem 12 elementos, 0-11 onde as strings são armazenadas)


    Outro exemplo:
    Código do peão:

    Código:
    new Array_3D_B [ ]  [ ]  [ ]  =
    {
        { float : 102.14571 ,   "******" ,       4100 } ,
        { float : 452.45245 ,   "*******" ,      4012 } ,
        { float : 124.78951 ,   "Memebase" ,     4501 }
    } ;




    Código:
    for  (  novo índice =  0 ; índice <  sizeofMatriz_3D_B; index ++  )
        {
            printf
            (
                "Dados: %f | %s | %i" ,
                Array_3D_B [ index ] [ 0 ] ,
                Array_3D_B [ index ] [ 1 ] ,
                Array_3D_B [ index ] [ 2 ]
            ) ;
        }


    Irá produzir:
    Código:

    Código:
    [size=14][size=13]Dados: 102.145713 | ****** | 4100
    Dados: 452.452453 | ******* | 4012
    Dados: 124.789512 | Memebase | 4501[/size][/size]

    [center][/center]

    Outro:
    Código do peão:

    Código:
    new Array_3D_C [ ]  [ ]  [ ]  =
    {
        {  { 'A' , 'C' , 'E' , ' \0 ' } , 0xFF11FF25, float : 4.154 ,   36 } ,
        {  { 'B' , 'A' , ' M' , ' \0 ' } , 0xFFFFFFFF, float : 6.154 ,   43 } ,
        {  { 'Y' ,'A', 'Y' , ' \0 ' } , 0x0,         float : 74.154 , 46 }
    } ;




    Código:
    for  (  new index =  0 ; index <  sizeof Array_3D_C; index ++  )
        {
            printf
            (
                "Data: %s | %x | %f | %c" ,
                Array_3D_C [ index ] [ 0 ] ,
                Array_3D_C [ index ] [ 1 ] ,
                Array_3D_C [ índice ] [ 2 ] ,
                Array_3D_C [ índice ] [ 3 ]
            ) ;
        }


    Irá produzir:
    Código:

    Código:
    Dados: ACE | -EE00DB | 4.153999 | $ |
    Dados: BAM | -1 | 6.153999 | + |
    Dados: SIM | 0 | 74.153999 | . |


    ---

    Por enquanto é só!


    Creditos: iPLEOMAX



    [Tutorial] Guia do Iniciante: Arrays Simples/Duas/Multidimensionais D07Xwqb
    [Tutorial] Guia do Iniciante: Arrays Simples/Duas/Multidimensionais Yjab9HN

      Data/hora atual: Qui 2 maio 2024 - 4:44