You are on page 1of 7

Faculdade de Computação

Programação Procedimental
1 Lista de Exercícios p/ Avaliação
a

Prof. Cláudio C. Rodrigues

Instruções:
1. Apresentar as soluções usando a pseudo-linguagem (português estruturado), quando for
apropriado;
2. Cada algoritmo deve ser elaborado com os seguintes artefatos: modelagem em
fluxograma e codificação em linguagem do VisuAlg;
3. O trabalho deve possuir uma capa, com identificação da disciplina, nome do estudante,
número de matrícula e e-mail, se tiver.
4. O trabalho deve ser desenvolvido individualmente pelo estudante e qualquer
identificação de plágio sofrerá penalização;
5. Entrega, impreterivelmente, no dia 21/09/2010.

Problemas:
P1) Dado o algoritmo em “pseudo linguagem” abaixo, responda:

início
lógico: B1, B2, B3;
se B1 então
C1;
senão
se B2 então
se B3 então
C2;
senão C3;
C4;
fim se;
fim se;
fim se;
C5;
fim.

Considere B1, B2, B3 valores lógicos e C1, C2, C3 comandos de linguagem.


a) Se B1 = verdadeiro, B2 = verdadeiro, B3 = falso, quais os comandos que serão
executados?
b) Se B1 = falso, B2 = verdadeiro, B3 = falso, quais os comandos que serão
executados?
c) Quais os valores de B1, B2 e B3 para que somente o comando C5 seja executado?
d) Se B1 = falso, B2 = verdadeiro, B3 = verdadeiro, quais os comandos que serão
executados?

P2) Analise o seguinte algoritmo abaixo e compreenda a tarefa que ele realiza.
[variáveis inteiras a,b,c,ct]
ct = 0
ler n
a = 1
escrever a
ct = ct + 1
b = 1
escrever b
ct = ct + 1
Programação Procedimental 1
repetir
c = a + b
escrever c
ct = ct + 1
a = b
b = c
enquanto ct < n
(A) Codifique o algoritmo acima na linguagem de programação C.
(B) Qual o objetivo deste algoritmo?
(C) Se o usuário indicasse 9, qual seria o resultado da execução deste programa?

P3) Qual o valor de L após a execução do trecho de algoritmo, listado abaixo?

lógico: A, B, C;
real: X, Y;
inteiro: V, L;
A  falso; B  verdadeiro; C  falso;
X  1.5;
Y  3.2;
X  X + 1;
se C ou ((x+y>5) ou (não A e B))
então L  0;
senão L  1;
fim se;
P4) Escrever em “pseudo-linguagem” os trechos do algoritmo equivalente ao fluxograma a
seguir:
inicio

C1

10
f L1 v

L3 f C2

C5 f 10
L2
 v
10 C11
 C3
f L4 v
10 
10
C4
C8 
 f L5 10
10
C9
 v
10 C6

10
C7

10
C12

10

C10 fim

10

Programação Procedimental 2
P5) Construa um algoritmo que seja capaz de concluir qual dentre os seguintes animais foi
escolhido, através de perguntas e respostas. Animais possíveis: leão, cavalo, homem,
macaco, morcego, baleia, avestruz, pinguim, pato, águia, tartaruga, crocodilo e cobra.
Exemplo:
É mamífero? Sim.
É quadrúpede? Sim.
É carnívoro? Não
É herbívoro? Sim
Então o animal escolhido foi o cavalo.

Utilize as seguintes classificações:

Carnívoro Leão
Quadrúpede
Herbívoro Cavalo
Onívoro Homem
Bípede
Mamíferos Frutíferos Macaco
Voadores Morcego

Aquáticos Aquáticos
Tropical Avestruz
Não-voadores
Polar Pinguim
Aves Nadadoras Pato

de rapina Águia
Com casco Tartaruga

Répteis carnívoros Crocodilo

Sem patas Cobra

P6) Escrever um algoritmo que leia a velocidade máxima permitida em uma avenida e a
velocidade com que o motorista estava dirigindo nela e calcule a multa que uma pessoa vai
receber, sabendo que são pagos:
a) 50 reais se o motorista estiver ultrapassar em até 10km/h a velocidade permitida (ex.:
velocidade máxima: 50km/h; motorista a 60km/h ou a 56km/h);
b) 100 reais, se o motorista ultrapassar de 11 a 30 km/h a velocidade permitida.
c) 200 reais, se estiver acima de 31km/h da velocidade permitida.

P7) A fase de um estudante de graduação americano é tipicamente determinada de acordo com


a seguinte tabela:
Número de créditos vencidos Fase
Menos de 32 Freshman
32 a 63 Sophomore
64 a 95 Junior
96 ou mais Senior

a) Usando esta informação, escreva um algoritmo em pseudo-linguagem que receba o


número de créditos vencidos por um dado estudante e determine e informe a fase
correspondente.

Programação Procedimental 3
P8) Faça um algoritmo que leia dois números inicio e fim, e escreva toda a sequência de início
até fim.

P9) Faça um algoritmo semelhante ao primeiro, que leia além de início e fim uma opção que
poderá ser: “C” ou “D”, ou seja, crescente ou decrescente, respectivamente, que irá indicar
a sequência dos números que serão escritos na tela

P10) Faça um algoritmo que leia o preço de vários itens, um por vez, sempre verificando se o
usuário deseja entrar com outro preço, até que ele indique que foi finalizada a compra,
então no final exiba o total do que foi inserido.

P11) Durante uma corrida de automóveis com N voltas de duração foram anotados para um
piloto, na ordem, os tempos registrados em cada volta. Construir um algoritmo em pseudo-
linguagem para ler os tempos de N voltas, calcular e imprimir:
a) melhor tempo;
b) a volta em que o melhor tempo ocorreu;
c) tempo médio das N voltas;

P12) Escreva um programa que produza a saída abaixo.

a. **** b. ****
**** ****
**** ****
**** ****

P13) Construir uma pirâmide de números como, por exemplo, para n=6:
1
121
12321
1234321
123454321
12345654321

P14) No século I D.C., os números inteiros positivos dividiam-se em três categorias:


• Perfeitos – aqueles que são iguais à soma dos seus divisores. (p.ex. 6 = 1 + 2 + 3)
• Abundantes – inferiores à soma dos seus divisores. (p.ex. 12 < 1 + 2 + 3 + 4 + 6 = 16)
• Reduzidos – superiores à soma dos seus divisores. (p.ex. 9 > 1 + 3 = 4)
Note-se que, neste caso, eram considerados divisores de um número a unidade, mas não o
próprio número.
a) Imprima a lista dos inteiros de 1 até 200, classificando-os em perfeitos, abundantes
ou reduzidos. Calcule também a quantidade de elementos de cada categoria.

P15) Verificar se um dado número natural é ou não um Número Primo.


Teorema: Se um dado número natural n não possuir divisores <= sqrt(n), então n é um
Número Primo.

P16) Escreva um algoritmo que, dados dois números inteiros positivos, verifique se os dois
números são ou não amigos, isto é, se cada um deles é igual à soma dos divisores próprios
do outro.

P17) Deseja-se estudar o perfil dos consumidores de energia elétrica de uma cidade, para um
dado mês do ano. Para tanto, deverão ser lidos os seguintes dados para cada um dos n
consumidores de uma amostragem (n deve ser solicitado ao usuário no início do
programa):
Programação Procedimental 4
• consumo do mês, em kWh;
• código do tipo de consumidor (1 para residencial, 2 para comercial e 3 para industrial);
Antes de ler os dados dos consumidores, o preço do kWh deve ser fornecido ao programa.
Escrever um programa que leia os dados indicados acima e calcule e imprima:
• Para cada consumidor, o total a pagar;
• O maior consumo verificado na amostra de consumidores;
• O menor consumo verificado na amostra de consumidores;
• O total do consumo para cada um dos três tipos de consumidores;
• A média geral do consumo.

P18) Escrever um algoritmo que lê um valor em reais e calcula qual o menor número possível de
notas de 100, 50, 20, 10, 5, 2 e 1 em que o valor lido pode ser decomposto. Escrever o
valor lido e a relação de notas necessárias.

P19) Um distribuidor de brinquedos fez um acordo de compra de um lote de brinquedos


pequenos embalados em caixas de formato retangular de tamanhos variados em função do
brinquedo. Ele pretende reembalar estes brinquedos em esferas de plástico e revendê-las
como pacotes surpresa. As esferas são fornecidas com quatro diâmetros diferentes: 10, 15,
20 e 25 cm. Para comprar as esferas o distribuidor precisa saber quantas unidades de cada
diâmetro é necessário. Sabendo que a diagonal maior (D) de uma caixa retangular com
dimensões A, B, e C é dada por:
D2 = A2 + B2 + C2
Determinar o número de esferas, de cada tamanho e total, necessárias para embalar o lote
de brinquedos. Determine também a quantidade de caixas que possuem diagonal maior que
o diâmetro da maior esfera. As dimensões das caixas retangulares são lidas através do
teclado. Um valor negativo ou nulo para a primeira dimensão lida servirá como marca de
final de introdução de dados.

P20) O Algoritmo de Euclides permite calcular o maior divisor comum de dois números inteiros
positivos. Na sua forma original, o cálculo do mdc não usava divisões e consistia no
seguinte método genérico:
Dados 2 números naturais, subtrair, sucessivamente, o menor do maior, até ficarem
iguais. Esta igualdade é o número procurado.
Elabore um algoritmo que, dados dois números inteiros positivos pelo utilizador, escreva o
seu maior divisor comum, usando este algoritmo.

P21) No jogo de Vinte e Um (blackjack), as cartas de 2 a 10 são contadas com seus valores
nominais, independentemente do naipe. As cartas com figuras (valete, dama e rei) são
contadas como 10 e o ás é contado como 1 ou como 11, dependendo da contagem total de
pontos na mão do jogador. O ás é contado como 11 somente se o valor resultante total das
cartas na mão do jogador não exceder 21, senão é contado como 1. Usando esta
informação, faça um programa em linguagem C para receber o valor de três cartas como
entrada (1 correspondendo ao ás, 2 correspondendo ao 2, e assim por diante), calcule o
valor total da mão de forma apropriada e mostre o este valor com uma mensagem
impressa.

P22) Todos os anos que são múltiplos de 400, ou são múltiplos de 4 e não são múltiplos de 100,
são anos bissextos. Por exemplo, como 1600 é múltiplo de 400, o ano 1600 é bissexto.
Similarmente, já que 1988 é múltiplo de 4 e não é múltiplo de 100, o ano 1988 também é
bissexto.

a) Escreva um algoritmo em pseudo-linguagem que receba o ano como entrada de


dados, determine se o ano é bissexto, e apresente uma mensagem apropriada
escrevendo se o ano digitado é bissexto ou não.
Programação Procedimental 5
P23) Escreva um algoritmo em pseudo-linguagem que calcule o Valor a Pagar da conta de
energia elétrica para uma determinada Classe Consumidora. Para implementar este
algorítmo considere os seguintes pontos:
• O programa deve receber como dados de entrada: o tipo da Classe Consumidora,
conforme definido na tabela 1; e Consumo em quilowatts hora (KWh);
• O cálculo do Valor do Fornecimento (VF), em Reais (R$), é definido pela seguinte
fórmula: VF = Consumo x Tarifa , onde a Tarifa é definida na tabela 1, conforme a
Classe Consumidora.
• O Valor a Pagar (VP) é definido pela seguinte fórmula: VP = VF + ICMS, onde a
taxa de ICMS é calculada aplicando uma alíquota de 30% ao Valor do Fornecimento
(ICMS = 0.3 x VF).

Tabela 1
Classe Consumidora Tarifa (R$)
A 0,5
B 0,8
C 1,0

P24) Escreva um algoritmo em pseudo-linguagem que receba três valores inteiros e positivos X,
Y e Z, verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem,
verificar se é um triângulo eqüilátero, isósceles ou escaleno. Se eles não formarem um
triângulo escrever uma mensagem. Considerar que:
• O comprimento de cada lado de um triângulo é menor que a soma dos outros dois
lados;
• Chama-se triângulo equilátero o triângulo que tem os três lados iguais;
• Chama-se triângulo isósceles o triângulo que tem o comprimento de dois lados
iguais;
• Chama-se triângulo escaleno o triângulo que tem os três lados diferentes.

P25) O TSE lhe convocou para desenvolver o software da urna eletrônica que será utilizada no
processo da eleição presidencial, existem três candidatos: Fulano, Sicrano e Beltrano. Os
votos são informados através do código de inscrição. Os dados utilizados para o escrutínio
obedecem a seguinte codificação: Fulano, código 1; Sicrano, código 2; Beltrano, código
3; Voto nulo, código 4; Voto em branco, código 5. O software da urna eletrônica deve
apresentar ao usuário um menu com as opções para que ele efetue a escolha, continua
recolhendo votos até que um código de encerramento seja fornecido.
a) Elabore o algoritmo em pseudo-linguagem que calcula e escreve as seguintes
informações:
 Total de votos para cada candidato;
 Total de votos nulos;
 Total de votos em branco;
Como finalizador do conjunto de votos, tem-se o valor 99.

P26) Escreva um algoritmos em pseudo-linguagem que receba um número natural, n > 0 e um


número real x, e calcule o valor da soma dos n primeiros termos da série:

P27) Escreva um algoritmo em pseudo-linguagem para encontrar a soma dos 100 primeiros
termos da série:

Programação Procedimental 6
a) Verifique se a soma é igual a n/(n+1). Determine o valor para o qual a soma se
aproxima quando n se torna infinitamente grande.

P28) Imprimir uma tabela das potências inteiras de 2 inferiores a 1000


Dado: n pertence aos Naturais
Resultado: 2n

P29) Imprimir uma tabela de senos e cossenos dos valores de x pertence [0 , pi/2[ com
intervalos de 0.01 radianos.

P30) Calcular ex por desenvolvimento em Série de Taylor desprezando termos, em grandeza,


inferiores a 10-7.

Análise Infinitesimal:

Programação Procedimental 7

You might also like