Professional Documents
Culture Documents
Programação Procedimental
1 Lista de Exercícios p/ Avaliação
a
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.
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?
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.
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
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.
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;
a. **** b. ****
**** ****
**** ****
**** ****
P13) Construir uma pirâmide de números como, por exemplo, para n=6:
1
121
12321
1234321
123454321
12345654321
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.
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.
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.
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.
P29) Imprimir uma tabela de senos e cossenos dos valores de x pertence [0 , pi/2[ com
intervalos de 0.01 radianos.
Análise Infinitesimal:
Programação Procedimental 7