Baixe o app para aproveitar ainda mais
Prévia do material em texto
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 MONITORNa 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.
Compartilhar