Ajuda na traduçao de Java para C [RESOLVIDO]

1. Ajuda na traduçao de Java para C [RESOLVIDO]

Shiguidu
Shiguidu

(usa Outra)

Enviado em 27/09/2011 - 13:29h

Eu tinha postado essa mensagem em um tópico antigo, não tinha reparado na data, rsrs erro meu.

Será que alguém poderia me ajudar a traduzir esse algorítmo pra linguagem C?
Eu não sei Java, e precisava desse programa.
Agradeço desde já.

// print all subsets of the characters in s
public static void comb1(String s) { comb1("", s); }

// print all subsets of the remaining elements, with given prefix
private static void comb1(String prefix, String s) {
if (s.length() > 0) {
System.out.println(prefix + s.charAt(0));
comb1(prefix + s.charAt(0), s.substring(1));
comb1(prefix, s.substring(1));
}
}

// read in N from command line, and print all subsets among N elements
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
String alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
String elements = alphabet.substring(0, N);

// using first implementation
comb1(elements);
System.out.println();
}



  


2. Re: Ajuda na traduçao de Java para C [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 27/09/2011 - 15:49h

Poderíamos sim, mas nós (eu, ao menos) não faremos o exercício pra você. Sua dificuldade é traduzir qual trecho do código?


3. Re: Ajuda na traduçao de Java para C [RESOLVIDO]

Shiguidu
Shiguidu

(usa Outra)

Enviado em 27/09/2011 - 21:19h

Na verdade eu não sei nada de Java, então eu não entendo o que tá sendo feito no código.


4. Re: Ajuda na traduçao de Java para C [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 28/09/2011 - 12:49h

Aqui você está criando um método público, estático e que retorna void. Este método recebe uma String como parâmetro. Dentro deste método você chama o método comb1, passando uma string vazia e a variável s como parâmetro.

public static void comb1(String s) { comb1("", s); } 


Declaração de um método, como acima, mas passando duas strings como parâmetro.

private static void comb1(String prefix, String s) {


Aqui você verifica se o comprimento do valor da variável "s" é maior que 0, ou seja, se a string possui mais de 0 caracteres.

if (s.length() > 0) {


Aqui você imprime a variável "prefix" e imprime a primeira posição (0) da string "s".

System.out.println(prefix + s.charAt(0));


Aqui você chama o método comb1, passando os devidos parâmetros:

comb1(prefix + s.charAt(0), s.substring(1));
comb1(prefix, s.substring(1));
}
}


Aqui você declara o método principal, que é o método main(). Ele é como a função main da linguagem C.


// read in N from command line, and print all subsets among N elements
public static void main(String[] args) {


Aqui você declara a variável "N", atribuindo um cast para args[0]

int N = Integer.parseInt(args[0]);


Declara duas variáveis string, uma delas sendo atribuída pegando um determinado caractere, como no método charAt().

String alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
String elements = alphabet.substring(0, N);



O que está abaixo, já foi explicado acima.

// using first implementation
comb1(elements);
System.out.println();
}




5. Re: Ajuda na traduçao de Java para C [RESOLVIDO]

Shiguidu
Shiguidu

(usa Outra)

Enviado em 28/09/2011 - 13:27h

andrezc, muito obrigado por me explica parte por parte. Consegui entender tudo certinho. Agradeço novamente.


6. Re: Ajuda na traduçao de Java para C [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 28/09/2011 - 16:52h

Shiguidu escreveu:

andrezc, muito obrigado por me explica parte por parte. Consegui entender tudo certinho. Agradeço novamente.


Ok. Selecione a melhor resposta.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts