Exercícios Adicionais em Linguagem C++ com Ponteiros e Alocação Dinâmica de Memória
Extraído de material produzido pelo Prof. Robson Ribeiro Linhares <robson@dainf.ct.utfpr.edu.br>, Professor do Departamento Acadêmico de Informática da Universidade Tecnológica Federal do Paraná (DAINF - UTFPR).
1 – Ponteiros
- Fazer uma função FATORES que:
a. Recebe 3 parâmetros: um vetor de inteiros, um número inteiro n passado por valor e outro número x passado como ponteiro.
b. Retorna um número inteiro.
c. Decompõe o número n em fatores primos e armazena-os nas posições do vetor. O conteúdo de x deve receber o número de fatores primos encontrados. Caso o número de fatores encontrados seja maior que 10, a função deve retornar 1, do contrário deve retornar 0.
- Fazer uma função para:
a. Receber dois ponteiros para char (char*) como parâmetro e um número representando uma certa quantidade de caracteres.
b. procurar, no vetor apontado pelo parâmetro 1, o primeiro caracter de espaço (‘ ‘) ou o fim de vetor (representado pela quantidade fornecida no parâmetro 3).
c. copiar os caracteres anteriores ao espaço no vetor indicado pelo segundo parâmetro.
d. retornar o número de caracteres copiados.
- Fazer um programa para:
a. Receber uma frase do usuário, caracter a caracter usando getch() e armazenando no vetor (máx. 30 caracteres). Quando o usuário digita enter (‘\r’) a recepção é finalizada.
b. mostrar cada palavra da frase em uma linha separada, utilizando a função do exercício 3.
- Fazer um programa para:
a. declarar variáveis a, b, c, d do tipo int.
b. declarar variáveis e, f, g, h do tipo float.
c. declarar vetor v de 10 elementos do tipo char.
d. declarar variável x do tipo int.
e. criar um ponteiro apontando para o endereço de a.
f. incrementar o ponteiro, mostrando o conteúdo do endereço apontado (em forma de número). Caso o endereço coincida com o endereço de alguma outra variável, informar o fato.
- Fazer uma função com as seguintes características:
a. recebe dois números inteiros do usuário.
b. retorna 1 se os números são iguais, 0 se são diferentes e –1 se a soma ou o produto estoura a faixa dos inteiros. Além disso, retorna a soma e o produto dos dois números.
c. Fazer um programa para receber dois números do usuário, chamar a função e mostrar se os números são iguais. Além disso, mostrar sua soma e seu produto.
- Fazer uma função que:
a. receba 3 números como parâmetros: A, B e C.
b. ordene de tal forma que, ao final da função, A contenha o menor número e C o maior.
c. Fazer um programa que receba 3 números do usuário, chame a função e mostre os números ordenados.
- Escreva uma função CALCULA que:
a. receba como parâmetros duas variáveis inteiras, X e Y;
b. retorne em X a soma de X e Y;
c. retorne em Y a subtração de X e Y.
Pergunta: a passagem dos parâmetros para a função deve ser por valor ou por referência?
- Fazer uma função DIVS que:
a. recebe como parâmetro um número inteiro n por valor e dois números inteiros max e min por referência;
b. retorna 0 se o número num é primo e 1 caso contrário. Se o número não for primo, as variáveis max e min devem assumir os valores do menor e do maior divisores inteiros do número, respectivamente, desconsiderando o número 1 e o próprio número num.
2 – Alocação Dinâmica
- Fazer um programa que receba do usuário a quantidade N de números a ser digitada. Em seguida, o programa deve alocar dinamicamente um vetor de N inteiros, receber N números do usuário e armazenar no vetor, e mostrar o maior valor do vetor, o menor valor do vetor e a média dos valores.