Portuguese, Brazilian subtitles

← 02ps-04 Proc Solution

02ps-04 Proc - Solução

Get Embed Code
6 Languages

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

  1. Para resolver este problema, você precisa ter um bom entendimento
  2. sobre o que faz a função original -- proc.
  3. Vejamos então os dois casos que envolvem o resultado desta função.
  4. Existem 2 entradas, mas a saída depende apenas do valor de a.
  5. Especificamente, do valor da função test, sobre a.
  6. Se test(a) for True, então retornamos o segundo parâmetro -- b.
  7. Se test(a) for False, nós retornamos o primeiro parâmetro -- a.
  8. O que precisamos verificar em cada uma dessas funções -- vamos ver cada uma delas.
  9. Em proc1, se test(x) -- que é o primeiro parâmetro -- for True, nós retornamos y.
  10. Isso casa com a função original,
  11. se test aplicado ao primeiro parâmetro é True, retornamos o segundo, assim como em proc1.
  12. Se test aplicado ao primeiro parâmetro for False, retornamos o parâmetro x.
  13. tex(x) é False, o que é equivalente a test(a) é False,
  14. e, em abos os casos, retornamos a e x,
  15. que são apenas nomes diferentes para a mesma variável, nesta função.
  16. Isso é equivalente.
  17. Vamos ver esta segunda função -- proc2.
  18. Note que aqui, essa condição é baseada no valor de b.
  19. Sabemos que isso não pode ser equivalente a proc, nossa função original,
  20. poque a saída aqui não é dependente do valor de b
  21. Podemos dizr, imediatamente, que isso é falso: Isso não é equivalente à nossa função original.
  22. Vamos ver proc3.
  23. A estrutura aqui é um pouco diferente, mas vamos examinar as duas, usando alguns exemplos.
  24. No caso em que test(a) é True, nós atribuímos b a result, e retornamos o resultado b.
  25. Assim coo faz nossa função original: se test(a) for True, retornamos b.
  26. Se test(a) for False, simplesmente retornamos result, que inicializamos, no in;icio, com o valor a.
  27. Então, a funcionalidade como um todo é que, se test(a) for True, nós retornamos a --
  28. isso casa com a definição da nossa função original.
  29. Então, isso é equivalente a proc.
  30. Agora, nós temos a última função -- proc4.
  31. Você pode ter descartado isso, porque vê aqui 'udacity', entre aspas, o que não está presente
  32. em nehuma outra função. Mas é importante que examinemos toda a questão.
  33. Se test(a) for true, então not(test(a)) é False,
  34. e retornamos b.
  35. Se test(a) for True, nós retornamos b.
  36. Isso casa com a definição original.
  37. Se test(a) for False, not(test(a)) é True,
  38. e então fazemos b = 'udacity', mas então retornamos a.
  39. Se test(a) for False, modificamos o valor de b,
  40. mas não fazemos nada com ele -- simplesmente retornamos a.
  41. O resultado é o mesmo que o da nossa função original.