Aprenda Python Vol 3

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 26

APRENDA PYTHON VOL 3 – ESTRUTURA CONDICIONAL ENCADEADA

INSTITUTO DE COMPUTAÇÃO – ICOMP – UFAM


Exercícios resolvidos de Linguagem Python.
Cardoso, A. K. S.

1 - DE VOLTA À ÁREA DO TRIÂNGULO

Escreva um programa que leia as medidas dos três lados A, B, C de um


triângulo qualquer. Em seguida, ele deve verificar se as medidas são válidas
(condição de existência de um triângulo). Se as medidas forem válidas o
programa deve calcular a área do triângulo.

Dados de entrada:

1. Lado A

2. Lado B

3. Lado C

Como saída, o programa deverá imprimir a seguinte mensagem:

Entradas: A, B, C

Area: X

No comando print as letras A, B, C devem ser substituídas pelos valores de


entrada informados pelo usuário. Se as entradas forem válidas, substitua a
letra X pelo valor da área, com até três casas decimais de precisão. Caso
contrário, substitua a letra X pela seguinte mensagem: invalida.

Leia as dicas para verificar as condições em que três valores representam


medidas válidas de um triângulo.

Dicas

1. O programa está incompleto. Substitua as expressões ___COMPLETE


AQUI___ por comandos que façam o programa executar corretamente.
2. A solução proposta adota os seguintes passos:
1. Ler o valor de cada lado do triângulo: A, B, C.
2. Verificar se todos os valores fornecidos são positivos.
1. Se verdade, verificar se as medidas fornecidas
correspondem às de um triângulo, ou seja, se a soma dos
dois lados menores é maior que o lado maior.
2. O teste deve ser verdadeiro para todas as três
combinações possíveis.
3. Se todos os testes forem bem sucedidos, calcule a área e exiba a
mensagem.
4. Se pelo menos um teste falhar, apresente a mensagem de erro
3. Execute o programa para todos o casos de teste apresentados.

2 - QUAL O TIPO DE TRIÂNGULO?

Escreva um programa que leia três números reais, correspondentes às


medidas dos lados de um triângulo, em ordem qualquer.
Dados de entrada:

1. Lado A

2. Lado B

3. Lado C

Como saída, o programa deverá imprimir:

Entradas: A, B, C

Tipo de triangulo: X

No comando print() as letras A, B, C devem ser substituídas pelos valores de


entrada informados pelo usuário. Substitua a letra X por um dos seguintes
valores:

• equilatero, se todos os três lados forem iguais;


• isosceles, se apenas dois lados forem iguais;
• escaleno, se nenhum par de lados forem iguais;
• invalido, se pelo menos um dos lados for negativo ou se os três lados
não formarem um triângulo.

Leia as dicas para verificar as condições em que três valores representam


medidas válidas de um triângulo.

Dicas

1. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use


acentos, para evitar erros.
2. Condições de existência de um triângulo:
1. Todos os lados devem ser positivos.
2. A medida de qualquer um dos lados deve menor que a soma das
medidas dos outros dois.
3. Execute o programa para todos o casos de teste apresentados.
3 - QUAL SUA CASA EM GOT?

Elabore um programa que leia a descrição do brasão de uma das casas da


série de TV "Guerra dos Tronos", conforme tabela abaixo. Como saída,
determine o nome da casa correspondente.

• Se a entrada for uma descrição válida, então imprima:

Entrada: X

Casa: Y

• Se a entrada for uma casa não listada na tabela, imprima:

Entrada: X

Brasao invalido

Substitua a letra X pela entrada inserida e a letra Y pela casa correspondente.

Brasão Casa

lobo Stark
leao Lannister

veado Baratheon

dragao Targaryen

rosa Tyrell

sol Martell

lula Greyjoy

esfolado Bolton

turta Tully

Dicas

1. Utilize condições encadeadas (elif).


2. Use letras maiúsculas e minúsculas da mesma maneira como descrita
no enunciado. Não use acentos.
3. Lembre-se que "x" (com aspas) indica o caractere xis, ao passo
que x (sem aspas) indica o nome de uma variável chamada x.
4 - DOIS INTERVALOS DE VALORES

Considere dois intervalos numéricos sobre a reta real: [a,b][a,b] e [c,d][c,d].


Escreva um programa que verifique se existe interseção (pelo menos um ponto
em comum) entre os intervalos.

• Se houver interseção, o programa deverá imprimir:

Intervalo 1: a, b

Intervalo 2: c, d

Ha intersecao

• Se não houver interseção, o programa deverá imprimir:

Intervalo 1: a, b

Intervalo 2: c, d

Nao ha intersecao

• Por fim, se as entradas forem inválidas, o programa deverá imprimir:

Intervalo 1: a, b

Intervalo 2: c, d

Entradas invalidas

Nas mensagens, substitua as letras a, b, c, d pelos valores fornecidos como


entrada.

Dicas
1. Leia os números reais na ordem solicitada: aa, bb, cc, dd.
2. Primeiro, verifique se os intervalos são válidos, ou seja,
se b>ab>a e d>cd>c.
3. Não pressuponha nada com respeito à posição relativa entre os
intervalos [a,b][a,b] e [c,d][c,d]. Ou seja, eles podem estar situados antes
ou depois um do outro.
4. Antes de programar, teste alguns exemplos numéricos em um rascunho,
para encontrar uma regra geral.
5. Alguns dos operadores booleanos (and, or, not) serão úteis.
6. Use letras maiúsculas e minúsculas exatamente conforme o
enunciado. Não use acentos.

5 - INTERVALO DE VALORES

Considere dois números reais aa e bb, sendo b>a. Um número real xx pertence
ao intervalo [a,b][a,b] se a ≤ x ≤ b
Escreva um programa que leia os números reais x, a, b, nesta ordem.

• Se x pertencer ao intervalo, imprima a seguinte mensagem:


x pertence ao intervalo a, b

• Caso contrário, imprima a seguinte mensagem:

x nao pertence ao intervalo a, b

• Se as entradas forem inválidas, ou seja, se b ≤ a, imprima a seguinte


mensagem:

Entradas a e b invalidas

Nas mensagens, substitua as letras x, a, b pelos valores fornecidos como


entrada.

Dicas

1. Note que as três entradas são números reais (float).


2. Utilize condições encadeadas (if/elif).
3. Alguns dos operadores booleanos (and, or, not) serão úteis.
4. Não confunda a vírgula que deve ser impressa (string) com a vírgula que
separa um argumento de outro dentro da função print().
6 - BOATE

Em uma boate, o preço da entrada varia conforme o dia da semana. Nas


segundas, terças e quintas, ela normalmente oferece um desconto de 25%
sobre o preço normal de entrada. Porém, nos dias de músicas ao vivo,
independentemente do dia da semana, é acrescida uma taxa fixa de R$20,00
ao preço da entrada.

Elabore um programa que calcule o preço final a ser pago para entrar na
boate, a partir dos seguintes valores, nesta ordem:

1. O preço normal da entrada (em reais)


2. O dia da semana (1 para domingo, 2 para segunda, ..., 7 para sábado)
3. É dia de música ao vivo? (S ou N)

Validação dos dados de entrada

Note que:

• O preço normal deve ser maior ou igual a zero


• Dias da semana só podem assumir valores inteiros de 1 a 7
• Música ao vivo só pode ser S ou N.

Se o usuário inserir valores inválidos, imprima a seguinte mensagem:

Entradas: X , Y , Z

Dados invalidos

Se as entradas forem válidas, imprima a seguinte mensagem:

Entradas: X , Y , Z

Valor a pagar: R$ W

Nas mensagens, substitua as letras X, Y, Z e W pelos valores correspondentes.


7 - PLANTIO DE GRAMA

Objetivo: Determinar o valor do serviço.

A floricultura Sempre Verde oferece o serviço de plantio de grama. O custo do


serviço depende da área a ser coberta e é dado pela seguinte fórmula:

Valor = Área * Custo + Fertilizante

O custo e o valor do adubo variam conforme a tabela a seguir:

Área (m2) Custo Fertilizante

[0, 100] R$ R$ 100,00


2,00

]100, 2500] R$ R$ 150,00


1,80

]2500, 10000] R$ R$ 200,00


1,50
]10000, ∞[ R$ R$ 250,00
1,20

Escreva um programa que leia a área a ser coberta (em m2) e determine o
valor total a ser cobrado pela empresa Sempre Verde.
Dicas
1. Verifique se as variáveis associadas ao problema são reais ou inteiras.
2. O valor de saída deve ser arredondado com até duas casas decimais.
3. Considere que a entrada do programa sempre será um valor maior ou
igual a zero.
Exemplos adicionais:

ENTRADA DE EXEMPLO (1):

SAÍDA DE EXEMPLO (1):

102.0

ENTRADA DE EXEMPLO (2):

10001

SAÍDA DE EXEMPLO (2):

12251.2
8 - SUSHI – INGREDIENTE

Objetivo: Calcular a quantidade necessária de um ingrediente.


Para fazer um sushi, vários ingredientes são utilizados.
A tabela a seguir mostra o ingrediente e a quantidade necessária para
preparar UMA receita.

Ingrediente Quantidade
(gramas)

ARROZ 500

CENOURA 100

KAMPYO 20

NORI 50
OMELETE 200

PEPINO 150

SALMAO 300

SHITAKE 150

Escreva um programa que leia:


1. O nome desse ingrediente
2. A quantidade de receitas que se deseja preparar (inteiro)

Como saída, determine a quantidade necessária do ingrediente para preparar o


número de receitas desejado, em gramas.
Se a quantidade de receitas for um valor menor que zero ou maior que 50, ou
se o ingrediente não estiver listado, a saída deve ser “Entrada invalida”.

Dicas
1. O valor de entrada e de saída devem ser inteiros.
2. Atenção para o uso de caracteres MAIÚSCULOS. Não use acentos.

9 - FERTILIZAÇÃO AÉREA – ESTENDIDA

Objetivo: Determinar o valor do serviço.


A empresa de aviação agrícola Agro Nomo oferece um serviço de aplicação de
fertilizantes. O custo do serviço depende da área da plantação a ser fertilizada
e é dado pela seguinte fórmula:

Valor = Área * Custo + Fertilizante

O custo e o valor do fertilizante variam conforme a tabela a seguir:

Área (ha) Custo Fertilizante

[0, 10000] R$ R$ 100,00


6,00

]10000, R$ R$ 150,00
20000] 5,50

]20000, R$ R$ 200,00
30000] 5,00

]30000, ∞[ R$ R$ 250,00
4,50

Escreva um programa que leia a área a ser fertilizada (em hectares)


e determine o valor total a ser cobrado pela empresa Agro
Nomo, arredondado para duas casas decimais..
Dicas
1. Verifique se as variáveis associadas ao problema são reais ou inteiras.
2. Considere que a entrada do programa sempre será um valor maior ou
igual a zero.
10 - FUNÇÃO C

Considere a seguinte função f(x):

Faça um programa que leia o valor de x e retorne o valor de f(x) baseado na


definição acima. Observe que a função não está definida para todos os valores
reais. Caso o usuário entre como um valor de x que não pertence ao domínio da
Função, o programa deve gerar como saída a mensagem ‘entrada invalida’.

Dicas

1. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use


acentos, para evitar erros.
2. Alguns dos operadores booleanos (and, or, not) serão úteis.
3. Imprima saída com 4 casas decimais (use a função round()).

11 - ESCOLHAS: CATEGORIA DE PESOS - A

Um campeonato de luta tem 3 categorias de peso masculino, e mais 3


categorias de peso feminino. Na divisão masculina, os lutadores peso pesado
são conhecidos pelo poder devastador dos seus socos, e o lutadores mais
leves são conhecidos pela rapidez e agilidade. Os lutadores só podem competir
na sua categoria de peso, e para mudar de categoria, eles têm que ganhar ou
perder peso, o que os leva muitas vezes a perder rapidez ou perder força.

O programa deverá ler as duas informações, nesta ordem:

1. O gênero do lutador (masculino ou feminino).


2. O peso do lutador.

Como saída, o programa deve informar a categoria do lutador de acordo com a


seguinte definição:
Para mulheres, as opções são:

1. Peso Pena Feminino (acima de 61.0 até 66.0 Kg)


2. Peso Galo Feminino (acima de 52.0 até 61.0 Kg)
3. Peso Palha Feminino (até 52.0 Kg)

Para os Homens, as opções são:

1. Peso Pesado (acima de 93.0 até 120.0 Kg)


2. Peso Meio Pesado (acima de 84.0 até 93.0 Kg)
3. Peso Médio (de 78.0 até 84.0 Kg)

Se as entradas forem inválidas (qualquer uma das duas), imprimir a seguinte


mensagem: “categoria invalida”.

Dicas

DICAS:

1. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use


acentos, para evitar erros.
2. Use o método .lower() após o final do nome da string para converter
todas as suas letras em MINÚSCULAS. O ponto e os parênteses são
necessários!
3. Alguns dos operadores booleanos (and, or, not) serão úteis.
4. Considere os intervalos de pesos do enunciado. Intervalos diferentes do
enunciado devem ser considerados como entrada inválida, ou
seja, categoria inválida.
5. Verifique se as entradas (pesos) são do tipo inteiro ou float.
12 - ÍNDICE DE MASSA CORPORAL (IMC)

Escreva um programa que leia a idade e o índice de massa corporal


(IMC) de uma pessoa, nessa ordem. Como saída, determine o risco de
problemas cardíacos dessa pessoa, conforme a tabela a seguir:

Idade

< 45 ≥ 45

< 22,0 Baixo Médio


IMC
≥ 22,0 Médio Alto
Validação dos dados

Verifique se os dados informados são válidos. Se a idade for menor ou igual a


zero ou maior que 130 anos, ou se o IMC for menor ou igual a zero, imprima:

Entradas: X anos e IMC Y

Dados invalidos

Se as entradas forem válidas, imprimia:

Entradas: X anos e IMC Y

Risco: Z

Nas mensagens de saída, substitua as letras X, Y e Z pelos valores fornecidos.

Dicas

1. Use condições encadeadas (if/elif).


2. Atenção para o uso de caracteres maiúsculos e minúsculos. Não use
acentos.
3. Alguns dos operadores booleanos (and, or, not) serão úteis.
13 - FATOR DE FRIO DO VENTO

A sensação de frio é determinada não só pela temperatura, mas também pela


velocidade do vento, umidade relativa do ar e brilho do sol. Uma das formas de
calcular a sensação de frio σσ envolve a seguinte fórmula:

σ=13,12+0,6215⋅Tar−(11,37⋅v0,16)+(0,3965⋅Tar⋅v0,16),

onde:

• σ representa a sensação de frio


• v representa a velocidade de vento em km/h
• Tar representa a temperatura do ar em graus Celsius (C)

Essa fórmula é definida apenas para temperaturas entre -50°C e 10°C, e


velocidade acima de 4,8 km/h.
Escreva um programa que leia a temperatura em Celsius e a velocidade do
vento em km/h.

• Se os valores de entrada forem válidos, o programa deverá calcular e


exibir o valor de σ, com até quatro casas decimais de precisão.
• Se o valor da temperatura do ar for inválido, imprima: Temperatura
invalida
• Se o valor da velocidade for inválido, imprima: Velocidade invalida

Dicas

1. Atenção para a ordem de leitura de valores.


2. Use os operadores booleanos (and, or).
3. Use o comando round(x, n) para arredondar um valor x com
até n casas decimais.
14 - POSIÇÃO DO PONTO

Considere uma reta que parte do ponto p0(x0,y0) ao ponto p1(x1,y1). Dado um
ponto p2(x2,y2), pode-se decidir se p2 está à esquerda, à direita ou sobre a reta
(veja a figura), com base na seguinte condição cc:
c=(x1−x0)⋅(y2−y0)−(x2−x0)⋅(y1−y0)
A localização de p2 é definida pelas seguinte regras:

• Se c<0, p2 está à direita da reta


• Se c>0, p2 está à esquerda da reta
• Se c=0, p2 está sobre a reta

Escreva um programa que leia as coordenadas x e y de cada um dos três


pontos p0, p1 e p2, um par (xi, yi) por vez. O programa deverá calcular o valor
de c e imprimir a localização de p2:

• A direita da reta
• A esquerda da reta
• Sobre a reta

Fonte: Liang. Introduction to Programming Using Python. Pearson, 2013.

Dicas

1. Atenção para a ordem de leitura de valores.


2. Não se limite ao caso de exemplo. Teste as diversas possibilidades de
entradas e saídas.
15 - PASSAGEM DE BARCO

O preço da passagem de barco, partindo de Manaus, varia conforme o destino


desejado e se o passageiro fecha ou não um pacote de ida-e-volta. Escreva um
programa que leia as seguintes informações, nesta ordem:

1. O nome da cidade de destino.


2. Se o percurso é somente de ida ou ida-e-volta.

Como saída, imprima o preço da passagem conforme a tabela abaixo. Se a


cidade de destino não estiver na relação abaixo, imprima: Destino inexistente

Ida-e-volta
Destino Ida (R$)
(R$)

Belém 350,00 650,00

Borba 80,00 152,00

Coari 106,00 199,00


Humaitá 200,00 390,00

Manicoré 150,00 280,00

Maués 100,00 190,00

Dicas

1. Atenção para o tipo das entradas e saídas (inteiro, real, string).


2. Não utilize acentos.
3. Uso o ponto para separar a parte inteira da fracionária em número reais.

16 - CONTRACHEQUE

Em uma empresa, o salário líquido dos funcionários é calculado em função de


dois descontos: a contribuição previdenciária e o imposto de renda. Dado o
salário bruto do funcionário, a contribuição previdenciária é calculada de acordo
com a seguinte tabela:
Salário bruto Alíquota

Até R$ 1.659,38 8%

De R$ 1.659,39 a R$
9%
2.765,66

De R$ 2.765,67 a R$
11%
5.531,31

Desconto fixo de R$
Acima de R$ 5.531,31
608,44

Após o desconto da contribuição previdenciária, o valor restante é então


utilizado para calcular o desconto do imposto de renda, com base nesta tabela:

Salário base Alíquota de desconto

Até R$ 1.903,98 Isento

De R$ 1.903,99 a R$
7,5%
2.826,65

De R$ 2.826,66 a R$
15%
3.751,05

De R$ 3.751,06 a R$
22,5%
4.664,68

Acima de R$ 4.664,68 27,5%

Escreva um programa que leia o salário bruto de uma pessoa, e aplique os


dois descontos. Como saída, imprima a seguinte:

Salario liquido = R$ X

Dicas

1. Primeiro calcule a contribuição previdenciária e desconte do salário


bruto. Depois, use o valor restante para determinar a o desconto do
imposto de renda. Por fim, subtraia esse valor e determine o valor do
salário líquido.
2. Use o comando round(x, n) para arredondar a resposta x com até
2 casas decimais.
3. Use o operador lógico (and) para a comparação entre as diferenças.

Você também pode gostar