Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Yan Esteves

Exercício de matriz em Pascal

Recommended Posts

To numa duvida enorme aqui, preciso resolver esse exercicio mas ta faltando uma coisa pra terminar e já nem sei como faço isso.

O exercicio:

Os dados de uma pesquisa foram coletados gerando 49 valores numéricos diferentes.O pesquisador organizou estes dados em linhas e colunas sob forma de uma matriz quadrada.Elabore um programa em pascal para ler a matriz de dados por coluna, calcular e exibir a soma dos valores dos elementos da matriz cujo o produto de seus índices seja múltiplo de 3.

Ou seja, preciso fazer um programa de matriz 7x7 que aceite 49 valores diferentes, quando o usuario digitar valores iguais deve aparecer uma mensagem.. e depois exibir a soma dos valores cujo o produto do seus indices (1x1, 1x2..) seja multiplo de 3..

Nao to conseguindo colocar a condição de caso ele digitar valores iguais aparecer a mensagem, como faço isso?

Meu código por enquanto ta assim mas já mudei várias vezes:

Program matriz ;
 var i,j, soma:integer;
 M:array [1..7,1..7] of integer;

 begin
     for i:=1 to 7 do
      for j:=1 to 7 do
     begin
       Writeln('Entre com o valor M[',i,',',j,'] :');
       readln(M[i,j]);
          if (i*j mod 3 = 0)then
            begin
 soma:=(M[i,j])+ soma;
 end;   
  end;
   writeln('o valor da soma é: ',soma);
 End.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Nesse caso eu criaria uma função para realizar essa verificação da seguinte maneira:

 

 

function Existe( vValor: Integer ): boolean
var
  i,j: Integer;
begin
  for i := 1 to 7 do
    for j := 1 to 7 do
    begin
      Result := ( M[i,j] = vValor );
      if Result then
        Exit;
    end;
end;

 

E na sua aplicação trataria assim:

 

 
Program matriz ;
 var i,j, soma:integer;
 M:array [1..7,1..7] of integer;
 begin
     for i:=1 to 7 do
      for j:=1 to 7 do
     begin
       Writeln('Entre com o valor M[',i,',',j,'] :');
       readln(M[i,j]);
         if not Existe( M[i,j] ) then
           if (i*j mod 3 = 0)then
            begin
              soma:=(M[i,j])+ soma;
            end;   
  end;
   writeln('o valor da soma é: ',soma);
 End.

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

A palavra Result faz parte da lista de palavras reservadas da linguagem pascal. Essa instrução é utilizada para definir o retorno da sua função. O tipo da função é quem vai determinar o que o Result irá retornar, como a função é do tipo boolean, logo ela só poderá retornar um valor booleano.

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.