Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Falha na Matriz n consigo fazer ela ficar no formato de matriz(linhas e colunas)


Posts recomendados

tentei criar uma matriz, porém ao executar ela nao fica coma tal (linhas e colunas), os numeros ficam tudo um embaixo do outro 

program Matrizes; //Matrizes= vetores com mais d uma dimensão
                             //1° dimensão = linhas da matriz
                           //2° dimensão= colunas da matriz
uses crt;

var vetornum:array [0..3, 0..4] of integer; //minha matriz vai ter a dimensão de 4X4
    I:Integer;
    O:Integer;


begin

     Randomize;

     for I := 0 to 3 do
      Begin
       for O := 0 to 4 do
        begin
         vetornum[I,O] := random(1000);
        end;
      end;
      
     for I:=0 to 3 do
      Begin
       for O := 0 to 4 do
        begin
         write(vetornum[I,O],' * ');
         writeln(' ');
        end;  
      end;


  readln;
end.

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Sadson    para imprimir linhas e colunas é assim mesmo , mas você colocou esse :

writeln(' ');

uma linha antes , então seria assim  :

program Matrizes; //Matrizes= vetores com mais d uma dimensão
                  //1° dimensão = linhas da matriz
                  //2° dimensão= colunas da matriz
uses crt;
var vetornum:array [0..3, 0..4] of integer; //minha matriz vai ter a dimensão de 4X4
    I:Integer;
    O:Integer;
 
begin
     Randomize;
     for I := 0 to 3 do
      Begin
       for O := 0 to 4 do
        begin
         vetornum[I,O] := random(1000);
        end;
      end;
      
     for I:=0 to 3 do
      Begin
       for O := 0 to 4 do
        begin
         if vetornum[I,O]< 10   then write('   ',vetornum[I,O],' * ')  
	     else      
         if vetornum[I,O]< 100  then write('  ' ,vetornum[I,O],' * ')        
         else
         if vetornum[I,O]< 1000 then write(' '  ,vetornum[I,O],' * ')
         else
         if vetornum[I,O]<=1000 then write(      vetornum[I,O],' * ')         
        end;  
        writeln(' ');        
      end;
  readln;
end.

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

1#

Em 01/03/2019 às 15:07, Sadson disse:

     for I:=0 to 3 do
      Begin
       for O := 0 to 4 do
        begin
         write(vetornum[I,O],' * ');
         writeln(' ');
        end;  
      end;

 

@Sadson, você apenas colocou para "quebrar a linha" no lugar errado. Bastaria fazer assim:

for I:=0 to 3 do
  begin
  for O := 0 to 4 do
    begin
    write(vetornum[I,O],' * ');
    end;
  writeln(' ');
  end;

 

 

 

2#

@devair1010, o último if nunca vai verificado, pois o vetor só terá números de 0 a 999.

 

Em 01/03/2019 às 20:33, devair1010 disse:

if vetornum[I,O]<=1000 then write(      vetornum[I,O],' * ')

 

 

 

3#

Uma outra forma de fazer esse alinhamento seria usando "uma formatação" para a número. Ex.:

program Matrizes; //Matrizes = vetores com mais d uma dimensão
                  //1° dimensão = linhas da matriz
                  //2° dimensão = colunas da matriz
uses
  CRT;
var
  vetorNum:array [0..3, 0..4] of integer; //minha matriz vai ter a dimensão de 4X4
  I, O:integer;
begin
Randomize;
for I := 0 to 3 do
  for O := 0 to 4 do
    vetorNum[I,O] := Random(1000);
for I:=0 to 3 do //para cada linha
  begin
  for O:=0 to 4 do //para cada coluna
    write(vetornum[I,O]:3,' * '); //esse :3 vai reservar 3 espaços para o número. Alinhando a direita.
  writeln(' ');
  end;
ReadKey;
end.

 

 

 

  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...