Pular para o conteúdo

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

Responder tópico
  • Denunciar
  • Indicar

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

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();
}

Responder tópico

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

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]

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]

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]

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]

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.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder