You are on page 1of 8

Engenharia da Computao Lgica Computacional 1

Lista de Exerccios Mdulo 1 (verso 2012.1)

1. Entrar com o peso, o sexo e a altura de uma determinada pessoa. Aps a digitao, exibir se esta pessoa est ou no com seu peso ideal. Veja tabela da relao peso/altura. Peso/altura (R) Femininos R < 19 19 <= R < 24 R >= 24 Mensagem Abaixo do peso Peso ideal Acima do peso peso/altura (R) Masculinos R < 20 20 <= R < 25 R >= 25 Mensagem Abaixo do peso Peso ideal Acima do peso

2. A partir dos valores da acelerao (a em m/s), da velocidade inicial (v0 em m/s) e do tempo de percurso ( t em s). Calcular e exibir a velocidade final de automvel em km/h. Exibir mensagem de acordo com a tabela: Frmula para o clculo da velocidade em m/s: V = v0 + a. t Velocidade em Km/h (V) V <= 40 40 < V <= 60 60 < V <= 80 80 < V <= 120 V > 120 Mensagem Veculo muito lento Velocidade permitida Velocidade de cruzeiro Veculo rpido Veculo muito rpido

3. Entrar via teclado com dois valores quaisquer. Aps a digitao, exibir um seletor de opes (menu) com as seguintes opes: 1 Multiplicao 2 Adio 3 Diviso 4 Subtrao 5 Fim de processo Solicitar uma opo por parte do usurio, verificar se ou no uma opo vlida (letras ou nmeros) e processar a respectiva operao. Enviar mensagem de erro se a opo escolhida no existir no seletor. Encerrar o programa somente quando o usurio escolher a opo de finalizao. Repare que a opo de nmero trs de diviso e o programa dever enviar mensagem de erro, (somente nesta opo) se o denominador for zero. 4. Exibir o seguinte seletor de opes e em funo de uma escolha, solicitar os dados necessrios para o clculo da respectiva rea. Enviar mensagem de erro se o usurio escolher uma opo inexistente. Encerrar o programa somente quando selecionada a opo de finalizao. 1 Tringulo 2 Quadrado 3 Retngulo 4 Crculo 5 Fim de processo

5. Faa um programa que recebe uma temperatura em graus fahrenheit (F) e converte para celsius (C). A frmula para converso C=5/9*(F-32). Uma vez calculada a temperatura, informe para o usurio se est frio (abaixo de 15 graus), normal (entre 15 e 30 graus) ou quente (acima de 30 graus). O programa deve repetir o clculo at que o usurio informe que deseja parar. 6. Elabore um programa que pede dez nmeros do usurio e mostra o maior nmero. Uma vez calculado o maior, o programa deve informar se este negativo, nulo ou positivo. 7. Elabore um algoritmo que leia um determinado valor inteiro e escreva todos os divisores deste numero. 8. Elabore um programa para calcular notas finais de alunos de uma classe. Cada nota final composta por uma nota de prova e dois trabalhos, segundo a frmula: nota final = Prova x 0,70 + ((Trab1 + Trab2)/2 )x 0,30. Dependendo do valor da nota, as seguintes mensagens devem ser emitidas: "recuperao", se a nota final for menor que 5.0; "passou", se a nota final estiver entre 5.0 e 10.0 (inclusive); "erro", se a nota final for maior que 10. O programa deve ser interrompido se o usurio digitar uma das notas negativa. 9. Faa um programa que calcula e mostra a raiz quadrada de uma seqncia numrica fornecida pelo usurio. Deve mostrar ainda a soma total dos nmeros fornecidos. O programa deve terminar se o usurio fornecer um nmero negativo ou quando a soma ultrapassar o valor 100 ou se a raiz quadrada for menor que 5. 10. Elabore um programa para calcular o salrio bruto e lquido de estagirios de uma empresa. Considere as entradas de salrio hora, horas trabalhadas e total de descontos. Exemplo: salrio hora= R$ 5,00 horas trabalhadas = 80 horas total de descontos= R$ 30,00 salrio bruto = 5*80 = R$ 400,00 salrio liquido = 400,00 - 30,00 = R$ 370,00 Se o salrio hora for menor que 4 e horas trabalhadas maior que 100, emitir a mensagem "Contratar", caso contrrio emitir "Dispensar". Deixe o controle de trmino do programa para o usurio, da seguinte forma: se ele digitar 'f', o programa deve encerrar, qualquer outra tecla deve solicitar novos valores. 11. Construa um programa que receba trs valores inteiros e positivos A, B e C, do usurio e verifique se estes valores podem representar os lados de um tringulo: se um dos lados for maior que a soma dos outros dois, ento no tringulo. Em caso afirmativo emitir a mensagem "A, B e C formam um tringulo", seno apresentar na tela a quantidade de nmeros existentes entre A e C, se A for maior que C. 12. Faa um programa que calcule o TOTAL (em dinheiro) de passagens vendidas, segundo o tipo da pessoa: estudante (e) ou idoso (i). Permita que o usurio entre com o valor normal da passagem e o tipo de pessoa. Estudantes devem ter 25% e idosos 50% de desconto. Seja p o valor normal de um passagem, o valor para o estudante p*0.75, para o idoso p*0.5. Deixe o controle de trmino do programa para o usurio, da seguinte forma: se ele digitar 'f', o programa deve encerrar, qualquer outra tecla deve solicitar novo valor de passagem e tipo de pessoa. 13. Construa um programa que solicita ao usurio um nmero de repeties N que ele deve executar. Em seguida, o programa pede N (o mesmo que o usurio informou) nmeros para o usurio. Finalmente, o programa apresenta os dois menores nmeros digitados. 14. Voc trabalha em uma empresa de desenvolvimento de jogos. Sua equipe est desenvolvendo um jogo de sinuca para celular. Sua responsabilidade desenvolver um programa capaz de avaliar se, ao dar uma tacada, a bolinha bate ou no em um dos cantos da mesa. O modelo da mesa apresentado a seguir.

(-100,-200)

(100,-200)

(0,0)

(-100,200)

(100,200)

A bola comea na posio (0,0). O usurio deve informar o ngulo de batida e a fora da batida F. Uma unidade da fora capaz de mover a uma distncia de 1, se a bola seguir na horizontal ou vertical. O seu programa deve informar, finalmente, se a bola, acertada com a fora e ngulo indicados, bater nas bordas da mesa, e em qual borda ou canto bater. 15. Construa um programa que realiza a diviso de um nmero inteiro N1 por outro N2, informados pelo usurio. O programa no pode utilizar o operador de diviso (/), mas somente subtraes, e deve apresentar resto e quociente. Simule uma entrada no programa e a sada com alguns nmeros. 16. Voc faz parte da equipe de desenvolvimento do sistema acadmico da FACENS. sua responsabilidade construir um programa que classifica uma sala de aula de acordo com a mdia final de seus alunos. A classe pode ser boa (mdia maior ou igual a 7), regular (mdia maior ou igual a 5 e menor que 7) ou ruim (menor que 5). O programa deve pedir, repetidamente, as notas dos mdulos 1 e 2, substitutiva do semestre 1, apresentando a mdia final de cada aluno. A mdia de cada semestre calculada atravs das duas maiores notas do semestre. Quando o usurio desejar finalizar, o sistema deve apresentar a mdia da classe e sua classificao. 17. Construa um programa de folha de pagamento. O programa deve pedir repetidamente o nome do funcionrio e o salrio bruto. O salrio final deve ter descontado o imposto, segundo a tabela abaixo. Quando o usurio decidir parar, o programa deve apresentar o total do salrio bruto, o total do salrio lquido e o total de impostos. Finalmente, deve apresentar o nmero de assalariados em cada uma das faixas do imposto. Faixa A B C Salrio Bruto At R$ 1000,00 De R$ 1000,01 at R$ 5000,00 Acima de R$ 5000,01 Imposto 5% 10% 20%

18. Voc trabalha em uma empresa de desenvolvimento de jogos. Sua equipe responsvel pela construo de um jogo que envolve labirintos, e voc ficou encarregado de escrever um programa para movimentar um personagem em um labirinto. Voc recebe do usurio o que o personagem v a frente, a esquerda, atrs e a direita, e decide para que lado ir. O personagem pode observar: B buraco M: monstro

L posio livre S sada O personagem tem que evitar se mover em buracos, ir na direo oposta do monstro, e buscar a sada. O programa pede o que o personagem v nas quatro direes e imprime para onde ele deve ir, at que o personagem ache a sada. 19. Voc est trabalhando no desenvolvimento de um jogo simples, e responsvel pela rotina de tratamento de coliso. Voc receber as coordenadas (x, y) de dois retngulos, bem como suas dimenses (altura e largura). Com estes dados seu programa deve informar se os objetos esto colidindo ou no. Veja os exemplos: (x1,y1) (x2,y2) (x1,y1) (x2,y2)

Sem coliso

Com coliso

20. Voc trabalha em uma empresa que atua na bolsa de valores. Existe a necessidade de identificar, em um ms, qual foi a maior alta da bolsa. Voc deve criar um programa que recebe do usurio vinte valores, que so os valores da bolsa em vinte dias de um determinado ms. Voc deve, a cada valor, calcular a diferena com o valor anterior, classificando aquele dia como alta (valor positivo), baixa (valor negativo) ou estacionrio (zero). Finalmente, apresente para o usurio o dia em que a bolsa teve a maior alta, em relao ao dia anterior. 21. Voc est desenvolvendo um jogo simples e precisa desenhar um muro de tijolos na tela. Existe uma funo pronta, chamada DrawRectangle, que desenha um retngulo na tela. Ela recebe como parmetros as coordenadas do canto superior esquerdo do retngulo, sua altura e largura, como no exemplo: DrawRectangle(x,y,a,l). Voc deve receber a coordenada (x,y) do primeiro tijolo, a altura e largura dos tijolos e nmero N de tijolos a desenhar. O programa deve desenhar os N tijolos, um ao lado do outro. Use a funo DrawRectangle para criar o programa. O efeito final ser, para N=5, seria: (x,y)

22. Voc trabalha na equipe de desenvolvimento de uma fbrica de montagem de computadores. Sua responsabilidade criar um programa para calcular o custo final de um computador, dados os seus componentes. Seu programa deve receber os componentes de um computador, at o usurio desejar parar. Cada componente tem um nome, uma quantidade e um custo unitrio. O programa deve calcular o custo total do equipamento. O governo incentiva a venda de computadores baratos, portanto, se o custo for menor que mil e quinhentos reais, pode-se aplicar um desconto de 10% no custo final. Mostre o custo final para o usurio. 23. Voc est trabalhando no desenvolvimento de um jogo simples, e responsvel pela rotina de tratamento de coliso. Voc receber as coordenadas (x, y) de trs crculos, bem como seus raios. Com estes dados seu programa deve informar se existe uma interseco tripla ou no. Veja os exemplos:

Sem interseco tripla Sem interseco tripla

Sem interseco tripla

Com interseco tripla

24. Crie um programa capaz de converter nmeros decimais para nmeros romanos. Seu programa deve ler um nmero inteiro positivo entre 1 e +3.000 e escrev-lo com algarismos romanos. Devem ser representados com a notao habitual para nmeros romanos, utilizando os algarismos romanos em maisculo I (1), V (5), X (10), L (50), C (100), D (500) e M (1.000). A entrada constituda de vrios casos de testes, onde dado um nmero inteiro positivo. O nmero inteiro positivo de entrada ser maior que zero e menor que 3000. Caso seja dado como entrada o nmero -1 o programa dever ser encerrado. Para cada teste de entrada, o programa dever imprimir o nmero em romano. Exemplos de Entrada: 888 2041 3000 14 1979 -1 Sada para o Exemplo de Entrada: DCCCLXXXVIII MMXLI MMM XIV MC 25. Para estudar com preciso as variaes de velocidade de um carro em uma pista de frmula 1, uma empresa coletou amostras de velocidade durante uma corrida de 1 em 1 segundo. Uma informao importante que os pesquisadores desta empresa desejam descobrir como se comporta a mdia de velocidade, considerada em intervalos de tempo de uma dada durao (5 segundos, 1 minuto, etc.). Exemplo, para uma seqncia de medies 30, 50, 90, 120, 160, 210, 270, 320 e intervalos de quatro segundos, as velocidades mdias so respectivamente: 290 / 4 = 72.5, 420 / 4 = 105, 580 / 4 = 145, 760 / 4 =190, 960 / 4 = 240. Sua equipe foi contratada para desenvolver um programa que, dadas as velocidades, informe quais so as velocidades mdias em um intervalo fixo de trs segundos, alm da maior e menor velocidade mdia obtidas. Lembre-se que no temos velocidades negativas. 26. O usurio informar seguidamente vrias velocidades e o programa vai apresentando a velocidade mdia dos ltimos trs segundos. Ao escolher velocidade -1, o programa encerra e apresenta a maior e a menor velocidade mdia obtida. Voc foi desafiado a resolver um problema na fazenda do seu tio. Ele possui um grande terreno, mas no possui nenhuma diviso com seus terrenos vizinhos. Seu tio resolveu cercar o terreno com arame e vrios postes cilndricos de 20cm de raio. Ele pretende cercar o terreno passando pelos postes 4 carreiras de arame farpado. Sendo conhecido com um grande po-duro, ele no quer gastar um centmetro de arame a mais. Como ele lhe pagou uma caneta para usar na faculdade h muito tempo atrs, agora resolveu cobrar o favor lhe pedindo um programa. Ele pretende digitar, seguidamente, vrias coordenadas (x,y) onde os postes ficaro, seguindo sentido horrio. Quando digitar (-1,-1), o programa pra e mostra quanto de arame seria gasto e quantos postes. Sabendo que cada poste custa R$ 60,00 e que cada metro de arame custa R$ 2,00, o programa informa o valor a gastar. Seu tio vai simular situaes com vrios postes para ver onde gasta menos. Supondo, como exemplo, a utilizao de 8 postes, o terreno cercado ficaria assim:

27. Voc est trabalhando no desenvolvimento de um complexo sistema de comunicao entre bancos, e ficou responsvel pela rotina que realiza a transferncia monetria entre contas de diferentes bancos (DOC). Voc deve desenvolver um algoritmo que recebe os dados de vrias transferncias, realiza os clculos e retorna os resultados das operaes. A entrada ser automatizada, ou seja, realizada por outro programa. Primeiramente, este programa informar um nmero N de transaes a processar, um valor V cobrado pelo banco para fazer o DOC, e uma letra indicando se calcula ou no CPMF (melhor deixar esta opo, nunca se sabe se o governo voltar atrs!). Em seguida, enviar as N transaes. Cada transao composta por: BO (banco de origem) CO (conta de origem) SO (saldo da conta de origem) VT (valor da transferncia) BD (banco de destino) CD (conta de destino) SD (saldo da conta de destino) Para cada transao, seu programa deve indicar na sada as seguintes informaes: SFO (saldo final da conta de origem, descontando a transferncia, o valor cobrado pelo banco pelo DOC e se houver, CPMF) SFD (saldo final da conta de destino) Ao final das transaes, o programa deve informar quanto o banco ganhou com tarifas de DOC, e quanto o governo ganhou com CPMF. Considere a taxa de CPMF como 0,38%. 28. Empolgado com seus primeiros programas, voc decide se aventurar na construo de protetores de tela. Sua primeira idia fazer um protetor de tela que faz aparecer na tela uma srie de pontos, formando crculos concntricos, como na figura abaixo. Voc descobriu uma funo pronta chamada ponto(x,y) capaz de desenhar na tela um ponto. Os valores de x e y devem ser passados em pixels, e a tela comea nas coordenadas (0,0) no canto superior esquerdo e termina em (1023,767) no canto inferior direito. Para conseguir o efeito que voc deseja, deve-se informar ao seu programa os seguintes parmetros: o nmero de crculos que sero desenhados, a posio (x,y) do primeiro crculo, o raio do primeiro crculo e o incremento no raio para desenhar os crculos seguintes. Alm disso, deve-se informar quantos pontos sero desenhados no primeiro crculo, e o incremento no nmero de pontos para desenhar os crculos seguintes (crculos maiores tem mais pontos).

Crie o algoritmo que realizar as chamadas a funo ponto necessrias para desenhar os crculos desejados. 29. As eleies se aproximam e voc, sobrinho de um poltico famoso, foi contratado por uma pequena fortuna para criar um revolucionrio programa de contabilizao de votos. Primeiramente, voc decidiu fazer um prottipo, para tentar justificar o seu volumoso pagamento. Neste prottipo, sero informados nomes de 3 candidatos. Em seguida, inicia-se um processo de votao, onde eleitores votam em cada um dos 3 candidatos ou votam nulo, at que o operador decida parar de receber votos. Neste momento, o programa mostrar o resultado das eleies. O programa deve mostrar o percentual de votos que cada candidato teve. Caso o percentual de votos nulos seja maior ou igual a 30%, a eleio ser cancelada. Caso contrrio o nome do vencedor indicado. O programa deve indicar tambm se haver a necessidade de segundo turno. Se o vencedor tiver mais que 50% dos votos, no haver segundo turno. Desconsidere situaes de empate. 30. Sendo um programador aventureiro nato, voc decide realizar uma experincia nica envolvendo alpinismo e programao. Voc decide escalar uma montanha e parte para sua aventura com um notebook e um GPS. Voc deseja criar um programa para acompanh-lo na caminhada. No incio da sua escalada, voc informar os dados de sua posio usando o GPS (x,y,z) em metros. A cada uma hora, voc quer colocar em um programa as coordenadas (x,y,z) de sua posio, dadas pelo GPS. O programa vai informar uma srie de informaes sobre sua escalada, a cada ponto: - Se voc est subindo, descendo ou parado. - A distncia total percorrida at o ponto atual. - A altura que voc est naquele momento. - Quantas horas foram gastas at aquele momento. - Sua velocidade mdia em Km/h.

EXERCCIOS 04/04/2013: 1 Exerccio: O primeiro era uma nova verso daquele da tabuada, em vez de exibir a tabuada de um nmero "N" ele teria que exibir as tabuadas do 1 ao 10. A jogada usar um comando "PARA" dentro de outro "PARA". E funciona da seguinte forma: O "PARA interno" executado totalmente para depois o "PARA externo" poder incrementar o contador (i). A o "PARA interno totalmente executado novamente e assim vai... Outra coisa, se em um comando PARA vc usa uma varivel "i", por exemplo, nos outros vc deve usar uma varivel diferente... 2 Exerccio: O 2 era calcular o aproveitamento de um time de futebol em um campeonato: Vc precisa receber do usurio a quantidade de jogos do campeonato. Para cada jogo o usurio deve informar a quantidade de gols marcados e a quantidade de gols sofridos. A o programa analisa se foi uma derrota, empate ou vitria atravs desse placar. Para cada vitria o time soma 3 pontos, empate soma 1 e derrota no altera nada na somatria. O aproveitamento a somatria dos pontos dividido pelo total de pontos possveis (multiplique por 100 para mostrar a porcentagem). 3 Exerccio: E o ltimo era o mesmo exerccio, mas o programa deve receber do usurio, alm de um nmero de jogos, um nmero de times. Deve repetir o processo de pedir o placar dos jogos para cada time e mostrar os aproveitamentos. De lambuja, ele deve mostrar ao final do programa a maior pontuao (e no aproveitamento) marcada no campeonato.

You might also like