FORUM DARKERS

Tecnologia & Informática => Programação => C/C#/C++ => Topic started by: Anonymous on 18 de August , 2006, 11:48:01 AM

Title: Vectores/Arrays em C by Crypthief
Post by: Anonymous on 18 de August , 2006, 11:48:01 AM
Heys! Aqui fica um tutorial escrito por mim sobre vectores/arrays em C espero que gostem!!!

1. Definição do que é um Vector/Array

Um vector ou array em Inglês é um conjunto de vários elementos consecutivos do mesmo tipo que pode ser acedidos individualmente apartir de um nome único. Por exemplo imagine uma gaveta, que no seu interior está dividida e onde puderá guardar por exemplo as suas cuecas/boxers mas só pode guardar este tipo de roupa (pois um vector tem de ser do mesmo tipo)e puderá aceder a esses mesmos dados(neste exemplo cuecas... omfg) individualmente com um nome único.

2. Como declarar um vector

Para se declarar um vector é tão simples como declarar um variavel simples...
Para se declarar um vector com uma única dimensão tem de ter a seguinte sintaxe:

tipo nome[numero de elementos]

tipo -> Pode ser do tipo int(numeros inteiros), float(numeros com casas decimais), char (armazenar um UNICO caracter) e double( que corresponde ao mesmo tipo que o float mas com dupla precisão)

nome-> Indica o nome pelo qual o vector será identificado

Numero de elementos -> Valor fixo que indica quantos elementos puderá o vector receber


3. Vamos á prática com vectores com uma só dimensão

int teste[10]; ---> Estamos a declarar um vector do tipo inteiro que puderá receber 10 elementos do tipo int

È referir que os indices de cada vector com n elementos variam sempre entre 0 e n-1, isto porque existe a posição 0. Vamos entao atribuir alguns valores a este vector de inteiros...

teste[0]=20; ---> Aqui estamos a atribuir o valor 20 a posição 0 do vector.

Agora imagine que quer atribuir a posição 1 o dobro do valor da posição 0. Ficaria algo do género:

teste[1]=teste[0]*2;

Vamos agora atribuir a todos os elementos do vector teste o valor 5. Para fazer isto, vou usar um ciclo for para nao estar sempre a repetir...

#include <stdio.h>

main()

{
int i;
int teste[10];

for (i=0;i<10;i++)
teste[i]=5;

}

Como veem estamos a atribuir o valor 5 a todas as posiçoes do vector teste.
Agora um outro exemplo de vector mas neste caso de caracteres...

char teste[10];

teste[0]='A';

estamos aqui a atribuir o caracter 'A' á posição 0 do vector de caracteres... é referir que existe diferença entre 'A' e "A" porque no primeiro exemplo estamos a dizer que existe um caracter e no segundo caso as aspas servem para declar uma string...
Agora pode treinar vectores com os restantes tipos...

4. Vamos á prática com vectores multidimensionais


tipo vector [j];

declaramos um vector com um determinado tipo ja referido acima e que tem as posições i e dentro destas ainda existem as posições de j...
Vamos usar agora o exemplo do jogo do galo... Para gerar o seguinte output...


  X |   |0 
------------
    | X |   
------------
    |   | 0


#include <stdio.h>
#define DIMEN 3 /* Estamos declarar um contante de nome DIMEN com o valor 3 */
#define ESPACO ' ' /* Aqui outra mas como o nome diz com um espaco vazio */
main()

{
int i,j;
char galo[DIMEN][DIMEN];

for (i=0;i<DIMEN;i++)   /* Aqui vamos atribuir a todas as posicoes do vector um espaco para que o tabuleiro venha limpo */
for (j=0;j<DIMEN;j++)
galo[i][j]=ESPACO;

galo[0][0]='X'; /* Aqui a atribuir as diferentes jogadas */
galo[1][1]='X';
galo[0][2]='0';
galo[2][2]='0';

for (i=0;i<DIMEN;i++)  /* Aqui estamos a fazer o tabuleiro  */
{
for (j=0;j<DIMEN;j++)
printf("%c %c",galo[i][j],j==DIMEN-1?' ':'|'); /* aqui estamos a formar nas diferentes posicoes as barras verticais */
if (i!=DIMEN-1)
printf("\n-----------\n"); /* Da mesma maneiras as horizontais */
}
}

Com este exemplo ja deu para perceber como funcionam os vectores multi dimensionais.

5. Vectores e strings

Uma string e um conjunto de caracteres armazenados em um vector de caracteres, mas o inverso é falso, isto é, um vector de caracteres pode nao ser uma string.
vamos entao declarar uma string armazenada em um vector de caracteres.

char nome[8]="Darkers";

Agora vcs pensam... porque esta a declarar ele 8 posicoes se a palavra darkers so tem 7 caracteres? Porque fica sempre uma posição reservada para avisar o compilador que a string terminou, sendo este valor representado pelo ASCII '\0'
Vamos agora exercitar isto:

#include <stdio.h>

main()

{
char nome[50];  /* Ja devias saber o que isto nao? LOL */
int idade;

printf("Insira o seu nome\n");
gets(nome); /* Leitura dos dados inseridos neste caso o nome */
printf("E agora a sua idade\n");
scanf("%d",&idade); /* Aqui a idade */
printf("O senhor chama-se %s e tem %d anos\n",nome,idade); /* E aqui fica o output em que o %s vai ser preenchido por nome e o %d por idade... */

}

Bem espero que tenham gostado!
Agora se tiverem duvidas postem por favor ou se tiver erros, pois ainda nao sou um guru do C! hehehe

Abraços,
Title: Re: Vectores/Arrays em C by Crypthief
Post by: Skayler on 18 de August , 2006, 01:03:28 PM
Bem bacana..
Parabéns pelo tutorial.


[]'s


Skayler
Title: Re: Vectores/Arrays em C by Crypthief
Post by: Anonymous on 18 de August , 2006, 03:18:28 PM
Heys! Eh so para dizer que me enganei aqui a digitar...
Quotechar nome[8]="Darkers";

Agora vcs pensam... porque esta a declarar ele 8 posicoes se a palavra darkers so tem 7 caracteres? Porque fica sempre uma posição reservada para avisar o compilador que a string terminou, sendo este valor representado pelo ASCII '\0'

o correcto é char nome[7]="Darkers";
e nao 6... dps é so seguir o texto...

Abraços,
Title: Re: Vectores/Arrays em C by Crypthief
Post by: Anonymous on 18 de August , 2006, 03:26:36 PM
Fico muito bom, essas iniciativas que elevam o homem!

Pra nao ter mais duvidas o ultimo elemento de um vetor de caracteres e sempre NULL se formos imprimir ele xD
Mas se mesmo assim a duvida ainda existir use a funcao sizeof(variael); CUIDADO: com ponteiros sempre vai retornar 4 nem preciso dizer pq ne xD