• Python
  • 10. Algoritmos
  • Raiz quadrada

Reconhecimento de padrões#

Em muitos exercícios envolvendo repetição, vamos utilizar os mesmos padrões vistos no começo do handout.

Vamos ver se conseguimos identificar alguns desses padrões no exercício a seguir:

Raiz quadrada por subtrações#

Escreva uma função que recebe um número inteiro e devolva a raiz_quadrada dele, para fazer essa conta use a estratégia de subtrações sucessivas. Suponha que o número informado é positivo e vai levar a uma raiz quadrada exata, ou seja não vai ser um número "quebrado". Para fazer esse cálculo, faça subtrações sucessiva dos números impares do valor pedido, o número de vezes é o valor desejado.

Exemplo: Vamos encontrar a raiz quadrada do número 49 utilizando essa técnica.

1
2
3
4
5
6
7
49 - 1  = 48
48 - 3  = 45
45 - 5  = 40
40 - 7  = 33
33 - 9  = 24
24 - 11 = 13
13 - 13 = 0

O número de vezes que repetimos esse processo representa a raiz quadrada do número 49, ou seja, 7.

Acessar exercício "Raiz quadrada por subtrações"

Conforme a dificuldade dos exercícios aumentam é possível quebrar o exercício em problemas menores. Assim, conseguimos diluir a dificuldade do problema maior nos problemas menores.

Podemos pensar que um exercício de dificuldade 3, pode ser uma combinação de 3 exercícios de dificuldade 1.

Exercise 1

Tente pensar em como você poderia quebrar o exercício em problemas menores. Quais passos são necessário para resolver este problema?

Answer

Neste exercício, o importante é você conseguir pensar em como quebraria este problema em problemas menores que vão nos auxiliar a encontrar uma solução.

Exercise 2

Para resolver o exercício Raiz quadrada por subtrações, você conseguiu identificar quais padrões de utilização do while serão necessários?

Answer

Para a resolução do exercício será necessário utilizar os padrão de Contador e Somatório. Vale ressaltar que o padrão de uso do somatório irá mudar um pouco.

Contador#

Exercise 3

Para resolver este exercício precisaremos de dois contadores.

Você consegue identificar quais contagens precisaremos fazer?

Answer

Para resolver este exercício precisaremos contar a quantidade de subtrações efetuadas e precisaremos simular a sequência dos números ímpares.

Identificando valores que sofrem mudança na série de frações.

Exercise 4

A tarefa de gerar uma sequência de números ímpares utilizando contador parece uma forte candidata a subproblema. Então vamos resolver este subproblema.

Crie a função raiz_quadrada que recebe como argumento um número inteiro e imprima os valores ímpares de 1 a n.

Ao resolver este exercício, os testes com o nome Imprime números ímpares devem passar com sucesso.

Exemplo: raiz_quadrada(5)

Saída:

1
3
5

O outro contador que precisamos utilizar está relacionado a quantidade de subtrações efetuadas. Então voltaremos a este subproblema depois.

Exercise 5

Outro subproblema para este exercício são as sucessiva subtrações. Para isso, vamos utilizar o padrão do somatório, porém vamos ter que fazer uma adaptação.

Qual será a mudança necessária?

Answer

Para resolver este exercício, precisaremos efetuar sucessivas operações de subtração.

Exercise 6

Para este exercício, precisamos efetuar sucessivas subtrações e para isso vamos utilizar o operador while.

Em que momento o operador while deve parar? Vamos assumir que n seja o argumento recebido pela função raiz_quadrada.

Answer

Para resolver este exercício, a função recebe um argumento n e fará sucessivas operações de subtração em n até que a variável n chegue em 0.

Exercise 7

Vamos modificar a função raiz_quadrada. Vamos continuar gerando os números ímpares, porém o argumento n não será mais utilizado para limitar a sequência dos números ímpares.

Agora vamos subtrair os valores ímpares da variável n. Ou seja, queremos subtrair valores de n até n chegar em 0.

Substitua o print do exercício por um print que imprima os resultados das subtrações.

Ao resolver este exercício, os testes com o nome Imprime resultados das subtrações devem passar com sucesso.

Exemplo: raiz_quadrada(49)

Saída:

48
45
40
33
24
13
0

Exercise 8

A função raiz_quadrada ainda não retorna nenhum valor. Para finalizar o exercício a função precisa retornar a raiz quadrada.

Modifique a função removendo o print e faça ela retornar o resultado esperado.

Ao resolver este exercício, os testes com o nome Finalizando raiz quadrada por subtrações devem passar com sucesso.

Estimando o valor de pi 2#

Vamos resolver juntos o exercício Estimando o valor de pi 2 👉 Clique aqui.