associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Revisão 15e 2005-03-23 22:52:49

Excluir mensagem

ListaDeExercícios

Lista de Exercícios

Esta é uma lista com sugestões de programas para iniciantes em programação. Os exercícios podem ser implementados em pseudo-código, Python, C, C++, Java, Pascal ou em qualquer outra linguagem. Os exercícios estão divididos em categorias e procuram obedecer uma ordem de dificuldade crescente. Cada exercício é independente do outro, sendo possível deixar exercícios para trás sem grandes prejuízos.

Lista de Exercícios

  1. EstruturaSeqüêncial

  2. EstruturaDeDecisão

  3. EstruturaDeRepetição

  4. ExerciciosComListas

Estrutura de Repetição

  1. Faça um programa que imprima na tela os números de 1 a 20, um abaixo do outro. Depois modifique o programa para que ele mostre os números um ao lado do outro. Dica: use print com uma vírgula no final.

  2. Faça um programa que imprima na tela apenas os números ímpares entre 1 e 50.
  3. Faça um programa que receba dois números inteiros e gere os números inteiros que estão no intervalo compreendido por eles.
  4. O Sr. Manoel Joaquim possui uma grande loja de artigos de R$ 1,99, com cerca de 10 caixas. Para agilizar o cálculo de quanto cada cliente deve pagar ele desenvolveu um tabela que contém o número de itens que o cliente comprou e ao lado o valor da conta. Desta forma a atendente do caixa precisa apenas contar quantos itens o cliente está levando e olhar na tabela de preços. Você foi contratado para desenvolver o programa que monta esta tabela de preços, que conterá os preços de 1 até 50 produtos, conforme o exemplo abaixo:
    • Lojas Quase Dois - Tabela de preços
      1 - R$ 1.99
      2 - R$ 3.98
      ...
      50 - R$ 99.50
  5. O Sr. Manoel Joaquim acaba de adquirir uma panificadora e pretende implantar a metodologia da tabelnha, que já é um sucesso na sua loja de 1,99. Você foi contratado para desenvolver o programa que monta a tabela de preços de pães, de 1 até 50 pães, a partir do preço do pão informado pelo usuário, conforme o exemplo abaixo:
    • Preço do pão: R$ 0.18
      Panificadora Pão de Ontem - Tabela de preços
      1 - R$ 0.18
      2 - R$ 0.36
      ...
      50 - R$ 9.00
  6. Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a tabuada. A saída deve ser conforme o exemplo abaixo:
    • Tabuada de 5:
      5 x 1 = 5
      5 x 2 = 10
      ...
      5 x 10 = 50
  7. A série de Fibonacci é formada pela seqüência 0,1,1,2,3,5,8,13,21,34,55,... Faça um programa que gere a série até que o valor seja maior que 500.
  8. O Sr. Manoel Joaquim expandiu seus negócios para além dos negócios de 1,99 e agora possui uma loja de conveniências. Faça um programa que implemente uma caixa registradora rudimentar. O programa deverá receber um número desconhecido de valores referentes aos preços das mercadorias. Um valor zero deve ser informado pelo operador para indicar o final da compra. O programa deve então mostrar o total da compra e perguntar o valor em dinheiro que o cliente forneceu, para então calcular e mostrar o valor do troco. Após esta operação, o programa deverá voltar ao ponto inicial, para registrar a próxima compra. A saída deve ser conforme o exemplo abaixo:
    • Lojas Tabajara 
      Produto 1: R$ 2.20
      Produto 2: R$ 5.80
      Produto 3: R$ 0
      Total: R$ 9.00
      Dinheiro: R$ 20.00
      Troco: R$ 11.00
      ...
  9. Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: 5!=5.4.3.2.1=120. A saída deve ser conforme o exemplo abaixo:
    • Fatorial de: 5
      5! =  5 . 4 . 3 . 2 . 1 = 120
  10. Faça um programa que leia 5 números e informe o maior número.
  11. Faça um programa que leia 5 números e informe a soma é a média dos números.
  12. O Departamento Estadual de Meteorologia lhe contratou para desenvolver um programa que leia as um conjunto indeterminado de temperaturas, e informe ao final a menor e a maior temperaturas informadas, bem como a média das temperaturas.
  13. Os números primos possuem várias aplicações dentro da Computação, por exemplo na Criptografia. Um número primo é aquele que é divisível apenas por um e por ele mesmo. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo.
  14. Encontrar números primos é uma tarefa difícil. Faça um programa que gera uma lista dos números primos existentes entre 1 e um número inteiro informado pelo usuário.
  15. Desenvolva um programa que faça a tabuada de um número qualquer inteiro que será digitado pelo usuário, mas a tabuada não deve necessariamente iniciar em 1 e terminar em 10, o valor inicial e final devem ser informados também pelo usuário, conforme exemplo abaixo:
    • Montar a tabuada de: 5
      Começar por: 4
      Terminar em: 7
      
      Vou montar a tabuada de 5 começando em 4 e terminando em 7:
      5 x 4 = 20
      5 x 5 = 25
      5 x 6 = 30
      5 x 7 = 35
    Obs: Você deve verificar se o usuário não digitou o final menor que o inicial.
  16. Uma academia deseja fazer um senso entre seus clientes para descobrir o mais alto, o mais baixo, a mais gordo e o mais magro, para isto você deve fazer um programa que pergunte a cada um dos clientes da academia seu código, sua altura e seu peso. O final da digitação de dados deve ser dada quando o usuário digitar 0 (zero) no campo código. Ao encerrar o programa também deve ser informados os códigos e valores do clente mais alto, do mais baixo, do mais gordo e do mais magro, além da média das alturas e dos pesos dos clientes
  17. Um funcionário de uma empresa recebe aumento salarial anualmente: Sabe-se que:
    1. Esse funcionário foi contratado em 1995, com salário inicial de R$ 1.000,00;
    2. Em 1996 recebeu aumento de 1,5% sobre seu salário inicial;
    3. A partir de 1997 (inclusive), os aumentos salariais sempre correspondem ao dobro do percentual do ano anterior. Faça um programa que determine o salário atual desse funcionário. Após concluir isto, altere o programa permitindo que o usuário digite o salário inicial do funcionário.
  18. Faça um programa que leia dez conjuntos de dois valores, o primeiro representando o número do aluno e o segundo representando a sua altura em centímetros. Encontre o aluno mais alto e o mais baixo. Mostre o número do aluno mais alto e o número do aluno mais baixo, junto com suas alturas.
  19. Foi feita uma estatística em cinco cidades brasileiras para coletar dados sobre acidentes de trânsito. Foram obtidos os seguintes dados:
    1. Código da cidade;
    2. Número de veículos de passeio (em 1999);
    3. Número de acidentes de trânsito com vítimas (em 1999).
    Deseja-se saber:
    1. Qual o maior e menor índice de acidentes de transito e a que cidade pertence;
    2. Qual a média de veículos nas cinco cidades juntas;
    3. Qual a média de acidentes de trânsito nas cidades com menos de 2.000 veículos de passeio.
  20. Faça um programa que receba o valor de uma dívida e mostre uma tabela com os seguintes dados: valor da dívida, valor dos juros, quantidade de parcelas e valor da parcela. Os juros e a quantidade de parcelas seguem a tabela abaixo:
    • Quantidade de Parcelas  % de Juros sobre o valor inicial da dívida
      1       0
      3       10
      6       15
      9       20
      12      25
    Exemplo de saída do programa:
    • Valor da Dívida Valor dos Juros Quantidade de Parcelas  Valor da Parcela
      R$ 1.000,00     0               1                       R$  1.000,00
      R$ 1.100,00     100             3                       R$    366,00
      R$ 1.150,00     150             6                       R$    191,67
  21. Faça um programa que leia uma quantidade indeterminada de números positivos e conte quantos deles estão nos seguintes intervalos: [0-25], [26-50], [51-75] e [76-100]. A entrada de dados deverá terminar quando for lido um número negativo.
  22. O cardápio de uma lanchonete é o seguinte:
    • Especificação   Código  Preço
      Cachorro Quente 100     R$ 1,20
      Bauru Simples   101     R$ 1,30
      Bauru com ovo   102     R$ 1,50
      Hambúrguer      103     R$ 1,20
      Cheeseburguer   104     R$ 1,30
      Refrigerante    105     R$ 1,00
    Faça um programa que leia o código dos itens pedidos e as quantidades desejadas. Calcule e mostre o valor a ser pago por item (preço * quantidade) e o total geral do pedido. Considere que o cliente deve informar quando o pedido deve ser encerrado.
  23. Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código. Os códigos utilizados são:
    • 1 , 2, 3, 4  - Votos para os respectivos candidatos 
      (você deve montar a tabela ex: 1 – Jose/ 2- João/etc)
      5 – Voto Nulo
      6 – Voto em Branco
    Faça um programa que calcule e mostre:
    1. O total de votos para cada candidato;
    2. O total de votos nulos;
    3. O total de votos em branco;
    4. A percentagem de votos nulos sobre o total de votos;
    5. A percentagem de votos em branco sobre o total de votos.
    Para finalizar o conjunto de votos tem-se o valor zero.
  24. Desenvolver um programa para verificar a nota do aluno em uma prova com 10 questões, o programa deve perguntar ao aluno a resposta de cada questão e ao final comparar com o gabarito da prova e assim calcular o total de acertos e a nota (atribuir 1 ponto por resposta certa). Após cada aluno utilizar o sistema deve ser feita uma pergunta se outro aluno vai utilizar o sistema. Após todos os alunos terem respondido informar:
    1. Maior e Menor Acerto;
    2. Total de Alunos que utilizaram o sistema;
    3. A Média das Notas da Turma.
      Gabarito da Prova:
      
      01 – A
      02 – B
      03 – C
      04 – D
      05 – E
      06 – E
      07 – D
      08 – C
      09 – B
      10 – A
    Após concluir isto você poderia incrementar o programa permitindo que o professor digite o gabarito da prova antes dos alunos usarem o programa.

Listas

  1. Faça um Programa que leia um vetor de 5 números inteiros e mostre−os.

  2. Faça um Programa que leia um vetor de 10 números reais e mostre−os na ordem inversa.

  3. Faça um Programa que leia 4 notas, mostre as notas e a média na tela.
  4. Faça um Programa que leia um vetor de 10 caracteres, e diga quantas consoantes foram lidas. Imprima as consoantes.
  5. Faça um Programa que leia 20 números inteiros e armazene−os num vetor. Armazene os números pares no vetor PAR e os números IMPARES no vetor impar. Imprima os três vetores.

  6. Faça um Programa que peça as quatro notas de 10 alunos, calcule e armazene num vetor a média de cada aluno, imprima o número de alunos com média maior ou igual a 7.0.
  7. Faça um Programa que leia um vetor de 5 números inteiros, mostre a soma, a multiplicação e os números.
  8. Faça um Programa que peça a idade e a altura de 5 pessoas, armazene cada informação no seu respectivo vetor. Imprima a idade e a altura na ordem inversa a ordem lida.
  9. Faça um Programa que leia um vetor A com 10 números inteiros, calcule e mostre a soma dos quadrados dos elementos do vetor.
  10. Faça um Programa que leia dois vetores com 10 elementos cada. Gere um terceiro vetor de 20 elementos, cujos valores deverão ser compostos pelos elementos intercalados dos dois outros vetores.
  11. Altere o programa anterior, intercalando 3 vetores de 10 elementos cada.
  12. Foram anotadas as idades e alturas de 30 alunos. Faça um Programa que determine quantos alunos com mais de 13 anos possuem altura inferior à média de altura desses alunos.
  13. Utilize uma lista para resolver o problema a seguir. Uma empresa paga seus vendedores com base em comissões. O vendedor recebe $200 por semana mais 9 por cento de suas vendas brutas daquela semana. Por exemplo, um vendedor que teve vendas brutas de $3000 em uma semana recebe $200 mais 9 por cento de $3000, ou seja, um total de $470. Escreva um programa (usando um array de contadores) que determine quantos vendedores receberam salários nos seguintes intervalos de valores:
    1. $200 - $299
    2. $300 - $399
    3. $400 - $499
    4. $500 - $599
    5. $600 - $699
    6. $700 - $799
    7. $800 - $899
    8. $900 - $999
    9. $1000 em diante

    Desafio: Crie ma fórmula para chegar na posição da lista a partir do salário, sem fazer vários ifs aninhados.

  14. A ACME Inc., uma organização com mais de 1500 funcionários, está tendo problemas de espaço em disco no seu servidor de arquivos. Para tentar resolver este problema, o Administrador de Rede precisa saber qual o espaço ocupado pelos usuários, e identificar os usuários com maior espaço ocupado. Através de um programa baixado da Internet, ele conseguiu gerar o seguinte arquivo, chamado “usuarios.txt“:

alexandre       456123789
anderson        1245698456
antonio         123456456
carlos          91257581
cesar           987458
rosemary        789456125
  • Neste arquivo, o primeiro campo corresponde ao login do usuário e o segundo ao espaço em disco ocupado pelo seu diretório home. A partir deste arquivo, você deve criar um programa que gere um relatório, chamado “relatório.txt”, no seguinte formato:

ACME Inc.               Uso do espaço em disco pelos usuários
------------------------------------------------------------------------
Nr.  Usuário        Espaço utilizado     % do uso

1    alexandre       434,99 MB            16,85%
2    anderson       1187,99 MB            46,02%
3    antonio         117,73 MB             4,56%
4    carlos           87,03 MB             3,37%
5    cesar             0,94 MB             0,04%
6    rosemary        752,88 MB            29,16%

Espaço total ocupado: 2581,57 MB
Espaço médio ocupado: 430,26 MB
  • O arquivo de entrada deve ser lido uma única vez, e os dados armazenados em memória, caso sejam necessários, de forma a agilizar a execução do programa. A conversão da espaço ocupado em disco, de bytes para megabytes deverá ser feita através de uma função separada, que será chamada pelo programa principal. O cálculo do percentual de uso também deverá ser feito através de uma função, que será chamada pelo programa principal.


Envie sugestões sobre novos enunciados e melhorias nos textos dos já existentes. A criação de telas de exemplo com a saída dos programas também é algo que me interessa fazer no futuro.


As respostas para os exercícios também podem ser colocadas na página RespostasListaDeExercícios (apenas membros do ProfessoresPythonGroup possuem acesso à essa página.


MarcoAndréLopesMendesBR RodrigoCurvêllo