Programação C/C++
Prof. Márcio Sarroglia Pinho

Para resolver estes exercícios, consulte a página sobre Ponteiros e Alocação Dinânica.
 
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.