Ir ao conteúdo

Posts recomendados

Postado

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
  • Membro VIP
Postado

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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!