Mais diversão para vocês!
Problema 3: LCD Display
UVa ID: 706 ; Nível: Fácil
Um amigo seu acabou de comprar um novo computador. Antes disso, a máquina mais poderosa que ele havia usado foi uma calculadora de bolso. Ele está um pouco desapontado porque ele gostava do display LCD da sua calculadora mais do que da tela do seu novo computador! Para fazê-lo feliz, escreva um programa que imprima números no estilo de um display LCD.
Entrada
O arquivo de entrada contém diversas linhas, uma para cada número a ser disposto na tela. Cada linha contém inteiros s e n, onde n é o número a ser disposto (0 <= n <= 99.999.999) e s é o tamanho que ele irá aparecer (1 <= s <= 10). A entrada será terminada por uma linha contendo dois zeros, que não deve ser processada.
Saída
Escreva os números especificados no arquivo de entrada em estilo display LCD usando s sinais “-” para os segmentos horizontais e s sinais “|” para os verticais. Cada dígito ocupa exatamente s + 2 colunas e 2s + 3 linhas. Esteja certo de preencher todos os espaços brancos ocupados pelos dígitos com “espaços”, incluindo o último dígito. Deve haver exatamente uma coluna de “espaços” entre dois dígitos.
Coloque uma linha de “espaço” após cada número. Você encontrará um exemplo de cada dígito no Exemplo de saída abaixo.
Exemplo de entrada
2 12345
3 67890
Exemplo de saída

Problema 4: Interpreter (Interpretador)
UVa ID: 10033 ; Nível: Médio
Um certo computador tem dez registradores e 1000 palavras de RAM. Cada registrador ou local na RAM armazena um inteiro de três dígitos entre 0 (zero) e 999. Intruções são codificadas como inteiros de três dígitos e armazenadas na RAM. Os códigos são os seguintes:
100 | manter
2dn | armazena no registrador d o valor n (entre 0 e 9)
3dn | adiciona n ao valor armazenado em d
4dn | multiplica por n o valor armazenado em d
5ds | armazena em d o mesmo valor armazenado em s
6ds | adiciona o valor armazenado em s ao armazenado em d
7ds | multiplica o valor armazenado em d pelo de s
8da | armazena em d o valor de RAM que tiver seu endereço armazenado no registrador a
9sa | armazena na RAM, cujo endereço esteja em a, o valor armazenado no registrador s
0ds | vai para o local armazenado no registrador d a menos que o registrador s cotenha 0 (zero)
Todos os registradores inicialmente contém 000 (zero). O conteúdo inicial da RAM é lido de uma entrada padrão. A primeira instrução a ser executada é no endereço RAM zero. Todos os resultados são reduzidos módulo 1000.
Entrada
A entrada começa com um único inteiro positivo na linha, indicando o número de casos, cada um descrito abaixo. É seguido por uma linha em branco e haverá uma linha em branco entre cada duas entradas consecutivas.
Cada caso de entrada consiste num inteiro sem sinal de três dígitos, representando os conteúdos de locais consecutivos na RAM, começando pelo zero. Locais de RAM não especificados são inicializados com 000 (zero).
Saída
A saída de cada caso de teste é um único inteiro: o número de instruções executadas acima e incluindo a de “manter”. Você pode assumir que o programa faz o “manter”. Separe a saída de dois casos consecutivos por uma linha em branco.
Exemplo de entrada
1
299
492
495
399
492
495
399
283
279
689
078
100
000
000
000
Exemplo de saída
16
É isso aí pessoal, temos agora a segunda parte da primeira bateria de exercícios proposta como treinamento, ok? Os exeercícios de agora são um pouco mais difíceis (confesso que não entendi nem o que pede o problema 4 de primeira olhada xD ), contudo não desanimem, pois precisamos pegar pesado se queremos alguma coisa.
Posts interessantes:
- Programando melhor: Exercícios 1 (Parte I)
- Programando melhor: Aula 1 – Começando
- Cursos grátis na Internet – MIT
- Top Coder Marathon Matches
- Olimpíadas do Conhecimento
Novamente, qualquer dica para a solução de problemas é extremamente bem vinda e dúvidas serão, à medida do possível, respondidas. Deixe seu comentário falando o que achou dos problemas! E conte também seu caso de sucesso!
Helton de Melo Duarte
“A sabedoria exalta aos que a favorecem, honra aos que a amam, e empresta graça à aparência de uma pessoa, para que esta seja admirada e respeitada por aqueles que a conhecem.” Charles Fritsch


fevereiro 14th, 2009 at 16:04
[...] Programando melhor: Exercícios 1 (Parte II) [...]
fevereiro 17th, 2009 at 9:39
[...] Programando melhor: Exercícios 1 (Parte II) [...]
fevereiro 20th, 2009 at 21:08
[...] Programando melhor: Exercícios 1 (Parte II) [...]
março 9th, 2009 at 15:53
[...] Leia mais >> [...]
maio 23rd, 2009 at 21:59
[...] Programando melhor: Exercícios 1 (Parte II) [...]
agosto 21st, 2009 at 16:00
[...] Programando melhor: Exercícios 1 (Parte II) [...]