đ ExercĂcios â CapĂtulo 3#
Programação Estruturada#
3.2 Tomando uma DecisĂŁo#
ExercĂcio 3.1#
Modifique o programa do exercĂcio 2.9 de forma que este peça o valor do lado do quadrado antes de calcular a ĂĄrea. (Use o conversor int)
Ver solução
ExercĂcio â Ărea de um quadrado em Python#
Ideia:
A ĂĄrea de um quadrado Ă© dada pelo lado multiplicado por ele mesmo.
Programa:
# lĂȘ o valor do lado
lado = int(input("Digite o valor do lado do quadrado: "))
# calcula a ĂĄrea
area = lado * lado
# imprime o resultado
print("Ărea do quadrado:", area)
ExercĂcio 3.2#
Faça o mesmo programa do exercĂcio anterior usando o conversor float.
Ver solução
ExercĂcio â Ărea de um quadrado em Python#
# lĂȘ o valor do lado
lado = float(input("Digite o valor do lado do quadrado: "))
# calcula a ĂĄrea
area = lado * lado
# imprime o resultado
print("Ărea do quadrado:", area)
ExercĂcio 3.3#
Modifique as indentaçÔes dos programas desta seção e veja qual erro o interpretador Python indica.
Ver solução
Por exemplo, ao escrever
# lĂȘ o valor do lado
lado = float(input("Digite o valor do lado do quadrado: "))
# calcula a ĂĄrea
area = lado * lado # perceba o deslocamnento
# imprime o resultado
print("Ărea do quadrado:", area)O interpretador dĂĄ o erro:
area = lado * lado # perceba o deslocamnento IndentationError: unexpected indent ou em portuguĂȘs: Erro de indentação. indentação incorreta.
ExercĂcio 3.4#
Escreva um programa que diga se um nĂșmero inteiro digitado Ă© par ou Ămpar.
Ver solução
ExercĂcio â Par ou Ămpar#
# lĂȘ o nĂșmero
numero = int(input("Digite um nĂșmero inteiro: "))
# verifica se Ă© par ou Ămpar
if numero % 2 == 0:
print(numero, "Ă© par")
else:
print(numero, "Ă© Ămpar")ExercĂcio 3.5#
Escreva um programa que receba dois nĂșmeros inteiros pelo teclado e informe se o segundo Ă© um mĂșltiplo do primeiro.
Ver solução
ExercĂcio â MĂșltiplo#
# lĂȘ os nĂșmeros
numero1 = int(input("Digite o primeiro nĂșmero: "))
numero2 = int(input("Digite o segundo nĂșmero: "))
# verifica se Ă© mĂșltiplo
if numero2 % numero1 == 0:
print(numero2, "Ă© mĂșltiplo de", numero1)
else:
print(numero2, "nĂŁo Ă© mĂșltiplo de", numero1)3.3 Testes em SequĂȘncia#
ExercĂcio 3.6#
Escreva um programa em Python que teste se um nĂșmero Ă© divisĂvel por 3, 5 ou 7. Seu programa deve dizer por qual desses valores o nĂșmero Ă© divisĂvel.
Ver solução
ExercĂcio â DivisĂvel por 3, 5 ou 7#
# lĂȘ o nĂșmero
numero = int(input("Digite um nĂșmero: "))
# verifica se Ă© divisĂvel por 3, 5 ou 7
if numero % 3 == 0:
print(numero, "Ă© divisĂvel por 3")
elif numero % 5 == 0:
print(numero, "Ă© divisĂvel por 5")
elif numero % 7 == 0:
print(numero, "Ă© divisĂvel por 7")
else:
print(numero, "nĂŁo Ă© divisĂvel por 3, 5 ou 7")3.4 CondiçÔes Compostas#
ExercĂcio 3.7#
Uma empresa vai conceder um aumento diferenciado a seus funcionårios, segundo os seguintes critérios: quem ganha até 1000 reais (inclusive) terå aumento de 20 %; entre 1000 e 2000 (inclusive), aumento de 18 %; entre 2000 e 4000 (inclusive) aumento de 15 % e acima de 4000 aumento de 10 %. Escreva um programa que, dado um valor de salårio, calcule o novo valor após o aumento.
Ver solução
ExercĂcio â Aumento de salĂĄrio#
# lĂȘ o salĂĄrio
salario = float(input("Digite o salĂĄrio: "))
# calcula o aumento
if salario <= 1000:
aumento = 0.2
elif 1000 < salario <= 2000:
aumento = 0.18
elif 2000 < salario <= 4000:
aumento = 0.15
else:
aumento = 0.1
novo_salario = salario + salario * aumento
# imprime o resultado
print("Novo salårio:", novo_salario)Claro que uma solução melhor seria:
# lĂȘ o salĂĄrio
salario = float(input("Digite o salĂĄrio: "))
# calcula o aumento
if salario <= 1000:
aumento = 0.2
elif salario <= 2000:
aumento = 0.18
elif salario <= 4000:
aumento = 0.15
else:
aumento = 0.1
novo_salario = salario + salario * aumento
# imprime o resultado
print("Novo salĂĄrio:", novo_salario)ExercĂcio 3.8#
Sabendo que um triĂąngulo Ă© dito equilĂĄtero quando tem 3 lados iguais, isĂłsceles quando tem 2 lados iguais e escaleno quando todos os lados tĂȘm tamanhos diferentes, escreva um programa que receba os valores dos trĂȘs lados de um triĂąngulo e imprima se ele Ă© equilĂĄtero, isĂłsceles ou escaleno.
Ver solução
ExercĂcio â TriĂąngulo#
# lĂȘ os lados do triĂąngulo
lado1 = float(input("Digite o primeiro lado: "))
lado2 = float(input("Digite o segundo lado: "))
lado3 = float(input("Digite o terceiro lado: "))
# verifica o tipo de triĂąngulo
if lado1 == lado2 == lado3:
print("TriĂąngulo equilĂĄtero")
elif lado1 == lado2 or lado1 == lado3 or lado2 == lado3:
print("TriĂąngulo isĂłsceles")
else:
print("TriĂąngulo escaleno")ExercĂcio 3.9#
Considere que um ser humano pode ser classificado segundo sua idade nas seguintes faixas etĂĄrias: âąBebĂȘ (nascimento atĂ© 3 anos). âąCriança (4 atĂ© 7 anos). âąPrĂ©-adolescente (8 atĂ© 12 anos). âąAdolescente (13 atĂ© 20 anos). âąJovem (21 a 40 anos). âą Meia-idade (41 atĂ© 64 anos). âą Idoso (65 anos em diante).
Escreva um programa que solicite uma idade e imprima a classificação correspondente.
Ver solução
ExercĂcio â Classificação de idade#
# lĂȘ a idade
idade = int(input("Digite a idade: "))
# classifica a idade
if idade <= 3:
print("BebĂȘ")
elif idade <= 7:
print("Criança")
elif idade <= 12:
print("Pré-adolescente")
elif idade <= 20:
print("Adolescente")
elif idade <= 40:
print("Jovem")
elif idade <= 64:
print("Meia-idade")
else:
print("Idoso")ExercĂcio 3.10#
â ïž Enunciado atualizado!
Este programa irĂĄ exigir um pouco mais de testes. Ă comum que donos de cachorros calculem a âidade humanaâ equivalente de seus cĂŁes usando uma simples multiplicação por 7, mas a conta Ă© um pouco mais complexa que isso. O envelhecimento de um cĂŁo depende de sua raça e porte. Podemos fazer alguma simplificaçÔes para obter uma idade “humana” aproximada. Considere a seguinte classificação por peso:
- Pequeno: até 10 kg (inclusive)
- Médio: acima de 10 kg até 23 kg (inclusive)
- Grande: acima de 23 kg
O cĂĄlculo da idade humana deve seguir estas regras:
- Para os dois primeiros anos de vida do cĂŁo:
- Pequeno: cada ano equivale a 12,5 anos humanos
- Médio: cada ano equivale a 10,5 anos humanos
- Grande: cada ano equivale a 9 anos humanos
- Para os anos adicionais (idade acima de 2 anos):
- Pequeno: cada ano adicional equivale a 5,2 anos humanos
- Médio: cada ano adicional equivale a 5,7 anos humanos
- Grande: cada ano adicional equivale a 7,8 anos humanos
A idade humana equivalente deve ser calculada somando: a contribuição dos dois primeiros anos (ou da idade total, se o cão tiver menos de 2 anos), e a contribuição dos anos adicionais, se houver.
Tarefa: Escreva um programa que solicite o peso (em kg) e a idade (em anos) de um cĂŁo e calcule sua idade humana equivalente de acordo com as regras acima.
Considere que os valores informados sĂŁo positivos.
Ver solução
ExercĂcio â Idade humana de cĂŁes#
peso = float(input("Peso do cĂŁo (kg): "))
idade = float(input("Idade do cĂŁo (anos): "))
# Classificação do porte com condiçÔes compostas
if peso <= 10:
porte = "pequeno"
elif peso > 10 and peso <= 23:
porte = "medio"
else:
porte = "grande"
# Definição dos coeficientes
if porte == "pequeno":
fator_inicial = 12.5
fator_adicional = 5.2
elif porte == "medio":
fator_inicial = 10.5
fator_adicional = 5.7
else:
fator_inicial = 9.0
fator_adicional = 7.8
# CĂĄlculo da idade humana
if idade <= 2:
idade_humana = idade * fator_inicial
else:
idade_humana = (2 * fator_inicial) + ((idade - 2) * fator_adicional)
print(f"Porte: {porte}")
print(f"Idade humana equivalente: {idade_humana:.1f} anos")
3.5 Estruturas de Repetição#
ExercĂcio 3.11#
Escreva um programa que receba um nĂșmero inteiro n e calcule a soma dos quadrados dos nĂșmeros atĂ© n-1. Exemplo: se n for igual a 3, seu programa deve dar o resultado da soma dos nĂșmeros 12 + 22.
Ver solução
ExercĂcio â Soma dos quadrados#
# lĂȘ o valor de n
n = int(input("Digite o valor de n: "))
# calcula a soma dos quadrados
soma = 0
n -= 1
while n > 0:
soma += n**2
n -= 1
# imprime o resultado
print("Soma dos quadrados:", soma)ExercĂcio 3.12#
Escreva um programa que calcule a mĂ©dia dos nĂșmeros digitados pelo usuĂĄrio. O programa deve calcular a mĂ©dia quando o usuĂĄrio digitar o nĂșmero zero.
Ver solução
ExercĂcio â MĂ©dia dos nĂșmeros#
# lĂȘ os nĂșmeros
soma = 0
contador = 0
numero = int(input("Digite um nĂșmero (0 para sair): "))
while numero != 0:
soma += numero
contador += 1
numero = int(input("Digite um nĂșmero (0 para sair): "))
# calcula a média
if contador > 0:
media = soma/ contador
print("MĂ©dia dos nĂșmeros:", media)
else:
print("Nenhum nĂșmero foi digitado.")
3.6 Laços Contados#
ExercĂcio 3.13#
Reescreva o ExercĂcio 3.11 usando o comando for.
Ver solução
ExercĂcio â Soma dos quadrados (for)#
# lĂȘ o valor de n
n = int(input("Digite o valor de n: "))
# calcula a soma dos quadrados
soma = 0
for i in range(1, n):
soma += i**2
# imprime o resultado
print("Soma dos quadrados:", soma)ExercĂcio 3.14#
Escreva um programa que calcule a temperatura equivalente em Fahrenheit para os graus Celsius entre 0 e 100 com intervalos de 10 graus.
Ver solução
ExercĂcio â Temperatura em Fahrenheit#
# Converte graus Fahrenheit para Celsius entre 0 e 100 com intervalos de 10 graus
print("Fahrenheit\tCelsius")
for fahrenheit in range(0, 101, 10):
celsius = (fahrenheit - 32) * 5 / 9
print(f"{fahrenheit}\t\t{celsius:.1f}")ExercĂcio 3.15#
Escreva um programa que gere o seguinte padrão usando laços encaixados:
* * * * * * * * * * * * * * * * * * * * * * * * *
Ver solução
ExercĂcio â PadrĂŁo de asteriscos#
# Programa que imprime padrĂŁo de asteriscos
# *
# * *
# * * *
# * * * *
# * * * * *
# * * * *
# * * *
# * *
# *
# lĂȘ o nĂșmero de linhas
n = int(input("Digite o nĂșmero de linhas: "))
# imprime o padrĂŁo
for i in range(1, n//2 + 2):
for j in range(1, i + 1):
print("*", end="")
print()
for i in range(n//2, 0, -1):
for j in range(1, i + 1):
print("*", end="")
print()
Quer ir além?#
Se vocĂȘ quiser se desafiar com novos problemas, sem solução disponĂvel: