Introdução à Programação / Programação I

Documentos relacionados
Programação I Aula 11 Mais sobre ciclos e iteração

Introdução à Programação Aula 11 Mais sobre ciclos e iteração

Python - Comandos de Repetição

Nesta aula... Parâmetros opcionais Atribuição abreviada Instruções break e continue Interrupção da execução. 1 Estudo desta disciplina.

Introdução à Programação / Programação I

Introdução à Programação

Introdução à Programação Aula 5 Ciclos e condicionais

Nesta aula... Iteração indefinida. 1 Decisões em Python. 2 Funções lógicas. 3 Recursão. 4 Iteração. 5 Ciclo for ou while?

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Aula 7 Estruturas de Repetição Cleverton Hentz

Aula 06 Introdução à Programação com a Linguagem Python

Processamento da Informação Teoria. Laços aninhados

Laboratório de Programação 1 Aula 07

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Programação I Estruturas de Repetição

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Algoritmos e Programação

Processamento da Informação Teoria. Laços

Introdução à Programação / Programação I

Introdução à Engenharia ENG1000

Fundamentos da Programação

Python 3.x Estrutura de Repetição while

Computação 1 - Python Aula 9 - Teórica: Interferindo no fluxo de repetição: Break e Continue Laços Aninhados

ACH5531 Introdução à Computação Estruturas de repetição

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Programação I Aula 3 Primeiros programas

Estruturas Condicionais e de Repetição

Introdução à Programação / Programação I

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Introdução à Programação Aula 3 Primeiros programas

Programação de Computadores

Introdução à Linguagem C++

Programação Orientada a Objetos

Introdução à Programação Aula 9 Listas e tuplos

Programação I Aula 9 Listas e tuplos

Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23

Aulas Anteriores. Detalhes da linguagem de programação

Processamento da Informação Teoria. Recursividade

Laboratório 3 Comandos de repetição while, do-while e for

Variáveis e instruções de repetição

Introdução à Programação. Estruturas de Repetição

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Variáveis primitivas e Controle de fluxo

Introdução à Programação. Estruturas de Repetição

Computação e Programação

Controle de Fluxo. Laços e Desvios incondicionais

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

Laços de repetição for, while, do-while

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

Controle de Fluxo. Laços e Desvios incondicionais

Capítulo 8. Estruturas de Controle no Nível de Sentença

Fundamentos da Programação

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Aula 10 Comandos de Repetição For e Do While

A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

INF 1005 Programação I

Programação I Aula 16 Mais exemplos de recursão

Computação 1 - Python Aula 7 - Teórica Estrutura de Repetição com Teste de Parada: while. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Iteração em Python (Laços)

Lógica Computacional Aula 4

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Introdução à Programação / Programação I

Introdução à Programação

FUNDAMENTOS DA PROGRAMAÇÃO 1º Teste, 19 de abril de 2013, 1h30m

BC-0005 Bases Computacionais da Ciência Aula 07 Lógica de Programação: Estruturas de repetição

Aula 10 Comandos de Repetição

Escreva um programa que imprima todos os números impares do intervalo fechado de 1 a 100.

Introdução à Programação em C

Programação de Computadores IV. Estruturas de repetição Slides cedidos por Bruno Augusto Dorta Marques

Introdução à Programação / Programação I

Programação I Aula 6 Números pseudo-aleatórios Pedro Vasconcelos DCC/FCUP

Desenvolvimento de Aplicações Desktop

Estruturas de Repetição

Estruturas de Repetição

Comandos em C (cont.)

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Programação I Aula 16 Mais exemplos de recursão Pedro Vasconcelos DCC/FCUP

Fundamentos da Programação

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Introdução à Computação - aulas 01 e 02 -

Aula 4 Estruturas de Controle

Métodos Computacionais. Comandos Condicionais e de Repetição em C

Seleção Múltipla Laços (while, do-while, for) AULA 05

Aula 5 - Mais C e repetição

Fundamentos de Programação em Python

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes

Recursividade. Estrutura de Dados. Prof. Kleber Rezende

Introdução à Programação / Programação I

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

INFORMÁTICA PARA ENGENHARIA

Principais paradigmas de programação. Programação imperativa Programação funcional Programação lógica Programação OO

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Programação I Aula 6 Números pseudo-aleatórios

1 Definição de funções 1. 2 Valores boleanos e condicionais 5. Podemos depois usar as novas funções tal qual as pré-definidas

Transcrição:

Introdução à Programação / Programação I Aula 6: Mais sobre ciclos Rita P. Ribeiro 2018/2019 Departamento de Ciência de Computadores

Nesta aula 1. Ciclos for 2. Ciclos while 3. Saída e continuação num ciclo INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 1

Iteração Repetir instruções um número variável de vezes Para exprimir computação, tabelar uma função, etc. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 2

Ciclos for

Ciclos for for variável in sequência:. instruções a repetir. Repete instruções com a variável a tomar sucessivos valores da sequência O número de iterações está limitado pelo comprimento da sequência INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 3

Exemplo def crescente(n): # i vai de 1 até n-1 por incrementos de 1 for i in range(1, n): print(i) # fim do ciclo print( fim ) INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 4

Exemplo (cont.) >>> crescente(10) 1 2 3 4 5 6 7 8 9 fim INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 5

Sequências aritméticas A função range(a,b,k) gera sequências em progressão aritmética cujos valores são menores que b. a, a + k, a + 2k,... >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1,11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> list(range(0, 30, 5)) [0, 5, 10, 15, 20, 25] INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 6

Ciclos while

Ciclos while while condição:. instruções a repetir. Repete as instruções enquanto a condição for verdadeira A condição é re-avaliada após cada iteração O corpo do ciclo deve modificar alguma variável da condição INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 7

Exemplo def crescente(n): i = 1 while i<n: # repete estas instruções print(i) i = i+1 # após o fim do ciclo print( fim ) INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 8

Exemplo (cont.) >>> crescente(10) 1 2 3 4 5 6 7 8 9 fim INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 9

Modificar variáveis Muitas vezes necessitamos de incrementar ou decrementar variáveis.. i = i+1. Esta atribuição pode ser abreviada:. i += 1. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 10

Modificar variáveis (cont.) Mais geralmente, temos as seguintes atribuições abreviadas: v += k v = v + k v -= k v = v - k v *= k v = v * k v /= k v = v / k v //= k v = v // k v **= k v = v ** k INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 11

Um ciclo while pode não terminar def repete(): n = 1 while True: # repete indefinidamente print( Se,n, elefantes incomodam muita gente ) print(n+1, elefantes incomodam muito mais! ) n += 1 INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 12

Sequência de Collatz Nem sempre é fácil concluir que um ciclo while não termina. Exemplo: Calcular a Sequência de Collatz para um dado n > 0 Enquanto n não for igual a 1, gerar o próximo elemento da sequência usando a função: f (n) = { n/2 se n é par 3n + 1 se n é ímpar INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 13

Sequência de Collatz (cont.) def sequencia(n): print(n) while n!= 1: if n%2 == 0: n = n//2 else: n = 3*n+1 print(n) # n é par # n é ímpar INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 14

Sequência de Collatz (cont.) sequencia(1): 1 sequencia(2): 2, 1 sequencia(3): 3, 10, 5, 8, 4, 2, 1 sequencia(4): 4, 2, 1 sequencia(5): 5, 8, 4, 2, 1 sequencia(6): 6, 3, 10, 5, 8, 4, 2, 1... sequencia(27): 27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242,... são necessárias 111 iterações para chegar a 1... Não sabemos se esta função termina para todo n > 0. http://en.wikipedia.org/wiki/collatz_conjecture INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 15

Fatorial iterativo Calcular o fatorial de n n! = 1 2 (n 1) n 1. Inicialmente: p = 1 2. Repetir para i de 2 até n: p p i 3. No fim do ciclo o valor de p é n! INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 16

Fatorial usando um ciclo for def factorial(n): # p acumula o produto 1*2*...*n p = 1 # repetir para i de 2 até n for i in range(2, n+1): p *= i # resultado é o valor de p return p INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 17

Fatorial usando um ciclo while def factorial(n): # p acumula o produto 1*2*...*n p = 1 # repetir para i de 2 até n i = 2 while i<=n: p *= i i += 1 # resultado é o valor de p return p INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 18

Fatorial usando um ciclo while (cont.) Mais geralmente: Podemos sempre re-escrever um ciclo for num ciclo while. Nem sempre podemos re-escrever um ciclo while como um ciclo for (exemplo: a função que gera a sequência de Collatz). INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 19

Saída e continuação num ciclo

Saída e continuação num ciclo Duas instruções permitem alterar a execução de um ciclo: break sair a meio do ciclo continue passar à próxima iteração INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 20

Break com um ciclo for for i in [12, 16, 17, 24, 29]: if i % 2 == 1: # se é ímpar break #... termina o ciclo print(i) print("fim") Resultado: 12 16 fim INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 21

Continue com um ciclo for for i in [12, 16, 17, 24, 29, 30]: if i % 2 == 1: # se é impar continue #...passa ao próximo print(i) print("fim") Resultado: 12 16 24 30 fim INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 22

Saída de um ciclo while O teste do ciclo while ocorre antes da execução do corpo. Podemos usar break para colocar um teste no corpo do ciclo. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 23

Exemplo: teste no meio do corpo total = 0 while True: resposta = input("insira um número (ou vazio)") if resposta == : break # termina o ciclo total += int(resposta) print("total = ", total) INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 24

Sumário while repetir enquanto a condição é verdadeira for repetir para uma sequência de valores INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 25

Que tipo de ciclo usar? Ciclo for 1. iterar sobre sequências aritméticas; 2. iterar sobre listas ou tuplos. Ciclo while nos outros casos. INTRODUÇÃO À PROGRAMAÇÃO / PROGRAMAÇÃO I - 2018/2019: AULA 6 26