You are on page 1of 7

Engenharia da Computao Lgica Computacional 1 Prof.

: Fbio Lopes Caversan

Lista de Exerccios Mdulo 2 (verso 2011.1)


1. Faa um programa de eleio, onde o usurio informa o nmero de candidatos, e depois informa os nomes destes candidatos. A seguir, a votao iniciada, at que o usurio deseje parar. O usurio vota digitando o nome do candidato. Finalmente, o nome do vencedor deve ser exibido na tela. Desconsidere situaes de empate. 2. Faa um programa de adivinhao. Primeiro o usurio 1 digita 10 nmeros. Em seguida o programa pede para um usurio 2 adivinhar os dez nmeros. Cada acerto do nmero na sua exata posio conta 2 pontos e cada erro desconta 1. Mostre a pontuao final do usurio 2. 3. Melhore o programa do exerccio 2 da seguinte forma: cada acerto de nmero na posio vale dois pontos, cada acerto do nmero fora da posio (se o nmero foi digitado pelo usurio 1 mas no na posio indicada pelo usurio 2) vale um ponto e cada erro desconta dois pontos. 4. Faa um programa que simula uma roleta. Inicialmente, o programa digita 10 elementos de um vetor. Em seguida, o programa pede para o usurio um nmero. O programa deve girar os nmeros do vetor, para a direita, o nmero de vezes que o usurio digitar. Considere, por exemplo, o seguinte vetor: 1 2 3 4 5

Digitando 2, os elementos so girados para a direita duas vezes, resultando em: 4 5 1 2 3

Digitando 4, considerando o vetor original, os elementos so girados para a direita quatro vezes, resultando em: 2 3 4 5 1

5. Faa um programa que recebe do usurio dois vetores de 10 elementos. Apresente, em um terceiro vetor, a unio destes dois vetores e em um quarto vetor a interseco destes dois vetores. 6. Crie um programa de loja de carros, que mostra para o usurio um menu, para que ele escolha 0-sair, 1-incluir, 2-excluir ou 3-listar os carros. As informaes do carro so: placa, ano e nome. A opo 0 sai do programa, 1 inclui um carro na lista, 2 apaga o ltimo carro da lista e 3 mostra a lista de carros. Considere que no mximo 1000 carros podem ser cadastrados. 7. Desenvolva um programa que recebe do usurio uma matriz 3 x 4 de nmeros reais. A matriz deve possuir uma 4 linha e uma 5 coluna que no sero digitadas pelo usurio. O programa deve colocar a soma de cada linha na sua 5 coluna e a soma de cada coluna na sua 4 linha, apresentando o resultado final ao usurio. 8. Analise e explique o que faz o cdigo abaixo. Explique a finalidade do programa e no comente linha a linha. para i := 0 at 200 passo 1 faa para j := 0 at 400 passo 1 faa para k := 0 at 300 passo 1 faa C[i][j] := C[i][j] + A[i][k]*B[k][j]; 9. Sejam duas matrizes P e Q 3x3, fornecidas pelo usurio. Faa um programa que multiplica as duas matrizes e armazena o resultado numa matriz T.

10. Construa um programa capaz de gerar um vetor com o histograma de uma matriz 100 X 200. Este histograma uma contagem de quantas vezes cada valor ocorre na matriz. Considere que na matriz so digitados nmeros de 1 a 50. 11. Voc faz parte de uma equipe que est desenvolvendo jogos para celular. Voc fica responsvel por desenvolver um jogo simples, o jogo da velha. Para comear, importante verificar se uma determinada situao do tabuleiro representa vitria para algum jogador. Assim, voc decide comear com o cdigo que verifica se o jogador com X ganhou. Escreva este cdigo. Observao: No futuro pretende-se que fazer verses do jogo da velha tridimensionais e com mais que 3 linhas e 3 colunas. Seu cdigo dever estar preparado para estas mudanas com alteraes mnimas. 12. Voc faz parte de uma equipe que est desenvolvendo jogos para celular. Sua equipe desenvolver o jogo de xadrez. Deseja-se que, quando uma pea est em uma determinada posio, aparea no tabuleiro quais as posies que ela pode ocupar. Voc comear pela torre. A torre pode mover-se qualquer nmero de casas na horizontal ou vertical. Considere, para simplificar, um tabuleiro vazio com apenas uma torre. O usurio informar a linha e coluna da torre e voc marcar todas as casas que ela pode ocupar no tabuleiro. O tabuleiro de xadrez possui 8 x 8 casas. O exemplo abaixo mostra o tabuleiro (a), como o programa ir representar o mesmo (a) e qual a sada desejada (c). o o o o o o o T o o O o o o o

(a)

(b)

(c)

13. Voc est trabalhando em uma equipe que est construindo um sistema de controle para um aeroporto. Seu time de projeto est cuidando do programa que reserva os lugares no avio. Sua responsabilidade criar um programa que permite cadastrar clientes e reservar lugares para estes clientes. Primeiramente, um menu deve ser apresentado com as seguintes opes: 0 Sair 1 Cadastrar cliente 2 Reservar lugar 3 Estatsticas dos lugares O menu apresentado repetidamente at que o usurio deseje parar. As funcionalidades dos principais itens so apresentadas abaixo: (3,0) a. Cadastrar clientes: o programa deve possibilitar ao usurio incluir um cliente na lista de clientes. necessrio gravar o nome do cliente, seu CPF e sua data de nascimento. A primeira informao a ser cadastrada o CPF. Caso o CPF j exista, o programa deve informar que o cliente j est cadastrado e mostrar o nome e a data de nascimento do mesmo. (4,0) b. Reservar lugar: qualquer cliente que j tenha sido cadastrado previamente pode reservar um lugar no avio. O mapa lgico das posies do avio mostrado na figura abaixo. O cliente escolhe ento, fileira e coluna do assento. Se for escolhido um assento ocupado, o programa deve informar que o assento est ocupado, alm do CPF e do nome do passageiro que o ocupa. (3,0) c. Estatsticas dos lugares: o programa deve apresentar para o usurio quantas pessoas esto ocupando lugares da primeira classe (rea cinza), o total de passageiros no corredor e o total de passageiros nas janelas.

14. Construa um programa que controla o estoque de uma loja. Primeiramente, o usurio observa o seguinte menu: 0. 1. 2. 3. Sair Incluir Produto Listar Produtos Entrada no Estoque

O usurio escolhe uma operao. Ao incluir um produto, o usurio cadastra o cdigo, quantidade em estoque e o preo unitrio (lembre-se, ele inclui somente 1 produto). Na listagem, devem aparecer todas as informaes de todos os produtos e tambm o valor total de cada produto (quantidade vezes o preo) e o valor total do estoque (soma de todos os valores totais). A operao de entrada da seguinte maneira: o usurio digita o cdigo do produto e a quantidade a dar entrada. O programa deve adicionar a quantidade informada da quantidade existente no produto informado. 15. A empresa Evite Desperdcio tem registrado numa tabela os consumos mensais de energia eltrica dos anos 1995-2004. Cada linha representa um ANO e cada coluna um MS. Considerando estes dados, fazer um algoritmo que imprima: a) O total do consumo anual de cada um destes 10 anos. b) O ms e ano em que a empresa gastou mais energia nestes 10 anos. 16. Voc est comeando a desenvolver um jogo de batalha naval. O programa precisa verificar se o jogador colocou todos os navios no mapa. Para comear, voc decidiu fazer um algoritmo simples, que verifica se o jogador colocou uma embarcao especfica, no caso o submarino, no mapa. O mapa ser representado por uma matriz 30x30 de caracteres, onde A so espaos com gua e S so espaos com submarino. Um submarino inteiro representado por 3 clulas da matriz, adjacentes entre si, conforme a figura abaixo. Voc deve escrever um trecho de cdigo que procura em uma matriz j quantos submarinos existem. A A A A A A A A A S S A A A A A A A S A A A A A A A A A S A A A A A A A S S A A A S S A A A A A A S A A A A A A A A A A A S A A A A A A S S A A A A A A A A A A

Figura 1: Exemplos de submarinos no mapa.

17. Uma das tarefas que o Engenheiro de Computao pode encontrar no exerccio de sua atividade profissional a criao de protocolos de comunicao. Protocolos so uma espcie de linguagem que os programas utilizam para se comunicar, normalmente bem diferente da linguagem humana. Na construo de mensagens de um protocolo, normal pegar a mensagem pronta e adicionar algumas informaes teis para a realizao da comunicao. Entre estas informaes, pode-se encontrar o tamanho da mensagem e um cdigo de checagem. O tamanho da mensagem simplesmente o nmero de elementos que ela possui. O cdigo de checagem, normalmente, alguma operao realizada com os elementos para poder verificar se a mensagem chegou exatamente como saiu. Considere uma mensagem composta por N inteiros em um vetor. Voc deve escrever um trecho de cdigo que adiciona, no comeo do vetor, dois campos com as informaes: tamanho e checagem. O tamanho simplesmente N. A checagem a soma de todos os inteiros que compe a mensagem. Considere que o vetor e o valor N j foram informados. Mensagem Original: 10 3 14 7 -8 20 1 0 20 1 0

Mensagem Processada: 8 47 10 3 14 7 -8

18. Voc est desenvolvendo um sofisticado sistema de comunicao entre computadores, que pretende utilizar para fins obscuros durante provas de laboratrio. Por esse motivo, voc quer que a comunicao seja embaralhada para que, caso caia nas mos de um professor, o contedo no seja descoberto. Para enviar uma mensagem, seu sistema envia dois vetores. Um deles possui caracteres que compe a mensagem, embaralhados. O outro possui uma numerao que indica qual caractere deveria estar naquela posio. Por exemplo: Caracteres: 0 1 2 3 M L D 4 U 5 O 6 A 7 3 7 N 8 5

Cdigo da mensagem: 0 1 2 3 4 5 6 5 2 6 1 0 4 7

Escreva um trecho de cdigo capaz de receber estes dois vetores e apresentar a mensagem decodificada para o usurio. 19. Neste ano voc conseguiu o disputado cargo de monitor de Lgica de Programao. Para ajudar o professor, voc deve construir um programa que o ajuda a identificar possveis alunos colando nas provas. Inicialmente, o professor corrige as provas e preenche uma lista com os nomes dos alunos, a nota e o estilo da prova. O estilo da prova uma letra que o professor usa para agrupar provas parecidas. Por exemplo: Nome Nota Estilo 0 Joo 8 A 1 Maria 9 A 2 Paulo 10 B 3 Jos 4 C ... Figura 1: Dados sobre os alunos e as provas.

Alm disso, durante a prova, o professor monta uma matriz com as posies dos alunos na sala de aula. Cada clula contm o cdigo do aluno que sentou-se naquela posio durante a prova, utilizando -1 para representar que nenhum aluno sentou-se ali, conforme o exemplo da figura 2. -1 -1 -1 10 -1 11 7 7 3 -1 6 -1 -1 -1 0 2 -1 -1 -1 -1 1 -1 -1 8 -1 -1 -1 -1 5 -1 -1 -1 -1 -1 -1 9

Figura 2: Posies dos alunos durante a prova. O seu programa deve exibir uma lista com os nomes dos alunos que possivelmente colaram. O critrio deve ser o seguinte: se alunos de com o mesmo estilo de prova sentaram-se em posies adjacentes e tiraram nota com diferena menor ou igual a um, possivelmente colaram. Sendo assim, no exemplo da figura 2, Joo e Maria estariam na lista de suspeitos. 20. Crie um programa para classificar os clientes de uma loja de acordo com uma curva ABC anual. Uma curva ABC classifica os clientes mais importantes como A, os de mdia importncia como B e os outros como C. Considere que j existe uma tabela com o cliente e quanto ele comprou no ano, ordenada do maior para o menor comprador. Para criar a curva ABC anual, necessrio realizar os seguintes passos: a. (1,5) Descreva como esta tabela poderia ser armazenada em termos de estruturas de dados. b. (1,5) Calcular para cada cliente um valor acumulado, acumulando o valor comprado do maior para o menor. c. (1,5) Converter os valores acumulados para percentuais do total. d. (1,5) Classificar como A (percentual <= 75%), B (percentual <= 95%) ou C (outros) Segue um exemplo de uma tabela com a curva ABC dos clientes. Cliente Compra Ano Acumulado Percentual Classificao Cliente 5 R$ 15.000,00 R$ 15.000,00 30% A Cliente 4 R$ 10.000,00 R$ 25.000,00 50% A Cliente 1 R$ 8.000,00 R$ 33.000,00 66% A Cliente 7 R$ 6.000,00 R$ 39.000,00 78% B Cliente 9 R$ 4.100,00 R$ 43.100,00 86% B Cliente 3 R$ 3.000,00 R$ 46.100,00 92% B Cliente 2 R$ 2.000,00 R$ 48.100,00 96% C Cliente 6 R$ 1.000,00 R$ 49.100,00 98% C Cliente 10 R$ 500,00 R$ 49.600,00 99% C Cliente 8 R$ 400,00 R$ 50.000,00 100% C TOTAL R$ 50.000,00 21. Ano de copa do mundo! Voc e seus amigos, no to fanticos por futebol assim, foram contratados por uma grande empresa de mdia que deseja montar um portal para que os usurios coloquem seus palpites e realizem simulaes.

Em um primeiro momento, voc decide trabalhar com a classificao de um grupo em particular. Sendo assim, voc deve criar um programa que: a) (2,0) Recebe os nomes de quatro times que fazem parte do grupo b) (2,0) Apresenta os jogos na tela e pede para o usurio informar o placar. A regra para apresentar os jogos : todos jogam contra todos. c) (2,0) Calcular a pontuao de cada equipe: cada vitria vale 3 pontos, empate 1 e derrota nada. d) (2,0) Calcular o saldo de gols de cada equipe: nmero de gols marcados menos nmero de gols sofridos. e) (2,0) Mostrar quem so os dois primeiros, ou seja, os times classificados. A classificao ocorre primeiramente por pontuao e depois por saldo de gols. 22. Alunos totalmente dedicados a causa da engenharia e a sua faculdade ptria, voc e seus colegas decidiram auxiliar a FACENS a resolver seu atual problema de superlotao. O seu objetivo tentar encontrar no campus da faculdade possveis locais para construo de um novo prdio. Primeiramente, vocs pretendem tirar uma foto area da FACENS e preencher uma matriz que representar o campus. Nesta matriz, o usurio armazenar letras com no seguinte significado: R = Ruas P = Prdios V = rea Verde E = Estacionamento R R R R R R R R R R R R R V V V V V V V E E E R R V P V V V P V E E E R R V V V V V V V E E E R R V V V V V V V E E E R R V V V V V V V E E E R R V P V V P V V E E E R R V V V V V V V E E E R R V V V V V V V E E E R R E E E V V V V E E E R R E E E V P V V E E E R R E E E V V V V V V V R

Aps receber esta matriz do usurio, o seu programa ir marcar com a letra N (Novo) todas as possveis posies para o novo prdio. As regras para posicionamento do novo prdio so: ele no pode estar ao lado de ruas, estacionamentos ou outros prdios, ou seja, somente em posies rodeadas por reas verdes como no exemplo abaixo: V V V V N V V V V

Ao final do processo apresente para o usurio a matriz com a letra N em todas as possveis posies do prdio novo.

You might also like