Você está na página 1de 2

Universidade Federal do Cear Centro de Tecnologia

Atividade de Laboratrio 2015.1


Programao Computacional para Engenharias / Introduo Programao
Prof. Tarcisio Ferreira Maciel, Dr.-Ing.

Objetivos:

Elaborar programas que faam uso de ponteiros.

Para cada questo da atividade, comece criando uma aplicao do tipo Console application seguindo o
passo-a-passo disponibilizado online. Em seguida, modifique o programa Hello World! para resolver uma
questo. Cada projeto dever ser chamado QuestaoXX, onde XX o nmero da questo. Por exemplo, para a
Questo 1, o projeto dever se chamar Questao01.
Questo 1. Escreva um programa que crie um ponteiro p para um nmero real. Aponte o ponteiro p para uma
varivel real x. Em seguida, leia um valor para x via teclado. Usando p, imprima o endereo de p, o endereo da
varivel apontada por p e o valor da varivel apontada por p.
Questo 2. Escreva um programa que crie um ponteiro p para um nmero real. Aponte o ponteiro p para uma
varivel real x. Em seguida, leia um valor para x via teclado e calcule para ele o valor do polinmio p(x) = 4x3
3x2 + 2x 1 usando x diretamente e usando o ponteiro p. Imprima o valor do polinmio em cada caso.
Questo 3. Escreva um programa que declare e leia pelo teclado variveis para os coeficientes a, b e c de um
polinmio do segundo grau. Declare ainda variveis para as razes x1 e x2 do polinmio. Crie ponteiros para
apontar para cada uma dessas variveis e calcule as razes do polinmio usando exclusivamente os ponteiros em
vez das variveis diretamente.
Questo 4. Escreva um programa que crie um ponteiro p para um nmero real. Aponte o ponteiro p para a
primeira posio de um vetor v de nmeros reais com N = 10 elementos. Para apontar o vetor para o primeiro
elemento de v, faa p = &v[0]. Crie um lao para ler o vetor v via teclado. Em um segundo lao similar ao anterior,
em vez de realizar a leitura do vetor, inclua uma linha para imprimir o contedo da memria apontada pelo o
ponteiro p e uma segunda linha para incrementar o ponteiro p, ou seja, fazendo p++. Observe a sada do seu
programa e inclua uma mensagem em seu programa que descreve o foi impresso usando o ponteiro.
Questo 5. Escreva uma funo que recebe um ponteiro para um nmero real a e um ponteiro para um nmero
real b e que troca o contedo das variveis apontadas pelos ponteiros. Na funo main, utilize essa funo para
trocar os elementos dois vetores x e y com 5 elementos cada, ambos lidos via teclado.
Questo 6. Escreva uma funo que receba um ponteiro para um vetor x de nmeros reais, um inteiro positivo
n representando o tamanho do vetor e um nmero real a. A funo deve modificar o vetor x multiplicando-o
por a. Por exemplo, se x = {1 -2 1} (logo n tem valor 3) e a = 2.0, ento a funo deve atualizar o vetor para
x = {2 -4 2}. Na funo main, leia os valores de um vetor a com 5 elementos e um escalar b. Em seguida aplique
a funo para criada para multiplicar a por b.
Questo 7. Escreva um programa que receba pelo teclado o tamanho n comum a dois vetores a e b de nmeros
reais. Aloque memria dinamicamente para os vetores e leia seus dados pelo teclado. Em seguida, determine
um vetor c cujos elementos correspondem ao produto dos elementos de a e b de mesmo ndice (produto de
Hadamard).
Questo 8. Escreva uma funo que recebe um ponteiro x para um vetor e um inteiro positivo n representando
seu comprimento. A funo deve retornar um ponteiro apontando para o mximo valor contido em x ou NULL
caso os dados de entrada sejam invlidos. Na funo main, utilize essa funo para localizar e imprimir o mximo
valor contido em um vetor a com 5 elementos.
Questo 9. Escreva uma funo que recebe uma referncia para uma string str. A funo deve retorna um
ponteiro para o primeiro caractere numrico contido no texto ou NULL caso no haja nenhum. Na funo main,
utilize essa funo para inspecionar a existncia de caracteres numricos em uma string lida pelo teclado.
Questo 10. Escreva uma funo que recebe um ponteiro str para um vetor de caracteres e retorno um inteiro
no-negativo indicando o nmero de caracteres contido no texto (implementao de sua prpria strlen). A
funo deve retornar 0 caso receba um ponteiro NULL. Na main, utilize essa funo para determinar e imprimir o
tamanho de uma frase lida pelo teclado.
Questo 11. Escreva um programa que leia pelo teclado duas strings. O programa deve concatenar as duas
strings em um vetor de caracteres cujo tamanho deve ser exatamente o mnimo necessrio para acomodar a
juno das strings originais. Para tanto, utilize alocao dinmica de memria para alocar um vetor de caracteres
com o tamanho exato necessrio e copie os caracteres das strings para o mesmo.
Questo 12. Escreva uma funo uma referncia para uma string e converte os caracteres maisculos (ou seja,
entre 'A' e 'Z') contidos na string para minsculos. Sabe-se que um caractere maisculo pode ser convertido
para minsculo adicionando-se 32 ao mesmo. Na main, aplique essa funo a uma frase lida pelo teclado.
Questo 13. Escreva uma funo uma referncia para uma string e converte os caracteres minsculos (ou seja,
entre 'a' e 'z') contidos na string para maisculos. Sabe-se que um caractere minsculo pode ser convertido
para maisculo subtraindo-se 32 do mesmo. Na main, aplique essa funo a uma frase lida pelo teclado.
Questo 14. Escreva uma funo que recebe um ponteiro x para um vetor como parmetro e um inteiro n para
o tamanho do vetor. A funo deve inverter os elementos do vetor de modo que o primeiro elemento do vetor se
torne o ltimo, o segundo se torne o penltimo, e assim por diante. Na main, utilize essa funo para inverter os
elementos de um vetor a de tamanho N alocado dinamicamente na memria. Imprima o vetor resultante.

Você também pode gostar