Você está na página 1de 5

UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA

INF 100 – Introdução à Programação I SEMESTRE I / 2022

Prova 2 02/07/2022 14:00 –15:50h

Questão 1 (5 pontos)

Considere o seguinte programa em Python:

N = 11
i = 2
while i <= N :
print(i, end='')
for j in range (0, i) :
print('K', end='')
print(i)
i = i + 3

# Dica: a diretiva end=''mantém a próxima impressão na mesma linha

Escreva abaixo na “Tela do Computador” qual será a saída exata fornecida pelo programa:

Tela do Computador
2KK2
5KKKKK5
8KKKKKKKK8
11KKKKKKKKKKK11

Rascunho (rastreio das variáveis)

Página 1 de 5
Questão 2 (5 pontos)
a) No início de um programa um comando repetitivo será utilizado para ler N valores quaisquer,
cada um representando o preço de um carro usado. O programa utilizará o valor lido apenas dentro
do próprio comando repetitivo. A seguir é apresentado um exemplo de execução deste trecho de
código, no qual os valores fornecidos pelo usuário estão destacados:

Informe o número de carros: 4


Informe o valor do carro: 19000
Informe o valor do carro: 32000
Informe o valor do carro: 13000
Informe o valor do carro: 85000

a) Complete o trecho de código abaixo com um comando repetitivo while para executar
corretamente a tarefa descrita acima. A indentação do código será considerada como critério de
correção:

N = int(input('Informe o número de carros: '))

i = 0
while i < N :
preco = float(input('Informe o valor do carro: ' ))
# o código para processar o valor lido
# foi omitido propositalmente
i = i+1

b) b) Complete o trecho de código abaixo com um comando repetitivo for para executar
corretamente a tarefa descrita acima. A indentação do código será considerada como critério de
correção:

N = int(input('Informe o número de carros: '))

for i in range (0, N) :


preco = float(input('Informe o valor do carro: ' ))
# o código para processar o valor lido
# foi omitido propositalmente

Página 2 de 5
Questão 3 (5 pontos)
a) Suponha que um programa utiliza um arranjo unidimensional de nome PROD para armazenar o
valor de um mesmo produto, pesquisado em N diferentes lojas.
a) Escreva o comando Python para criar o arranjo PROD, considerando que a variável N já está
definida:

import numpy as np
PROD = np.empty(N) # zeros, array

b) Supondo que o arranjo PROD já está com todos os N valores armazenados, escreva um trecho de
código para calcular e informar:
- o preço médio do produto nas lojas pesquisadas;
- o número de lojas que tem o preço acima da média.
OBS: Escreva APENAS o código solicitado.

# cálculo do preço médio


sum = 0
for i in range (0, N) :
sum = sum + PROD[i]
av_price = sum/N

# contar o número de valores > média


count = 0
for i in range (0, N) :
if PROD[i] > av_price :
count = count + 1

# comandos de impressão
print('Preço médio em %d lojas é: %.2f ' %(N, av_price))
print('Número de lojas com preço acima do preço médio:' , count)

Página 3 de 5
Questão 4 (10 pontos)
Uma árvore de Natal pode ser desenhada por um programa Python, considerando a copa e o tronco.
A copa da árvore pode ser representada por um triângulo de base L (L >=5 e ímpar) com as
seguintes características:
- em cada linha são escritos zero ou mais caracteres de “espaço”, seguidos de 1 ou mais
asteriscos;
- o número de caracteres brancos na primeira linha é igual a (L-1) // 2 e o número de
asteriscos é igual a 1;
- a cada nova linha o número de “espaços” diminui 1 unidade e o número de asteriscos
aumenta em 2 unidades;
- na última linha são escritos ZERO “espaços” e L asteriscos.
Já o tronco da árvore será sempre composto por:
- 2 linhas e, em cada uma, serão impressos L//2 “espaços” e um asterisco.
A Figura abaixo mostra um exemplo de execução do programa completo para gerar uma árvore com
largura (L) igual a 13.

O trecho de código para ler e validar a largura (L) da árvore já está pronto. Complete o código para
“desenhar” a árvore de Natal.

SOLUÇÃO: (Use o verso da folha, se necessário)

# árvore de natal
L = int(input('Entre com um número ímpar (>=5): '))
while L < 5 or L%2 == 0 :
L = int(input('Entre com com um número ímpar (>=5): '))

(* solução na próxima página *)

Página 4 de 5
# desenhando a copa
nb = (L-1)//2
na = 1
while na <= L :
for j in range (0, nb) :
print(' ', end='')
for j in range (0, na) :
print('*', end='')
print()
na = na + 2
nb = nb - 1

# desenhando o tronco
nb = (L-1)//2
for i in range (0, 2) :
for j in range (0, nb) :
print(' ', end='')
print('*')

- O uso do for com incremento não unitário:

for i in range(1, L+1, 2) :

poderia ser usado em substituição à estrutura do while:

i=1
while i <= L :

i=i+2

Página 5 de 5

Você também pode gostar