You are on page 1of 5

Algoritmos e Estruturas de Dados I Primeiro Trabalho Prtico

1) Uma sequencia de n nmeros inteiros (cada nmero maior que zero) dito ser Malternado se a sequncia composta por M segmentos consecutivos: o primeiro segmento com 1 elemento, o segundo segmento com 2 elementos, e assim por diante, o M-simo segmento com M elementos. Alm do mais, a sequncia tem que satisfazer as seguintes condies: a) os elementos em um dado segmento tm que ser todos pares ou todos mpares; b) se os elementos em um segmento so todos mpares (pares), ento os elementos do segmento seguinte tem que ser todos pares (mpares). Escreva um programa que, dado um inteiro n > 1 e uma sequncia de n inteiros positivos, verifique se a sequncia M-alternada (e imprima o valor de M), ou imprima a cadeia NAO se a sequncia no for M-alternada. Exemplo: n = 10 seq = 12 3 7 2 10 4 5 13 5 11 resposta = 4 --n=8 seq = 11 2 3 4 5 77 33 44 resposta = NAO
2) Os incas, que reinaram na regio dos Andes durante vrios sculos, construram pirmides de base quadrada em que a nica forma de se atingir o topo era seguir em espiral pela borda, que acabava formando uma escada em espiral. Neste problema voc dever fazer um programa que recebe uma matriz quadrada An x n de nmeros inteiros e verifica se a matriz inca, ou seja, se partindo do canto superior esquerdo da matriz, no sentido horrio, em espiral, a posio seguinte na ordem o inteiro consecutivo da posio anterior. Exemplo: A matriz abaixo inca: 1 12 11 2 13 16 3 14 15 4 5 6

10 9 8 7 Leia a dimenso da matriz, em seguida leia a matriz, e responda se a matriz lida inca ou no. 3) Os alunos do ltimo ano resolveram organizar uma quermesse para arrecadar fundos para a festa de formatura. A festa prometia ser um sucesso, pois o pai de um dos formandos, Tefilo, dono de uma loja de informtica, decidiu doar um computador para ser sorteado entre os que comparecessem. Os alunos prepararam barracas de quento, pipoca, doces, ensaiaram a quadrilha e colocaram venda ingressos numerados sequencialmente a partir de um. O nmero do ingresso serviria para o sorteio do computador. Ficou acertado que Tefilo decidiria o mtodo de sorteio; em princpio o sorteio seria, claro, computadorizado. O local escolhido para a festa foi o ginsio da escola. A entrada dos participantes foi pela porta principal, que possui uma roleta, onde passa uma pessoa por vez. Na entrada, um funcionrio inseriu, em uma lista no computador da escola, o nmero do ingresso, na ordem de chegada dos participantes. Depois da entrada de todos os participantes, Tefilo comeou

a trabalhar no computador para preparar o sorteio. Verificando a lista de presentes, notou uma caracterstica notvel: havia apenas um caso, em toda a lista, em que o participante que possuia o ingresso numerado com i, havia sido a i-sima pessoa a entrar no ginsio. Tefilo ficou to encantado com a coincidncia que decidiu que o sorteio no seria necessrio: esta pessoa seria o ganhador do computador. Conhecendo a lista de participantes, por ordem de chegada, sua tarefa determinar o nmero do ingresso premiado, sabendo que o ganhador o nico participante que tem o nmero do ingresso igual sua posio de entrada na festa. Leia um nmero inteiro positivo N que indica o nmero de participantes da festa. Em seguida leia a sequncia, em ordem de entrada, dos N ingressos das pessoas que participaram da festa. Exemplo: N = 10 seq = 9 8 6 1 5 4 3 2 10 7 resposta = 5 4) Suponha que no Brasil haja cdulas de R$ 100, R$ 50, R$ 20, R$ 10, R$ 5, R$ 2, e R$ 1. Dado um valor em reais sem centavos, determine o nmero de cada uma das notas necessrio para totalizar esse valor, de modo a minimizar a quantidade de cdulas entregues. Por exemplo, se o cliente deseja retirar R$ 50,00, basta entregar uma nica nota de cinquenta reais. Se o cliente deseja retirar R$ 72,00, necessrio entregar uma nota de R$ 50,00, uma nota de R$ 20,00 e uma nota de R$ 2,00. 5) Um quadrado mgico uma matriz quadrada de ordem n, onde a soma dos nmeros das linhas, das colunas e das diagonais constante, sendo que nenhum destes nmeros se repete. Sua tarefa verificar se uma matriz quadrada de entrada um quadrado mgico ou no. 6) Considere o seguinte algoritmo para gerar uma sequencia de nmeros. Inicie com um inteiro n. Se n for par, gere o prximo nmero dividindo por dois. Se n for impar, gere o prximo nmero multiplicando por trs e adicionando um. Repita este processo com o novo valor de n, terminando quando n=1. Por exemplo, a seguinte sequencia de nmeros ser gerada para n=22: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 conjecturado (mas ainda no provado) que este algoritmo terminar com n=1 para todo inteiro n. A conjectura mantida para todos os inteiros at 1milho. Para uma entrada n, o comprimento da sequencia de n o nmero de nmeros gerados at (incluindo) o nmero 1. No exemplo acima, o comprimento da sequencia de 22 16. Dados quaisquer dois nmeros i e j (i j) determine o comprimento de sequencia mximo entre todos os nmeros entre i e j, inclusive. Por exemplo, para as entradas 1 e 10, a resposta deve ser 20. Para a entrada 100 e 200, a resposta deve ser 125. Para a entrada 201 e 210, a resposta deve ser 89. Para a entrada 900 e 1000, a resposta deve ser 174. 7) Jogo da Mina. O objetivo deste jogo encontrar onde todas as minas esto localizadas dentro de um campo M x N. No campo, a mina representada por um caractere * (asterisco), e cada campo seguro pelo caractere . ( ponto). Para facilitar a vida do jogador, o jogo d algumas dicas, ou seja, o jogo mostra um nmero em um quadrado que diz quantas minas existem adjacentes a este quadrado. Sabemos que cada quadrado tem no mximo 8 quadrados adjacentes. Ler os dois inteiros n e m, em seguida ler n linhas de m caracteres (especificao da mina) e produzir as dicas descritas acima.

Exemplo de entrada 35 **... .. .*.... Exemplo de sada **100 33200 1*100 8) Um grupo de estudantes so membros de um clube que viaja anualmente para diferentes locais. Seus locais no passado incluram Porto de Galinhas, Macei, Fortaleza, Salvador, Natal e Lenois Maranhenses. Este vero eles esto planejando viajar para Fernando de Noronha. O grupo concorda em dividir as despesas de forma iqualitria, mas no prtico compartilhar todas as despesas quando estas ocorrem. Assim, certos indivduos pagam por coisas em particular, tais como, alimentos, hotis, carros, etc. Aps a viagem, as despesas de cada estudante so contabilizadas e dinheiro trocado de tal forma que o custo de cada seja o mesmo. Admite-se um erro de at 1 centavo. No passado, esta troca de dinheiro foi uma atividade tediosa, consumiu muito tempo, alm de ser susceptvel a erros. Seu trabalho computar, de uma lista de despesas, o nmero mnimo de dinheiro que deve trocar de mos a fim de equalizar (com 1 centado de erro) todos os custos dos estudantes. A entrada consistir de um nmero n, denotando o nmero de estudantes dna viagem, seguido por n linhas, contendo a quantidade de despesas por um estudante. A sada deve ser a quantidade total de dinheiro que deve ser trocada. Exemplo de entrada: 3 10.00 20.00 30.00 Exemplo de sada: 10.00 Exemplo de entrada: 4 15.00 15.01 3.00 3.01 Exemplo de sada: 12.00 9) Display de LCD. Um amigo nosso acabou de comprar um computador novo. Antes disso, a mquina mais poderosa que ele tinha usado era uma calculadora de bolso. Ele ficou um pouco desapontado porque ele gosta mais do display de LCD do que da tela do seu computador. Para faz-lo feliz, escreva um programa que imprima nmeros no formato de display de LCD. A primeira entrada deve ser o tamanho no qual os caracteres devem ser impressos (restrito de 1 at 3); o segunda entrada so os nmeros a serem impressos.

Exemplo de entrada: 2 12345 Exemplo de sada: |||||| |||||| ||||| ||||| Exemplo de entrada: 1 12345 Exemplo de sada: |||||| ||||| 10) Editor grfico. Editores grficos tais como Photoshop permite-nos alterar imagens bit-maps da mesma forma que editores de texto permitem-nos alterar documentos. Imagens so representadas como uma matriz M x N de pixels, onde cada pixel tem uma dada cor. Sua tarefa escrever um programa que simule um simples interativo editor grfico. A entrada consiste de uma sequencia de comandos do editor, um por linha. Cada comando e representado por um caractere mausculo colocado como primeiro caractere na linha. Se o comando precisar de parmetros, eles sero dados na mesma linha separados por um espao em branco. As coordenadas dos pixels so representadas por dois inteiros, uma coluna de 1 at M, e uma linha de 1 at N, onde 1 M,N 250. A origem situa-se no canto superior esquerdo da matriz. O editor aceita os seguintes comandos:

IMN C LXYC V X Y1 Y2 C H X1 X2 Y C K X1 Y1 X2 Y2 C

Cria uma nova iamgem M x N com todos os pixels inicialmente coloridos com branco (0). Limpa a tabela setando todos os pixels para branco (0). O tamanho permanece o mesmo. Colore o pixel (X,Y) com a cor C. Desenha um segmento vertical com a cor C na coluna X, entre as linhas Y1 e Y2 (inclusive). Desenha um segmento horizontal com a cor C, na linha Y, entre as colunas X1 e X2 (inclusive). Desenha uma retngulo preenchido com a cor C, onde (X1, Y1) o canto superior esquerdo, e (X2, Y2) o canto inferior direito. Preenche a regio R com a cor C, onde R definido como segue. Pixel (X,Y) pertence a R. Qualquer outro pixel com a mesma cor que pixel (X,Y) e compartilha um lado

FXYC

comum com qualquer pixel de R tambm pertence a essa regio. S Name X Escreve o contedo da imagem atual no arquivo Name. Termina a sesso.

Em cada comando S NAME, escreva o nome NAME e o contedo da imagem atual. Cada linha representada pela cor de cada pixel. Ignore a linha inteira de qualquer comando definido por caracteres que no sejam I, C, L, V, H, K, F, S, or X, e passe para o prximo comando. Em caso de outros erros, o comportamento ser imprevisvel. Exemplo de entrada: I56 L23A Sone.bmp G23J F33J V234W H342Z Stwo.bmp X Exemplo de sada: one.bmp OOOOO OOOOO OAOOO OOOOO OOOOO OOOOO two.bmp JJJJJ JJZZJ JWJJJ JWJJJ JJJJJ JJJJJ Este trabalho pode ser feito em DUPLAS. Data de Entrega: Na semana seguinte ao retorno das aulas ps-greve. Em todas as questes faa um programa na linguagem C.

You might also like