Buscar

Aula 08 - Loop While (Solução de uma equação e Exercícios)

Prévia do material em texto

INE 5201 
LÓGICA DE PROGRAMAÇÃO - ALGORITMOS 
- Estruturas de repetição - while 
Aula 08 
O que veremos na aula de hoje: 
- Estrutura de repetição 
- Loop for 
- Exemplos sobre estrutura de repetição (for – para); 
- Loop while 
- Exercícios sobre estrutura de repetição (while – enquanto); 
 
 
INE 5201 – Introdução à algoritmos 
Estrutura de repetição para um número indefinido de 
repetições e teste no início (estrutura ENQUANTO ou 
WHILE): 
 
Essa estrutura de repetição é utilizada quando não se 
sabe o número de vezes que um trecho do algoritmo 
deve ser repetido; 
 
Embora também possa ser utilizada quando se conhece 
esse número; 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
Estrutura de repetição ENQUANTO ou WHILE: 
 
Essa estrutura de repetição se baseia na análise de uma 
condição; 
 
A repetição será feita enquanto a condição se mostrar 
verdadeira; 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
Estrutura de repetição ENQUANTO ou WHILE: 
 
 
 
 
 
Enquanto a condição for verdadeira (TRUE) o bloco de 
código, ou os comandos serão executados; 
 
Quando a condição for falsa (FALSE) o bloco de código, 
ou os comandos serão ignorados; 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
enquanto condição faça: 
 ... 
 bloco de código 
 ... 
PSEUDOCÓDIGO 
while condição : 
 ... 
 bloco de código 
 ... 
PYTHON 3 
Estrutura de repetição ENQUANTO ou WHILE: 
 
Exemplo simples: 
 
 
 
 
 
 
Enquanto a condição for verdadeira o bloco de código 
(ou os comandos) serão executados; 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
x ← 1 
y ← 50 
enquanto (x < y) faça: 
 x ← x + 2 
escreva(“x = ”, x) 
x = 1 
y = 50 
while (x < y) : 
 x = x + 2 
print(“x = ”, x) 
PSEUDOCÓDIGO PYTHON 3 
Estrutura de repetição ENQUANTO ou WHILE: 
 
Exemplo simples: 
 
 
 
 
 
 
Enquanto a condição for verdadeira o bloco de código 
(ou os comandos) serão executados; 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
x ← 1 
y ← 5 
enquanto (x < y) faça: 
 x ← x + 2 
 y ← y + 1 
x = 1 
y = 5 
while (x < y) : 
 x = x + 2 
 y = y + 1 
PSEUDOCÓDIGO PYTHON 3 
Estrutura de repetição ENQUANTO ou WHILE: 
 
 
 
 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
x ← 1 
y ← 5 
enquanto (x < y) faça: 
 x ← x + 2 
 y ← y + 1 
x y 
1 5 Valores iniciais 
Teste de Mesa! 
Estrutura de repetição ENQUANTO ou WHILE: 
 
 
 
 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
x ← 1 
y ← 5 
enquanto (x < y) faça: 
 x ← x + 2 
 y ← y + 1 
x y 
1 5 Valores iniciais 
3 6 
Valores obtidos dentro da estrutura de repetição 
5 7 
7 8 
9 9 
Teste de Mesa! 
Estrutura de repetição ENQUANTO ou WHILE: 
 
Exemplo: repetições aninhadas 
 
 
 
 
 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
tabuada ← 1 
enquanto (tabuada <= 10) faça: 
 numero ← 1 
 enquanto (numero <= 10) faça: 
 escreve( tabuada, “x”, numero, “=”, tabuada*numero) 
 numero ← numero + 1 
 tabuada ← tabuada + 1 
 
PSEUDOCÓDIGO 
Estrutura de repetição ENQUANTO ou WHILE: 
 
Exemplo: repetições aninhadas 
 
 
 
 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
tabuada = 1 
while (tabuada <= 10) : 
 numero = 1 
 while (numero <= 10) : 
 print(“%d x %d = %d” % (tabuada, numero, tabuada*numero) ) 
 numero = numero + 1 
 tabuada = tabuada + 1 
 
PYTHON 3 
PYTHON 3 
Estrutura de repetição ENQUANTO ou WHILE: 
 
Exemplo anterior sem aninhamento 
 
 
 
 
INE 5201 – Introdução à algoritmos 
2.1.4 Algoritmo: Estrutura de repetição 
tabuada = 1 
numero = 1 
while (tabuada <= 10) : 
 print(“%d x %d = %d” % (tabuada, numero, tabuada*numero) ) 
 numero = numero + 1 
 if (numero == 11): 
 numero = 1 
 tabuada = tabuada + 1 
 
PYTHON 3 
PYTHON 3 
Exemplo: 
Raiz quadrada exata: 
𝟒 = 𝟐 
𝟗 = 𝟑 
𝟏𝟔 = 𝟒 
𝟐𝟓 = 𝟓 
𝟑𝟔 = 𝟔 
𝟒𝟗 = 𝟕 
𝟔𝟒 = 𝟖 
𝟖𝟏 = 𝟗 
 
 
 
INE 5201 – Introdução à algoritmos 
Solução de uma equação – raiz de uma equação 
Exemplo: Raiz quadrada exata 
𝟏𝟎𝟎 = 𝟏𝟎 
 
𝑺 = 𝒙 
 
𝑺 = 𝒙𝟐 
Solução da equação ou a raiz de uma equação: 
 
𝒇 𝒙 = 𝑺 − 𝒙𝟐 = 𝟎 
 
 
 
 
 
INE 5201 – Introdução à algoritmos 
Exemplo: 
Raiz quadrada exata de 100 
 
𝒇 𝒙 = 𝑺 − 𝒙𝟐 = 𝟎 
 
𝒇 𝒙 = 𝟏𝟎𝟎 − 𝒙𝟐 = 𝟎 
 
𝒙 = 𝟏𝟎 
 
𝒇 𝟏𝟎 = 𝟏𝟎𝟎 − 𝟏𝟎𝟐 = 𝟎 
 
 
 
 
INE 5201 – Introdução à algoritmos 
solução 
Exemplo: 
Raiz quadrada exata de 64 de forma iterativa: 
𝒇 𝒙 = 𝑺 − 𝒙𝟐 = 𝟎 
𝒇 𝒙 = 𝟔𝟒 − 𝒙𝟐 = 𝟎 
Chute inicial, 𝒙 = 𝟔 
𝒙 = 𝟔 
𝒇 𝒙 = 𝟔𝟒 − 𝒙𝟐 = 𝟎 
𝒇 𝟔 = 𝟔𝟒 − 𝟔 ∗ 𝟔 = 𝟐𝟖 
𝒙 = 𝟕 
𝒇 𝟕 = 𝟔𝟒 − 𝟕 ∗ 𝟕 = 𝟏𝟓 
𝒙 = 𝟖 
𝒇 𝟖 = 𝟔𝟒 − 𝟖 ∗ 𝟖 = 𝟎 
 
 
 
INE 5201 – Introdução à algoritmos 
solução 
Analise os algoritmos a seguir e explique suas 
diferenças: 
 
Algoritmo 1: 
 
 
 
Algoritmo 2: 
 
 
INE 5201 – Introdução à algoritmos 
Exemplo: 
Raiz cúbica exata de 27 de forma iterativa: 
𝒇 𝒙 = 𝑺 − 𝒙𝟑 = 𝟎 
𝒇 𝒙 = 𝟐𝟕 − 𝒙𝟑 = 𝟎 
Chute inicial, 𝒙 = 𝟏 
𝒙 = 𝟏 
𝒇 𝒙 = 𝟐𝟕 − 𝒙𝟑 = 𝟎 
... 
 
 
 
INE 5201 – Introdução à algoritmos 
INE 5201 – Introdução à algoritmos 
PYTHON 3 # Comentário 
Dado o algoritmo anterior, analise e altere a forma de 
como a função print() é utilizada. 
 
Verifique e entenda sua estrutura. 
 
 
Dica: concatenação de strings “a” + “b” 
 
 
INE 5201 – Introdução à algoritmos 
O algoritmo seguinte utiliza o mesmo contexto para 
encontrar a solução, porém utiliza uma lista de 
entradas. 
 
Avalie sua forma e utilização. 
 
 
INE 5201 – Introdução à algoritmos 
INE 5201 – Introdução à algoritmos 
PYTHON 3 # Comentário 
O algoritmo seguinte utiliza o mesmo contexto para 
encontrar a solução, porém utiliza uma lista de 
entradas e essa lista é criada automaticamente com a 
função range(). 
 
Avalie sua forma e utilização. 
 
 
INE 5201 – Introdução à algoritmos 
INE 5201 – Introdução à algoritmos 
PYTHON 3 # Comentário 
Solução de uma equação – raiz de uma equação 
Exemplo: Raiz quadrada inexata 
𝟓 ≈ 𝟐, 𝟐𝟑𝟔𝟎𝟔𝟕𝟗 … 
𝑺 ≈ 𝒙 
𝑺 = 𝒙𝟐 + 𝒆𝒓𝒓𝒐 
Solução da equação ou a raiz de uma equação: 
𝒇 𝒙 = 𝑺 − 𝒙𝟐 = |𝒆𝒓𝒓𝒐| 
 
Devendo o erro absoluto ser pequeno, ou menor que 
um dado critério, exemplo: 
|𝒆𝒓𝒓𝒐| ≤ 𝟏𝟎−𝟒 
 
 
 
 
 
INE 5201 – Introdução à algoritmos 
Exemplo: 
Raiz quadrada inexata de 5, de forma iterativa: 
𝒇 𝒙 = 𝑺 − 𝒙𝟐 = |𝒆𝒓𝒓𝒐| 
𝒇 𝒙 = 𝟓 − 𝒙𝟐 = |𝒆𝒓𝒓𝒐| 
Chute inicial, 𝒙 = 𝟐, com um passo de 𝟎, 𝟏: 
𝒙 = 𝟐 
𝑓 2 = 5 − 2 ∗ 2 = 5 − 4 = 1 = 1 
𝒙 = 𝟐, 𝟏 
𝑓 2,1 = 5 − 2,1 ∗ 2,1 = 5 − 4,41 = 0,59 = 0,59 
𝒙 = 𝟐, 𝟐 
𝑓 2,2 = 5 − 2,2 ∗ 2,2 = 5 − 4,84 = 0,16 = 0,16 
 
 
 
INE 5201 – Introdução à algoritmos 
Analise o erro até este momento: 
Plote os dados, manualmente e continuea iteração.. 
 
 
INE 5201 – Introdução à algoritmos 
x 
Er
ro
 a
b
so
lu
to
 
1,00 
0 1 2 3 4 
0,59 
0,16 
Continuação: 
𝒙 = 𝟐, 𝟑 
𝑓 2,3 = 5 − 2,3 ∗ 2,3 = 5 − 5,29 = −0,29 = 0,29 
Divergiu, ou seja não encontramos a solução !!! 
 
Note que o erro absoluto começou a aumentar novamente, se 
afastando do zero... (se desejar continue a iteração e prove o 
que esta ocorrendo) 
O que precisamos fazer para convergir até uma possível 
solução???? 
Analise o caso acima e sugira uma alguma mudança. 
 
INE 5201 – Introdução à algoritmos 
Exercício D1: (em casa) 
 
Para o caso anterior, primeiro construa um algoritmo para 
resolver o problema. 
 
Implemente em Python 
 
Transforme o algoritmo em uma função e modifique até 
encontrar uma solução aproximada, com um erro inferior a 
10E-3. 
 
INE 5201 – Introdução à algoritmos 
Exercícios 
Exercícios - Algoritmo: Ordenação 
Exercício D2: (em casa) 
 
INE 5201 – Introdução à algoritmos 
A = [ , , , , , , , ] 
Em uma folha separada faça o Teste de Mesa 
para o algoritmo de ordenação por inserção, 
até o final. 
Exercício D3: Estrutura de repetição ENQUANTO (15 min) 
Faça um algoritmo que receba o salário de um funcionário 
chamado Carlos. 
Sabe-se que outro funcionário, João, tem salário equivalente a 
um terço do salário de Carlos. 
Carlos aplicará seu salário integralmente na caderneta de 
poupança, que rende 2% ao mês, e João aplicará seu salário 
integralmente no fundo de renda fixa, que rende 5% ao mês. 
O algoritmo deverá calcular e mostrar a quantidade de meses 
necessários para que o valor pertencente ao João iguale ou 
ultrapasse o valor pertencente ao Carlos. 
 
 
 
 
INE 5201 – Introdução à algoritmos 
Exercícios 
Exercício D4: Estrutura de repetição ENQUANTO 
Sequência de Fibonacci: 
É uma sequência de números naturais, na qual os primeiros 
dois termos são 0 e 1, e cada termo subsequente 
corresponde à soma dos dois precedentes. 
 
 
 
 
 
 
INE 5201 – Introdução à algoritmos 
Exercícios 
Exercício D4: Estrutura de repetição ENQUANTO 
Sequência de Fibonacci: 
É uma sequência de números naturais, na qual os 
primeiros dois termos são 0 e 1, e cada termo 
subsequente corresponde à soma dos dois 
precedentes. 
 
Faça um algoritmo que resolva a sequência até que o 
primeiro valor da sequência seja maior que 100. 
 
0 1 1 2 3 5 8 13 21 34 55 89 144 
 
 
INE 5201 – Introdução à algoritmos 
Exercícios 
Exercício D5: Estrutura de repetição ENQUANTO 
O Sr. Manoel Joaquim acaba de adquirir uma panificadora e 
pretende implantar a metodologia da tabelinha, que já é um 
sucesso na sua loja de 1,99. Você foi contratado para 
desenvolver o programa que monta a tabela de preços de pães, 
de 1 até 50 pães, a partir do preço do pão informado pelo 
usuário, conforme o exemplo abaixo: 
Preço do pão: R$ 0.18 
Panificadora Pão de Hoje - Tabela de preços 
1 - R$ 0.18 
2 - R$ 0.36 
... 
50 - R$ 9.00 
 
INE 5201 – Introdução à algoritmos 
Exercícios 
Exercício D6: Estrutura de repetição ENQUANTO 
Em uma eleição presidencial existem quatro candidatos. Os 
votos são informados por meio de código. Os códigos utilizados 
são: 
1 , 2, 3, 4 - Votos para os respectivos candidatos (você deve montar a tabela 
ex: 1 - Jose/ 2- João/etc) 
5 - Voto Nulo 
6 – Voto em Branco 
Faça um programa que calcule e mostre: 
• O total de votos para cada candidato; 
• O total de votos nulos; 
• O total de votos em branco; 
• A percentagem de votos nulos sobre o total de votos; 
• A percentagem de votos em branco sobre o total de votos. Para finalizar o 
conjunto de votos tem-se o valor zero. 
 
INE 5201 – Introdução à algoritmos 
Exercícios

Continue navegando