Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

conclusao, mas...

boa tarde

todas as informações sobre o que foi passado foi bem enriquecedora, a didatica do professor tbm ajuda bastante, como os slides interativos na tela,

porem a unica ressalva que faria, que no meu caso, sou iniciante extremo em programação e qualquer outra area, venho do zero mesmo rsrs,

nao entendi nada sobre o exercicio da idade da stefany, simplesmente nao consegui resolver o problema, tao pouco encontrar um caminho para a solução, ainda que vi aqui no forum que deveria copiar a lista, mesmo assim nao saberia fazer...fiquei um pouco confuso, mas vamos em frente!!!

2 respostas
solução!

Olá, tudo bem ? No problema de cálculo da idade, o foco da questão é entender a integridade dos do programa, voltemos para o código:

function calculaProximaIdade(idade) {
    idade += 1;
    console.log(idade);
}

function calculaProximasIdades(idades) {
    for (let i = 0; i < idades.length; i += 1) {
        idades[i] += 1;
    }
    console.log(idades);
}

function calculaIdadesDaqui5Anos(idades) {
     for (let i = 0; i < idades.length; i += 1) {
        idades[i] += 5;
    }
    console.log(idades);
}

const idadeStefany = 21;
calculaProximaIdade(idadeStefany);

const idadesAmigos = [idadeStefany, 20, 23, 18, 7];
calculaProximasIdades(idadesAmigos);

calculaIdadesDaqui5Anos(idadesAmigos);

O principal problema desse script é justamente ao chamar a função calculaProximasIdades(idadeAmigos), pois nessa chamada está sendo passada uma lista, como parâmetro. Dentro dessa função, será realizado um incremento de uma unidade em cada valor da lista. E é aí onde está o problema, quando essa rotina for concluída, os valores da contidos na listas serão alterados, pois eles foram passados por referência, como vimos na aula.

Quando for chamada a última função calcularIdadesDaqui5Anos(idadesAmigos), os valores da lista idadesAmigos, não serão mais os mesmos, pois foi alterados na chamada da função anterior. Dessa forma a idade calculada para 5 anos será errada.

Uma das possibilidades para resolver esse problema seria passar como parâmetro a cópia da lista idadeAmigos, da seguinte forma:

calculaProximasIdades(idadesAmigos.slice());

Espero ter ajudado.

Douglas, também sou iniciante, mas não sei se esse é o seu caso: o curso de Lógica de Programação que fiz antes desse aqui me ajudou a ver esse problema da Stefany de forma mais clara. Caso ainda não tenha feito esse curso, recomendo bastante!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software