Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com junção de algoritmos


A. Kenneth

Pergunta

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?

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;

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
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.

Isso se chama Piramides Incas

http://vinicius.soylocoporti.org.br/piramides-incas/

abraço

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...