Portuguese, Brazilian subtitles

← 02-11 Using Procedures

02-11 Usando Procedimentos

Get Embed Code
8 Languages

Showing Revision 2 created 08/01/2014 by Fran Ontanaya.

  1. Infelizmente, ainda não estamos prontos para ficar completamente felizes.
  2. Sebastian me disse que ainda levará alguns anos até que eu possa ter
  3. meu próprio carro autônomo. Mas o maior problema é que ainda não falamos sobre
  4. como usar um procedimento.
  5. Tudo o que fizemos foi definir um. Até que possamos realmente usá-los,
  6. não temos uma boa razão para ficar muito felizes.
  7. Vamos aprender como usá-los a seguir, e então poderemos ficar mais felizes.
  8. Agora, vamos aprender como usar um procedimento.
  9. A maneira como usamos procedimento é: precisamos do nome do procedimento, seguido de
  10. ( seguido de uma lista de entradas e ).
  11. O número de entradas pode ser qualquer, mas deve casar com o número de entradas
  12. que o procedimento espera.
  13. Essas entradas são algumas vezes chamadas de operandos.
  14. E algumas vezes chamadas de argumentos.
  15. Não vamos discutir sobre isso.
  16. Vamos simplesmente chamá-las de entradas.
  17. Você de fato já fez algo bem similar a isso.
  18. Voltando na Unidade 1, você aprendeu a usar find sobre strings.
  19. Com find, você pode passar uma ou duas entradas.
  20. A primeira entrada era uma string:
  21. a string pela qual você estava procurando -- essa era a primeira entrada;
  22. e a segunda entrada poderia ser um número: a posição onde você começa
  23. a pesquisar por essa string.
  24. Nós usamos find de várias maneiras na Unidade 1, e você também usou
  25. nos exercícios da Unidade 1.
  26. find é um pouco diferente dos procedimentos que você vai definir aqui.
  27. Em primeir lugar, ele é pré-definido.
  28. A outra coisa que é diferente é que, ao invés de ter apenas find, nós temos
  29. outra entrada que está aqui.
  30. Temos o string no qual vamos fazer a pesquisa -- digamos que ele fosse
  31. a variável page -- isso é, de fato, uma outra entrada para find.
  32. Mais adiante vamos falar sobre porque isso é feito de maneira diferente, mas é
  33. bastante semelhante a chamar um procedimento em que uma das entradas está aqui,
  34. e as outras duas estão aqui.
  35. É um pouco diferente disso, e não vamos ver isso neste curso, mas
  36. em um curso posterior você vai aprender mais sobre o que isso significa.
  37. Para todos os procedimentos que você vai definir aqui, não haverá nenhum
  38. objecto sobre o qual eles serão invocados.
  39. Simplesmente teremos o procedimento a chamar e os argumentos, ou operandos, ou entradas --
  40. como você queira chamá-los -- que serão passados.
  41. Vamos ver como isso funciona, com um procedimento simples.
  42. Eu vou definir o procedimento rest_of_string, que vai ter
  43. um parâmetro s -- isso significa que ele tem uma entrada, e vamos usar o nome
  44. s para nos referirmos ao valor dessa entrada.
  45. Ele vai retornar a string que vai desde o caractere na posição 1 até o final da string.
  46. Vamos usar o operador de indexação de string: return s[1:].
  47. Isso avalia para a string obtida removendo-se a primeira letra; portanto, toda a string a partir
  48. da posição 1 até o final da string.
  49. É isso que é retornado.
  50. Então, a saída de rest_of_string é esta nova string, que começa da
  51. segunda letra da string de entrada.
  52. Aqui está um exemplo de como usar este procedimento.
  53. Podemos chamá-lo diretamente.
  54. Podemos dizer print rest_of_string --
  55. este é o nosso procedimento --
  56. e agora temos ( e vamos passar uma entrada.
  57. rest_of_string tem 1 parâmentro e, portanto, precisamos passar de 1 entrada
  58. para ele, que deve ser uma string.
  59. Vamos passar a string 'audacity'.
  60. O que acontece quando chamamos um procediento como esse é que a execução desvia
  61. para o corpo desse procedimento.
  62. Podemos pensar no que o interpretador está fazendo agora.
  63. Ao invés de executar este código aqui, o interpretador desvia:
  64. quando chamamos um procedimento, ele desvia para executar o código que está dentro do procedimento.
  65. Ele vai atribuir aos parâmetros os valores que são passados como entrada.
  66. Podemos pensar nisso como sendo uma atribuição, que diz que agora o valor de
  67. s é o valor dessa entrada que está sendo passada.
  68. Agora, vamos avaliar o corpo do procedimento.
  69. Neste caso, existe apenas um comando -- este comando return.
  70. Vamos encontrar o valor de s[1:] --
  71. o resultado disso será a string 'udacity' --
  72. e então chegamos ao return.
  73. O que return significa é que vamos desviar de volta.
  74. Vamos voltar para onde o procedimento foi chamado, mas agora realemte
  75. temos um resultado.
  76. Quando voltamos, o valor para o qual isso é avaliado é o valor que nós
  77. retornamos.
  78. Neste caso, é a string 'udacity'.
  79. Então, não temos ainda nosso carro autônomo,
  80. mas agora você já sabe definir e usar procedimentos.
  81. Esse é um conceito realmente poderoso!
  82. Tudo o que vamos fazer no resto do curso e quase tudo
  83. que todo mundo faz em programação de computadores tem a ver com dedinir
  84. procedimentos e usar procedimentos.
  85. Agora podemos abrir um grande sorriso.
  86. Podemos pensar em nossos procedimentos em termos de mapeamento de entradas em saídas.
  87. Podemos pensar pensar em nós, humanos, também como mapeamentos de entradas em saídas:
  88. temos entradas vindo de nossos olhos, por meio da
  89. boca, e até pelo nosso nariz.
  90. Eu não vou tentar desenhar nenhuma das saídas do nosso procedimento 'humano', mas como
  91. procedimentos são um conceito tão importante, vamos ter vários
  92. testes agora, para verificar se você entendeu bem esse conceito.