Classificação
0 %
Popularidade
Opine
Descrição:
Você sabe usar funções em JavaScript? Sabe como aplicar o uso de rotinas em seus códigos para torná-los mais simples?






NOVIDADES:
Quer saber o que é FUNÇÃO e a diferença entre PARÂMETRO e ARGUMENTO? Veja o meu comentário da aula: "Eventos DOM – Curso JavaScript #10".
*Não consegui postar aqui porque o YT não quer mostrar o meu comentário (provavelmente porque ele está identificando como flood, dado que é um CTRL C + CTRL V, seila)
Curso perfeito.
TENTATIVA de EXPLICAR RECURSIVIDADE (passível de erros xD):
Escreva esta função no seu VSCode, passe o cursor à esquerda da linha 1, MARQUE a BOLINHA VERMELHA (Breakpoint) e aperte F5 para abrir o DEBUG. Agora, vá apertando F10 para a avançar PASSO a PASSO e acompanhe a explicação.
1 function fatorial(n) {
2 if (n == 1) {
3 return 1
4 } else {
5 return n * fatorial(n-1)
6 }
7 }
8 console.log(fatorial(5))
SÃO 2 PASSOS, 2 BLOCOS:
Primeiro faz-se o BLOCO 2. E o BLOCO 1 fica PENDENTE/AGUARDANDO.
BLOCO 1 ||||| BLOCO 2
|||||
return n(5) * ||||| fatorial (n-1), ou seja = 4
return n(4) * ||||| fatorial (n-1), ou seja = 3
return n(3) * ||||| fatorial (n-1), ou seja = 2
return n(2) * ||||| fatorial (n-1), ou seja = 1 AQUI: n == 1
Neste último, a CONDIÇÃO de PARADA do LOOP, o if (linha2), torna-se VERDADEIRO e RETORNA 1 (linha3) .
No site W3Schools diz: "When JavaScript reaches a return statement, the function will stop executing".
Só que, neste caso, a função não é finalizada pois ainda há a PENDÊNCIA de CÁLCULOS do BLOCO 1.
E, nesta pendência, há OUTRO RETURN (linha5)
Pois então, se a função não é finalizada, para onde vai este return 1 (linha3) ?
Quando uma função retorna um valor, este é retornado para a CHAMADA da FUNÇÃO. Ex:
function Multiplicar(A, B) {return A * B} <- função
let x = Multiplicar(4, 3) <- chamada para a função
Quando faz-se esta chamada, o argumento 4 é passado para o parâmetro A e o argumento 3 é passado para o parâmetro B . A multiplicação acontece e o RESULTADO é RETORNADO para a CHAMADA da FUNÇÃO, que então é guardada na variável x . Neste caso fica: x = 12
Portanto, o return 1 (linha3) é retornado para as CHAMADAS: fatorial(n-1) (linha5) e fatorial(5) (linha 8) .
Ou seja, estas DUAS passam a valer apenas: 1 . (O OUTRO RETURN, do BLOCO 1, irá SOBREPOR este VALOR mais para frente, retornando o resultado FINAL da FATORAÇÃO).
Retornado o valor 1 , começam as multiplicações do BLOCO 1 de TRÁS para FRENTE.
*Não entendi o PORQUÊ de trás para frente, mas como já bem ouvimos de nossos professores de matemática: "a ordem dos fatores não altera o produto". Então não faz diferença.
ATENÇÃO:
NÃO É: FAZER AS MULTIPLICAÇÕES E SOMAR OS RESULTADOS.
E SIM: MULTIPLICAR, PEGAR O RESULTADO, E MULTIPLICAR PELO PRÓXIMO n .
return n(2) * _1 = 2
return n(3) * 2 = 6
return n(4) * 6 = 24
return n(5) * 24 = 120 AQUI: return n * fatorial(n-1) == 120
Este "_1" é o return 1 (linha3) , que substitiu o fatorial(n-1) (linha5) .
Ilustrado de outra forma:
n(2) * _1 = 2 * n(3) = 6 * n(4) = 24 * n(5) = 120
Terminada as multiplicações, o resultado de n * fatorial(n-1) é RETORNADO: 120.
Este valor SOBREPUJARÁ aquele return 1 (linha3) , RETORNANDO o resultado FINAL da fatoração para a CHAMADA fatorial(5) (linha 8) , que irá exibir o resultado na tela.
Foram 3 dias tentando entender estas 8 linhas de código kkkkkkk. Foda.
25:43 o curso em vídeo é tão bom que até o pessoal que trabalha la assiste…
eu sei que ele só ta editando o trabalho.
Guanabara, traz JS intermediário/avançado please 🙂
Que aula foda mano.
👏👏👏👏👏👏👏👏👏👏
Veja mais não funcionou clik queor fazer o curso completo de JavaScript
Nessa caso eu só não entendi, qual a necessidade desse contador… pq pela lógica vc pode usar o proprio N como contador
Assim :
function fatorial (n){
let fat = 1
while (n > 1){
fat = fat * n
n–
}
return (fat)
}
console.log (fatorial(5))
"sua mãe quer leite" ksksksks
Função: toda função precisa de uma chamada. Também precisa de um parâmetro. toda função tem uma ação envolvida.
Resumo: toda função pode ter os seguintes fatores: Uma chamada, um parâmetro, uma ação e um retorno.
(Nem toda função usa parâmetros, nem toda função tem retorno)
Função: são ações executadas, assim que são chamadas ou em decorrência de algum evento.
Uma função pode receber parâmetros e retornar um resultado.
Na moral, foi a melhor explicação que já vi. Tô no começo do JS básico mas quis dar um pulo em funções pois tenho essa aula na ETEC e tava complicado de acompanhar.
Ctza depois do básico vou fechar o Pct intermediário.
Parabéns aos envolvidos!
Pessoa onde vcs vão estudar java script intermediário-avançado?
4:10 não importa como você vai nem como você chega, o principal é trazer o leite pra sua mãe, não importa se você foi atropelado, se os cachorro te pegou na rua, se você foi assaltado, não importa tudo isso, o principal é trazer o leite intacto kkkkkkkkkkk 😂😂😂😂, na hora que estava vendo o vídeo veio isso na cabeça e até parei de fazer a aula pra falar isso, brincadeiras a parte, estou aprendendo muito com seus vídeos, Parabéns!!👋👋
Sorry filho do neymar, nunca vai aprender programação pois não entende de funções kkkkk
Olá Prof° Guanabara muito obrigado de verdade! Deus abençoe e ilumine sua mente mais e mais!
A pura da pura
Thanks from 2022!
Se vc viu o curso de lógica de programação(algoritmo), tudo fica mais fácil. Muito obrigado Professor Guanabara
Mais conteúdo sobre javascript
como faz para o usuário inserir o valor que "parimpar(n)" vai receber e para escrever na tela se o número é par ou ímpar? eu tentei o prompt e o document.write, mas não consegui estruturar esses comandos com esse tipo de função
meu deus cara mt obrigado fiquei meses sem entender o return e finalmente entendi com esse video seu
Eu tô fazendo o curso de um concorrente e não estava entendendo o tema.
Aí, vim aqui nesse vídeo e entendi perfeitamente.
kkkk
Surreal a didática do Guanabara!
RECEBAAAAA
Melhor explicação sobre função que já assisti no YouTube. Obrigado Gustavo Guanabara vc realmente tem o dom de ensinar tecnologia. Abraço
Obrigado php
O fatorial, fiz antes de ele explicar e deu certo tb kkkkkkkkk
function factorial(n) {
var result = 1
for (count = 1; count <= n; count++) {
result = result * count
}
return result
}
console.log(factorial(5))
Baita aula
Não adianta né, a gente vê várias plataformas para estudar, mas é no youtube de graça que a gente aprende de verdade. Quando a pessoa tem o dom de ensinar é difícil achar melhor.
Incrível!!; A sua didática é a melhor de todos os professores, Parabéns!.
Por favor faz o curso intermediário e avançado, Vc é o único que tem o potencial de me fazer aprender d verdade
puta q paril guanabara, tava custando a entender function, ai vem vc e me ensina em 10 minutos. VC É FODA!!!!
Thanks mate!
Muitos fatores pra algo que poderia ser resumido e prático! Por mais boa intenção que os professores tenham, para quem não é da área e não gosta do tema, é muito difícil conseguir avançar no Java script depois dos algoritmos. Eles explicam de uma maneira que parece fácil, porém não é. Porém é muito bacana saber que a maioria desses cursos são humanizados ao ponto de terem uma estrutura muito boa de apoio.
Não entendi a segunda function do fatorial, n tem looping e ele realiza essa subtração contínua até o 1? Ali n seria pra ser 5×4 e acabar a operação? WTF
quase terminando mais um curso. bora que bora
show Guanabara!!!!
Galera, agora entendi, o sistema funciona assim:
5! = 5*(5-1)*(5-2)*(5-3)*(5-4)
5! = 5*4*3*2*1
5!= 120
Ele faz a subtração e depois multiplica 5, e assim vai até chegar no 1.
9:46
Muito bom mesmo, parabéns, continuem com este projeto maravilhoso.
function parimp(x){
return x % 2 == 0? console.log('Par'):console.log('Impar')
}
parimp(4)
O fatorial de 1 segue aquela regra também
n * (n-1)!
1* 0! = 1
só observo o editor assistindo o Pato papão
hein 👀
21:11 até buguei nessa hora, recomendo anotar passo a passo pra quem tá com dificuldade de entender a lógica
Obrigado Prof. Guanabara!!
o Guanabara é muito bom não tem jeito!
Top demais! estou aprendendo muito com esse curso.