160 likes | 274 Views
Computação Depressão O Portal do Estudante de Computação www.facebook.com/ComputacaoDepressao www.ComputacaoDepressao.com.br. Lógica de Programação. Linguagem C. características.
E N D
Computação Depressão O Portal do Estudante de Computação www.facebook.com/ComputacaoDepressao www.ComputacaoDepressao.com.br Lógica de Programação Linguagem C
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; • floatnotas[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 • stringde 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. • intmain() { • int idades[50][10]; • idades[0][0] = 18; • idades[0][1] = 25; • ⋮ • idades[49][9] = 33;
Preenchimento • intmain() { • intidades[50][10]; • printf(“Digite a idade:”); • scanf(“%d”, &idades[0][0]); • printf(“Digite a idade:”); • scanf(“%d”, &idades[0][1]); • ⋮ • printf(“Digite a idade:”); • 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: • intmain() { • intidades[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 • intmain() { • intidades[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 • intmain() { • intidades[3][10]; • Na memória do computador teremos algo mais ou menos assim:
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 • intmain() { • intidades[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: • intmain() { • 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: • intmain() { • intcontador, 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 • intmain() { • 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 • intmain() { • 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]); • } • }