Faça um programa em pascal para ler um valor N, o qual estará no intervalo
fechado [1..10] e em seguida preencher uma matriz quadrada de ordem N com
números sequenciais contornando a matriz de fora para dentro.
Exemplo N = 6
1 2 3 4 5 6
20 21 22 23 24 7
19 32 33 34 25 8
18 31 36 35 26 9
17 30 29 28 27 10
16 15 14 13 12 11
O que eu fiz está abaixo. Testando cada sentido separadamente ele funcionam perfeitamente, no entanto, quando junto todos eles em um só algoritmo ele não faz corretamente. Alguém poderia me dar uma luz?
while vazio > 0 do
begin
[color="#006400"] ////SENTIDO 1[/color]
if sentido = 1 then
begin
i := i + 1;
for j := i to tamanho + 1 - i do
begin
espiral[i,j] := ultimo;
ultimo := ultimo + 1;
vazio := vazio - 1;
end;
sentido := 2;
end;
[color="#006400"] ////SENTIDO 2[/color]
if sentido = 2 then
begin
i2 := i2 + 1;
for j2 := i2 to tamanho + 2 - i2 do
begin
espiral[j2, tamanho + 2 - i2] := ultimo;
ultimo := ultimo + 1;
vazio := vazio - 1;
end;
sentido := 3;
end;
[color="#006400"] ////SENTIDO 3[/color]
if sentido = 3 then
begin
i3 := i3 + 1;
for j3 := tamanho + 2 - i3 downto i3 - 2 do
begin
espiral[tamanho + 3 - i3,j3] := ultimo;
ultimo := ultimo + 1;
vazio := vazio - 1;
end;
sentido := 4;
end;
[color="#006400"] ////SENTIDO 4[/color]
if sentido = 4 then
begin
i4 := i4 + 1;
for j4 := tamanho - i4 downto i4 + 1 do
begin
espiral[j4, i4] := ultimo;
ultimo := ultimo + 1;
vazio := vazio - 1;
end;
sentido := 1;
end;
end;
Pergunta
A. Kenneth
Tenho que resolver o seguinte problema:
Faça um programa em pascal para ler um valor N, o qual estará no intervalo
fechado [1..10] e em seguida preencher uma matriz quadrada de ordem N com
números sequenciais contornando a matriz de fora para dentro.
Exemplo N = 6
1 2 3 4 5 6
20 21 22 23 24 7
19 32 33 34 25 8
18 31 36 35 26 9
17 30 29 28 27 10
16 15 14 13 12 11
O que eu fiz está abaixo. Testando cada sentido separadamente ele funcionam perfeitamente, no entanto, quando junto todos eles em um só algoritmo ele não faz corretamente. Alguém poderia me dar uma luz?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.