Escolar Documentos
Profissional Documentos
Cultura Documentos
ICC 1 Ponteiros
Professor Cludio Fabiano de Motta Toledo
- Todos os exerccios devem ser resolvidos utilizando ponteiros, alocao dinmica e aritmtica de ponteiros. No utilize
variveis globais e no desperdice espao em vetores na funo main(). O uso de vetores temporrios permitido.
- Libere a memria dos ponteiros criados em todos os exerccios no final do programa.
- Funes que criam vetores devem retorn-los, e no receber o vetor como parmetro.
- Os programas devem ser modularizados: cada tarefa dos exerccios deve ser feita em uma funo separada da main().
1. (Fcil) Faa um programa que leia um nmero n e:
Crie e leia um vetor de inteiros de n posies;
Leia um nmero x e conte quantas vezes ele aparece num vetor de inteiros.
Na sua funo main(), mostre o resultado encontrado.
2. (Fcil) Faa um programa que leia um nmero n e:
Crie e leia um vetor de inteiro de n posies;
Conte os mltiplos de um nmero inteiro x num vetor e mostre-os na tela.
Na sua funo main(), mostre quantos mltiplos foram encontrados.
3. (Fcil) Faa um programa que leia um nmero n e:
Crie e leia um vetor de inteiros de n posies;
Conte a quantidade de nmeros pares num vetor de inteiros e mostre-os na tela;
Conte a quantidade de nmeros mpares num vetor de inteiros e mostre-os na tela.
Na sua funo main(), mostre a quantidade de nmeros pares e mpares encontrados.
4. (Fcil) Faa um programa que leia um nmero n e:
Crie e leia um vetor de inteiros de n posies;
Inverta um vetor. Crie uma funo de troca de variveis para isso.
Na sua funo main(), mostre o vetor aps a operao.
5. (Fcil) Faa um programa que leia uma palavra (mximo de 50 letras) e:
Some 1 no valor ASCII de cada caractere da palavra.
Na sua funo main(), imprima a string resultante.
6. (Fcil) Faa um programa que leia dois nmeros n e m e:
Crie e leia uma matriz de inteiros n x m. Use ponteiro simples;
Localize os trs maiores nmeros de uma matriz e mostre a linha e coluna onde esto. Pode alterar a matriz original.
7. (Fcil) Faa um programa que leia um nmero n e:
Crie e leia um vetor de inteiros de n posies;
Na mesma funo (diferente da main() ), conte a quantidade de nmeros pares, mpares e negativos e retorne via
parmetros por referncia.
Na sua funo main(), imprima o vetor e os trs resultados obtidos.
8. (Fcil) Faa um programa que leia um nmero n e:
Crie e leia um vetor de inteiros de n posies;
Encontre a moda do vetor (o nmero que mais aparece) e quantas vezes ele aparece. Em caso de empate, retorne o
primeiro encontrado.
Na sua funo main(), imprima o nmero encontrado e quantas vezes ele aparece.
9. (Mdio) Faa um programa que leia um nmero n e:
1
div
1, 2, 3, 4
vetorC
1, 2, 3, 3, 4
12. (Mdio) Faa um programa que leia o nmero de vendedores de uma loja e:
Crie e leia o total de vendas feitas por cada vendedor (em reais)
Crie e leia um vetor de taxas de comisso recebida por venda de cada vendedor (como porcentagem)
Crie e leia um vetor de comisso recebida por cada vendedor
Na sua funo main(), mostre os dados no formato: ndice, venda, taxa, valor recebido. Exemplo:
Indice Vendas
0
150.0
1
200.0
2
500.0
Taxa
50.0
25.0
10.0
Recebido
225.0
250.0
550.0
13. (Mdio) Faa um programa que leia dois nmeros n e m e, usando ponteiros duplos:
Crie e leia uma matriz n x m de inteiros;
Crie e construa uma matriz transposta m x n de inteiros.
Na sua funo main(), mostre as duas matrizes.
Dica: lembre-se de que uma matriz um vetor de vetores.
14. (Mdio) Faa um programa que leia dois nmeros a e b (positivos menores que 10000) e:
Crie um vetor onde cada posio um algarismo do nmero. A primeira posio o algarismo menos significativo;
Crie um vetor que seja a soma de a e b, mas faa-o usando apenas os vetores construdos anteriormente.
Dica: some as posies correspondentes. Se a soma ultrapassar 10, subtraia 10 do resultado e some 1 prxima posio.
15. (Mdio) Faa um programa que:
Crie e leia uma palavra (mximo de 30 letras);
Crie e construa outra palavra apenas com as consoantes da primeira.
Na sua funo main(), imprima ambas as palavras.
16. (Mdio) Faa um programa que:
Crie e leia uma palavra str (mximo de 15 letras);
Inverta esta palavra, sem modificar a original;
Ao final do programa, devem-se ter duas palavras: a original (str) e a invertida. Na sua main(), imprima-as e mostre uma
mensagem indicando se ela palndromo ou no (ou seja, se a palavra invertida igual original).
17. (Mdio) Faa um programa que:
2
8.0
5.0
6.5
10.0
Dica: vetor de nomes na verdade uma matriz. No use ponteiro duplo, use aritmtica de ponteiros. Neste exerccio, voc pode
desperdiar espao no utilizado pelos nomes.
23. (Difcil) Faa um programa que leia um nmero de alunos n e um nmero de provas p, e:
Crie e leia um vetor tamanho n com os nomes de todos os alunos (mximo de 15 letras);
Crie e leia uma matriz de notas n x p;
Crie um vetor de n inteiros com a mdia de cada aluno.
Na sua funo main(), imprima os dados lidos em forma de tabela (use \t para formatar), bem como a mdia de todos os
alunos.
Dica: vetor de nomes na verdade uma matriz. No use ponteiro duplo, use aritmtica de ponteiros. Neste exerccio, voc pode
desperdiar espao no utilizado pelos nomes.
24. (Difcil) Faa um programa que leia quatro nmeros a, b, c e d, que sero as dimenses de duas matrizes, e:
Crie e leia uma matriz, dadas as dimenses dela;
3
marcelo
hossomi
mhaorscseolmoi
ai
trei
atirei
waeer
htv
whatever
27. (Difcil) Faa um programa que controle o estoque de mercadorias. Leia o nmero de produtos existentes e:
Crie e leia um vetor com os cdigos de cada produto (diferente de zero);
Crie e leia um vetor com a quantidade de cada produto em estoque.
A seguir, o usurio dever digitar uma seqncia de pedidos (cdigo do produto e quantidade), at que ele digite o valor zero
para cdigo de produto. Seu programa, nessa parte, dever:
Verificar se possvel atender ao pedido integralmente (se h quantidade suficiente em estoque, ou se o cdigo
existe) e imprimir uma mensagem indicando;
Atualizar o estoque caso o pedido for atendido.
Exemplo:
2
Produto [0]: 5
Produto [1]: 15
Quantidade [0]: 10
Quantidade [1]: 15
*** Pedido ***
Codigo: 5
Quantidade: 20
Nao e possivel atender esse pedido
*** Pedido ***
Codigo: 15
Quantidade: 10
Pedido atendido. Obrigado.
*** Pedido ***
Codigo: 15
Quantidade: 10
Nao e possivel atender esse pedido
*** Pedido ***
Codigo: 0
28. (Difcil) Faa um programa que construa uma lista de vetores de tamanho diferentes. A diferena disso para uma matriz
que cada vetor da matriz tem sempre o mesmo tamanho, compare:
4
Matriz:
1 5 3 8 6
1 2 3 4 5
2 4 5 6 7
Lista de vetores:
5 1 4 6 3 2
2 1 2
4 6 7 8 9
Use o primeiro elemento de cada vetor da lista para armazenar o nmero de elementos (alm do primeiro). O exemplo acima
segue essa regra.
Para construir a lista de vetores, voc deve ler o nmero n de vetores da lista e:
Criar um vetor de ponteiros para inteiros de tamanho n.
Ler o tamanho mi do vetor vi, criar e ler o vetor vi (que ter tamanho (m+1) na verdade, pois o primeiro elemento
armazenar m)
Repetir o processo anterior para i = 0 at (n-1).
Na sua funo main(), imprima todos os vetores da lista, exceto o primeiro elemento deles.