quarta-feira, 20 de março de 2013

Linguagem C: Parte 6 [Vetores]

Agora chegou a hora de aprender um pouco sobre vetores. Lembrando que é apenas algo superficial, perto do que realmente pode ser criado, utilizando esses comandos.
Um vetor pode ser entendido como um conjunto de elementos consecutivos, podendo ser de qualquer tipo de dado, mas todos do mesmo tipo, sendo acessados em conjunto ou individualmente pelo seu nome. Também é importante lembrar, que o índice do 1° elemento de um vetor é sempre 0, alternando entre 0 e n-1.
A declaração de um vetor, é feita por: tipo nome[n°elementos].

Ex 1:

#include<stdio.h>
main()
{
   int z[3]; // Um vetor de 3 elementos
   int c;
   z[0] = 1; // 1° elem
   z[1] = 4; // 2° elem
   z[2] = 59; // 3° elem
   for(c=0; c<3; c++)
   {
       printf("%d, ",z[c]);
   }
   system("pause");
}

Existe outros jeitos de declarar:
z[4-2] = 10; // equivale a z[2] = 10
z[3] = {1,4,59};
z[] = {1,4,59}; // equivale ao de cima

Lembrando que quando os vetores são criados, eles também acumulam valores aleatórios em suas posições. Se eu decidir declarar um vetor com 5 elementos, mas colocar apenas 2 valores, os primeiros dois elementos irão conter os valores que lhes forma atribuídos, e os elementos restantes serão iniciados com 0(ZERO).
Ex :
z[5] = {90,40}; // como eu atribui
z[5] = {90,40,0,0,0}; // como ficou

Agora vou mostrar um simples programa que utiliza um vetor, de exemplo:

#include<stdio.h>
/* Recebe 5 números ins pelo user, e imprimi os mesmos */
main()
{
   int num[5];
   int c;
   for(c=1; c<=5; c++)
   {
       printf("Ins o %d° num: ",c);
       scanf("%d", &num[c]);
   }
   for(c=1; c<=5; c++)
   {   
       printf("...%d\n", num[c]);
       system("pause");
   }

Constantes

São dados gravados na memória que não podem ter seus valores alterados, armazenando valores que representam tamanho fixo, durante a execução. São declaradas fora das funções, podendo serem utilizadas em qualquer parte do programa. Elas simplificam muito o trabalho do programador, quando ele precisa alterar um único valor que se encontra espalhado, ao longo do programa.
Para criarmos uma constante, podemos utilizar a palavra reservada const.
Ex:

#include<stdio.h>
const int num = 50;

void func(int z[])
{
   int c;
   for(c=0; c<num; c++)
      z[c] = 0;
}
main()
{
   int x[num], c;
   func(x);
   for(c=0; c<num; c++)
      x[c] = c;
   for(c=num-1; c>=0; c--)
      printf("%d\n", x[c]);
}

A outra forma é usando #define, considerada uma constante simbólica. Ela é uma diretiva que indica ao pré-processador que o símbolo que a segue vai ficar com o valor que aparece depois do símbolo. Ela não ocupa um espaço físico em memória, tendo seu valor substituído ao longo do programa, antes da compilação. É normal representar constantes simbólicas por letras maiúsculas.

#include<stdio.h>
#define NUM 50
void func(int z[])
{
   int c;
   for(c=0; c<NUM; c++)
      z[c] = 0;
}
main()
{
   int x[NUM], c;
   func(x);
   for(c=0; c<NUM; c++)
      x[c] = c;
   for(c=NUM-1; c>=0; c--)
   printf("%d\n", x[c]);
}

Vetores em Funções

O exemplo a seguir, é de uma função que recebe um vetor de int(sem dimensão) e um int, indicando quantos elementos irão iniciar.
Ex:

#include<stdio.h>
void func(int z[], int num)
{
   int c;
   for(c=0; c<num; c++)
       z[c] = 0;
}
main()
{
   int x[5];
   int y[16];

   func(x,5);
   func(y,16);
}

Se eu passar a dimensão do vetor no parâmetro, o compilador iria descartar os números dos elementos do vetor.

Vetores Multidimensionais

Um vetor pode ser declarado com n dimensões. Eles são preciosos quando precisamos escrever programas que são melhores de organizar utilizando muitos elementos. Um bom exemplo disso é o jogo da velha. Note que o exemplo apresenta apenas as posições dos elementos "X" e "0" sobre o "tabuleiro", e mais nada, partindo de como fazer uma jogada, pontos e etc.
Ex:

#include<stdio.h>
#define JOG 3

main()
{
   char Velhas[JOG][JOG] = {{' ', ' ', ' '},{' ', ' ', ' '},{' ', ' ', ' '}};
   int c;
   int k;
   Velha [0][0] = 'X';
   Velha [1][1] = 'X';
   Velha [0][2] = '0';
   Velha [2][2] = '0';
   for(c=0; c<JOG; c++)
   {
      for(k=0; k<JOG; k++)
         printf("%c %c", Velha [c][k], k==JOG-1? ' ' : ' | ');
      if(c != JOG-1)
         printf("\n-----------\n");
         system("pause");
}
}

Até a próxima! ^^

Menu da Linguagem C

quarta-feira, 6 de março de 2013

Desenhos: Parte 1

Artes

     Estou postando os desenhos que achei na net. E antes de mais nada, os artistas estão de parabéns.

Pessoa dormindo.

Se conhecerem me avisem.

Dr. House

Cantora Amy Lee