< Return to Video

Parâmetros de Função (Versão em Vídeo)

  • 0:01 - 0:06
    Estamos de volta ao nosso Winston
    e eu adicionei um texto a ele.
  • 0:06 - 0:11
    O quero fazer é a posicionar o texto
    embaixo de cada um desses rótulos
  • 0:11 - 0:13
    para mostrar cada ponto da linha.
  • 0:13 - 0:15
    Mas agora ele está em todo lugar.
  • 0:15 - 0:19
    É porque estamos definindo o faceX e faceY
    em números aleatórios na função.
  • 0:21 - 0:23
    Em vez disso, o que quero é dizer pra ele:
  • 0:23 - 0:25
    Ei, aqui está a posição exata
    que eu quero
  • 0:25 - 0:28
    que você desenhe o rosto.
  • 0:28 - 0:30
    Eu quero poder especificar a
    posição cada vez que eu
  • 0:30 - 0:34
    chamar a função, da mesma forma
    que fazemos com a ellipse() e o rect().
  • 0:34 - 0:37
    Porque eu quero ser capaz de
    colocar um Winston aqui,
  • 0:37 - 0:41
    e um Winston aqui, e outro aqui,
    e um outro aqui,
  • 0:41 - 0:44
    e eu não quero lugares aleatórios
    cada vez que eu chamar a função.
  • 0:45 - 0:49
    Para isso, temos de especificar
    "parâmetros" para a função,
  • 0:50 - 0:54
    tanto em nossa definição de função...
    (aqui no topo)
  • 0:54 - 0:58
    e em nossa chamada de função, aqui em
    baixo, quando realmente a chamarmos.
  • 0:58 - 1:05
    Assim, de drawWinston(), queremos passar
    para faceX e faceY, e usar esses valores
  • 1:05 - 1:10
    que passamos em vez de gerá-los
    aleatoriamente.
  • 1:11 - 1:14
    Vamos pensar sobre o que passaremos
    para estas chamadas de função aqui
  • 1:15 - 1:19
    Queremos a posição dos Winstons sob
    cada pedaço de texto,
  • 1:19 - 1:21
    por isso, provavelmente
    queremos o X e o Y
  • 1:21 - 1:24
    de cada Winston por ser semelhante
    aos números
  • 1:24 - 1:26
    que passaremos para
    as funções "text()".
  • 1:26 - 1:33
    Talvez, apenas 10 pixels menor no y.
    Assim, talvez o primeiro seria de 10 e 30,
  • 1:33 - 1:37
    e, em seguida, talvez 200, 230...
  • 1:38 - 1:44
    10, 230...200, 230. É o mesmo que as
    coordenas do texto, só estou acrescentando
  • 1:44 - 1:49
    10 a cada y, porque eu quero
    apenas um pouco menor.
  • 1:49 - 1:54
    Ok, mas o Winston não se moveu.
    Isso é porque não dissemos a nossa função
  • 1:54 - 1:59
    que estamos passando os parâmetros,
    por isso ainda está usando
  • 1:59 - 2:00
    esses valores aleatórios.
  • 2:00 - 2:03
    Portanto, a fim de contar essa função,
    "Ei, vamos dar esta
  • 2:03 - 2:04
    informação em vez disso",
  • 2:04 - 2:09
    nós temos que dar os nomes dos
    parâmetros dentro desses parênteses.
  • 2:09 - 2:16
    Então, vamos chamá-lo de faceX e facey,
    e separá-los por uma vírgula,
  • 2:16 - 2:18
    e vamos chamá-lo assim, porque
  • 2:18 - 2:21
    isso é o que estamos usando para se
    referir a eles na função, ok?
  • 2:21 - 2:25
    Então, dessa forma não temos que
    reescrever o resto do nosso código.
  • 2:25 - 2:29
    Mas mesmo assim, nada aconteceu;
    o Winston ainda está em todo o lugar.
  • 2:29 - 2:33
    Bem, se você olhar para o topo da nossa
    função, estamos substituindo o
  • 2:33 - 2:36
    "faceX" e "faceY" com valores
    aleatórios, ainda.
  • 2:36 - 2:40
    Então, tudo o que temos a fazer
    é excluir essas linhas...
  • 2:42 - 2:47
    E agora, o "faceX" e "faceY" estão sendo
    passados para a função,
  • 2:47 - 2:50
    e ele está usando os valores
    que estamos chamando aqui.
  • 2:50 - 2:54
    Agora, como você pode ver, eu não fiz
    corretamente a posição do Winston,
  • 2:54 - 3:00
    porque esqueci que o texto fica posicionado
    de acordo com a parte superior esquerda,
  • 3:00 - 3:02
    e o rosto de acordo com o centro.
  • 3:02 - 3:07
    Então, eu só preciso ir e mexer com
    os meus números um pouco aqui, certo?
  • 3:07 - 3:10
    Provavelmente precise mover
    os x sobre um monte deles,
  • 3:10 - 3:15
    e mover sobre este, certo?...
    então essa é a nossa criança...
  • 3:15 - 3:18
    E agora tudo o que tenho que fazer
    é mudar o que eu estou
  • 3:18 - 3:22
    passando para a função, e eu não tenho que
    mudar a definição de todas as funções,
  • 3:22 - 3:26
    porque sempre vai levar os valores que
    nós passamos.
  • 3:26 - 3:29
    Assim como com o "ellipse ()"
    e o "rect ()".
  • 3:29 - 3:33
    Ok, então eu meio que posicionou ele, mas
    notei que o Winston é bem grande.
  • 3:33 - 3:36
    Ele está sobreposto,
    por isso ele não se encaixa.
  • 3:36 - 3:40
    Bem, já que eu coloquei todo o código para
    desenhá-lo em uma função, eu posso mudar
  • 3:40 - 3:45
    o tamanho de todos de uma vez só por mudar
    a linha de código que desenha a elipse.
  • 3:45 - 3:50
    Então, digamos que se fizermos ele com
    190..sim, o Winston fará uma dieta de 190.
  • 3:51 - 3:56
    Muito bem, então agora ele vai se encaixar
    muito melhor e, em seguida
  • 3:56 - 3:59
    você sabe que eu poderia ajustar para
    levá-lo lá pra dentro, certo?
  • 4:02 - 4:06
    Legal. Então vamos fazer uma revisão final
    do que esse código faz.
  • 4:07 - 4:09
    Ele define uma função
    chamada drawWinston (),
  • 4:09 - 4:15
    e diz que esta função recebe dois valores,
    e os rotula como "faceX" e "faceY",
  • 4:15 - 4:19
    e esses valores vêm basicamente como
    variáveis que podemos usar em qualquer
  • 4:19 - 4:22
    lugar dentro da função, assim como
    usamos as variáveis
  • 4:22 - 4:24
    que nós declarados no topo.
  • 4:25 - 4:29
    E então podemos chamar esta função sempre
    que quisermos depois de declará-la,
  • 4:29 - 4:32
    e podemos passar em valores diferentes,
    de modo que ele vai usar
  • 4:32 - 4:34
    esses novos valores de cada vez.
  • 4:35 - 4:37
    Agora você já viu a parte
    legal sobre funções.
  • 4:37 - 4:41
    Podemos chegar a um código que
    pensamos que seria útil para recusar,
  • 4:41 - 4:43
    mas também podemos utilizar
    parâmetros para dizer:
  • 4:43 - 4:47
    "Ei, aqui tem algo que você pode mudar
    para personalizar esse código."
  • 4:47 - 4:50
    É como uma receita. Você escreve as
    instruções gerais,
  • 4:50 - 4:54
    e se perceber que precisa alimentar
    quatro Winstons em vez de um,
  • 4:54 - 4:57
    não tem que começar tudo de novo.
    Basta alterar as instruções originais
  • 4:57 - 4:58
    e multiplicar tudo por quatro.
  • 4:58 - 5:01
    Agora você pode pensar sobre as
    receitas em seu código!
  • 5:01 - 5:02
    Delícia.
  • 5:02 - 5:04
    Legendado por [Fernando dos Reis]
    Revisado por [Cainã Perri]
Title:
Parâmetros de Função (Versão em Vídeo)
Description:

Esta é apenas uma captura de tela da nossa codificação interativa de conversa, preparada para fazer legendas e traduções mais fáceis. É melhor assistir a nossa conversa aqui: https://www.khanacademy.org/cs/programming/

more » « less
Video Language:
English
Duration:
05:05

Portuguese, Brazilian subtitles

Revisions