Jump to content

Recommended Posts

Posted

Ola pessoal,

Eu tenho uma matriz de largura x comprimento, e queria preenche-la só 15% dela.

Como é que posso fazer isso?

Não estou a conseguir visualizar como faço vejo a percentagem da dimensão total da matriz, nem como depois posso verificar se já preenchi essa percentagem.

Obrigado

Posted (edited)

Qual é o preenchimento da matriz identidade de tamanho 100?

A matriz em causa tem 10000 elementos; 100 desses elementos tem o valor 1, outros 9900 tem o valor 0. :-)

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

Já compreendi, e esse problema já esta resolvido. Obrigado.

Agora outro problema que me esta a surgir é:

estou numa posição x,y dentro dessa matriz e quero preencher com 1's a volta dessa posição. Mas o que me pode acontecer é sair do tamanho da matriz (caso esteja no limite da matriz)

Como posso proteger o código de ele não dar o erro "OutOfBoundsException"?

Posted (edited)

Considerando que a posição na matriz é dada pelo par (x,y), aqui tens uma possível implementação:

for(int i=x-1;i<=x+1&&i<matrix.length;++i)
if(i>=0)
for(int j=y-1;j<=y+1&&j<matrix[0].length;++j)
 if(j>=0)
 if(isABomb(i,j))
		 /* Increment counter */
Edited by SteveWorks
Posted (edited)

Só vou deixar aqui um gostinho das quantidades de if's que estou a usar.

if(x==0)
{
 if(y==0)
 {
   if(a[x][y+1]!=-1)
   a[x][y+1]++;
 if(a[x+1][y]!=-1)
   a[x+1][y]++;
 if(a[x+1][y+1]!=-1)
   a[x+1][y+1]++;
 }
 if(y==coluna-1)
 {
   if(a[x][y-1]!=-1)
  a[x][y-1]++;
   if(a[x+1][y]!=-1)
  a[x+1][y]++;
   if(a[x+1][y-1]!=-1)
  a[x+1][y-1]++;
}
else
{
 if(a[x][y-1]!=-1)
   a[x][y-1]++;
 if(a[x][y+1]!=-1)
   a[x][y+1]++;
 if(a[x+1][y]!=-1)
   a[x+1][y]++;
 if(a[x+1][y-1]!=-1)
   a[x+1][y-1]++;
 if(a[x+1][y+1]!=-1)
   a[x+1][y+1]++;
 }
}
Edited by Tiago Andrade
Posted

É bom que te depares com estas situações, pois só assim irás aprender. Certamente já reparaste que tens aí ações repetidas e incrementos controlados. Isto resume-se a ciclos e é para isto que eles servem!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.