Anda di halaman 1dari 33

WWW.PYTHON.ORG.

BR

Programao de Computadores
Lista de Exerccios
Editado por Cleibson Almeida 23/01/2012

Esta uma lista com sugestes de programas para iniciantes em programao. Os exerccios podem ser implementados em pseudo-cdigo, Python, C, C++, Java, Pascal ou em qualquer outra linguagem. Os exerccios esto divididos em categorias e procuram obedecer uma ordem de dificuldade crescente. Cada exerccio independente do outro, sendo possvel deixar exerccios para trs sem grandes prejuzos.

SUMRIO 1. 2. 3. 4. 5. 6. 7. 8. 9. Estrutura Sequencial .............................................................................................. 3 Estrutura de Deciso .............................................................................................. 5 Estrutura de Repetio ........................................................................................... 9 Exerccios com Listas .......................................................................................... 16 Exerccios com Funes ....................................................................................... 23 Exerccios com Strings......................................................................................... 25 Exerccios com Arquivos ..................................................................................... 27 Exerccios com Classes ........................................................................................ 28 Projetos................................................................................................................ 32

1. 1.1 1.2

Estrutura Sequencial Faa um Programa que mostre a mensagem "Alo mundo" na tela. Faa um Programa que pea um nmero e ento mostre a mensagem ''O nmero informado foi [nmero]''. Faa um Programa que pea dois nmeros e imprima a soma. Faa um Programa que pea as 4 notas bimestrais e mostre a mdia. Faa um Programa que converta metros para centmetros. Faa um Programa que pea o raio de um crculo, calcule e mostre sua rea. Faa um Programa que calcule a rea de um quadrado, em seguida mostre o dobro desta rea para o usurio. Faa um Programa que pergunte quanto voc ganha por hora e o nmero de horas trabalhadas no ms. Calcule e mostre o total do seu salrio no referido ms. Faa um Programa que pea a temperatura em graus Farenheit, transforme e mostre a temperatura em graus Celsius.
C = (5 * (F-32) / 9).

1.3 1.4 1.5 1.6 1.7

1.8

1.9

1.10 Faa um Programa que pea a temperatura em graus Celsius, transforme e mostre em graus Farenheit. 1.11 Faa um Programa que pea 2 nmeros inteiros e um nmero real. Calcule e mostre:
a. o produto do dobro do primeiro com metade do segundo . b. a soma do triplo do primeiro com o terceiro. c. o terceiro elevado ao cubo.

1.12 Tendo como dados de entrada a altura de uma pessoa, construa um algoritmo que calcule seu peso ideal, usando a seguinte frmula: (72.7*altura) - 58 1.13 Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes frmulas:
a. Para b. Para c. Pea abaixo do homens: (72.7*h) - 58 mulheres: (62.1*h) - 44.7 (h = altura) o peso da pessoa e informe se ela est dentro, acima ou peso.

1.14 Joo Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o rendimento dirio de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do estado de So Paulo (50 quilos) deve pagar uma multa de R$ 4,00 por quilo excedente. Joo precisa que voc faa um programa que leia a varivel peso (peso de peixes) e verifique se h excesso. Se houver, gravar na varivel excesso e na varivel multa o valor da multa que Joo dever pagar. Caso contrrio mostrar tais variveis com o contedo ZERO. 1.15 Faa um Programa que pergunte quanto voc ganha por hora e o nmero de horas trabalhadas no ms. Calcule e mostre o total do seu salrio no referido ms, sabendo-se que so descontados 11% para o Imposto de Renda, 8% para o INSS e 5% para o sindicato, faa um programa que nos d:
a. salrio bruto. b. quanto pagou ao INSS. c. quanto pagou ao sindicato. d. o salrio lquido. e. calcule os descontos e o salrio lquido, conforme a tabela abaixo: + = Salrio Bruto : R$ IR (11%) : R$ INSS (8%) : R$ Sindicato ( 5%) : R$ Salrio Liquido : R$ Obs.: Salrio Bruto - Descontos = Salrio Lquido.

1.16 Faa um programa para uma loja de tintas. O programa dever pedir o tamanho em metros quadrados da rea a ser pintada. Considere que a cobertura da tinta de 1 litro para cada 3 metros quadrados e que a tinta vendida em latas de 18 litros, que custam R$ 80,00. Informe ao usurio a quantidades de latas de tinta a serem compradas e o preo total. 1.17 Faa um Programa para uma loja de tintas. O programa dever pedir o tamanho em metros quadrados da rea a ser pintada. Considere que a cobertura da tinta de 1 litro para cada 6 metros quadrados e que a tinta vendida em latas de 18 litros, que custam R$ 80,00 ou em gales de 3,6 litros, que custam R$ 25,00.
Informe ao usurio as quantidades de tinta a serem compradas e os respectivos preos em 3 situaes: a. comprar apenas latas de 18 litros; b. comprar apenas gales de 3,6 litros; c. misturar latas e gales, de forma que o preo seja o menor. Acrescente 10% de folga e sempre arredonde os valores para cima, isto , considere latas cheias.

1.18 Faa um programa que pea o tamanho de um arquivo para download (em MB) e a velocidade de um link de Internet (em Mbps), calcule e informe o tempo aproximado de download do arquivo usando este link (em minutos).

2. 2.1 2.2

Estrutura de Deciso Faa um Programa que pea dois nmeros e imprima o maior deles. Faa um Programa que pea um valor e mostre na tela se o valor positivo ou negativo. Faa um Programa que verifique se uma letra digitada "F" ou "M". Conforme a letra escrever: F - Feminino, M - Masculino, Sexo Invlido. Faa um Programa que verifique se uma letra digitada vogal ou consoante. Faa um programa para a leitura de duas notas parciais de um aluno. O programa deve calcular a mdia alcanada por aluno e apresentar:

2.3

2.4 2.5

* A mensagem "Aprovado", se a mdia alcanada for maior ou igual a sete; * A mensagem "Reprovado", se a mdia for menor do que sete; * A mensagem "Aprovado com Distino", se a mdia for igual a dez.

2.6 2.7 2.8

Faa um Programa que leia trs nmeros e mostre o maior deles. Faa um Programa que leia trs nmeros e mostre o maior e o menor deles. Faa um programa que pergunte o preo de trs produtos e informe qual produto voc deve comprar, sabendo que a deciso sempre pelo mais barato. Faa um Programa que leia trs nmeros e mostre-os em ordem decrescente.

2.9

2.10 Faa um Programa que pergunte em que turno voc estuda. Pea para digitar Mmatutino ou V-Vespertino ou N- Noturno. Imprima a mensagem "Bom Dia!", "Boa Tarde!" ou "Boa Noite!" ou "Valor Invlido!", conforme o caso. 2.11 As Organizaes Tabajara resolveram dar um aumento de salrio aos seus colaboradores e lhe contraram para desenvolver o programa que calcular os reajustes. 2.12
* * * *

Faa um programa que recebe o salrio de um colaborador e o reajuste segundo o seguinte critrio, baseado no salrio atual:
salrios salrios salrios salrios at R$ 280,00 (incluindo) entre R$ 280,00 e R$ 700,00 entre R$ 700,00 e R$ 1500,00 de R$ 1500,00 em diante : : : : aumento aumento aumento aumento de de de de 20% 15% 10% 5%

Aps o aumento ser realizado, informe na tela: a. b. c. d. o o o o salrio antes do reajuste; percentual de aumento aplicado; valor do aumento; novo salrio, aps o aumento.

2.13 Faa um programa para o clculo de uma folha de pagamento, sabendo que os descontos so do Imposto de Renda, que depende do salrio bruto (conforme tabela abaixo) e 3% para o Sindicato e que o FGTS corresponde a 11% do Salrio Bruto, mas no descontado ( a empresa que deposita). O Salrio Lquido corresponde ao Salrio Bruto menos os descontos. O programa dever pedir ao usurio o valor da sua hora e a quantidade de horas trabalhadas no ms.
Desconto do IR: * Salrio Bruto * Salrio Bruto * Salrio Bruto * Salrio Bruto at 900 at 1500 at 2500 acima de (inclusive) - isento (inclusive) - desconto de 5% (inclusive) - desconto de 10% 2500 - desconto de 20%

Imprima na tela as informaes, dispostas conforme o exemplo abaixo. No exemplo o valor da hora 5 e a quantidade de hora 220. Salrio Bruto: (5 * 220) (-) IR (5%) (-) INSS ( 10%) FGTS (11%) Total de descontos Salrio Liquido : R$ 1100,00 : R$ 55,00 : R$ 110,00 : R$ 121,00 : R$ 165,00 : R$ 935,00

2.14 Faa um Programa que leia um nmero e exiba o dia correspondente da semana. (1-Domingo, 2- Segunda, etc.), se digitar outro valor deve aparecer valor invlido. 2.15 Faa um programa que l as duas notas parciais obtidas por um aluno numa disciplina ao longo de um semestre, e calcule a sua mdia. A atribuio de conceitos obedece tabela abaixo:
Mdia Entre Entre Entre Entre Entre de Aproveitamento Conceito 9.0 e 10.0 A 7.5 e 9.0 B 6.0 e 7.5 C 4.0 e 6.0 D 4.0 e zero E

2.16

O algoritmo deve mostrar na tela as notas, a mdia, o conceito correspondente e a mensagem APROVADO se o conceito for A, B ou C ou REPROVADO se o conceito for D ou E.

2.17 Faa um Programa que pea os 3 lados de um tringulo. O programa dever informar se os valores podem ser um tringulo. Indique, caso os lados formem um tringulo, se o mesmo : equiltero, issceles ou escaleno.
Dicas: a. Trs lados formam um tringulo quando a soma de quaisquer dois lados for maior que o terceiro; b. Tringulo Equiltero: trs lados iguais; c. Tringulo Issceles: quaisquer dois lados iguais; d. Tringulo Escaleno: trs lados diferentes;

2.18 Faa um programa que calcule as razes de uma equao do segundo grau, na forma ax2 + bx + c. O programa dever pedir os valores de a, b e c e fazer as consistncias, informando ao usurio nas seguintes situaes:
a. Se o usurio informar o valor de A igual a zero, a equao no do segundo grau e o programa no deve fazer pedir os demais valores, sendo encerrado; b. Se o delta calculado for negativo, a equao no possui raizes reais. Informe ao usurio e encerre o programa; c. Se o delta calculado for igual a zero a equao possui apenas uma raiz real; informe-a ao usurio; d. Se o delta for positivo, a equao possui duas raiz reais; informe-as ao usurio;

2.19 Faa um Programa que pea um nmero correspondente a um determinado ano e em seguida informe se este ano ou no bissexto. 2.20 Faa um Programa que pea uma data no formato dd/mm/aaaa e determine se a mesma uma data vlida. 2.21 Faa um Programa que leia um nmero inteiro menor que 1000 e imprima a quantidade de centenas, dezenas e unidades do mesmo.
Observando os termos no plural a colocao do "e", da vrgula entre outros. Exemplo: a. 326 = 3 centenas, 2 dezenas e 6 unidades b. 12 = 1 dezena e 2 unidades Testar com: 326, 300, 100, 320, 310,305, 301, 101, 311, 111, 25, 20, 10, 21, 11, 1, 7 e 16

2.22 Faa um Programa para leitura de trs notas parciais de um aluno. O programa deve calcular a mdia alcanada por aluno e presentar:
a. A mensagem "Aprovado", se a mdia for maior ou igual a 7, com a respectiva mdia alcanada; b. A mensagem "Reprovado", se a mdia for menor do que 7, com a respectiva mdia alcanada; c. A mensagem "Aprovado com Distino", se a mdia for igual a 10.

2.23 Faa um Programa para um caixa eletrnico. O programa dever perguntar ao usurio a valor do saque e depois informar quantas notas de cada valor sero fornecidas. As notas disponveis sero as de 1, 5, 10, 50 e 100 reais. O valor mnimo de 10 reais e o mximo de 600 reais. O programa no deve se preocupar com a quantidade de notas existentes na mquina.
a. Exemplo 1: Para sacar duas notas de 100, uma nota b. Exemplo 2: Para sacar trs notas de 100, uma nota quatro notas de 1. a quantia de 256 reais, o programa fornece de 50, uma nota de 5 e uma nota de 1; a quantia de 399 reais, o programa fornece de 50, quatro notas de 10, uma nota de 5 e

2.24 Faa um Programa que pea um nmero inteiro e determine se ele par ou impar. Dica: utilize o operador mdulo (resto da diviso).

2.25 Faa um Programa que pea um nmero e informe se o nmero inteiro ou decimal. Dica: utilize uma funo de arredondamento. 2.26 Faa um Programa que leia 2 nmeros e em seguida pergunte ao usurio qual operao ele deseja realizar. O resultado da operao deve ser acompanhado de uma frase que diga se o nmero :
a. par ou mpar; b. positivo ou negativo; c. inteiro ou decimal.

2.27 Faa um programa que faa 5 perguntas para uma pessoa sobre um crime. As perguntas so:
a. b. c. d. e. "Telefonou para a vtima?" "Esteve no local do crime?" "Mora perto da vtima?" "Devia para a vtima?" "J trabalhou com a vtima?"

2.28

O programa deve no final emitir uma classificao sobre a participao da pessoa no crime. Se a pessoa responder positivamente a 2 questes ela deve ser classificada como "Suspeita", entre 3 e 4 como "Cmplice" e 5 como "Assassino". Caso contrrio, ele ser classificado como "Inocente".

Um posto est vendendo combustveis com a seguinte tabela de descontos: a. lcool: b. at 20 litros, desconto de 3% por litro c. acima de 20 litros, desconto de 5% por litro d. Gasolina: e. at 20 litros, desconto de 4% por litro f. acima de 20 litros, desconto de 6% por litro

2.29

Escreva um algoritmo que leia o nmero de litros vendidos, o tipo de combustvel (codificado da seguinte forma: A-lcool, G-gasolina), calcule e imprima o valor a ser pago pelo cliente sabendo-se que o preo do litro da gasolina R$ 2,50 o preo do litro do lcool R$ 1,90.

Uma fruteira est vendendo frutas com a seguinte tabela de preos: At 5 Kg R$ 2,50 por Kg R$ 1,80 por Kg Acima de 5 Kg R$ 2,20 por Kg R$ 1,50 por Kg

Morango Ma

2.30

Se o cliente comprar mais de 8 Kg em frutas ou o valor total da compra ultrapassar R$ 25,00, receber ainda um desconto de 10% sobre este total. Escreva um algoritmo para ler a quantidade (em Kg) de morangos e a quantidade (em Kg) de maas adquiridas e escreva o valor a ser pago pelo cliente.

O Hipermercado Tabajara est com uma promoo de carnes que imperdvel. Confira:

At 5 Kg

Acima de 5 Kg

File Duplo Alcatra Picanha

R$ 4,90 por Kg R$ 5,90 por Kg R$ 6,90 por Kg

R$ 5,80 por Kg R$ 6,80 por Kg R$ 7,80 por Kg

2.31

Para atender a todos os clientes, cada cliente poder levar apenas um dos tipos de carne da promoo, porm no h limites para a quantidade de carne por cliente. Se compra for feita no carto Tabajara o cliente receber ainda um desconto de 5% sobre o total a compra. Escreva um programa que pea o tipo e a quantidade de carne comprada pelo usurio e gere um cupom fiscal, contendo as informaes da compra: tipo e quantidade de carne, preo total, tipo de pagamento, valor do desconto e valor a pagar.

3. 3.1

Estrutura de Repetio Faa um programa que pea uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja invlido e continue pedindo at que o usurio informe um valor vlido. Faa um programa que leia um nome de usurio e a sua senha e no aceite a senha igual ao nome do usurio, mostrando uma mensagem de erro e voltando a pedir as informaes. Faa um programa que leia e valide as seguintes informaes:
Nome: maior que 3 caracteres; Idade: entre 0 e 150; Salrio: maior que zero; Sexo: 'f' ou 'm'; Estado Civil: 's', 'c', 'v', 'd';

3.2

3.3
a. b. c. d. e.

3.4

Supondo que a populao de um pas A seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a populao de B seja 200000 habitantes com uma taxa de crescimento de 1.5%. Faa um programa que calcule e escreva o nmero de anos necessrios para que a populao do pas A ultrapasse ou iguale a populao do pas B, mantidas as taxas de crescimento. Altere o programa anterior permitindo ao usurio informar as populaes e as taxas de crescimento iniciais. Valide a entrada e permita repetir a operao. Faa um programa que imprima na tela os nmeros de 1 a 20, um abaixo do outro. Depois modifique o programa para que ele mostre os nmeros um ao lado do outro. Faa um programa que leia 5 nmeros e informe o maior nmero. Faa um programa que leia 5 nmeros e informe a soma e a mdia dos nmeros.

3.5

3.6

3.7 3.8

3.9

Faa um programa que imprima na tela apenas os nmeros mpares entre 1 e 50.

3.10 Faa um programa que receba dois nmeros inteiros e gere os nmeros inteiros que esto no intervalo compreendido por eles. 3.11 Altere o programa anterior para mostrar no final a soma dos nmeros. 3.12 Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer nmero inteiro entre 1 a 10. O usurio deve informar de qual numero ele deseja ver a tabuada. A sada deve ser conforme o exemplo abaixo:
Tabuada de 5: 5 X 1 = 5 5 X 2 = 10 ... 5 X 10 = 50

3.13 Faa um programa que pea dois nmeros, base e expoente, calcule e mostre o primeiro nmero elevado ao segundo nmero. No utilize a funo de potncia da linguagem. 3.14 Faa um programa que pea 10 nmeros inteiros, calcule e mostre a quantidade de nmeros pares e a quantidade de nmeros impares. 3.15 A srie de Fibonacci formada pela seqncia 1,1,2,3,5,8,13,21,34,55,... Faa um programa capaz de gerar a srie at o nsimo termo. 3.16 A srie de Fibonacci formada pela seqncia 0,1,1,2,3,5,8,13,21,34,55,... Faa um programa que gere a srie at que o valor seja maior que 500. 3.17 Faa um programa que calcule o fatorial de um nmero inteiro fornecido pelo usurio. Ex.: 5!=5.4.3.2.1=120 3.18 Faa um programa que, dado um conjunto de N nmeros, determine o menor valor, o maior valor e a soma dos valores. 3.19 Altere o programa anterior para que ele aceite apenas nmeros entre 0 e 1000. 3.20 Altere o programa de clculo do fatorial, permitindo ao usurio calcular o fatorial vrias vezes e limitando o fatorial a nmeros inteiros positivos e menores que 16. 3.21 Faa um programa que pea um nmero inteiro e determine se ele ou no um nmero primo. Um nmero primo aquele que divisvel somente por ele mesmo e por 1. 3.22 Altere o programa de clculo dos nmeros primos, informando, caso o nmero no seja primo, por quais nmero ele divisvel.

10

3.23 Faa um programa que mostre todos os primos entre 1 e N sendo N um nmero inteiro fornecido pelo usurio. O programa dever mostrar tambm o nmero de divises que ele executou para encontrar os nmeros primos. Sero avaliados o funcionamento, o estilo e o nmero de testes (divises) executados. 3.24 Faa um programa que calcule o mostre a mdia aritmtica de N notas. 3.25 Faa um programa que pea para n pessoas a sua idade, ao final o programa devera verificar se a mdia de idade da turma varia entre 0 e 25,26 e 60 e maior que 60; e ento, dizer se a turma jovem, adulta ou idosa, conforme a mdia calculada. 3.26 Numa eleio existem trs candidatos. Faa um programa que pea o nmero total de eleitores. Pea para cada eleitor votar e ao final mostrar o nmero de votos de cada candidato. 3.27 Faa um programa que calcule o nmero mdio de alunos por turma. Para isto, pea a quantidade de turmas e a quantidade de alunos para cada turma. As turmas no podem ter mais de 40 alunos. 3.28 Faa um programa que calcule o valor total investido por um colecionador em sua coleo de CDs e o valor mdio gasto em cada um deles. O usurio dever informar a quantidade de CDs e o valor para em cada um. 3.29 O Sr. Manoel Joaquim possui uma grande loja de artigos de R$ 1,99, com cerca de 10 caixas. Para agilizar o clculo de quanto cada cliente deve pagar ele desenvolveu um tabela que contm o nmero 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 preos. Voc foi contratado para desenvolver o programa que monta esta tabela de preos, que conter os preos de 1 at 50 produtos, conforme o exemplo abaixo:
Lojas Quase Dois - Tabela de preos 1 - R$ 1.99 2 - R$ 3.98 ... 50 - R$ 99.50

3.30 O Sr. Manoel Joaquim acaba de adquirir uma panificadora e pretende implantar a metodologia da tabelinha, que j um sucesso na sua loja de 1,99. Voc foi contratado para desenvolver o programa que monta a tabela de preos de pes, de 1 at 50 pes, a partir do preo do po informado pelo usurio, conforme o exemplo abaixo:
Preo do po: R$ 0.18 Panificadora Po de Ontem - Tabela de preos 1 - R$ 0.18 2 - R$ 0.36 ... 50 - R$ 9.00

11

3.31 O Sr. Manoel Joaquim expandiu seus negcios para alm dos negcios de 1,99 e agora possui uma loja de convenincias. Faa um programa que implemente uma caixa registradora rudimentar. O programa dever receber um nmero desconhecido de valores referentes aos preos das mercadorias. Um valor zero deve ser informado pelo operador para indicar o final da compra. O programa deve ento mostrar o total da compra e perguntar o valor em dinheiro que o cliente forneceu, para ento calcular e mostrar o valor do troco. Aps esta operao, o programa dever voltar ao ponto inicial, para registrar a prxima compra. A sada 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 ...

3.32 Faa um programa que calcule o fatorial de um nmero inteiro fornecido pelo usurio. Ex.: 5!=5.4.3.2.1=120. A sada deve ser conforme o exemplo abaixo:
Fatorial de: 5 5! = 5 . 4 . 3 . 2 . 1 = 120

3.33 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 mdia das temperaturas. 3.34 Os nmeros primos possuem vrias aplicaes dentro da Computao, por exemplo na Criptografia. Um nmero primo aquele que divisvel apenas por um e por ele mesmo. Faa um programa que pea um nmero inteiro e determine se ele ou no um nmero primo. 3.35 Encontrar nmeros primos uma tarefa difcil. Faa um programa que gera uma lista dos nmeros primos existentes entre 1 e um nmero inteiro informado pelo usurio. 3.36 Desenvolva um programa que faa a tabuada de um nmero qualquer inteiro que ser digitado pelo usurio, mas a tabuada no deve necessariamente iniciar em 1 e terminar em 10, o valor inicial e final devem ser informados tambm pelo usurio, conforme exemplo abaixo:
Montar a tabuada de: 5 Comear por: 4 Terminar em: 7 Vou 5 X 5 X 5 X 5 X montar a tabuada de 5 comeando em 4 e terminando em 7: 4 = 20 5 = 25 6 = 30 7 = 35

12

Obs: Voc deve verificar se o usurio no digitou o final menor que o inicial.

3.37 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 cdigo, sua altura e seu peso. O final da digitao de dados deve ser dada quando o usurio digitar 0 (zero) no campo cdigo. Ao encerrar o programa tambm deve ser informados os cdigos e valores do clente mais alto, do mais baixo, do mais gordo e do mais magro, alm da mdia das alturas e dos pesos dos clientes 3.38 Um funcionrio de uma empresa recebe aumento salarial anualmente: Sabe-se que:
a. Esse funcionrio foi contratado em 1995, com salrio inicial de R$ 1.000,00; b. Em 1996 recebeu aumento de 1,5% sobre seu salrio inicial; c. A partir de 1997 (inclusive), os aumentos salariais sempre correspondem ao dobro do percentual do ano anterior. Faa um programa que determine o salrio atual desse funcionrio. Aps concluir isto, altere o programa permitindo que o usurio digite o salrio inicial do funcionrio.

3.39 Faa um programa que leia dez conjuntos de dois valores, o primeiro representando o nmero do aluno e o segundo representando a sua altura em centmetros. Encontre o aluno mais alto e o mais baixo. Mostre o nmero do aluno mais alto e o nmero do aluno mais baixo, junto com suas alturas. 3.40 Foi feita uma estatstica em cinco cidades brasileiras para coletar dados sobre acidentes de trnsito. Foram obtidos os seguintes dados:
a. Cdigo da cidade; b. Nmero de veculos de passeio (em 1999); c. Nmero de acidentes de trnsito com vtimas (em 1999). Deseja-se saber: d. Qual o maior e menor ndice de acidentes de transito e a que cidade pertence; e. Qual a mdia de veculos nas cinco cidades juntas; f. Qual a mdia de acidentes de trnsito nas cidades com menos de 2.000 veculos de passeio.

3.41 Faa um programa que receba o valor de uma dvida e mostre uma tabela com os seguintes dados: valor da dvida, 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 dvida 1 0 3 10 6 15 9 20 12 25 Exemplo de sada do programa: Valor da Dvida Valor dos Juros Quantidade de Parcelas Valor da Parcela

13

R$ 1.000,00 R$ 1.100,00 R$ 1.150,00

0 100 150

1 3 6

R$ R$ R$

1.000,00 366,00 191,67

3.42 Faa um programa que leia uma quantidade indeterminada de nmeros positivos e conte quantos deles esto nos seguintes intervalos: [0-25], [26-50], [51-75] e [76100]. A entrada de dados dever terminar quando for lido um nmero negativo.
O cardpio de uma lanchonete o seguinte: Especificao Cdigo Cachorro Quente 100 Bauru Simples 101 Bauru com ovo 102 Hambrguer 103 Cheeseburguer 104 Refrigerante 105 Preo R$ 1,20 R$ 1,30 R$ 1,50 R$ 1,20 R$ 1,30 R$ 1,00

3.43

Faa um programa que leia o cdigo dos itens pedidos e as quantidades desejadas. Calcule e mostre o valor a ser pago por item (preo * quantidade) e o total geral do pedido. Considere que o cliente deve informar quando o pedido deve ser encerrado.

3.44 Em uma eleio presidencial existem quatro candidatos. Os votos so informados por meio de cdigo. Os cdigos utilizados so:
1 , 2, 3, 4 - Votos para os respectivos candidatos (voc deve montar a tabela ex: 1 - Jose/ 2- Joo/etc) 5 - Voto Nulo 6 - Voto em Branco Faa a. O b. O c. O d. A e. A um programa que calcule e mostre: total de votos para cada candidato; total de votos nulos; total de votos em branco; percentagem de votos nulos sobre o total de votos; percentagem de votos em branco sobre o total de votos.

Para finalizar o conjunto de votos tem-se o valor zero.

3.45 Desenvolver um programa para verificar a nota do aluno em uma prova com 10 questes, o programa deve perguntar ao aluno a resposta de cada questo 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). Aps cada aluno utilizar o sistema deve ser feita uma pergunta se outro aluno vai utilizar o sistema. Aps todos os alunos terem respondido informar:
a. Maior e Menor Acerto; b. Total de Alunos que utilizaram o sistema; c. A Mdia das Notas da Turma. Gabarito da Prova: 01 02 03 04 05 A B C D E

14

06 07 08 09 10

E D C B A

Aps concluir isto voc poderia incrementar o programa permitindo que o professor digite o gabarito da prova antes dos alunos usarem o programa.

3.46 Em uma competio de salto em distncia cada atleta tem direito a cinco saltos. No final da srie de saltos de cada atleta, o melhor e o pior resultados so eliminados. O seu resultado fica sendo a mdia dos trs valores restantes. Voc deve fazer um programa que receba o nome e as cinco distncias alcanadas pelo atleta em seus saltos e depois informe a mdia dos saltos conforme a descrio acima informada (retirar o melhor e o pior salto e depois calcular a mdia). Faa uso de uma lista para armazenar os saltos. Os saltos so informados na ordem da execuo, portanto no so ordenados. O programa deve ser encerrado quando no for informado o nome do atleta. A sada do programa deve ser conforme o exemplo abaixo:
Atleta: Rodrigo Curvllo Primeiro Salto: 6.5 m Segundo Salto: 6.1 m Terceiro Salto: 6.2 m Quarto Salto: 5.4 m Quinto Salto: 5.3 m Melhor salto: 6.5 m Pior salto: 5.3 m Mdia dos demais saltos: 5.9 m Resultado final: Rodrigo Curvllo: 5.9 m

3.47 Em uma competio de ginstica, cada atleta recebe votos de sete jurados. A melhor e a pior nota so eliminadas. A sua nota fica sendo a mdia dos votos restantes. Voc deve fazer um programa que receba o nome do ginasta e as notas dos sete jurados alcanadas pelo atleta em sua apresentao e depois informe a sua mdia, conforme a descrio acima informada (retirar o melhor e o pior salto e depois calcular a mdia com as notas restantes). As notas no so informados ordenadas. Um exemplo de sada do programa deve ser conforme o exemplo abaixo:
Atleta: Aparecido Parente Nota: 9.9 Nota: 7.5 Nota: 9.5 Nota: 8.5 Nota: 9.0 Nota: 8.5 Nota: 9.7 Resultado final: Atleta: Aparecido Parente Melhor nota: 9.9 Pior nota: 7.5

15

Mdia: 9,04

3.48 Faa um programa que pea um numero inteiro positivo e em seguida mostre este numero invertido.
Exemplo: 12376489 => 98467321

3.49 Faa um programa que mostre os n termos da Srie a seguir:


S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m. Imprima no final a soma da srie.

3.50 Sendo H= 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, Faa um programa que calcule o valor de H com N termos. 3.51 Faa um programa que mostre os n termos da Srie a seguir:
S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m. Imprima no final a soma da srie.

3.52 Sendo H= 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, Faa um programa que calcule o valor de H com N termos. 4. 4.1 4.2 Exerccios com Listas Faa um Programa que leia um vetor de 5 nmeros inteiros e mostre-os. Faa um Programa que leia um vetor de 10 nmeros reais e mostre-os na ordem inversa. Faa um Programa que leia 4 notas, mostre as notas e a mdia na tela. Faa um Programa que leia um vetor de 10 caracteres, e diga quantas consoantes foram lidas. Imprima as consoantes. Faa um Programa que leia 20 nmeros inteiros e armazene-os num vetor. Armazene os nmeros pares no vetor PAR e os nmeros IMPARES no vetor impar. Imprima os trs vetores. Faa um Programa que pea as quatro notas de 10 alunos, calcule e armazene num vetor a mdia de cada aluno, imprima o nmero de alunos com mdia maior ou igual a 7.0. Faa um Programa que leia um vetor de 5 nmeros inteiros, mostre a soma, a multiplicao e os nmeros.

4.3 4.4

4.5

4.6

4.7

16

4.8

Faa um Programa que pea a idade e a altura de 5 pessoas, armazene cada informao no seu respectivo vetor. Imprima a idade e a altura na ordem inversa a ordem lida. Faa um Programa que leia um vetor A com 10 nmeros inteiros, calcule e mostre a soma dos quadrados dos elementos do vetor.

4.9

4.10 Faa um Programa que leia dois vetores com 10 elementos cada. Gere um terceiro vetor de 20 elementos, cujos valores devero ser compostos pelos elementos intercalados dos dois outros vetores. 4.11 Altere o programa anterior, intercalando 3 vetores de 10 elementos cada. 4.12 Foram anotadas as idades e alturas de 30 alunos. Faa um Programa que determine quantos alunos com mais de 13 anos possuem altura inferior mdia de altura desses alunos. 4.13 Faa um programa que receba a temperatura mdia de cada ms do ano e armazene-as em uma lista. Aps isto, calcule a mdia anual das temperaturas e mostre todas as temperaturas acima da mdia anual, e em que ms elas ocorreram (mostrar o ms por extenso: 1 Janeiro, 2 Fevereiro, . . . ). 4.14 Utilizando listas faa um programa que faa 5 perguntas para uma pessoa sobre um crime. As perguntas so:
a. b. c. d. e. "Telefonou para a vtima?" "Esteve no local do crime?" "Mora perto da vtima?" "Devia para a vtima?" "J trabalhou com a vtima?" O programa deve no final emitir uma classificao sobre a participao da pessoa no crime. Se a pessoa responder positivamente a 2 questes ela deve ser classificada como "Suspeita", entre 3 e 4 como "Cmplice" e 5 como "Assassino". Caso contrrio, ele ser classificado como "Inocente".

4.15 Faa um programa que leia um nmero indeterminado de valores, correspondentes a notas, encerrando a entrada de dados quando for informado um valor igual a -1 (que no deve ser armazenado). Aps esta entrada de dados, faa:
a. Mostre a quantidade de valores que foram lidos; b. Exiba todos os valores na ordem em que foram informados, um ao lado do outro; c. Exiba todos os valores na ordem inversa que foram informados, um abaixo do outro; d. Calcule e mostre a soma dos valores; e. Calcule e mostre a mdia dos valores; f. Calcule e mostre a quantidade de valores acima da mdia calculada; g. Calcule e mostre a quantidade de valores abaixo de sete; h. Encerre o programa com uma mensagem;

17

4.16 Utilize uma lista para resolver o problema a seguir. Uma empresa paga seus vendedores com base em comisses. 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 salrios nos seguintes intervalos de valores:
a. b. c. d. e. f. g. h. i. $200 - $299 $300 - $399 $400 - $499 $500 - $599 $600 - $699 $700 - $799 $800 - $899 $900 - $999 $1000 em diante

Desafio: Crie ma frmula para chegar na posio da lista a partir do salrio, sem fazer vrios ''ifs'' aninhados.

4.17 Em uma competio de salto em distncia cada atleta tem direito a cinco saltos. O resultado do atleta ser determinado pela mdia dos cinco valores restantes. Voc deve fazer um programa que receba o nome e as cinco distncias alcanadas pelo atleta em seus saltos e depois informe o nome, os saltos e a mdia dos saltos. O programa deve ser encerrado quando no for informado o nome do atleta. A sada do programa deve ser conforme o exemplo abaixo:
Atleta: Rodrigo Curvllo Primeiro Salto: 6.5 m Segundo Salto: 6.1 m Terceiro Salto: 6.2 m Quarto Salto: 5.4 m Quinto Salto: 5.3 m Resultado final: Atleta: Rodrigo Curvllo Saltos: 6.5 - 6.1 - 6.2 - 5.4 - 5.3 Mdia dos saltos: 5.9 m

4.18 Uma grande emissora de televiso quer fazer uma enquete entre os seus telespectadores para saber qual o melhor jogador aps cada jogo. Para isto, faz-se necessrio o desenvolvimento de um programa, que ser utilizado pelas telefonistas, para a computao dos votos. Sua equipe foi contratada para desenvolver este programa, utilizando a linguagem de programao C++. Para computar cada voto, a telefonista digitar um nmero, entre 1 e 23, correspondente ao nmero da camisa do jogador. Um nmero de jogador igual zero, indica que a votao foi encerrada. Se um nmero invlido for digitado, o programa deve ignor-lo, mostrando uma breve mensagem de aviso, e voltando a pedir outro nmero. Aps o final da votao, o programa dever exibir:
a. O total de votos computados; b. Os nmeos e respectivos votos de todos os jogadores que receberam votos;

18

c. O percentual de votos de cada um destes jogadores; d. O nmero do jogador escolhido como o melhor jogador da partida, juntamente com o nmero de votos e o percentual de votos dados a ele. Observe que os votos invlidos e o zero final no devem ser computados como votos. O resultado aparece ordenado pelo nmero do jogador. O programa deve fazer uso de arrays. O programa dever executar o clculo do percentual de cada jogador atravs de uma funo. Esta funo receber dois parmetros: o nmero de votos de um jogador e o total de votos. A funo calcular o percentual e retornar o valor calculado. Abaixo segue uma tela de exemplo. O disposio das informaes deve ser o mais prxima possvel ao exemplo. Os dados so fictcios e podem mudar a cada execuo do programa. Ao final, o programa deve ainda gravar os dados referentes ao resultado da votao em um arquivo texto no disco, obedecendo a mesma disposio apresentada na tela. Enquete: Quem foi o melhor jogador? Nmero do jogador (0=fim): Nmero do jogador (0=fim): Nmero do jogador (0=fim): Nmero do jogador (0=fim): Nmero do jogador (0=fim): Nmero do jogador (0=fim): Nmero do jogador (0=fim): Informe um valor entre 1 e Nmero do jogador (0=fim): Nmero do jogador (0=fim): Nmero do jogador (0=fim): Resultado da votao: Foram computados 8 votos. Jogador Votos % 9 4 10 3 11 1 O melhor jogador foi o nmero total de votos. 9 10 9 10 11 10 50 23 ou 0 para sair! 9 9 0

50,0% 37,5% 12,5% 9, com 4 votos, correspondendo a 50% do

4.19 Uma empresa de pesquisas precisa tabular os resultados da seguinte enquete feita a um grande quantidade de organizaes:
"Qual o melhor Sistema Operacional para uso em servidores?" As possveis respostas so: 123456Windows Server Unix Linux Netware Mac OS Outro

19

Voc foi contratado para desenvolver um programa que leia o resultado da enquete e informe ao final o resultado da mesma. O programa dever ler os valores at ser informado o valor 0, que encerra a entrada dos dados. No devero ser aceitos valores alm dos vlidos para o programa (0 a 6). Os valores referentes a cada uma das opes devem ser armazenados num vetor. Aps os dados terem sido completamente informados, o programa dever calcular a percentual de cada um dos concorrentes e informar o vencedor da enquete. O formato da sada foi dado pela empresa, e o seguinte: Sistema Operacional ------------------Windows Server Unix Linux Netware Mac OS Outro ------------------Total Votos ----1500 3500 3000 500 150 150 ----8800 % --17% 40% 34% 5% 2% 2%

O Sistema Operacional mais votado foi o Unix, com 3500 votos, correspondendo a 40% dos votos.

4.20 As Organizaes Tabajara resolveram dar um abono aos seus colaboradores em reconhecimento ao bom resultado alcanado durante o ano que passou. Para isto contratou voc para desenvolver a aplicao que servir como uma projeo de quanto ser gasto com o pagamento deste abono.
Aps reunies envolvendo a diretoria executiva, a diretoria financeira e os representantes do sindicato laboral, chegou-se a seguinte forma de clculo: a.Cada funcionrio receber o equivalente a 20% do seu salrio bruto de dezembro; a.O piso do abono ser de 100 reais, isto , aqueles funcionrios cujo salrio for muito baixo, recebem este valor mnimo; Neste momento, no se deve ter nenhuma preocupao com colaboradores com tempo menor de casa, descontos, impostos ou outras particularidades. Seu programa dever permitir a digitao do salrio de um nmero indefinido (desconhecido) de salrios. Um valor de salrio igual a 0 (zero) encerra a digitao. Aps a entrada de todos os dados o programa dever calcular o valor do abono concedido a cada colaborador, de acordo com a regra definida acima. Ao final, o programa dever apresentar: a. b. c. d. e. O O O O O salrio de cada funcionrio, juntamente com o valor do abono; nmero total de funcionrio processados; valor total a ser gasto com o pagamento do abono; nmero de funcionrio que receber o valor mnimo de 100 reais; maior valor pago como abono;

A tela abaixo um exemplo de execuo do programa, apenas para fins ilustrativos. Os valores podem mudar a cada execuo do programa. Projeo de Gastos com Abono ============================

20

Salrio: Salrio: Salrio: Salrio: Salrio: Salrio:

1000 300 500 100 4500 0 Abono R$ 200.00 R$ 100.00 R$ 100.00 R$ 100.00 R$ 900.00

Salrio R$ 1000.00 R$ 300.00 R$ 500.00 R$ 100.00 R$ 4500.00 Foram Total Valor Maior

processados 5 colaboradores gasto com abonos: R$ 1400.00 mnimo pago a 3 colaboradores valor de abono pago: R$ 900.00

4.21 Faa um programa que carregue uma lista com os modelos de cinco carros (exemplo de modelos: FUSCA, GOL, VECTRA etc). Carregue uma outra lista com o consumo desses carros, isto , quantos quilmetros cada um desses carros faz com um litro de combustvel. Calcule e mostre:
a. O modelo do carro mais econmico; a. Quantos litros de combustvel cada um dos carros cadastrados consome para percorrer uma distncia de 1000 quilmetros e quanto isto custar, considerando um que a gasolina custe R$ 2,25 o litro. Abaixo segue uma tela de exemplo. O disposio das informaes deve ser o mais prxima possvel ao exemplo. Os dados so fictcios e podem mudar a cada execuo do programa. Comparativo de Consumo de Combustvel Veculo 1 Nome: fusca Km por litro: 7 Veculo 2 Nome: gol Km por litro: 10 Veculo 3 Nome: uno Km por litro: 12.5 Veculo 4 Nome: Vectra Km por litro: 9 Veculo 5 Nome: Peugeout Km por litro: 14.5 Relatrio Final 1 - fusca 2 - gol 3 - uno 4 - vectra 5 - peugeout O menor consumo do

7.0 10.0 12.5 9.0 14.5 peugeout.

142.9 100.0 80.0 111.1 69.0

litros litros litros litros litros

R$ R$ R$ R$ R$

321.43 225.00 180.00 250.00 155.17

21

4.22 Sua organizao acaba de contratar um estagirio para trabalhar no Suporte de Informtica, com a inteno de fazer um levantamento nas sucatas encontradas nesta rea. A primeira tarefa dele testar todos os cerca de 200 mouses que se encontram l, testando e anotando o estado de cada um deles, para verificar o que se pode aproveitar deles.
Foi requisitado que voc desenvolva um programa para registrar este levantamento. O programa dever receber um nmero indeterminado de entradas, cada uma contendo: um nmero de identificao do mouse o tipo de defeito: a. necessita da esfera; b. necessita de limpeza; c.necessita troca do cabo ou conector; d.quebrado ou inutilizado Uma identificao igual a zero encerra o programa. Ao final o programa dever emitir o seguinte relatrio: Quantidade de mouses: 100 Situao Quantidade 1- necessita da esfera 40 2- necessita de limpeza 30% 3- necessita troca do cabo ou conector 15 4- quebrado ou inutilizado 15 Percentual 40% 30 15% 15%

4.23 A ACME Inc., uma empresa de 500 funcionrios, est tendo problemas de espao em disco no seu servidor de arquivos. Para tentar resolver este problema, o Administrador de Rede precisa saber qual o espao ocupado pelos usurios, e identificar os usurios com maior espao ocupado. Atravs de um programa, baixado da Internet, ele conseguiu gerar o seguinte arquivo, chamado "usuarios.txt":
alexandre anderson antonio carlos cesar rosemary 456123789 1245698456 123456456 91257581 987458 789456125

Neste arquivo, o nome do usurio possui 15 caracteres. A partir deste arquivo, voc deve criar um programa que gere um relatrio, chamado "relatrio.txt", no seguinte formato: ACME Inc. Uso do espao em disco pelos usurios ----------------------------------------------------------------------Nr. Usurio Espao utilizado % do uso 1 2 3 4 5 6 alexandre anderson antonio carlos cesar rosemary 434,99 1187,99 117,73 87,03 0,94 752,88 MB MB MB MB MB MB 16,85% 46,02% 4,56% 3,37% 0,04% 29,16%

Espao total ocupado: 2581,57 MB

22

Espao mdio ocupado: 430,26 MB O arquivo de entrada deve ser lido uma nica vez, e os dados armazenados em memria, caso sejam necessrios, de forma a agilizar a execuo do programa. A converso da espao ocupado em disco, de bytes para megabytes dever ser feita atravs de uma funo separada, que ser chamada pelo programa principal. O clculo do percentual de uso tambm dever ser feito atravs de uma funo, que ser chamada pelo programa principal.

4.24 Faa um programa que simule um lanamento de dados. Lance o dado 100 vezes e armazene os resultados em um vetor . Depois, mostre quantas vezes cada valor foi conseguido. Dica: use um vetor de contadores(1-6) e uma funo para gerar numeros aleatrios, simulando os lanamentos dos dados.

5.

Exerccios com Funes

Veja tambm a pgina com as solues propostas pela comunidade em [[ExerciciosFuncoesSolucoes]]

5.1

Faa um programa para imprimir:


1 2 2 3 3 ..... n n

3 n n n n ... n

para um '''n''' informado pelo usurio. Use uma funo que receba um valor '''n''' inteiro e imprima at a n-sima linha.

5.2

Faa um programa para imprimir:


1 1 2 1 2 ..... 1 2

3 3 ... n

para um '''n''' informado pelo usurio. Use uma funo que receba um valor '''n''' inteiro imprima at a n-sima linha.

5.3

Faa um programa, com uma funo que necessite de trs argumentos, e que fornea a soma desses trs argumentos. Faa um programa, com uma funo que necessite de um argumento. A funo retorna o valor de caractere P, se seu argumento for positivo, e N, se seu argumento for zero ou negativo.

5.4

23

5.5

Faa um programa com uma funo chamada somaImposto. A funo possui dois parmetros formais: taxaImposto, que a quantia de imposto sobre vendas expressa em porcentagem e custo, que o custo de um item antes do imposto. A funo altera o valor de custo para incluir o imposto sobre vendas. Faa um programa que converta da notao de 24 horas para a notao de 12 horas. Por exemplo, o programa deve converter 14:25 em 2:25 P.M. A entrada dada em dois inteiros. Deve haver pelo menos duas funes: uma para fazer a converso e uma para a sada. Registre a informao A.M./P.M. como um valor A para A.M. e P para P.M. Assim, a funo para efetuar as converses ter um parmetro formal para registrar se A.M. ou P.M. Inclua um loop que permita que o usurio repita esse clculo para novos valores de entrada todas as vezes que desejar. Faa um programa que use a funo valorPagamento para determinar o valor a ser pago por uma prestao de uma conta. O programa dever solicitar ao usurio o valor da prestao e o nmero de dias em atraso e passar estes valores para a funo valorPagamento, que calcular o valor a ser pago e devolver este valor ao programa que a chamou. O programa dever ento exibir o valor a ser pago na tela. Aps a execuo o programa dever voltar a pedir outro valor de prestao e assim continuar at que seja informado um valor igual a zero para a prestao. Neste momento o programa dever ser encerrado, exibindo o relatrio do dia, que conter a quantidade e o valor total de prestaes pagas no dia. O clculo do valor a ser pago feito da seguinte forma. Para pagamentos sem atraso, cobrar o valor da prestao. Quando houver atraso, cobrar 3% de multa, mais 0,1% de juros por dia de atraso. Faa uma funo que informe a quantidade de dgitos de um determinado nmero inteiro informado. '''Reverso do nmero.''' Faa uma funo que retorne o reverso de um nmero inteiro informado. Por exemplo: 127 -> 721.

5.6

5.7

5.8

5.9

5.10 '''Jogo de Craps.''' Faa um programa de implemente um jogo de Craps. O jogador lana um par de dados, obtendo um valor entre 2 e 12. Se, na primeira jogada, voc tirar 7 ou 11, voc um "natural" e ganhou. Se voc tirar 2, 3 ou 12 na primeira jogada, isto chamado de "craps" e voc perdeu. Se, na primeira jogada, voc fez um 4, 5, 6, 8, 9 ou 10,este seu "Ponto". Seu objetivo agora continuar jogando os dados at tirar este nmero novamente. Voc perde, no entanto, se tirar um 7 antes de tirar este Ponto novamente. 5.11 '''Data com ms por extenso'''. Construa uma funo que receba uma data no formato ''DD/MM/AAAA'' e devolva uma string no formato ''D de mesPorExtenso de AAAA''. Opcionalmente, valide a data e retorne NULL caso a data seja invlida.

24

5.12 '''Embaralha palavra'''. Construa uma funo que receba uma string como parmetro e devolva outra string com os carateres embaralhados. Por exemplo: se funo receber a palavra ''python'', pode retornar ''npthyo'', ''ophtyn'' ou qualquer outra combinao possvel, de forma aleatria. Padronize em sua funo que todos os caracteres sero devolvidos em caixa alta ou caixa baixa, independentemente de como foram digitados. 5.13 '''Desenha moldura'''. Construa uma funo que desenhe um retngulo usando os caracteres + , e | . Esta funo deve receber dois parmetros, ''linhas'' e ''colunas'', sendo que o valor por omisso o valor mnimo igual a 1 e o valor mximo 20. Se valores fora da faixa forem informados, eles devem ser modificados para valores dentro da faixa de forma elegante. 5.14 '''Quadrado mgico'''. Um quadrado mgico aquele dividido em linhas e colunas, com um nmero em cada posio e no qual a soma das linhas, colunas e diagonais a mesma. Por exemplo, veja um quadrado mgico de lado 3, com nmeros de 1 a 9:
8 1 6 3 5 7 4 9 2

5.15

Elabore uma funo que identifica e mostra na tela todos os quadrados mgicos com as caractersticas acima. Dica: produza todas as combinaes possveis e verifique a soma quando completar cada quadrado. Usar um vetor de 1 a 9 parece ser mais simples que usar uma matriz 3x3.

6. 6.1

Exerccios com Strings '''Tamanho de strings.''' Faa um programa que leia 2 strings e informe o contedo delas seguido do seu comprimento. Informe tambm se as duas strings possuem o mesmo comprimento e so iguais ou diferentes no contedo.

Compara duas strings String 1: Brasil Hexa 2006 String 2: Brasil! Hexa 2006! Tamanho de "Brasil Hexa 2006": 16 caracteres Tamanho de "Brasil! Hexa 2006!": 18 caracteres As duas strings so de tamanhos diferentes. As duas strings possuem contedo diferente.

6.2

'''Nome ao contrrio em maisculas.''' Faa um programa que permita ao usurio digitar o seu nome e em seguida mostre o nome do usurio de trs para frente utilizando somente letras maisculas. Dica: lembrese que ao informar o nome o usurio pode digitar letras maisculas ou minsculas. '''Nome na vertical.''' Faa um programa que solicite o nome do usurio e imprima-o na vertical.

6.3
F U

25

L A N O

6.4

'''Nome na vertical em escada.''' Modifique o programa anterior de forma a mostrar o nome em formato de escada.

F FU FUL FULA FULAN FULANO

6.5

'''Nome na vertical em escada invertida.''' Altere o programa anterior de modo que a escada seja invertida.

FULANO FULAN FULA FUL FU F

6.6

'''Data por extenso.''' Faa um programa que solicite a data de nascimento (dd/mm/aaaa) do usurio e imprima a data com o nome do ms por extenso.

Data de Nascimento: 29/10/1973 Voc nasceu em 29 de Outubro de 1973.

6.7

'''Conta espaos e vogais.''' Dado uma string com uma frase informada pelo usurio (incluindo espaos em branco), conte:

a. quantos espaos em branco existem na frase. b. quantas vezes aparecem as vogais a, e, i, o, u.

6.8

'''Palndromo.''' Um palndromo uma seqncia de caracteres cuja leitura idntica se feita da direita para esquerda ou viceversa. Por exemplo: '''OSSO''' e '''OVO''' so palndromos. Em textos mais complexos os espaos e pontuao so ignorados. A frase '''SUBI NO ONIBUS''' o exemplo de uma frase palndroma onde os espaos foram ignorados. Faa um programa que leia uma seqncia de caracteres, mostrea e diga se um palndromo ou no. '''Verificao de CPF.''' Desenvolva um programa que solicite a digitao de um nmero de CPF no formato '''xxx.xxx.xxx-xx''' e indique se um nmero vlido ou invlido atravs da validao dos dgitos verificadores edos caracteres de formatao.

6.9

6.10 '''Nmero por extenso.''' Escreva um programa que solicite ao usurio a digitao de um nmero at 99 e imprima-o na tela por extenso. 6.11 '''Jogo de Forca.''' Desenvolva um jogo da forca. O programa ter uma lista de palavras lidas de um arquivo texto e escolher uma aleatoriamente. O jogador poder errar 6 vezes antes de ser enforcado.

26

Digite uma letra: A -> Voc errou pela 1 vez. Tente de novo! Digite uma letra: O A palavra : _ _ _ _ O Digite uma letra: E A palavra : _ E _ _ O Digite uma letra: S -> Voc errou pela 2 vez. Tente de novo!

6.12 '''Valida e corrige nmero de telefone'''. Faa um programa que leia um nmero de telefone, e corrija o nmero no caso deste conter somente 7 dgitos, acrescentando o '3' na frente. O usurio pode informar o nmero com ou sem o trao separador.
Valida e corrige nmero de telefone Telefone: 461-0133 Telefone possui 7 dgitos. Vou acrescentar o digito trs na frente. Telefone corrigido sem formatao: 34610133 Telefone corrigido com formatao: 3461-0133

6.13 '''Jogo da palavra embaralhada.''' Desenvolva um jogo em que o usurio tenha que adivinhar uma palavra que ser mostrada com as letras embaralhadas. O programa ter uma lista de palavras lidas de um arquivo texto e escolher uma aleatoriamente. O jogador ter seis tentativas para adivinhar a palavra. Ao final a palavra deve ser mostrada na tela, informando se o usurio ganhou ou perdeu o jogo. 6.14 '''Leet spek generator.''' Leet uma forma de se escrever o alfabeto latino usando outros smbolos em lugar das letras, como nmeros por exemplo. A prpria palavra leet admite muitas variaes, como l33t ou 1337. O uso do leet reflete uma subcultura relacionada ao mundo dos jogos de computador e internet, sendo muito usada para confundir os iniciantes e afirmar-se como parte de um grupo. Pesquise sobre as principais formas de traduzir as letras. Depois, faa um programa que pea uma texto e transforme-o para a grafia leet speak.

7. 7.1

Exerccios com Arquivos Faa um programa que leia um arquivo texto contendo uma lista de endereos IP e gere um outro arquivo, contendo um relatrio dos endereos IP vlidos e invlidos.

O arquivo de entrada possui o seguinte formato: 200.135.80.9 192.168.1.1 8.35.67.74 257.32.4.5 85.345.1.2 1.2.3.4 9.8.234.5 192.168.0.256

27

O arquivo de sada possui o seguinte formato: [Endereos vlidos:] 200.135.80.9 192.168.1.1 8.35.67.74 1.2.3.4 [Endereos invlidos:] 257.32.4.5 85.345.1.2 9.8.234.5 192.168.0.256

7.2

A ACME Inc., uma empresa de 500 funcionrios, est tendo problemas de espao em disco no seu servidor de arquivos. Para tentar resolver este problema, o Administrador de Rede precisa saber qual o espao ocupado pelos usurios, e identificar os usurios com maior espao ocupado. Atravs de um programa, baixado da Internet, ele conseguiu gerar o seguinte arquivo, chamado "usuarios.txt":
456123789 1245698456 123456456 91257581 987458 789456125

alexandre anderson antonio carlos cesar rosemary

Neste arquivo, o nome do usurio possui 15 caracteres. A partir deste arquivo, voc deve criar um programa que gere um relatrio, chamado "relatrio.txt", no seguinte formato: ACME Inc. Uso do espao em disco pelos usurios ----------------------------------------------------------------------Nr. Usurio Espao utilizado % do uso 1 2 3 4 5 6 alexandre anderson antonio carlos cesar rosemary 434,99 1187,99 117,73 87,03 0,94 752,88 MB MB MB MB MB MB 16,85% 46,02% 4,56% 3,37% 0,04% 29,16%

Espao total ocupado: 2581,57 MB Espao mdio ocupado: 430,26 MB O arquivo de entrada deve ser lido uma nica vez, e os dados armazenados em memria, caso sejam necessrios, de forma a agilizar a execuo do programa. A converso da espao ocupado em disco, de bytes para megabytes dever ser feita atravs de uma funo separada, que ser chamada pelo programa principal. O clculo do percentual de uso tambm dever ser feito atravs de uma funo, que ser chamada pelo programa principal.

8.

Exerccios com Classes

28

8.1

Classe Bola: Crie uma classe que modele uma bola:


a. Atributos: Cor, circunferncia, material b. Mtodos: trocaCor e mostraCor

8.2

Classe Quadrado: Crie uma classe que modele um quadrado:


a. Atributos: Tamanho do lado b. Mtodos: Mudar valor do Lado, Retornar valor do Lado e calcular rea;

8.3

Classe Retangulo: Crie uma classe que modele um retangulo:


a. Atributos: LadoA, LadoB (ou Comprimento e Largura, ou Base e Altura, a escolher) b. Mtodos: Mudar valor dos lados, Retornar valor dos lados, calcular rea e calcular Permetro; c. Crie um programa que utilize esta classe. Ele deve pedir ao usurio que informe as medidades de um local. Depois, deve criar um objeto com as medidas e calcular a quantidade de pisos e de rodaps necessrias para o local.

8.4

Classe Pessoa: Crie uma classe que modele uma pessoa:


a. Atributos: nome, idade, peso e altura b. Mtodos: Envelhercer, engordar, emagrecer, crescer. Obs: Por padro, a cada ano que nossa pessoa envelhece, sendo a idade dela menor que 21 anos, ela deve crescer 0,5 cm.

8.5

Classe Conta Corrente: Crie uma classe para implementar uma conta corrente. A classe deve possuir os seguintes atributos: nmero da conta, nome do correntista e saldo. Os mtodos so os seguintes: alterarNome, depsito e saque; No construtor, saldo opcional, com valor default zero e os demais atributos so obrigatrios. Classe TV: Faa um programa que simule um televisor criando-o como um objeto. O usurio deve ser capaz de informar o nmero do canal e aumentar ou diminuir o volume. Certifique-se de que o nmero do canal e o nvel do volume permanecem dentro de faixas vlidas. Classe Bichinho Virtual:Crie uma classe que modele um Tamagushi (Bichinho Eletrnico):
a. Atributos: Nome, Fome, Sade e Idade b. Mtodos: Alterar Nome, Fome, Sade e Idade; Retornar Nome, Fome, Sade e Idade Obs: Existe mais uma informao que devemos levar em considerao, o Humor do nosso tamagushi, este humor uma combinao entre os atributos Fome e Sade, ou seja, um campo calculado, ento no devemos criar um atributo para armazenar esta informao por que ela pode ser calculada a qualquer momento.

8.6

8.7

29

8.8

Classe Macaco: Desenvolva uma classe Macaco,que possua os atributos nome e bucho (estomago) e pelo menos os mtodos comer(), verBucho() e digerir(). Faa um programa ou teste interativamente, criando pelo menos dois macacos, alimentando-os com pelo menos 3 alimentos diferentes e verificando o contedo do estomago a cada refeio. Experimente fazer com que um macaco coma o outro. possvel criar um macaco canibal? Classe Ponto e Retangulo: Faa um programa completo utilizando funes e classes que:
a. Possua uma classe chamada Ponto, com os atributos x e y. b. Possua uma classe chamada Retangulo, com os atributos largura e altura. c. Possua uma funo para imprimir os valores da classe Ponto d. Possua uma funo para encontrar o centro de um Retngulo. e. Voc deve criar alguns objetos da classe Retangulo. f. Cada objeto deve ter um vrtice de partida, por exemplo, o vrtice inferior esquerdo do retngulo, que deve ser um objeto da classe Ponto. g. A funo para encontrar o centro do retngulo deve retornar o valor para um objeto do tipo ponto que indique os valores de x e y para o centro do objeto. h. O valor do centro do objeto deve ser mostrado na tela i. Crie um menu para alterar os valores do retngulo e imprimir o centro deste retngulo.

8.9

8.10

Classe Bomba de Combustvel: Faa um programa completo utilizando classes e mtodos que:

a. Possua uma classe chamada bombaCombustvel, com no mnimo esses atributos: i. tipoCombustivel. ii. valorLitro iii. quantidadeCombustivel b. Possua no mnimo esses mtodos: i. abastecerPorValor( ) mtodo onde informado o valor a ser abastecido e mostra a quantidade de litros que foi colocada no veculo ii. abastecerPorLitro( ) mtodo onde informado a quantidade em litros de combustvel e mostra o valor a ser pago pelo cliente. iii. alterarValor( ) altera o valor do litro do combustvel. iv. alterarCombustivel( ) altera o tipo do combustvel. v. alterarQuantidadeCombustivel( ) altera a quantidade de combustvel restante na bomba. OBS: Sempre que acontecer um abastecimento necessrio atualizar a quantidade de combustvel total na bomba.

8.11

Classe carro: Implemente uma classe chamada Carro com as seguintes propriedades:

a. Um veculo tem um certo consumo de combustvel (medidos em km / litro) e uma certa quantidade de combustvel no tanque. b. O consumo especificado no construtor e o nvel de combustvel inicial 0.

30

c. Fornea um mtodo andar( ) que simule o ato de dirigir o veculo por uma certa distncia, reduzindo o nvel de combustvel no tanque de gasolina. d. Fornea um mtodo obterGasolina( ), que retorna o nvel atual de combustvel. e. Fornea um mtodo adicionarGasolina( ), para abastecer o tanque. Exemplo de uso: f. meuFusca = Carro(15); # 15 quilmetros por litro de combustvel. g. meuFusca.adicionarGasolina(20); # abastece com 20 litros de combustvel. h. meuFusca.andar(100); # anda 100 quilmetros. meuFusca.obterGasolina() # Imprime o combustvel que resta no tanque.

8.12

Classe Conta de Investimento: Faa uma classe contaInvestimento que seja semelhante a classe contaBancaria, com a diferena de que se adicione um atributo taxaJuros. Fornea um construtor que configure tanto o saldo inicial como a taxa de juros. Fornea um mtodo adicioneJuros (sem parmetro explcito) que adicione juros conta. Escreva um programa que construa uma poupana com um saldo inicial de R$1000,00 e uma taxa de juros de 10%. Depois aplique o mtodo adicioneJuros() cinco vezes e imprime o saldo resultante. Classe Funcionrio: Implemente a classe Funcionrio. Um empregado tem um nome (um string) e um salrio(um double). Escreva um construtor com dois parmetros (nome e salrio) e mtodos para devolver nome e salrio. Escreva um pequeno programa que teste sua classe. Aprimore a classe do exerccio anterior para adicionar o mtodo aumentarSalario (porcentualDeAumento) que aumente o salrio do funcionrio em uma certa porcentagem.

8.13

8.14

Exemplo de uso: harry=funcionrio("Harry",25000) harry.aumentarSalario(10)

8.15

Classe Bichinho Virtual++: Melhore o programa do bichinho virtual, permitindo que o usurio especifique quanto de comida ele fornece ao bichinho e por quanto tempo ele brinca com o bichinho. Faa com que estes valores afetem quo rapidamente os nveis de fome e tdio caem. Crie uma "porta escondida" no programa do programa do bichinho virtual que mostre os valores exatos dos atributos do objeto. Consiga isto mostrando o objeto quando uma opo secreta, no listada no menu, for informada na escolha do usurio. Dica: acrescente um mtodo especial str() classe Bichinho.

8.16

31

8.17

Crie uma Fazenda de Bichinhos instanciando vrios objetos bichinho e mantendo o controle deles atravs de uma lista. Imite o funcionamento do programa bsico, mas ao invs de exigis que o usurio tome conta de um nico bichinho, exija que ele tome conta da fazenda inteira. Cada opo do menu deveria permitir que o usurio executasse uma ao para todos os bichinhos (alimentar todos os bichinhos, brincar com todos os bichinhos, ou ouvir a todos os bichinhos). Para tornar o programa mais interessante, d para cada bichinho um nivel inicial aleatrio de fome e tdio. Projetos Controle de cotas de disco. A ACME Inc., uma organizao com mais de 1500 funcionrios, est tendo problemas de espao em disco no seu servidor de arquivos. Para tentar resolver este problema, o Administrador de Rede precisa saber qual o espao em disco ocupado pelas contas dos usurios, e identificar os usurios com maior espao ocupado. Atravs de um aplicativo baixado da Internet, ele conseguiu gerar o seguinte arquivo, chamado usuarios.txt:
456123789 1245698456 123456456 91257581 987458 789456125

9. 9.1

alexandre anderson antonio carlos cesar rosemary

Neste arquivo, o primeiro campo corresponde ao login do usurio e o segundo ao espao em disco ocupado pelo seu diretrio home. A partir deste arquivo, voc deve criar um programa que gere um relatrio, chamado relatrio.txt, no seguinte formato:

ACME Inc. Uso do espao em disco pelos usurios ----------------------------------------------------------------------Nr. Usurio Espao utilizado % do uso 1 2 3 4 5 6 alexandre anderson antonio carlos cesar rosemary 434,99 1187,99 117,73 87,03 0,94 752,88 MB MB MB MB MB MB 16,85% 46,02% 4,56% 3,37% 0,04% 29,16%

Espao total ocupado: 2581,57 MB Espao mdio ocupado: 430,26 MB

O arquivo de entrada deve ser lido uma nica vez, e os dados armazenados em memria, caso sejam necessrios, de forma a agilizar a execuo do programa. A converso da espao ocupado em disco, de bytes para megabytes dever ser feita atravs de uma funo separada, que ser chamada pelo programa principal. O clculo do percentual de uso tambm dever ser feito atravs de uma funo, que ser chamada pelo programa principal.

32

Recursos adicionais: opcionalmente, desenvolva as seguintes funcionalidades:


Ordenar os usurios pelo percentual de espao ocupado; Mostrar apenas os n primeiros em uso, definido pelo usurio; Gerar a sada numa pgina html; Criar o programa que l as pastas e gera o arquivo inicial; Analisador de logs do Apache. Desenvolva um analisador de log do Apache que mostre quais as strings de pesquisa do google que mais levam internautas para o site da sua organizao. Analisador de logs do Squid: sites bloqueados. Desenvolva um analisador de log do Squid que mostre quais os sites mais bloqueados em uma organizao.

9.2

9.3

33