PUCRS
Faculdade de Informática
Programação C/C++



Para resolver estes exercícios, consulte a página sobre Ponteiros e Alocação Dinânica.

 
1. Analise a classe do programa abaixo e crie os métodos necessários para o armazenamento dos dados digitados pelo usuário.

#include <iostream>

class VetorDinamico{
public:
        // Métodos a serem criados
        // - construtora: 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'
};

int main()
{

    VetorDinamico V1(5);
    int dado;

    do{
        cin >> dado;
        if (dado>0)
            V1.adiciona(dado);
        else break;
    } while (1);

    for(int i=0; i< V1.qtdDados(); i++)
    {
        cout << V1.getDado(i) << endl;
    }
}




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.