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