📘 Exercícios — Capítulo 3#

Programação Estruturada#

← Voltar

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:

  1. Pequeno: até 10 kg (inclusive)
  2. Médio: acima de 10 kg até 23 kg (inclusive)
  3. Grande: acima de 23 kg

O cĂĄlculo da idade humana deve seguir estas regras:

  1. 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
  2. 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:

👉 Exercícios extras do Capítulo 3