Vectores, Matrizes
Vectores
Um vector é 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 vector 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:
sintaxe:
vector <type> variable (elements)
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:
O exemplo a seguir permite inserir os valores do vector via teclado:
#include <iostream>
using namespace std;
int main () {
int i, num[7];
for (i=0;i<=6;i++){
cout << "Digite o numero: ";
cin >> num[i];
}
cout << num[0] << endl;
cout << num[1] << endl;
cout << num[2] << endl;
cout << num[3] << endl;
cout << num[4] << endl;
cout << num[5] << endl;
cout << num[6] << endl;
return 0;
}
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.
#include <iostream>
using namespace std;
int main () {
int i,t,num[4][4];
for (i=0;i<4;i++){
for(t=0;t<4;t++){
cout << "Digite o numero: ";
cin >> num[i][t];
}
}
for (i=0;i<4;i++){
cout << endl;
for(t=0;t<4;t++){
cout << num[i][t] << " ";
}
}
return 0;
}
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.
5. Crie um programa que efectua a soma de todos valores de um array unidimensional de qualquer tamanho e mostrar a média.
6. Ordene de forma crescente os seguintes elementos do array (1,8,3,5,7,6,4).
7. Crie um array para exibir o seguinte output:
8. 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.