Índice
- Disciplinas Atuais
- Disciplinas Antigas
O jogo do quadrado de Rubik é tão estupendo e maravilhoso que você não consegue pensar em outra coisa a não ser em quadrados. Para acalmar sua necessidade de ver mais quadrados, você resolve desenvolver um novo jogo do quadrado.
Dado um quadrado de 5×5, os números de 1 a 25 devem ser colocados nele sem repetição. A regra de colocação para cada número é que, dada a posição x,y do número k (1≤ k ≤ 25), o número k+1 pode ser colocado em qualquer casa não ocupada z,w seguindo uma das condições seguintes:
Por exemplo, dada a posição de 1 em (0, 1), o número 2 pode ser colocado nas casas marcadas com *.
Faça um programa em C que leia um sequência de linhas de números separados por espaço e imprima o quadrado correspondente, dizendo se é válido ou não, além do primeiro erro encontrado. Assim as linhas
16 24 10 17 25 1 13 21 2 12 9 18 5 8 19 15 23 11 14 22 4 7 20 3 6
16 24 10 17 25 1 13 2 21 12 9 18 5 8 19 15 23 11 14 22 4 7 20 3 6
Dão como resultado válida e não válida (o 2 na segunda linha está errado)
16 24 10 17 25
1 13 21 2 12
9 18 5 8 19
15 23 11 14 22
4 7 20 3 6
Válido
16 24 10 17 25
1 13 2 21 12
9 18 5 8 19
15 23 11 14 22
4 7 20 3 6
Inválido – 2 errado!
Cada linha lida deve ser colocada num vetor de ponteiros para vetor (não strings!)
a) Leitura correta da linha. (2pts)
b) Identificação correta de linhas válidas e inválidas. (3pts)
c) Uso correto do vetor de ponteiros. (1pt)
d) Saída correta formatada do quadrado. (1pt)
Seguindo a regra de formação acima, faça um programa que receba pela linha de comando um par de valores inteiros correspondentes à posição 1 e escreva as possíveis posições válidas para o 2, separadas por vírgulas. Assim, o comando
nome_prog 0 1
tem como resultado
3 1, 0 4, 2 3
a)Uso correto da linha de comando(1pt)
b)resultado correto(2pts)
Variáveis globais contam negativamente na nota (-1 pt por variável utilizada).
Programas que dividem o problema em vários problemas menores têm mais chance de dar certo.