Baixe o app para aproveitar ainda mais
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
Compartilhar