Você está na página 1de 21

APRENDA PYTHON VOL 6 – REPETIÇÃO POR CONTAGEM (FOR)

INSTITUTO DE COMPUTAÇÃO – ICOMP – UFAM


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

1 - CONTAR OCORRÊNCIAS (2): APROVAÇÃO EM DISCIPLINA

Na Universidade Federal do Amazonas (UFAM), um aluno é aprovado em uma


disciplina se atender a dois critérios:

1. Média final igual ou superior a 5,0.


2. Frequência igual ou superior a 75% da carga horária.

Se a frequência for menor que 75%, o aluno é reprovado por frequência,


independentemente da sua nota.

O aluno é reprovado por nota se, tendo comparecido ao número mínimo de


aulas, não atingiu a média exigida.

Escreva um programa que leia as seguintes informações de uma disciplina,


nesta ordem:

1. Um vetor contendo médias finais de cada aluno;


2. Um vetor contendo a presença (número de horas) dos alunos em uma
disciplina;
3. A carga horária da disciplina.

Como saída, imprima um vetor de três posições, nesta ordem:

1. Número de alunos aprovados;


2. Número de alunos reprovados por nota;
3. Número de alunos reprovados por frequência.

Considere que as entradas fornecidas são sempre válidas:

• As notas variam entre 0,0 e 10,0;


• A frequência entre 0 e a carga horária;
• Os vetores de notas e de frequência têm tamanhos iguais.
2 - CONTAR OCORRÊNCIAS (1): TIME DE FUTEBOL

Os resultados das partidas de um time de futebol ao longo de um campeonato


são armazenados em dois vetores de mesmo tamanho:

• O primeiro vetor guarda o número de gols efetuados por esse time em


cada partida.
• O segundo vetor guarda o número de gols efetuados pelo time
adversário.

Uma posição i de cada vetor indica a i-ésima partida realizada.

Escreva um programa que leia esses dois vetores, na ordem em que foram
explicados. Como saída, imprima um vetor de três posições, contendo os
seguintes dados, em ordem, em relação ao time:

1. Número de vitórias;

2. Número de empates;

3. Número de derrotas;
Considere que as entradas fornecidas são sempre válidas, ou seja:

• Os dois vetores de entrada são de tamanho igual;


• Cada elemento do vetor, que indica o número de gols, é um inteiro não-
negativo.

Dicas

• Complete as linhas 7, 9,11,13,15,17 e 20 substituindo as


interrogações por comandos Python válidos que resolvam o problema.
• Esse codigo:

1. Utiliza um vetor para contar o número de ocorrências de cada situação


elencada.
2. Use a função zeros(x, dtype=int), do módulo numpy, para criar um
vetor de x elementos iguais a zero, do tipo inteiro.
3. Exemplo (não exaustivo): para a entrada [4, 0, 2, 3, 1, 3] [0, 0, 2, 5, 1, 2],
a saída deverá ser [2 3 1]. Isso significa que o time:
o ganhou duas vezes (4×0 e 3×2, primeiro e último jogo)
o empatou três vezes (0×0, 2×2 e 1×1, no segundo, terceiro e
quinto jogo)
o foi derrotado uma vez (3×5, no quarto jogo).
3 - FORÇA ACUMULADA PAR

O professor de Introdução à Programação de Computadores deseja separar


uma turma em dois grupos. Ele decidiu usar a pontuação de força acumulada
dos alunos, do jogo utilizado no Codebench, como critério de separação da
turma da seguinte forma:

1. Se a força acumulada pelo aluno for par, o aluno faz parte do Grupo 1.
2. Se a força acumulada pelo aluno for ímpar, o aluno faz parte do Grupo
2.

A entrada deve ser um vetor contendo a força acumulada de cada aluno. A


saída deve ser um vetor com apenas as forças acumuladas do Grupo 1.

Dicas

1. Use dois laços for distintos:


1. O primeiro laço deve percorrer o vetor de entrada para contar
quantos alunos pertencem ao Grupo 1.
2. O segundo laço deve percorrer novamente o vetor de entrada
identificando quais elementos pertencem ao Grupo 1 e atribuindo-
os ao vetor de saída.
2. Use a função zeros() para criar um vetor de saída com a quantidade de
alunos do Grupo 1.

4 - VEÍCULOS TRAFEGANDO EM ALTA VELOCIDADE

Objetivo: Contar multas graves em uma determinada avenida.

A Superintendência Municipal de Transportes Urbanos (SMTU) instalou um


radar móvel em pontos da cidade para identificar e multar motoristas que
ultrapassam o limite de velocidade da via monitorada.

Escreva um programa que leia o vetor com o registro das velocidades medidas
pelo radar móvel. O primeiro valor do vetor indica o limite de velocidade da via.
Os demais valores são os registros de velocidade dos carros que trafegam na
via.
Como saída, determine quais e quantos motoristas infringiram o limite de
velocidade em mais de 20% e menos que 50% acima da velocidade máxima
permitida para a via.

Dicas

1. Utilize uma variável acumuladora para guardar a quantidade de


infrações.
2. Considere que os valores inseridos como entrada são sempre válidos,
ou seja, são reais positivos.
3. Exemplo (não exaustivo): para a entrada [60.0, 73.9, 22.9, 72.1, 72.0,
100.6], a saída será:
1
3
2
Isso significa que a velocidade máxima nessa via é 60 km/h (posição 0
do vetor de entrada) e por isso os seguintes motoristas trafegaram em
alta velocidade: o de índice 1 e o de índice 3, totalizando 2 motoristas.
5 - EXCLUINDO VOGAIS

Faça um programa que leia uma string como entrada. Como saída, imprima
essa string excluindo a letra a, maiúscula ou minúscula, se houver.

Dicas

1. Crie uma string vazia como saída.


2. Utilize um laço de repetição for para percorrer cada caractere da string
de entrada:
o Se o caractere lido for diferente de A (maiúsculo ou minúsculo),
então concatene-o à string de saída.
o Caso contrário, leia o próximo caractere.
6 - PRODUTÓRIO

Escreva um programa que leia um vetor de números reais x = (x1, x2, ..., xn) de
dimensão n.

Como saída, determine o seguinte valor:

onde m é a média do vetor x.

Imprima o resultado com até 03 casas decimais de precisão.

Dicas

1. Utilize um laço de repetição for para percorrer cada elemento do vetor


de entrada.
2. Use a função round(x, n) para arredondar o valor x com até n casas
decimais.
3. Use a função abs() para encontrar o valor absoluto de cada parcela do
produto.

7 - SÉRIE DE TERMOS COM ALTERAÇÃO DE SINAL

Escreva um programa em Python que leia o número (N) de termos


pertencentes a uma série de elementos e imprima o valor de H, sendo:

1−1/2+1/3−1/4+...+1/N
Imprima o resultado com até 06 casas decimais de precisão.
8 - ARTE ASCII (1)

Escreva um programa que imprima uma figura semelhante à representada


abaixo, a partir da leitura do número de asteriscos presentes na base. Por
exemplo, para uma entrada igual a 5, o resultado produzido será igual ao da
figura abaixo.

Dicas
• Utilize laços de repetição.
• Divida para conquistar: veja que a figura é composta por dois triângulos.
Use um laço para desenhar o primeiro e outro laço para desenhar o
segundo triângulo.
• Utilize operações com strings.

9 - ELEMENTOS PARES

QUANTOS ELEMENTOS SÃO PARES?

Escreva um script que leia do teclado um vetor de tamanho qualquer. Em


seguida, determine:

• Quantos elementos são pares?


• Quantos são ímpares?
• Qual a quantidade de elementos?
Seu script deve repetir esse procedimento indefinidamente para diversos
vetores, de tamanhos variados, até que um vetor de apenas um elemento seja
inserido, terminando a execução do script.

Dicas

• Complete as linhas 7, 13, 17, 20 e 23, substituindo as interrogações por


comandos Python válidos que resolvam o problema.
• O programa fornecido adota os seguintes passos para resulver o
problema:

1. Ler um vetor, a partir do teclado.


2. Se o vetor tiver apenas um elemento, então encerrar a execução do
script (linha 7).
3. Se o vetor tiver mais elementos, devemos determinar:
a. Quantos deles são pares;
b. Quantos deles são impares, o que equivale ao tamanho do vetor
menos a quantidade de elementos pares;
c. Total de elementos do vetor.
4. Voltar ao passo 1.
10 - ALUNO PODE SER MONITOR?

APROVADO, MAS NÃO PODE SER MONITOR

Na UFAM, para que um aluno seja monitor de uma disciplina é necessário que
ele tenha sido aprovado nessa disciplina com nota mínima de 7.

Escreva um script que leia um vetor contendo as médias finais dos alunos
matriculados em uma disciplina. Em seguida, determine a quantidade de
alunos aprovados na disciplina (nota maior ou igual a 5), mas que não tem
condições de ser monitor (nota menor que 7).

Seu script deve repetir esse procedimento indefinidamente para diversos


vetores, de tamanhos variados, correspondentes a outras disciplinas, até que
um vetor de apenas um elemento seja inserido, terminando a execução do
script.
11 - TIPOS DE ENTRETENIMENTO

Um aluno realizou uma pesquisa para levantar as preferências de


entretenimento dos colegas de turma, entre as seguintes opções: TV, Netflix e
Youtube.

Escreva um programa que leia um vetor de strings, onde cada posição


representa o tipo de entretenimento preferido do aluno entrevistado entre as
opções disponíveis.

Como saída, imprima um vetor de três elementos inteiros, correspondentes à


quantidade de alunos que escolheram cada entretenimento, nesta
ordem: TV, NETFLIX e YOUTUBE.

Dicas

1. Use a função zeros(3, dtype=int) para inicializar um vetor de contagem


com 3 elementos iguais a zero (inteiro).
2. Cada elemento do vetor deve ser usado para contar o número de
ocorrências de cada opção de entretenimento.
3. Use o método .upper() para padronizar a entrada.

12 - LINGUAGEM INTERNETÊS

Com o advento da Internet surgiu uma nova linguagem, chamada de


Internetês. Nesta linguagem, os usuários costumam escrever muitas palavras
de forma reduzida, normalmente removendo as vogais das palavras.

Por exemplo, a frase “tudo bem com você?” pode ser representada por “td
bm cm vc?”.

Faça um script que leia uma palavra qualquer e a imprima em “internetês”.


Para “traduzir” uma palavra para internetês, basta remover as vogais.

Dicas
1. Use um vetor de vogais e verifique se algum elemento do vetor está
presente na string;
2. Utilize o método .replace() para remover as vogais.

13 - VALIDADOR DE SENHAS

Na Universidade Federal do Amazonas (UFAM), um aluno deve se matricular


no site do ecampus por meio do seu email e senha. Um dos pré-requisitos para
finalizar o cadastro é que a senha deva possuir pelo menos 01 caractere
maiúsculo, 01 caractere minúsculo e pelo menos 8 caracteres no total.

Escreva um programa que valide a senha. Dado uma string de tamanho N >= 8
como entrada, verifique se ela:

• Contém pelo menos 01 caractere maiúsculo


• Contém pelo menos 01 caractere minúsculo
• Possui pelo menos 8 caracteres

Como saída, imprima SENHA VALIDA caso a senha seja validada. Caso
contrário, imprimir SENHA INVALIDA.

Dicas

1. Use os métodos .islower() e .isupper() para saber se um caractere é


minúsculo ou maiúsculo. Por exemplo: senha[i].islower()
2. Use a função len() para determinar a quantidade de caracteres de uma
STRING.
14 - SÉRIE HARMÔNICA

A série harmônica é definida assim:

ou seja:

Faça um programa que leia um inteiro N e imprima a soma dos N primeiros


termos da série harmônica. O resultado deve ser impresso com até 2 casas
decimais.

Dicas

1. No comando for, use a função range(0,N) para gerar números de 0 a N-


1.
2. Use a função round(x, n) para arredondar o valor x com até n casas
decimais.
15 - PADRÃO DE SOMATÓRIO

Faça um programa que calcule e escreva o valor de S:

H = 1/1+3/2+5/3+7/4+...+99/50

A saída deve conter no máximo duas casas decimais.

Como entrada informe "Calcule" só para fins de execução do programa.


16 - SÉRIE DE MACLAURIN DO COSSENO

Dado um ângulo x ∈ R| − 1 <x< + 1, seu cosseno é dado pela seguinte série de


Maclaurin:
Escreva um programa que leia as seguintes variáveis:

1. Um ângulo x, medido em radianos.


2. Um número inteiro k, a quantidade de termos da série.

Como saída, imprima o valor da série acima para o ângulo x e com k termos,
com até onze casas decimais de precisão.

Você também pode gostar