Atps programacao
Por: ph4wking • 3/4/2015 • Projeto de pesquisa • 2.322 Palavras (10 Páginas) • 228 Visualizações
1. TEORIA SOBRE MATRIZES
Matriz é uma tabela de m linhas e n colunas de um determinado tamanho que guarda várias informações do mesmo tipo. Todas essas informações são gravadas em sequência dentro da memorio e são referenciadas por índices. As matrizes podem ser unidimensionais, mais conhecidas como vetores, multidimensionais e não dimensionadas.
1.1 Matrizes Unidimensionais
Como o nome mesmo já diz, é uma matriz de uma única dimensão. São chamadas também de vetores. A declaração desses vetores é feito da seguinte forma:
Tipo nome_vetor[tamanho];
O tipo do vetor é o tipo de elemento que será armazenado, por exemplo: Int , float , char. O tamanho representa a quantidade de elementos que a matriz irá conter. As matrizes sempre começam pelo índice 0 , que guarda o primeiro elemento da matriz.
É possível iniciar uma matriz como seus elementos já declarados. Essa declaração é feita da seguinte forma:
nome_vetor[tamanho]={lista_de_valores};
Os elementos de valores dentro da chave devem ser separados por vírgula e serem todos do mesmo tipo.
1.2 Matrizes Bidimensionais
São matrizes que contém linha-coluna, o primeiro índice indica a linha e o segundo a coluna. A declaração dessas matrizes é feita da seguinte forma:
Tipo nome_vetor[linha][coluna];
Os valores dos elementos são acessados através de seus índices (linhas e colunas).
1.3 Matrizes Multidimensionais
Em linguagem C, pode haver a necessidade de utilizar matriz de três ou mais dimensões, mais não é muito comum, pois ocupa grande espaço na memoria e faz com que os acessos aos elementos sejam mais lentos. Essa matriz funciona basicamente como os outros tipos de matrizes. Sua declaração é feita da seguinte forma
Tipo nome [tamanho1][tamanho2][tamanho3]....[tamanho n];
1.4 Matrizes não dimensionais
A matriz onde o tamanho não é especificado é chamada de matrizes não dimensionais. Nesses casos o compilador cria uma matriz grande para conter todos os seus elementos. Pode haver uma matriz unidimensionais com essas características, sua declaração é feita seguinte forma:
Tipo nome_vetor[];
Nas matrizes Multidimensionais apenas o seu primeiro índice não é especificado, assim o compilador pode listar de forma correta as matrizes. Assim é possível criar tabelas de diferentes tamanhos, sem precisar mudar suas dimensões.
Podemos concluir que as matrizes podem ser desde unidimensionais até multidimensionais e que seus tamanhos não necessitam serem obrigatoriamente especificados.
2. EXERCICIO UTILIZANDO MATRIZES
1) Elabore um programa contendo uma matriz, onde N pessoas apostarão em 6 dezenas entre 0 e 60 , ao final mostrar o nome do ganhador e o numero de acertos. Caso não haja ganhador mostrar a mensagem não houve ganhador!
Resolução em C:
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <conio.h>
# include <time.h>
int main()
/* SORTEIO DA MEGA SENA*/
{
int posicao=0, resp[2][6], apost, i, num, acertos[2][6], x , cont=0, maior=0, compara[6],chave=0;
char nome[2][5], nome_aux[5];
system ("color 1e") ;
system ("title SORTEIO DA MEGA SENA");
srand (time(NULL));
for (i=0;i<=5;i++)
compara[i]=((rand() %59));
for (apost=0;apost<=1;apost++)
{
printf(" \n \t\tDIGITE O SEU NOME: ");
fflush (stdin); gets (nome[apost]);
for (num=0;num<=5;num++)
{
printf("\n\t\tDIGITE O %d NUMERO DA SUA APOSTA %s: ",num+1,nome[apost]);
scanf ("%d",&resp[apost][num]);
}
cont=0;
for(i=0; i<=5; i++)
{
for (x=0; x<=5; x++)
if (resp[apost][x]==compara[i])
{
cont++;
chave++;
acertos[i][x]=compara[i];
}
else
acertos[apost][i]=0;
if (cont>maior)
{
maior=cont;
strcpy (nome_aux , nome[apost]);
posicao=apost;
}
...