Olá pessoal eu quero a vossa ajuda para resolver este algoritmo…
andei escrevendo no papel esse algoritmo mas quando passei pra java não esta a funcionar direito.
O algoritmo vai gerar aleatóriamente um numero (n) e esse numero vai ser convertido em Binário e depois de ser convertido em binário o algoritmo vai percorer a array e analizar a posição dos numeros que se encontram na lista L. se encontrarem na posição 0 Fica na L2(lista 2) e o que se encontrar na posição 1 vai a lista L1. Ex:
L=[14,10,20,36]
*** 0 -1- 0 - 1
Binário = 1010
L1={36,10}
L2={14,20}
é isso-: será que alguem pode corigir o erro que esta a dar ai… Ja tentei mas nao consegui, e como sou novo a programar em java vim pedir a vossa ajudda.
obrigado a todos.
public class Lista5 {
public static void main(String[] args, int j) {
int[]n=1+(int)10*Math.random();
int [] L = {2,4,9,12};
for(int i = 1;i<=limite;i++);
int n = 0;
int[]mascara = converter(i, n);
int[]L1= new int [n];
int[]L2= new int [n];
for(j=0;j<n;j++){
if(mascara[j]==1)
L1[j]=L[j];
else
L2[j]=L[j];
}
System.out.println();
}
public int[]convert(int i,int n);
int[]resultado = new int [n];
for(j=0<=n;j++){
resultado[n-j]=i MOD 2;
i=1/2;
}
return resultado;
}
}
Bom, vamos lá.
Pelo que eu entendi, o erro está aqui
public class Lista5 {
public static void main(String[] args, int j) {
int[]n=1+(int)10*Math.random();//isto retorna um double
int [] L = {2,4,9,12};
for(int i = 1;i<=limite;i++);//de onde vem a variável limite? for sem "corpo"?
int n = 0; //n já foi instanciado como array de int
int[]mascara = converter(i, n); //de onde vem i?
int[]L1= new int [n];
int[]L2= new int [n];
for(j=0;j<n;j++){
if(mascara[j]==1)
L1[j]=L[j];
else
L2[j]=L[j];
}
System.out.println();
}
public int[]convert(int i,int n); //método sem corpo?
int[]resultado = new int [n]; //de onde vem n?
for(j=0<=n;j++){ //j foi instanciado onde?
resultado[n-j]=i MOD 2; // o que é MOD? Para que serve? de onde vem esse n? e esse i?
i=1/2;
}
return resultado;
}
}
[quote=otniel]pois… o problema é o seguinte é k eu nao sei como corigir esses erros…
Quando tento corigir aparece-me outro.[/quote]
Vão aparecer inúmeros.
Mas precisa corrigi-los.
Vai modificando e tentando.
Consegui corigir alguns erros… e ficou desta forma… o unico erro que eu nao sei de onde vem é o (i). mas o (i) vem do ciclo for.
package lista5;
/**
*
* @author otniel
*/
public class Lista5 {
/**
* @param args the command line arguments
*/
public static void main(String[] args, int j, int limite) {
// TODO code application logic here
int n = (int) (1+(int)10*Math.random());//isto retorna um double
int [] L = {2,4,9,12};
for(int i = 1;i<=limite;i++);
int[]mascara = converter(i,n);
int[]L1= new int [n];
int[]L2= new int [n];
for(j=0;j<n;j++){
if(mascara[j]==1)
L1[j]=L[j];
else
L2[j]=L[j];
}
System.out.println();
}
public int[]convert(int i,int n, int j){ //método sem corpo?
int[]resultado = new int [n]; //de onde vem n?
for(j=0;j<=n;j++){
resultado[n-j]=i; // o que é MOD? Para que serve? de onde vem esse n? e esse i?
i=1/2;
}
return resultado;
}
}
[quote=otniel]Consegui corigir alguns erros… e ficou desta forma… o unico erro que eu nao sei de onde vem é o (i). mas o (i) vem do ciclo for.
[code]
package lista5;
public class Lista5 {
/**
* @param args the command line arguments
*/
public static void main(String[] args, int j, int limite) {
// TODO code application logic here
int n = (int) (1+(int)10*Math.random());
int [] L = {2,4,9,12};
for(int i = 1;i<=limite;i++);
int[]mascara = converter(i,n);
int[]L1= new int [n];
int[]L2= new int [n];
for(j=0;j<n;j++){
if(mascara[j]==1)
L1[j]=L[j];
else
L2[j]=L[j];
}
System.out.println();
}
public int[]convert(int i,int n, int j){
int[]resultado = new int [n];
for(j=0;j<=n;j++){
resultado[n-j]=i;
i=1/2;
}
return resultado;
}