LINGUAGEM C VETOR E MATRIZ Introdução à Programação Prof. Cayo Fontana
SUMÁRIO Vetor Matriz Exercícios
VETOR Vetores são estruturas de dados, estáticas, compostas por uma coleção de elementos de um mesmo tipo de dado. É ordenado: os elementos de um vetor são indexados de forma ordenada. É homogêneo: todo valor armazenado em um mesmo vetor deve ser do mesmo tipo: Por exemplo, um vetor de inteiros só possui elementos do tipo inteiro.
VETOR Representação gráfica de um vetor de inteiros com dimensão para 4 elementos, cujo nome da variável é A (semelhante a notação matemática): A = 0 1 2 3 10 8 5 1 Para fazer referência a um determinado elemento de um vetor, utiliza-se um índice, por exemplo: Utilizando o índice 1 para o vetor A, o elemento referenciado será o valor 8, cujo tipo é inteiro. Na linguagem C a notação é exatamente como na matemática: A[1] é 8.
tamanho_do_vetor: define a quantidade total de elementos do vetor. VETOR A declaração de um vetor em C dá-se da seguinte maneira: tipo_de_dado nome_do_vetor[tamanho_do_vetor]; onde: tipo_de_dado: é o tipo de dado, suportado na linguagem C, no qual todos os elementos do vetor (homogeneidade) serão definidos. nome_do_vetor: definição do nome da variável para o vetor. [ ]: estabelece a relação semântica do C onde define uma coleção de elementos (um vetor).
VETOR Exemplo da declaração de um vetor do tipo inteiro: int vetor[10]; A linha de código acima declara um vetor (cujo nome da variável é vetor) que suporta 10 elemento do tipo inteiro. Um vetor pode ser inicializado na sua declaração. Os elementos utilizados na sua inicialização devem ser do mesmo tipo de dado definido na sua declaração e devem estar definidos entre chaves { }, Exemplo: float x[5] = { 0.00, 1.25, 2.50, 3.75, 5.00 };
VETOR Para fazer acesso a todos os elementos de um vetor idealmente utiliza-se uma estrutura de repetição, suportada pela linguagem. Por exemplo: Acessando e modificando todos os elementos do vetor A (definido anteriormente): int A[4] = { 10, 8, 5, 1 }; int i; for (i = 0; i < 4; i++) { A[i] = i * i + i; } Representação Gráfica: A = 0 2 6 12 i = 0 i = 1 i = 2 i = 3
MATRIZ Assim como os vetores, matrizes são estruturas de dados estáticas que também possuem uma coleção de elementos de um único tipo. O conceito de vetor e matriz é o mesmo, o que difere ambas as estruturas é o fato de que vetores são unidimensionais e matrizes são bidimensionais (linha e coluna). Neste caso, utiliza-se duas variáveis inteiras para acessar todos os elementos de uma matriz: Representação gráfica de uma matriz
MATRIZ Exemplo de uma matriz de inteiros com 16 elementos (4 linhas * 4 colunas matriz quadrada), cujo nome da variável é M: M = 2 10 21 97 42 5 12 37 54 49 32 63 8 29 7 5 Para referenciar um determinado elemento em uma matriz, deve-se utilizar dois índices. Exemplo: Para acessar o elemento 37 da matriz M devem ser utilizados os índices 1 (linha) e 3 (coluna) M[1][3] possui o elemento 37.
MATRIZ A declaração de uma matrix em C dá-se da seguinte maneira: tipo_de_dado nome_da_matriz[quantidade_linhas][quantidade_colunas]; onde: tipo_de_dado: é o tipo de dado, suportado na linguagem C, no qual todos os elementos da matriz (homogeneidade) serão definidos; nome_da_matriz: definição do nome da variável para a matriz; [ ][ ]: estabelece a relação semântica do C onde define uma coleção de linhas e colunas, respectivamente; quantidade_linhas e quantidade_colunas: define a quantidade total de linhas e colunas para a matriz. O tamanho total de elementos em uma matriz será (quantidade_linhas * quantidade_colunas).
MATRIZ Exemplo da declaração de uma matriz do tipo inteiro: int matriz[10][20]; A linha de código acima declara uma matriz capaz de suportar 10 linhas e 20 colunas de elementos do tipo inteiro (total de 10 * 20 = 200 elementos). Uma matriz pode ser inicializada na sua declaração. Os elementos utilizados na sua inicialização devem ser do mesmo tipo de dado definido na sua declaração e devem estar definidos entre chaves { } sendo que cada conjunto de elemento de uma mesma linha deve estar definido dentro de outro par de chaves { }. Exemplo: char matriz[2][2] = { {'A', 'B'}, {'C', 'D'} };
MATRIZ Para fazer acesso a todos os elementos de uma matriz idealmente utiliza-se duas estruturas de repetição, suportadas pela linguagem. Por exemplo: Acessando e modificando todos os elementos de uma matriz chamada mat: const int tam = 4; float mat[tam][tam]; int i, j; for (i = 0; i < tam; i++) { for (j = 0; j < tam; j++) { mat[i][j] = j * j + i * i; } }
MATRIZ Representação gráfica do resultado da matriz mat após seu processamento no exemplo do slide anterior: mat = 0.000000 1.000000 4.000000 9.000000 1.000000 2.000000 5.000000 10.000000 4.000000 5.000000 8.000000 13.000000 9.000000 10.000000 13.000000 18.000000 Exemplo de acesso a um elemento qualquer: mat[2][2] possui o elemento 8.000000
EXERCÍCIOS 1. Receba a informação, pelo usuário, de 100 números inteiros e, em seguida, imprima o maior e o menor valor recebido. 2. Receba a informação, pelo usuário, de 100 números inteiros e, em seguida, verifique se o valor do elemento de cada índice deste vetor é primo. Se o valor daquele elemento não for primo, este elemento deverá receber o valor zero. Ao final da verificação, imprima a quantidade de números primos, e também de não primos, encontrados. 3. Crie uma matriz de inteiros, de dimensões 6x4, e defina seus elementos de acordo com o fórmula: 3 * i j, onde i e j são índices de linha e coluna, respectivamente. 4. Crie duas matrizes A e B, de dimensões 4x3 e 3x1 respectivamente, de elementos inteiros e solicite o preenchimento dos elementos pelo usuário. Em seguida, calcule a matriz produto C.