Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Questões Matriz e Vetor em Pascal (7)


Posts recomendados

image.png.3c569327d8cb476bfdb516053e1594f9.png

e por fim essa matriz que eu peguei um exemplo que ele (Professor)passou

Program Matriz_Duas_Dimensoes ;
Const
NL = 5; {Numero de Linhas} 
NC = 5; {Numero de Coluna}
Var
L,C:Integer;
X:Array[1..NL, 1..NC] Of String;
Begin
Writeln('********************************Matriz[',NL,'X',NC,']********************************'); 
Writeln();

	For L:=1 To NL Do
		
		Begin
			For C:=1 To NC Do
			
				Begin
					If(NL Mod 2 <> 0)Then //aqui <> ou = 
					
					X[L][C]:='0'
					Else
					X[L][C]:='1';
					Write('  ',X[L][C]);
					Delay(50); 
				End;
				Writeln();
		End;
		Writeln('Aperte "Enter" Para Sair! ');
		ReadKey; 
End.
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

Aqui não funcionou.


Mas para esse problema, acho precisaria identificar algum padrão. Em apenas interpretei que "as posições ficam com 1, com exceção da linha  3 e da coluna 3.

 

Segue um esboço:

program Matriz_Duas_Dimensoes ;
uses
  CRT;
{
Gerar e imprimir uma matriz automática de 5x5 preenchida com os valores conforme
o exemplo a seguir:
1 1 0 1 1
1 1 0 1 1
0 0 0 0 0
1 1 0 1 1
1 1 0 1 1
}
const
  NL = 5; {Numero de Linhas} 
  NC = 5; {Numero de Coluna}
var
  L,C :integer;
  {X   :array[1..NL, 1..NC] of string;}
  X   :array[1..NL, 1..NC] of integer;
begin
writeln('********************************Matriz[',NL,'X',NC,']********************************'); 
writeln();
for L:=1 to NL Do
  begin
  for C:=1 to NC Do
    begin
    //NL é uma constante, logo SEMPRE vai ter o mesmo resultado
    {if (NL mod 2 <> 0) then //aqui <> ou = } 
    if (L <> 3) and (C <> 3) then
      X[L][C]:=1
    else
      X[L][C]:=0;
    write  ('  ',X[L][C]);
    Delay(50); 
    end;
  writeln();
  end;
writeln;
write  ('Aperte "Enter" Para Sair! ');
ReadKey; 
end.

 

Obs.: No escopo principal no Pascal, por padrão, as variáveis numéricas já são inicializadas com o valor 0, logo, poderia resumir assim:

    if (L <> 3) and (C <> 3) then
      X[L][C]:=1;
    write  ('  ',X[L][C]);
    Delay(50);

 

 

 

Outra forma mais bruta (acho que não seria aceita):

program Matriz_Duas_Dimensoes ;
uses
  CRT;
{
Gerar e imprimir uma matriz automática de 5x5 preenchida com os valores conforme
o exemplo a seguir:
1, 1, 0, 1, 1,
1, 1, 0, 1, 1,
0, 0, 0, 0, 0,
1, 1, 0, 1, 1,
1, 1, 0, 1, 1
}
const
  NL = 5; {Numero de Linhas} 
  NC = 5; {Numero de Coluna}
var
  L,C :integer;
  X   :array[1..NL, 1..NC] of integer = ((1, 1, 0, 1, 1),
                                         (1, 1, 0, 1, 1),
                                         (0, 0, 0, 0, 0),
                                         (1, 1, 0, 1, 1),
                                         (1, 1, 0, 1, 1));
begin
writeln('********************************Matriz[',NL,'X',NC,']********************************'); 
writeln();
for L:=1 to NL Do
  begin
  for C:=1 to NC Do
    begin
    write('  ',X[L][C]);
    Delay(50); 
    end;
  writeln();
  end;
writeln;
write  ('Aperte "Enter" Para Sair! ');
ReadKey; 
end.

 

Nesse caso, inicializei a matriz já com os valores que correspondentes. (nem sabia que isso existia para matrizes, fui fazendo testes e funcionou, rs)

  • Amei 1
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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!