Você está na página 1de 3

Algoritmos e Estruturas de Dados

Lista de Exercícios

1. Faça um algoritmo que leia um par de valores A, B e imprimir todos os números pares de A até B.
2. Faça um algoritmo que leia N pares de valores A, B e imprimir para cada par o produto A*B.
3. Faça um algoritmo da questão 2 sem utilizar a operação de multiplicação “*” ou seja, só utilizando os operadores
“+” (soma) e “–“ (subtração).
4. Fazer um algoritmo que leia dois números inteiros e imprima o resultado da divisão inteira do primeiro número pelo
segundo número, isto é, o resultado (quociente) também tem de ser um número inteiro. Utilizar apenas os
operadores “+” (soma) e “–“ (subtração).
5. Elabore um algoritmo, com estrutura de repetição, que transforme cada um dos N valores de ângulos dados em
graus para o formato grau, minuto e segundo e para radianos, indicando também o quadrante em que se encontra
cada ângulo dado.
6. São fornecidos números inteiros estritamente positivos (ou seja números maiores do que zero). Fazer uma
algoritmos para contar quantos números impares e quantos pares existem entre os números dados. O algoritmo
deverá imprimir também a média dos valores lidos (soma de todos os números lidos dividido pela quantidade de
números). Dica: Como não se fornece a quantidade a números da série, pode ser utilizado o artifício para fins de
controle da repetição que o último dado, seja o valor 0 (note que zero não pertencente à série é apenas uma “flag”).
7. Elabore um algoritmo que leia uma seqüência com N triplas de números reais a,b e c e verifique se podem ser lados
de um triangulo ( a soma de dois lados não pode ser menor do que o outro lado), caso seja triangulo, verifique se é
triangulo retângulo, imprimindo a mensagem correta.
8. Elabore um algoritmo que dado um valor inicial e um final e o incremento, transforme graus Celsius em Fahrenheit,
Rankine, Kelvin e imprima uma tabela com estes valores. Observação importante:
Celsius = 5.0/9.0*( Fahrenheit -32.0); Kelvin = Celsius + 273,15; Celsius = (Rankine/1.8) – 273.15.
9. Elabore um algoritmo, com estrutura de repetição, que simule uma máquina de calcular onde o usuário entra com
um número e a operação (+ , -, * , /, %, pot, raiz, )e dependendo da operação entra com o segundo número e obtém
o resultado desta operação. (verifique a não divisão por zero e raiz de numero negativo).
10. Faça um algoritmo que leia N números e imprima a mensagem “SIM” se eles aparecem em ordem crescente e NÃO
em caso contrário. Ex:
12 34 54 67 78 88 91 SIM 34 45 12 67 98 NÃO
11. Faça um algoritmo que leia um par de valores A, B e imprima todos os números primos de A até B.
12. Fazer um algoritmo para imprimir o menor número e o maior número de uma série de números inteiros e positivos,
lidos por um dispositivo de entrada de dados. O algoritmo deverá imprimir a posição onde o maior ocorre na série
bem como a posição do menor. Veja a Dica da questão 4.
13. Escrever um algoritmo para calcular o fatorial de número n (o fatorial de n é dado por n!= n.(n − 1).(n − 2)L 2.1 ).
O número inteiro n é lido por um dispositivo de entrada de dados.
14. A série de Fibonacci é formada pela seqüência 1, 1, 2, 3, 5, 8, 13, ... ( a partir do terceiro termo, o termo atual é igual
à soma dos dois termos imediatamente anteriores, isto é, an = an −1 + an − 2 para n ≥ 3). Escrever um algoritmo que
gere até o k-ésimo termo da série de Fibonacci. Ex, se o k-ésimo fosse 10, seria impresso até o décimo termo da
série, ou seja: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55.
15. A população de uma cidade A tem uma taxa de crescimento anual de 3% a população de uma cidade B tem a taxa
de crescimento de 1%, faça um algoritmo que leias as populações e verifique em quantos anos a população de A
será maior do que B ou em quantos anos B será maior que A.
16. Uma empresa resolveu dar um aumento aos seus funcionários conforme tabela abaixo:
Salário Índice de Aumento
Eletricista 20%
Técnico 15%
Engenheiro 10%

Faça um algoritmo que leia o salário atual, verifique a profissão e calcule o novo salário. O algoritmo deverá
imprimir também o salário médio para cada profissão considerando o novo aumento dado.
17. Escrever um algoritmo para um programa que leia a altura e o código do sexo de uma pessoa (código = 1 se for
masculino e 2 se for feminino) para um grupo com quantidade indefinida de pessoas e calcule e imprima:
a) a maior e a menor altura desse grupo,
b) a média de altura das mulheres,
c) a média de altura do grupo.
Dica: crie um artifício para controlar a repetição pois a quantidade de pessoas está indefinida.

18. Escrever um algoritmo para um programa que


a) leia o número de matrícula e a nota de cada aluno de uma turma de N alunos,
b) determine e imprima as duas maiores notas, juntamente com o número de matrícula do aluno que obteve cada
uma delas.
Observação: Admita que todas as notas são diferentes.

19. Fazer um algoritmo para ajudar a bilheteria do metrô. O operador deve informar o tipo do bilhete (unitário, duplo
ou 10 viagens) e o valor pago pelo passageiro. O sistema deve mostrar, então, a quantidade de bilhetes possíveis e
o troco que o passageiro deve receber.
Considere a seguinte tabela de preço:
Bilhete unitário .......................................................... 1,30
Bilhete duplo .............................................................. 2,60
Bilhete de 10 viagens ............................................... 12,00
1 1 1
20. Sendo H = 1 + + + L + , fazer um algoritmo para gerar o número H. O número n é lido por um dispositivo
2 3 n
de entrada de dados.
1 2 3 n −1 n
21. Fazer um algoritmo para calcular o valor de S dado por S = + + +L+ +
n n −1 n − 2 2 1
sendo n lido por um dispositivo de entrada de dados.
22. Construir um algoritmo que leia uma palavra (tipo texto) e imprima o número de vogais existentes nessa palavra.
Suponha a existência da função comprimento (stg: texto) que retorna o número de caracteres existentes na string
do tipo texto, e as funções: prox(stg), que retorna o próximo caracter de stg; consoante(ch: caracter), que retorna
verdade se o caracter fornecido é uma consoante e falso caso contrário; letra(ch: caracter), que retorna verdade se
o caracter fornecido é uma letra e falso caso contrário.
23. Um Hotel cobra R$125,00 Reais a diária e mais uma taxa de serviços. A taxa de serviços é de 10% por dia, se número
de diárias <10 dias; 8% por dia, se número de diárias entre 10 e 20 dias e 5% por dia, se número de diárias > 20 dias
Faça um algoritmo que imprima nome e o total a pagar de cada uma dos N clientes hospedados.
24. Uma clínica deseja desenvolver um programa que dados o nome, a idade, o peso, em kg, e a altura, em cm, de um
cliente, o programa mostre na tela o nome, a idade, o índice de massa corpórea (é igual à divisão do peso pelo
quadrado da altura) e um diagnóstico baseado na tabela abaixo
Índice de massa corpórea (kg/cm2) Diagnóstico
Inferior a 20 Abaixo do normal
20 a 24,9 Normal
25 a 29,9 Peso a mais
30 a 40,0 Ligeira obesidade
Maior que 40,0 Obesidade
Baseado nessas especificações responda aos itens abaixo:
a) Quais são as informações de saída do programa ?
b) Qual o tipo de dado de cada informação de saída ?
c) Dê nome para as variáveis correspondentes às informações de saída.
d) Quais são os dados de entrada ?
e) Qual o tipo de cada dado de entrada ?
f) Dê nome para as variáveis de entrada.
g) Elaborar o algoritmo (“Portugol”) e o fluxograma para este problema.

25. Deseja-se elaborar um fluxograma de programa para calcular a o valor de contas telefônicas. As contas telefônicas
são compostas dos seguintes custos:
• assinatura: R$21,40
• interurbano: R$ 0,50 por impulsos de ligações interurbanas
• chamadas para celular: R$0,40 por impulsos de ligações para celular
• chamadas para telefones fixos: R$0,03 por impulsos de ligações fixas que exceder a 90 impulsos.

Baseado nessas especificações, responda as perguntas a seguir:

a) Qual é a informação de saída ?


b) Dê um nome para a variável correspondente a informação de saída.
c) Quais são os dados de entrada?
d) Dê um nome de variável para cada dado de entrada.
e) Elaborar o algoritmo (“Portugol”) e o fluxograma para este problema.

26. Dados o rendimento anual e as deduções com dependentes, com médicos e com a previdência social, fazer um
fluxograma de programa para calcular o imposto de renda de um contribuinte. O imposto de renda é calculado pelo
algoritmo a seguir:
base de cálculo = rendimento anual - deduções
base de cálculo x alíquota
imposto = − parcela a deduzir .
100
A alíquota e a parcela a deduzir são dadas na tabela a seguir
Base de cálculo Alíquota % Parcela a deduzir
Até 10.800,00 Isento -
Acima de 10.800,00até 21.600,00 15 1.620,00
Acima de 21.600,00 27,5 3.780,00

Baseado nessas especificações responda aos itens a seguir.

a) Quais são as informações de saída ?


b) Qual o tipo de dado de cada informação de saída ?
c) Dê nomes para as variáveis correspondentes as informações de saída.
d) Quais são os dados de entrada ?
e) Qual o tipo de dado de cada dado de entrada ?
f) Dê nomes para as variáveis de entrada e auxiliar
g) Como obter as saídas a partir dos dados de entrada ? (Regra de formação das saídas)
h) Elaborar o algoritmo (“Portugol”) e o fluxograma para este problema