O Portal do Estudante de Computação Computação Depressão O Portal do Estudante de Computação www.facebook.com/ComputacaoDepressao www.ComputacaoDepressao.com.br Linguagem C Lógica de Programação
características Na linguagem C, os vetores possuem um número N de posições, porém ao declararmos, acessamos seus índices que começam em 0 e vão até N-1. Ou seja, a linguagem C tem a característica “0 a N-1” nos seus vetores. Para transformá-lo em uma matriz, basta colocar mais um par de colchetes com um número de posições. int idades[10]; //10 índices int idades[50][35]; //50 índices de 35 índices 1º vetor: 35 índices 2º vetor: 50 índices (agora uma matriz)
Declaração float notas; float notas[80][30]; //matriz de 80 índices de 30 índices de float char letra; char nome[30]; /* vetor de 30 índices de char (caractere) ou uma string de 29 caracteres */ char letras[87][26]; /* matriz de 87 índices de 26 índices de char (caractere), ou vetor de 87 índices de strings de 25 caracteres */ char nomes[20][50][30]; /* matriz de 20 índices de 50 índices de strings de 29 caracteres */
Preenchimento É possível preencher uma matriz índice a índice, como se fossem variáveis isoladas. Assim como é possível utilizar estruturas de repetição para auxiliar o preenchimento da matriz. int main() { int idades[50][10]; idades[0][0] = 18; idades[0][1] = 25; ⋮ idades[49][9] = 33;
Preenchimento int main() { int idades[50][10]; printf(“Digite a idade:”); scanf(“%d”, &idades[0][0]); scanf(“%d”, &idades[0][1]); ⋮ scanf(“%d”, &idades[49][9]);
preenchimento Se declararmos uma matriz, não será possível inserir um dado nela como se fosse uma variável ou vetor! Por exemplo: int main() { int idades[50][10]; idades = 18; idades[6] = 18; E também não será possível inserir um valor num índice fora da faixa de índices da matriz! Por exemplo: idades[0][15] = 34;
Preenchimento int main() { int idades[50][10], contador, contador2; for(contador = 0; contador < 50; contador++) { for(contador2 = 0; contador2 < 10; contador2++) { printf(“Digite a idade:”); scanf(“%d”, &idades[contador][contador2]); }
Memória Índice: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Valor[0]: int main() { int idades[3][10]; Na memória do computador teremos algo mais ou menos assim: Índice: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Valor[0]: Valor[1]: Valor[2]:
leitura Para lermos e/ou exibirmos os valores em cada índice da matriz, usamos basicamente os mesmos conceitos vistos no preenchimento da matriz. Digamos que a matriz foi devidamente declarada e preenchida. Podemos ler os valores dela indicando o índice diretamente ou usando uma estrutura de repetição para vários índices. printf(“%d”, idades[0][0]); printf(“%d”, idades[0][1]); ⋮ printf(“%d”, idades[19][29]);
Leitura int main() { int idades[50][10], contador, contador2; for(contador = 0; contador < 50; contador++) { for(contador2 = 0; contador2 < 10; contador2++) { printf(“%d\n”, idades[contador][contador2]); }
leitura Podemos realizar operações matemáticas (caso o tipo de dado seja numérico) dos valores da matriz! Por exemplo, calcular a média dos valores de cada linha: int main() { int contador, contador2, soma , notas[50][3]; float media; for(contador = 0; contador < 50; contador++) { soma = 0; for(contador2 = 0; contador2 < 3; contador2++) { soma += notas[contador][contador2]; } media = (soma / 3); printf(“Média do aluno %d: %0.2f\n”, (contador+1), media);
Leitura Assim como os índices podem se tornar elementos de operações condicionais. Por exemplo, mostrar todos os números pares na matriz: int main() { int contador, contador2, val[50][10]; for(contador = 0; contador < 50; contador++) { for(contador2 = 0; contador2 < 10; contador2++) { if((val[contador][contador2] % 2) == 0) { printf(“%d é par”, val[contador][contador2]); }
vetores de strings Como já foi dito, um vetor de strings é um vetor de vetor de caracteres. char nomes[5][10]; Um vetor chamado “nomes”, com 5 índices, e em cada índice é possível armazenar 10 caracteres, ou strings de 9 caracteres (sempre lembrando que um está reservado para o \0).
preenchendo vetores de strings int main() { char nomes[5][10]; int contador; for(contador = 0; contador < 5; contador++) { printf(“Digite o nome:”); gets(nomes[contador]); }
Matrizes de strings Uma matriz de strings possui 3 índices: linhas, colunas e caracteres. char nomes[20][5][10]; Uma matriz chamado “nomes”, com 20 índices de 5 índices, e em cada índice é possível armazenar 10 caracteres, ou strings de 9 caracteres (sempre lembrando que um está reservado para o \0).
preenchendo matrizes de strings int main() { char nomes[20][5][10]; int contador, contador2; for(contador = 0; contador < 20; contador++) { for(contador2 = 0; contador2 < 5; contador2++) { printf(“Digite o nome:”); gets(nomes[contador][contador2]); }