1. Analise a struct do programa abaixo e crie os métodos
necessários para o armazenamento dos dados digitados pelo
usuário.
#include <stdio.h>
struct VetorDinamico{
int *vetor;
// Métodos a serem criados
// - inicializa: deve alocar o vetor com um tamnho inicial, passado
// como parâmetro.
// - adiciona: coloca um dado no vetor. Se noa houver
// mais espaço, deve alocar um novo vetor
// - qtdDados: deve informar o número de dados inseridos no vetor
// - getDado(i): deve informar o valor do dado 'i'
void adiciona(int d);
};
void VetorDinamico::adiciona(int d)
{
}
int main()
{
VetorDinamico V1;
int dado;
do{
scanf("%d", &dado);
if (dado>0)
V1.adiciona(dado);
else break;
} while (1);
for(int i=0; i< V1.qtdDados(); i++)
{
printf("%d\n", V1.getDado(i));
}
}
2.
Crie
uma biblioteca de
funções que gerencie a
alocação
dinâmica de vetores. Para alocação do
vetor a biblioteca deve, ter a seguintes
função:
int
aloca(int* &ptr, int tam)
{
// aloca um vetor de 'tam' inteiros, retornando 1 se foi
possível alocar e 0 se não foi
// o parâmentro 'ptr' deve retornar com o apontador para a
área alocada
}
3. Usando sobrecarga de funções, crie uma rotina
com o mesmo nome da anterior, que aloque vetores de 'floats'.
4. Crie funções para preencher os
elementos de vetor com um certo valor. Para varrer o vetor, não utilize
índices, use apenas aritmética de ponteiros. Faça
isto para os vetores de inteiros e de reais.
void
preenche(int*
vet, int tam, int n)
{
// atribui a todos os elementos
do vetor 'vet' o valor 'n'
// não use
índices. Use apenas aritmética de ponteiros.
}
5. Crie
funções para imprimir os elementos de vetor. Para
varrer o vetor, não utilize
índices, use apenas aritmética de ponteiros. Faça
isto para os vetores de inteiros e de reais.