VETORES STRINGS E MATRIZES VETORES Um vetor uma




![RESPOSTA a) as letras vogais do alfabeto. char vogal[5]; b) as temperaturas diárias de RESPOSTA a) as letras vogais do alfabeto. char vogal[5]; b) as temperaturas diárias de](https://slidetodoc.com/presentation_image_h/ef5f23207f8d66684f5e08ee07f051a3/image-5.jpg)












![void obtem (float t[]) { int i; printf("Informe as temperaturas: "); for (i=0; i<max; void obtem (float t[]) { int i; printf("Informe as temperaturas: "); for (i=0; i<max;](https://slidetodoc.com/presentation_image_h/ef5f23207f8d66684f5e08ee07f051a3/image-18.jpg)
![float media(float t[]) { int i; float s=0; for (i=0; i<max; i++) s += float media(float t[]) { int i; float s=0; for (i=0; i<max; i++) s +=](https://slidetodoc.com/presentation_image_h/ef5f23207f8d66684f5e08ee07f051a3/image-19.jpg)
![int conta(float t[], int m) { int i, c=0; for (i=0; i<max; i++) if int conta(float t[], int m) { int i, c=0; for (i=0; i<max; i++) if](https://slidetodoc.com/presentation_image_h/ef5f23207f8d66684f5e08ee07f051a3/image-20.jpg)









- Slides: 29

VETORES, STRINGS E MATRIZES

VETORES Um vetor é uma coleção de variáveis de um mesmo tipo, que compartilham o mesmo nome e que ocupam posições consecutivas de memória. Em C os vetores são sempre indexados a partir de zero e, portanto, o último elemento de um vetor de tamanho n ocupa a posição n 1 do vetor.

EXEMPLO 5. 1. Um vetor para armazenar 5 números inteiros pode ser criado da seguinte maneira: int v[5]; Os elementos de v são v[0], v[1], v[2], v[3] e v[4].

EXERCÍCIO 5. 1. Crie tipos de vetores para armazenar: a) b) c) as letras vogais do alfabeto. as temperaturas diárias de uma semana. o número de dias em cada um dos meses do ano.
![RESPOSTA a as letras vogais do alfabeto char vogal5 b as temperaturas diárias de RESPOSTA a) as letras vogais do alfabeto. char vogal[5]; b) as temperaturas diárias de](https://slidetodoc.com/presentation_image_h/ef5f23207f8d66684f5e08ee07f051a3/image-5.jpg)
RESPOSTA a) as letras vogais do alfabeto. char vogal[5]; b) as temperaturas diárias de uma semana. double temp[7]; c) o número de dias em cada um dos meses do ano. int dias[12];

EXEMPLO 5. 2. Seja i uma variável do tipo int e v o vetor criado no exemplo anterior. Se i 3, então v[i%3] v[0] v['B' 'A'] v[1] v[i 1] v[2] v[i] v[3] v[i 1] v[4]. Entretanto, v[i 2. 0] causará um erro de compilação; já que a expressão i 2. 0 tem valor igual a 1. 5, que não é um índice permitido.

EXERCÍCIO 5. 3. Codifique um programa para solicitar 5 números, via tecla do, e exibi los na ordem inversa àquela em que foram fornecidos. #include <stdio. h> #include <conio. h> void main() { int n[5], i; clrscr(); for (i=0; i<5; i++) { printf("Digite o %dø valor: ", i+1); scanf("%d", &n[i]); } printf("Valores lidos em ordem inversa: n["); for (i=4; i> 1; i ) printf(" %d", n[i]); printf(" ]"); getch(); }

INICIALIZAÇÃO DE VETORES Em C, vetores globais e estáticos são automaticamente zerados pelo compila dor. Mas, se for desejado, podemos inicializá los explicitamente no momento em os declaramos. Nesse caso, os valores iniciais devem ser fornecidos entre chaves e separados por vírgulas. Os valores são armazenados, a partir da posição 0 do vetor, na ordem em que são fornecidos; por exemplo, o valor 0. 25 é armazenado em moeda[2]. Note que apenas expressões e valores constantes são permitidas numa lista de valores iniciais. O uso de variáveis causa erro de compilação.

EXEMPLO 5. 4. Inicialização de vetor estático: #include <stdio. h> void main(void) { static float moeda[5] = {1. 00, 0. 50, 0. 25, 0. 10, 0. 05}; . . . }

MATRIZES INICIALIZADAS Se a lista de valores iniciais tem mais elementos que a capacidade do vetor, ocorre um erro de compilação. Entretanto, se tem menos que o necessário, as posições excedentes do vetor permanecem zeradas.

EXEMPLO 5. 5. Inicialização de vetor com valores iniciais insuficientes: #include <stdio. h> #define max 6 void main(void) { int A[max] = {9, 3, 2, 7}; int i; for (i=0; i<max; i++) printf("%d ", A[i]); }

INICIALIZAÇÃO DE MATRIZES Quando um vetor é inicializado, o seu tamanho pode ser omitido. Nesse caso, o compilador determina o tamanho do vetor contando os elementos forneci dos na lista de valores iniciais. Exemplo 5. 6. Vetores de tamanho implícito: #include <stdio. h> void main(void) { char ds[] = {'D', 'S', 'T', 'Q', 'S'}; . . . } Como o tamanho é omitido, o compilador cria o vetor ds com 7 posições.

PAR METROS DO TIPO VETOR Um fato interessante a respeito de vetores em C é que o nome de um vetor representa o endereço em que ele está alocado na memória. Então, se for desejado saber o endereço de um vetor v, em vez de escrever v[0], podemos escrever simplesmente v.

EXEMPLO 5. 7. Endereços de vetores declarados consecutivamente: #include <stdio. h> void main(void) { int x[3], y[4]; printf("n x = %p e y = %p", x, y); } O formato %p é usado em C para a exibição de endereços. Quando executa do, esse programa exibe x = FFD 0 e y = FFD 6. Isso mostra que os vetores x e y realmente ocupam posições consecutivas de memória

VETORES E PONTEIROS Em C, o nome de um vetor representa o endereço em que ele está na memória. A importância desse fato é que, quando passamos um vetor como argumento a uma função, estamos na verdade passando o seu endereço. E, ao contrário do que ocorre com outros tipos, a passagem de vetores é feita por referência

EXEMPLO: SEJA RESOLVER O PROBLEMA: "Dadas as temperaturas registradas diariamente, durante uma semana, determine em quantos dias a temperatura esteve acima da média. “ A solução desse problema envolve os seguintes passos: a) obter os valores que representam as temperaturas; b) calcular a média entre esses valores; c) verificar quantos desses valores são maiores que a média.

EXEMPLO 5. 8. #include <stdio. h> #include <conio. h> #define max 7 void main() { float temp[max], m; clrscr(); obtem(temp); m = media(temp); printf("Estat¡stica: %d", conta(temp, m)); getch(); }
![void obtem float t int i printfInforme as temperaturas for i0 imax void obtem (float t[]) { int i; printf("Informe as temperaturas: "); for (i=0; i<max;](https://slidetodoc.com/presentation_image_h/ef5f23207f8d66684f5e08ee07f051a3/image-18.jpg)
void obtem (float t[]) { int i; printf("Informe as temperaturas: "); for (i=0; i<max; i++) { printf("%d valor? ", i+1); scanf("%f", &t[i]); } }
![float mediafloat t int i float s0 for i0 imax i s float media(float t[]) { int i; float s=0; for (i=0; i<max; i++) s +=](https://slidetodoc.com/presentation_image_h/ef5f23207f8d66684f5e08ee07f051a3/image-19.jpg)
float media(float t[]) { int i; float s=0; for (i=0; i<max; i++) s += t[i]; return s/max; }
![int contafloat t int m int i c0 for i0 imax i if int conta(float t[], int m) { int i, c=0; for (i=0; i<max; i++) if](https://slidetodoc.com/presentation_image_h/ef5f23207f8d66684f5e08ee07f051a3/image-20.jpg)
int conta(float t[], int m) { int i, c=0; for (i=0; i<max; i++) if (t[i]>m) c++; return c; }

STRINGS Em C, uma string é uma série de caracteres terminada com um caracter nulo, representado por '