GARANTIR DESCONTO

Fórum Dúvida - Exercícios de Java. #536120

30/10/2015

0

Rapaziada preciso daquela força monstra. Peguei essa questão de java mas não entendi como resolve-la. Alguém pode comentar?
Essa é a questão.
[img]http://arquivo.devmedia.com.br/forum/imagem/457049-20151030-225051.jpg[/img]
Naval

Naval

Responder

Posts

01/11/2015

Marcos Vinicios

Tem como postar o código mas sem ser como imagem?
Responder

Gostei + 0

02/11/2015

Jothaz

138.
Responder

Gostei + 0

02/11/2015

Marcos Vinicios

Ainda não testei, esse código roda sem problemas?
Responder

Gostei + 0

02/11/2015

Jothaz

Basta você fazer o que alguns chamam de computador chinês ou de baiano.

Num pedaço de papel vá escrevendo as variáveis e os valore processados, como faria o processador e execute todas as instruções do código.
No final você terá a resposta.

Pelo que acompanhei cheguei ao resultado (138) e para mim o código esta ok, mas não tive paciência para digitar e testar o código, então posso até ter dado o resultado errado, mas seguindo as instrução cheguei ao valor postado.

E não adianta eu postar o resultado, pois o objetivo do exercício é justamente desenvolver a habilidade de ir executando mentalmente os algorítimos. Se você não possuir esta capacidade terá bastante dificuldades para absorver os conceitos de programação. Claro ser você quer mesmo aprender a programar.
Responder

Gostei + 0

02/11/2015

Marcos Vinicios

Pior que não consigo fazer operações com muitos numeros no for!

Se eu não errei:


package teste;

public class Teste {
    
    public static int x(int n){
            if (n>2)
                return 3+x(n-1);
            else
                return 0;
    }

    public static void main(String[] args) {
        
        int x,y,z;
        
        x=0;
        y=0;
        z=0;
        
        for (int i=0;i<120;i++)
            x+=1;
        for (int j=1;j<=5;j+=2)
            j+=2;
        
        z=x+y+x(6);
        System.out.println(z);
        
    }
    
}




o resultado deu 132.
Responder

Gostei + 0

02/11/2015

Jothaz

Olha nem existe opção 132 na lista de resposta! kkkkk

E você copiou o código errado onde esta:

        for (int j=1;j<=5;j+=2)
            j+=2;
         


Deve ser:

		for (int j=1;j<=5;j+=2)	
			y+=2;
         



Mas a ideia é justamente chegar ao resultado sem roda o código.
E a maioria dos testes que você irá fazer para conseguir um emprego usam este tipo de teste. Lha dão pedaços de códigos e você deverá chegar ao resultado ou aponta algum erro de compilação ou execução.
Por isso a importância de tais exercícios.
Responder

Gostei + 0

02/11/2015

Marcos Vinicios

Tinha quase certeza que errei algo, rsrsrs, questão complicada para fazer de cabeça e até mesmo com papel e lapis, um dia vi uma explicação, acho que preciso rever isso.

Correção: 138.
Responder

Gostei + 0

02/11/2015

Jothaz

Na minha humilde opinião é importante conseguir ler e interpretar os algoritmos. Pois sem isso vai ser muito difícil realizar os testes aplicados quando for arruma um emprego.

Então acho interessante você se dedicar a este tema, pois o algorítimo do post é bem simples e os for´s nem são tão complicados assim.

Treine o máximo possível e procure aprender a programar e entender o que os código fazem.
Responder

Gostei + 0

02/11/2015

Marcos Vinicios

Valeu pela dica! Rapaz, quase que não acho a diferença entre os código que postou, o certo e o errado.
Responder

Gostei + 0

03/11/2015

Naval

Não entendi a parte do método. É feita a chamada ao método passando como parâmetro o número 6, beleza. N vale 6, n é maior que 2, entra no return aí fica return 3+x(n-1);
3 + x(6 - 1)
3 + x(5).
Não entendi essa parte.
Alguém poderia explicar
Responder

Gostei + 0

03/11/2015

Jothaz

Isto é o que se chamar [url:descricao="recursividade" ]https://pt.wikipedia.org/wiki/Recursividade[/url], que simplificadamente é a capacidade de um método chamar a si mesmo.

Então no exemplo acima o método e chamada e executado várias vezes, com o seguinte resultado:


n-1=5
n=5
n-1=4
n=4
n-1=3


Então o resultado final é doze.

Para entender digite o código e "debug", assim você acompanha passo a passo a execução.
Responder

Gostei + 0

03/11/2015

Marcos Vinicios

Existe uma forma mais simples dele chamar a si proprio?
Responder

Gostei + 0

06/11/2015

Marcos Vinicios

Existe uma forma mais simples dele chamar a si proprio?


--------------
Responder

Gostei + 0

06/11/2015

Jothaz

Não existe uma "forma simples", o exemplo pode ser considerado bem simples.

É só ir executando e anotando o os valores ou então digite o código e execute debugando e printado os valores.

E vou lhe dar uma má noticia, em TI não quase nada simples, tudo é trabalhoso e requer muita atenção e entendidmento do que você esta fazendo.

Mas nada que dedicação, empenho e estudo não resolva. A ideia é não ter vergonha de perguntar.
Responder

Gostei + 0

06/11/2015

Marcos Vinicios

Está bem! Valeu.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar