Vectores, Matrizes e Strings
Vectores
Um
vetor
é
uma colecção de variáveis de um mesmo tipo, que compartilham o mesmo
nome e que ocupam posições consecutivas de memória. Cada uma
dessas variáveis denomina-se elemento
e
é identificada por um índice.
Se v
é
um vetor com n
posições,
seus elementos são v[0],
v[1],
v[2],
..., v[n-1].
Um
vetor para armazenar 5 números inteiros pode ser criado da
seguinte maneira:
int
v[5];
Inicialização de vectores
Em
C, vetores globais e estáticos são automaticamente zerados pelo
compilador.
Mas,
se for desejado, podemos inicializá-los explicitamente no momento em
os declaramos. Nesse caso, os valores iniciais devem ser fornecidos
entre chavetas e separados por vírgulas.
Exemplo:
Inicialização
de vector estático:
#include
<stdio.h>
void
main(void) {
static
float moeda[5] = {1.00, 0.50, 0.25, 0.10, 0.05};
...
}
Os
valores são armazenados, a partir da posição 0 do vector, 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.
Se
a lista de valores iniciais tem mais elementos que a capacidade do
vector, ocorre um erro de compilação. Entretanto, se tem menos que o
necessário, as posições
excedentes do vector permanecem zeradas.
Exemplo:
Matrizes
Uma
matriz
é
uma colecção homogénea bidimensional, cujos elementos são distribuídos
em linhas e colunas. Se A
é
uma matriz mxn,
então suas linhas são
indexadas de 0 a m-1
e suas colunas de 0 a n-1.
Para acessar um particular elemento de A,
escrevemos A[i][j],
sendo i
o
número da linha e j
o número
da coluna que o elemento ocupa.
Exemplo.
Uma
matriz 3×4
de números inteiros.
Essa
declaração cria uma matriz A
cujos
elementos ocupam as seguintes posições:
- A[0], [0], A[0], [1], A[0], [2], A[0], A[3], A[0], [4].
- A[1], [0], A[1], [1], A[1], [2], A[1], A[3], A[1], [4].
- A[2], [0], A[2], [1], A[2], [2], A[2], A[3], A[2], [4].
- A[3], [0], A[3], [1], A[3], [2], A[3], A[3], A[3], [4].
Inicialização de Matrizes
Se
lembrarmos que uma matriz nada mais é que um vector cujos elementos são
vectores, a sintaxe para a sua inicialização não tem grandes
novidades.
Exercícios
1. Crie tipos de vectores para armazenar:
a. as
letras vogais do alfabeto.
b. as
temperaturas diárias de uma semana.
c. o
número de dias em cada um dos meses do ano.
2. Crie um programa que efectue a leitura de duas strings. Se elas forem
iguais exibe a mensagem “strings iguais”
e caso contrário, concatene as duas strings e imprima a string resultante.
3. Crie um programa que efectue a declaração de duas strings com capacidade para 30 caracteres. Leia
pela entrada padrão a primeira string. Em seguida, copie o texto da primeira
string para a segunda. Mostre no final o conteúdo das duas strings
4. Leia um texto pela entrada padrão com no máximo 99
caracteres. Em seguida imprima o número de caracteres digitados. – Dica: percorra
o vetor até encontrar o caracter teminador ‘\0’
5. Em uma loja de CD ́s existem apenas quatro tipos de
preços que estão associados a cores. Assim os CD ́s que ficam na loja não são marcados por preços
mas sim por cores.
a. Desenvolva o algoritmo que a partir da entrada da cor o
software mostre o preço. A
loja está atualmente com a seguinte tabela de preços.
Côr
|
Preço
|
Verde
|
10MZ
|
Azul
|
20MZ
|
Amarelo
|
30MZ
|
Vermelho
|
40MZ
|
6. Crie
um programa que efectua a soma de todos valores de um array
unidimensional de qualquer tamanho e mostrar a média.
7. Ordene
de forma crescente os seguintes elementos do array (1,8,3,5,7,6,4).
8. Crie
um array para exibir o seguinte output:
08 09 10 11
12 13 14 15
9. Crie
um programa que recebe um valor do tipo inteiro e faça uma busca em
um array de 10 elementos. No final devera informar quantos valores
foram encontrados ou informar nenhum valor foi encontrado.