Você está na página 1de 8

LISTA DE EXERCÍCIOS REFERENTE AO CAPÍTULO 6 DA APOSTILA DE

ALGORITMOS (ESTRUTURAS DE REPETIÇÃO)

Orientações para resolução da lista: Os algoritmos constantes desta lista deverão ser escritos em
pseudocódigo e, posteriormente, codificados na linguagem de programação Python.

6.1 Desenvolva um algoritmo que receba um valor inteiro positivo digitado pelo usuário, e
apresente os números inteiros maiores que zero, enquanto o somatório deles for menor que o
número digitado.

print("somátorio")
print("")

limite = int(input("insira o número: "))


num = 1
soma = 1

while limite > soma:


num = num + 1
soma = num + soma
print(num)

6.2 Elabore um algoritmo que permita que um usuário insira, via teclado, um número inteiro,
quantas vezes desejar, sendo que para cada número digitado, o algoritmo deve calcular e apresentar
o número digitado e o seu quadrado, caso esse número digitado seja ímpar; e o número digitado e
seu cubo, caso o número digitado seja par. O algoritmo será encerrado quando o usuário digitar o
valor 0, para tanto, essa informação deverá ser fornecida ao usuário, como parte integrante do
algoritmo.

num = int(input("insira um numero maior que 0: "))

if num <= 0:
print("numero invalido insira um maior que 0")
exit()

resp = 1
while resp == 1:
if num % 2 == 0:
print(num ** 3)
num = int(input("insira um num maior que 0: "))
elif num % 2 != 0:
print(num ** 2)
num = int(input("insira um num maior que 0: "))

6.3 Construa um algoritmo que calcule e apresente a tabuada de um número escolhido pelo usuário,
sendo que o usuário deverá inserir, também, o limite superior da tabuada. O algoritmo não deverá
permitir que o usuário insira um valor menor que dois, tanto para o número como para o limite,
mostrando a mensagem de entrada inválida e solicitando uma nova entrada, até que o valor inserido
seja válido.
Exemplo do algoritmo executado em Python:

num = int(input("escolha um numero inteiro maior que 1 para ser multiplicado: "))

while num < 1:


print("entrada invalida, scolha um numero inteiro maior que 1 para ser multiplicado: ")
num = int(input("escolha um numero inteiro maior que 1 para ser multiplicado: "))
lim = int(input("escolha o limite superior da tabuada: "))

while lim < 1:


print("entrada invalida, scolha um numero inteiro maior que 1 para ser o limite: ")
lim = int(input("escolha o limite superior da tabuada: "))

for y in range(1,lim,1):
print (num,"x",y+1,"=",num*y)

6.4 Escreva um algoritmo que apresente todos os números naturais divisíveis por 5 e que sejam
inferiores a um valor digitado pelo usuário.

num = int(input("escolha um numero inteiro maior que 5: "))

while num < 5:


print("entrada invalida, scolha um numero inteiro maior que 5")
num = int(input("escolha um numero inteiro maior que 5: "))
if num == 5:
print("1")
for y in range(5,num+1,5):
print (y)

6.5 Escreva um algoritmo que receba a idade e o estado civil de vários militares e imprima a
quantidade de militares casados, solteiros, separados e viúvos. O algoritmo finaliza quando for
informado o valor zero para idade.

casado = 0
solteiro = 0
separado = 0
viuvo = 0

while True:
idade = int(input("idade (para finalizar digite 0): "))

if idade > 0:

ec = int(input("estado civil (solteiro-1 casado-2 separado-3 viuvo-4): "))


if ec == 1:
solteiro = solteiro + 1
elif ec == 2:
casado = casado + 1
elif ec == 3:
separado = separado + 1
elif ec == 4:
viuvo = viuvo + 1

else:
print("")
print("solteiro: ",solteiro)

print("casado: ",casado)

print("separado: ",separado)

print("viuvo: ",viuvo)

break

6.6 Construa um algoritmo que leia números inteiros até que seja inserido um número negativo. Ao
final, o algoritmo deverá informar a média dos números digitados, o maior e o menor valor inserido.

soma = 0
qtd = 0
menor = 10**40
maior = 0

while True:

num = int(input("insira um número: "))

if num > 0:

if num > maior:


maior = num

if num < menor:


menor = num

soma = num + soma


qtd = qtd + 1
media = soma / qtd

elif num < 0:


break

print("média: ",media,"menor: ",menor,"maior: ",maior)

6.7 Utilizando o laço “enquanto” em pseudocódigo e o correspondente laço “while” em Python,


elabore um algoritmo que imprima todas as tabuadas do 1 ao 10.
Na implementação em Python, a apresentação da tabuada deverá está no formato, conforme
mostrado abaixo:

while True:
for x in range(1,11,1):
print(1*x,"\t", 2*x,"\t", 3*x,"\t", 4*x,"\t", 5*x,"\t", 6*x,"\t", 7*x,"\t", 8*x,"\t", 9*x,"\t",
10*x)
break

6.8 Reescreva o exercício 6.7, utilizando os laços “para” e “for”, em pseudocódigo e Python,
respectivamente.

for x in range(1,11,1):
print(1*x,"\t", 2*x,"\t", 3*x,"\t", 4*x,"\t", 5*x,"\t", 6*x,"\t", 7*x,"\t", 8*x,"\t", 9*x,"\t",
10*x)

6.9 Escreva um programa que verifica se um número inteiro positivo, maior do que 1, digitado pelo
usuário, é primo. Caso o usuário digite um número menor ou igual a 1, o algoritmo deverá imprimir
a mensagem de entrada inválida e solicitar que o usuário realize uma nova entrada, até que o valor
digitado seja válido.
Obs.: números primos são os números inteiros positivos, diferentes de 1, que possuem apenas dois
divisores: o 1 (um) e ele mesmo.

while True:
num = int(input("Enter a number: "))
x = False
if num <=1:
print("entrada inválida insira um numero maior que 1")
if num > 1:
for k in range(2, num):
if (num % k) == 0:
x = True
break

if x:
print(num, "não é primo")
else:
print(num, "é primo")

6.10 Desenvolva um algoritmo que lê um número inteiro positivo do teclado e informa se ele é par
ou ímpar. Caso o número lido seja não positivo (menor do que 1), é apresentada uma mensagem de
erro e solicitado o número novamente até que ele seja válido. Ao final da execução, o programa
pergunta ao usuário se ele deseja executar o programa novamente. O usuário poderá escolher entre
parar ou continuar. Neste último caso, é solicitado novamente a entrada e executa até o usuário
optar por parar.

while True:
num = int(input("insira um numero maior que 0: "))

if num < 1:
print("erro, insira um numero maior que 0")

elif num % 2 == 0:

print("o numero é par")


x = int(input("deseja continuar? sim-1 não-2: "))

if x == 2:
break

elif num % 2 != 0:

print("o numero é impar")


x = int(input("deseja continuar? sim-1 não-2: "))

if x == 2:
break

6.11 Desenvolva um algoritmo que realiza o somatório da sequência: 1, 5, 9, 13, 17, 21,…,53.
Progressão Aritmética (PA), cujo primeiro termo é 1, último termo é 53 e razão 4.

for x in range(1,54,4):
print(x)

6.12 Desenvolva um algoritmo que receba como entrada, via teclado, um número inteiro não
negativo (inclui o zero), digitado pelo usuário, e calcula e apresenta o fatorial desse número. Caso o
usuário digite um valor negativo, o algoritmo deverá apresentar uma mensagem de entrada inválida,
solicitando que o usuário digite um valor válido (maior ou igual zero).

Dado: o fatorial de um número é obtido pela multiplicação desse número por todos os seus
antecessores até o 1 (um). Ex: 5! = 5 x 4 x 3 x 2 x 1 = 120.
0! = 1! = 1

while True:
num = int(input("digite um numero maior ou igual a 0: "))
if num > 0:
f=1
for x in range(1,num+1):
f=f*x
print ("o fatorial é" ,f)
elif num == 0:
print("o fatorial é 1")
elif num < 0:
print("entrada invalida")

6.13 Elabore um algoritmo que calcule e imprima o valor de S na série abaixo. O valor de N será
digitado pelo usuário. O algoritmo deverá ficar, repetidamente, solicitando que o usuário digite o
valor de n, até que o usuário digite um valor inteiro positivo.

somaT = 0

while True:

num = int(input("digite um número inteiro positivo: "))

if num <= 0:
print("valor inválido")

else:
for x in range (1,num+1):
soma = 1/x
somaT = soma + somaT
break

print(somaT)

6.14 Modifique o exercício 6.9, de modo a permitir que o usuário insira, via teclado, os limites
(inferior e superior) de uma faixa de valores e imprima os números primos contidos nesta faixa.
Caso o usuário digite, como limite inferior da faixa, um número menor ou igual a 1, o algoritmo
deverá imprimir a mensagem de entrada inválida e solicitar que o usuário realize uma nova entrada,
até que o valor digitado seja válido. O mesmo deverá ocorrer para o caso do usuário digitar um
limite superior menor do que o digitado como limite inferior da faixa.

while True:
inf = int(input("limite inferior: "))

if inf <= 1:

print("entrada invalida, digite um valor maior que 1")

else:

sup = int(input("limite superior: "))

if sup <= inf:

print("entrada invalida, digite um valor maior que o limite inferior")

else:

for x in range(inf, sup+1):


for y in range(2,x):
if(x % y==0):
break
else:
print(x)

6.15 Implemente um algoritmo que simula um cardápio. Cada item do cardápio tem um código que
vai de 1 a 6. Ele mostra os produtos do cardápio na tela, contendo o código, o nome do item e o seu
valor. O usuário poderá fazer pedidos pelo código do item até que seja inserido o valor 0 (zero).
Caso o usuário digite um código inexistente no cardápio (com exceção do valor 0 (zero) para sair),
o programa deve ficar solicitando que o usuário digite o código de acordo com o cardápio, ou zero
para sair. No final, o algoritmo deverá apresentar na tela a quantidade, o nome e o valor de cada
item que o usuário escolheu e o valor total a pagar.

Dados:

CÓDIGO PRODUTO VALOR UNITÁRIO


1 Refrigerante R$ 5,00
2 Cerveja R$ 9,00
3 Suco R$ 7,00
4 Água R$ 4,00
5 Sorvete R$ 8,00
6 Chocolate R$ 6,00

Exemplo do algoritmo executado em Python:

print("C A R D Á P I O \n")
print("Código \t \t Produto \t \t Valor")
print("1 \t \t Refrigerante \t \t 5")
print("2 \t \t Cerveja \t \t 9")
print("3 \t \t Suco \t \t \t 7")
print("4 \t \t Água \t \t \t 4")
print("5 \t \t Sorvete \t \t 8")
print("6 \t \t Chocolate \t \t 6")

while True:
cod = int(input("digite o código do produto ou 0 para sair: "))
if cod == 1:
ref = int(input("digite a quantidade do produto desejado: "))
elif cod == 2:
cer = int(input("digite a quantidade do produto desejado: "))
elif cod == 3:
suc = int(input("digite a quantidade do produto desejado: "))
elif cod == 4:
agu = int(input("digite a quantidade do produto desejado: "))
elif cod == 5:
sor = int(input("digite a quantidade do produto desejado: "))
elif cod == 6:
cho = int(input("digite a quantidade do produto desejado: "))
elif cod == 0:
break

if ref > 0:
print(ref,"regrigerante(s) no valor de", ref*5)
if cer > 0:
print(cer,"cerveja(s) no valor de", cer*9)
if suc > 0:
print(suc,"suco(s) no valor de", suc*7)
if agu > 0:
print(agu,"água(s) no valor de", agu*4)
if sor > 0:
print(sor,"sorvete(s) no valor de", sor*8)
if cho > 0:
print(cho,"chocolate(s) no valor de", cho*6)

Você também pode gostar