Universidade Federal do Pampa – UNIPAMPA
Campus Itaqui – RS
Bacharelado Interdisciplinar em Ciência e Tecnologia –
BICT (diurno)
Algoritmos e Programação (prof. Dr. Rogério Vargas)
Lista 2 (entrega: 21 de janeiro de 2015)
_____________________________________________________________________
Instruções:
 Trabalhos iguais será atribuído nota zero;
 Deverão trazer em um pendrive compactado com o nome do aluno(a)




e entregue na data estipulada e no horário da aula;
Não será aceito trabalhos posteriores a essa data;
Será exigido a explicação do código-fonte, se não souber
explicar alguma questão desenvolvida, será anulada a lista;
A lista poderá ser entregue antes da data estipulada;
Valor da lista: 3 pontos na avaliação (poderá anular 3 questões
de prova).
– Estruturas de Repetição WHILE e DO- WHILE
1. Escreva um programa em C para ler o nome do cliente e o saldo inicial de uma conta
bancária. A seguir ler um número indeterminado de pares de valores indicando
respectivamente o tipo da operação (codificado da seguinte forma: 1.Depósito 2.Retirada
3.Fim) e o valor. Quando for informado para o tipo o código 3, o programa deve ser
encerrado e impresso o saldo final da conta com as seguintes mensagens: CONTA ZERADA,
CONTA ESTOURADA(se o saldo for negativo) ou CONTA PREFERENCIAL (se o saldo for
positivo).
2. Uma empresa de pesquisa resolveu entrevistar os torcedores do Rio Grande do Sul para
saber qual a maior torcida. Fazer um programa que leia um número não conhecido de
respostas do time que torce: G - Grêmio, I –Inter ou O - outros. O programa deve
encerrar quando fordigitado F - fim. Escrever ao final o total de torcedores entrevistados,
a quantidade de gremistas, a quantidade de colorados e a porcentagem de gremistas e de
colorados em relação ao total.
3. Faça um programa que receba vários números positivos, calcule e mostre:
a) a soma dos números digitados;
b) a quantidade de números digitado;
c) a média dos números digitados;
d) o maior número digitado;
e) o menor número digitado;
f) a média dos números pares.
4. Foi feita uma pesquisa para saber o perfil dos alunos que cursam o ensino médio de
uma determinada escola. Cada aluno fornecia a seu ano (primeiro - 1, segundo - 2,
terceiro - 3), quantos livros liam por mês e se gostavam de fazer redação (Sim-1 ou Não0). Fazer um programa que leia os dados, calcule e escreva:
- A quantidade de alunos que está no terceiro ano;
- A maior quantidade de livros lidos por um aluno que está na segunda série;
- A média de livros lidos pelos alunos (considerando todas as séries);
- A porcentagem de alunos que não gostam de fazer redação e que estão no primeiro ano.
OBS: A condição de parada (é que seja digitado 0 (zero) para idade.
5. Chico tem 1,50 metro e cresce 2 centímetros por ano, enquanto Zé tem 1,10 metro e
cresce 3 centímetros por ano. Construa um programa que calcule e escreva quantos anos
serão necessários para que Zé seja maior que Chico.
6. Obtenha um número digitado pelo usuário e repita a operação de multiplicar ele por
três (imprimindo o novo valor) até que ele seja maior do que 100. Ex.: se o usuário digita
5, deveremos observar na tela a seguinte sequência: 5 15 45 135 (utilize while()).
7. Faça um programa que calcula a associação em paralelo de dois resistores R1 e R2
digitados pelo usuário via teclado. O programa fica pedindo estes valores e calculando até
que o usuário entre com um valor de resistência igual a zero (utilize laço do{} while()).
Fórmula: R=R1*R2/(R1+R2).
8. Faça um programa que conte de 10 a 3, mostrando na tela, e calcula a soma desses
números, usando laço while().
9. Faça um programa que pegue um número do teclado e calcule a soma de todos os
números de 1 até ele (use laço do{}while()). Ex.: o usuário entra 7, o programa vai
mostrar 28, pois 1+2+3+4+5+6+7=28.
10. Faça um programa que mostre uma contagem na tela de 233 a 456, só que contando
de 3 em 3 quando estiver entre 300 e 400 e de 5 em 5 quando não estiver. (utilize
do{}while()).
11. Calcule a exponenciação de dois números inteiros x e y entrados pelo teclado, mas
faça isso sem usar a função pow, ou seja, obtenha x^y só com multiplicação e um laço.
(use do{}while()).
– Estruturas de Repetição FOR
12. Exiba todos os múltiplos de 3 de 0 a 100.
13. Exiba a soma de todos os múltiplos de 7 de 0 a 1000.
14. Exiba em ordem decrescente todos os números de 500 até 10.
15. Entrar com 10 números (FOR) e mostrar quantos são divisíveis por 3 e por 5.
16. Escreva um programa que lê 15 números inteiros positivos e para cada número da
lista, imprime 0 ou 1, caso o número seja ou não primo.
17. Escreva um programa para ler a quantidade de vídeos que uma locadora de vídeos
possui e o valor que ela cobra por cada locação. Este programa deverá imprimir as
seguintes informações:
- Sabendo-se que 1/3 dos vídeos são alugadas por mês, exiba o faturamento anual da
locadora.
- Quando o cliente atrasa a entrega, é cobrada uma multa de 10% sobre o valor da
locação.
- Sabendo-se que 1/10 dos vídeos alugados no mês são devolvidas com atraso, calcule o
valor ganho com multas por mês.
- Sabendo-se ainda que 2% dos vídeos se estragam ao longo do ano, e 1/10 do total é
comprado para reposição, exiba a quantidade de vídeos que a locadora terá no final do
ano.
– Vetores / Matrizes
18. Elaborar um algoritmo que lê um conjunto de 30 valores e os coloca em 2 vetores
conforme estes valores forem pares ou ímpares. O tamanho do vetor é de 5 posições. Se
algum vetor estiver cheio, escrevê-lo. Terminada a leitura escrever o conteúdo dos dois
vetores.
19. Faça um algoritmo que leia um vetor N[20]. A seguir, encontre o menor elemento do
vetor N e a sua posição dentro do vetor, mostrando: “O menor elemento de N é”, M, “e
sua posição dentro do vetor é:”,P.
20. Escreva um algoritmo que leia dois vetores de 10 posições e faça a multiplicação dos
elementos de mesmo índice, colocando o resultado em um terceiro vetor. Mostre o vetor
resultante.
21. Faça um algoritmo que leia um vetor K[30]. Troque a seguir, todos os elementos de
ordem ímpar do vetor com os elementos de ordem par imediatamente posteriores.
22. Escreva um algoritmo que leia dois vetores de 10 posições e faça a multiplicação dos
elementos de mesmo índice, colocando o resultado em um terceiro vetor. Mostre o vetor
resultante.
23. Escreva um algoritmo que leia e mostre um vetor de 20 números. A seguir, conte
quantos valores pares existem no vetor.
24. Escreva um algoritmo que leia um vetor de 100 posições e mostre-o ordenado em
ordem crescente.
25. Escreva um algoritmo que leia um vetor de 20 posições e mostre- o. Em seguida,
troque o primeiro elemento com o último, o segundo com o penúltimo, o terceiro com o
antepenúltimo, e assim sucessivamente. Mostre o novo vetor depois da troca.
26. Escreva um que leia um vetor G de 20 elementos caracter que representa o gabarito
de uma prova. A seguir, para cada um dos 50 alunos da turma, leia o vetor de respostas
(R) do aluno e conte o número de acertos. Mostre o nº de acertos do aluno e uma
mensagem APROVADO, se a nota for maior ou igual a 6; e mostre uma mensagem de
REPROVADO, caso contrário.
27. Elaborar um algoritmo que lê duas matrizes M(4,6) e N(4,6) e cria uma matriz que
seja: a) o produto de M por N; b) a soma de M com N; c) a diferença de M com N;
Escrever as matrizes calculadas.
28. Elaborar um algoritmo que lê uma matriz M(6,6) e um valor A e multiplica a matriz
M pelo valor A e coloca os valores da matriz multiplicados por A em um vetor de V(36) e
escreve no final o vetor V.
29. Escrever um algoritmo que lê uma matriz A(15,5) e a escreva. Verifique, a seguir,
quais os elementos de A que estão repetidos e quantas vezes cada um está repetido.
Escrever cada elemento repetido com uma mesagem dizendo que o elemento aparece X
vezes em A.
30. Escreva um algoritmo que lê uma matriz M[5,5]. Substitua, a seguir, todos os valores
negativos da matriz pelo seu módulo. Exemplo: substitua -2 por 2, -16 por 16, assim por
diante.
31. Escreva um algoritmo que lê uma matriz M[6,6]. A seguir, troque os elementos da
primeira coluna com os elementos da segunda coluna, os da terceira coluna com a quarta
coluna e os elementos da quinta coluna com os elementos da sexta coluna.
32. Faça um algoritmo que leia uma matriz 20x20 de números e some cada uma das
linhas, armazenando o resultado da soma em um vetor. A seguir, multiplique cada
elemento pela soma da sua linha. Mostre a matriz resultante.
33. Faça um algoritmo que calcule a média dos elementos da diagonal principal de uma
matriz 10 X 10 de números.
– Funções
34. Fazer um programa que leia o preço de uma mercadoria e o percentual de reajuste e
chame função que receba estes valores como parâmetro e retorne o novo preço da
mercadoria com reajuste. Na função main( ) deve ser mostrado o preço da mercadoria
depois do aumento, bem como o percentual aplicado.
35. Desenvolver um programa para ler dois números e chamar uma função que recebe
estes números por parâmetro e retorna a potência do 1º número elevado ao 2º número.
Mostrar o retorno da função no programa principal. Por exemplo, se forem informados os
valores 2 e 3 a função deverá retornar o valor 8. Não usar função pronta para calcular a
potenciação.
36. Escreva uma função que recebe as 3 notas de um aluno por parâmetro e uma letra. Se
a letra for A o procedimento calcula a média aritmética das notas do aluno, se for P, a
sua média ponderada (pesos: 5, 3 e 2). A média calculada deve ser retornada a função
main.
37. Faça um programa em C que lê dois valores, o primeiro servindo de indicador de
operação e o segundo correspondendo ao raio de uma circunferência. Caso o primeiro
valor lido seja igual a 1, chamar uma função que receba por parâmetro o raio e calcule e
retorne a área desta circunferência. Se o valor lido for 2, chamar uma função que receba
por parâmetro o raio e calcule e retorne o perímetro da circunferência. E se o valor lido
for diferente destes dois valores, escrever uma mensagem dizendo que o indicador de
operação estava errado.
38. Escreva uma função que receba um número inteiro e o imprima na forma extensa. Por
exemplo, para 1 a saída desejada é “Um”. A função deve ser capaz de gerar o extenso
dos números de 0 até 10, inclusive. Caso um número não compatível seja recebido o
procedimento deve mostrar uma mensagem de erro. Crie também um algoritmo que leia
um valor inteiro e chame o procedimento criado acima para a
impressão do número extenso.
39. Escreva uma função que gere um cabeçalho para um relatório. Esse procedimento deve
receber um literal (string, ou cadeia de caracteres) como parâmetro. O cabeçalho tem a
seguinte forma:
============================================
UNIPAMPA – Universidade Federal do Pampa
Campus Itaqui-RS
Disciplina de Algoritmos e Programação
Nome:
Fulano de Tal
============================================
onde Fulano de Tal, corresponde ao parâmetro passado.
40. Escreva um procedimento que receba um número arábico inteiro e imprima o
corresponde número em romano. Por exemplo, para 5 a saída desejada é “V”. A função
deve ser capaz de gerar o número romano para os 50 primeiros inteiros. Uma mensagem
de erro deve ser mostrada caso um número fora dessa faixa seja recebido. Crie também
um algoritmo que leia um valor inteiro e chame a função criada acima para a impressão
do número romano.
Download

– Estruturas de Repetição WHILE e DO