Computação 1. Aula 8 Teórica professor: Leonardo Carvalho

Documentos relacionados
Computação 1. Aula 10 Teórica professor: Leonardo Carvalho

Computação 1. Aula 7 Teórica professor: Leonardo Carvalho

Computação 1. Aula 5 - Teórica Professor: Leonardo Carvalho

Exercício. ... P = [] Q = [] for v in range(-200, 200, 50): P.append( (v, -100) ) Q.append( (v, 100) )

Computação 1 - Python Aula 8 - Teórica: Estrutura de Repetição : for 1/ 10

Computação 1. Aula 4 - Teórica Professor: Leonardo Carvalho

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

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

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

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

Computação 2. Aula 6 Teórica professor: Leonardo Carvalho

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

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

Computação 2. Aula 3 Teórica professor: Leonardo Carvalho

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

Python - Comandos de Repetição

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

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

SCC0124 Introdução à Programação para Engenharias

Processamento da Informação Teoria. Laços

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

Computação 2. Aula 5 Teórica professor: Leonardo Carvalho

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

Processamento da Informação Teoria. Listas e Matrizes

Algoritmos de Ordena??o e Busca

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

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

Programação I Aula 3 Primeiros programas

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

Algoritmos I Aula 10 Estrutura de controle: repetição

Computação 1. Aula 11 Teórica professor: Leonardo Carvalho

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

Estruturas de Repetição. Leonardo Murta

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

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

Introdução a programação Comandos de repetição

5 Comando de Seleção Simples e Composta

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

Computação 1 - Python Aula 9 - Teórica Laços Aninhados e Matrizes. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 15

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

Computação 1. Aula 2 Teórica professor: Leonardo Carvalho

Computação eletrônica: Estruturas de repetição

3. Linguagem de Programação C

Algoritmos e Programação

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

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 05 de abril de 2010

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

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

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

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

Computação 2. Aula 7 Teórica professor: Leonardo Carvalho

Estruturas de Repetição. Vanessa Braganholo

Introdução a programação em Python Flávio Filipe L. S. Porto

Computação 1. Revisão Geral professor: Leonardo Carvalho

12 Indicador de Passagem

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

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Aula 16: Laços aninhados e desvios

Estruturas de Repetição. Vanessa Braganholo

ACH5531 Introdução à Computação

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

Computação 1 - Python Aula 11 - Teórica: Matrizes. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 9

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

Refinamentos sucessivos

Técnicas Inteligência Artificial

Algoritmos e Programação

Processamento da Informação

Python. Resumo e Exercícios P2 Parte 1

Laboratório de Programação 1 Aula 07

Vetores. Vanessa Braganholo

Listas e Tuplas. Vanessa Braganholo

Lista de Exercícios Repetição Prof: Yuri Frota

Introdução à Programação Aula 19 Programação com objetos

Lista de Exercícios - 1 Prof: Yuri Frota

Programação: Vetores

ESTRUTURAS DE CONTROLE

Estruturas de Controle em Python

Computação 2. Aula 8 Teórica professor: Leonardo Carvalho

Aula 15: Repetição (Parte 3)

Aula 10: Manipulação do fluxo de laços

Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

DURAÇÃO DA PROVA: 2 horas

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

Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função 1/ 19

Integração numérica. Prof. Luiz T. F. Eleno. Departamento de Engenharia de Materiais Escola de Engenharia de Lorena Universidade de São Paulo

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Prof. A. G. Silva. 13 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de setembro de / 21

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

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

AULA 4. Estruturas e controlo: for, if, while, def. Somatórios. Funções python. Mais sobre regressão linear Laboratório Numérico 1

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

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi

Estruturas de Repetição Parte I ENQUANTO-FAÇA

Vetores são estruturas indexadas utilizadas para armazenar dados de um mesmo tipo: int, char, float ou double. Oexemploaseguirédeumvetordeinteiros:

1 Da aula teórica ao Java

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

Estruturas de Repetição

Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 25

Transcrição:

Computação 1 Aula 8 Teórica professor: Leonardo Carvalho

Mais exercícios com for 2

Exercício Escreva uma função que recebe um inteiro n e retorna o somatório: 3

Solução import math def somatorio(n): '''Calcula a soma 1/x! para x de 0 a n.''' s = 0 for x in range(n+1): s += 1.0/math.factorial(x) return s 4

Testando >>> somatorio(1) 2.0 >>> somatorio(2) 2.5 >>> somatorio(5) 2.7166666666666663 >>> somatorio(10) 2.7182818011463845 >>> somatorio(15) 2.718281828458995 >>> somatorio(20) 2.7182818284590455 >>> somatorio(25) 2.7182818284590455 5

Exercício Escreva uma função que recebe uma sequência L e retorna a quantidade de valores pares em L Exemplo: >>> quantos_pares([3, 1, 2, 20, 5, 8, 10, 4, 7, 9, 8, 10]) 7 >>> quantos_pares([1, 3, 9, 7]) 0 >>> quantos_pares([8, 8, 8, 8, 8]) 5 6

Solução def quantos_pares(l): '''Retorna a quantidade de numeros pares em L.''' n = 0 for x in L: if x%2==0: n += 1 return n 7

Exercício Escreva uma função que recebe um valor x e uma sequência a e retorna o valor do polinômio: a[0] + a[1]*x + a[2]*x**2 +... + a[n-1]*x**(n-1) onde n é o tamanho da sequência a 8

Solução def polinomio(x, a): '''Calcula o polinomio a[0] + a[1]*x + a[2]*x**2 +... + a[n-1]*x**(n-1)''' s = 0 for i in range(len(a)): s += a[i]*x**i return s 9

Testando >>> a = 1, 2, 3 >>> polinomio(0, a) 1 >>> polinomio(1, a) 6 >>> polinomio(2, a) 17 >>> b = 5, -2, -1, 0, 3 >>> polinomio(3, b) 233 >>> polinomio(1.2, b) 7.3808 10

Função max Sabemos que a função max pode ser usada para obter o maior elemento de uma sequência: >>> max([29, 81, 74, 71, 7, 9, 1, 20, 40]) 81 >>> max([29, -81, 74, 71, -7, 9, -1, -20, 40]) 74 >>> max(range(100)) 99 Mas como a função max funciona? 11

Exercício Escreva uma função que recebe uma sequência L e retorna o maior elemento de L sem usar a função max!!! 12

Solução def maximo(l): '''Retorna o maior elemento de L.''' m = L[0] for x in L: if x > m: m = x return m 13

14

Exercício O que faz este código? import turtle import random turtle.speed('fastest') angulo = random.randint(-30, 30) distancia = random.randint(0, 10) turtle.left(angulo) turtle.forward(distancia) turtle.done() 15

Exercício Como fazer a tartaruga dar 100 passos aleatórios? 16

Exercício import turtle import random turtle.speed('fastest') for i in range(100): angulo = random.randint(-30, 30) distancia = random.randint(0, 10) turtle.left(angulo) turtle.forward(distancia) turtle.done() 17

Exercício Como calcular a distância percorrida pela tartaruga? 18

Exercício... distancia_total = 0 for i in range(100): angulo = random.randint(-30, 30) distancia = random.randint(0, 10) turtle.left(angulo) turtle.forward(distancia) distancia_total += distancia turtle.write(distancia_total)... 19

Exercício Como fazer a tartaruga andar até que a distância total seja maior do que 100? 20

Exercício Quantos passos serão necessários? 10? 100? 1000? 1000000? Não sabemos! 21

precisamos de outra estrutura de repetição 22

while condicao: comandos 23

Exemplo... distancia_total = 0 while distancia_total < 100: angulo = random.randint(-30, 30) distancia = random.randint(0, 10) turtle.left(angulo) turtle.forward(distancia) distancia_total += distancia turtle.write(distancia_total)... 24

Exemplo i = 0 while i < 10: turtle.write(i) turtle.forward(20) i += 1 25

Exemplo Neste caso podemos trocar while pelo for i = 0 for i in range(10): turtle.write(i) turtle.forward(20) i + = 1 26

Todo for pode ser feito com while... 27

Exemplo Reescreva o código abaixo usando while no lugar de for for p in L: turtle.goto(p) turtle.dot(20) 28

Solução i = 0 while i < len(l): turtle.goto(l[i]) turtle.dot(20) i += 1 29

Mas nem todo while pode ser feito com for! 30

Exemplo i = 0 while i%2==0: turtle.write(i) turtle.forward(20) i = random.randint(0, 10) 31

Loops infinitos E se a condição sempre for verdadeira? def zueira(): i = 0 while i<10: i = 1 32

Loops infinitos Podemos simplificar: def nada_pra_sempre(): '''Funcao que nao faz nada para sempre.''' while True: pass 33

Exemplo Fazer a tartaruga caminhar aleatoriamente para sempre... while True: angulo = random.randint(-30, 30) distancia = random.randint(0, 10) turtle.left(angulo) turtle.forward(distancia)... 34

Dever de casa Como evitar que a tartaruga saia da tela? Faça ela dar voltas na tela! 35

ULTRA MEGA ULTIMATE FIGHT VERMELHO VS AZUL 36

Simulação Vamos simular uma batalha entre uma bola vermelha e uma bola azul! Regras: cada bola começa com raio 100 em cada rodada é sorteado um número entre 0 e 20 para cada bola a bola que tiver o menor número perde a rodada, diminuindo de tamanho (o raio é reduzido pela diferença entre os valores sorteados) o jogo acaba quando o raio de uma das bolas chegar a zero ou menos 37

Inicialização import turtle import random import time turtle.speed('fastest') turtle.tracer(0) turtle.up() turtle.hideturtle() raio_azul = 100 raio_vermelho = 100 38

loop... while raio_azul > 0 and raio_vermelho > 0:... 39

Desenhando as bolinhas... while raio_azul > 0 and raio_vermelho > 0: turtle.clear() # limpa a tela turtle.goto(-200, 0) turtle.color('blue') turtle.dot(2*raio_azul) turtle.goto(200, 0) turtle.color('red') turtle.dot(2*raio_vermelho) turtle.update() time.sleep(1) # espera 1 segundo antes de prosseguir 40

Sorteio dos valores... while raio_azul > 0 and raio_vermelho > 0:... valor_azul = random.randint(0, 20) valor_vermelho = random.randint(0, 20) turtle.goto(-200, 200) turtle.color('blue') turtle.write(valor_azul, font=('arial', 20, 'normal')) turtle.goto(200, 200) turtle.color('red') turtle.write(valor_vermelho, font=('arial', 20, 'normal')) 41

Redução de raio... while raio_azul > 0 and raio_vermelho > 0:... if valor_azul > valor_vermelho: raio_vermelho -= valor_azul - valor_vermelho else: raio_azul -= valor_vermelho - valor_azul turtle.update() time.sleep(1) 42

Fim do jogo... while raio_azul > 0 and raio_vermelho > 0:......... turtle.clear() if valor_azul > valor_vermelho: turtle.goto(-200, 0) turtle.color('blue') turtle.dot(2*raio_azul) turtle.goto(0, 0) turtle.write('azul ganhou!') else:... 43

Fim do jogo... else: turtle.goto(200, 0) turtle.color('red') turtle.dot(2*raio_vermelho) turtle.goto(0, 0) turtle.write('vermelho ganhou!') turtle.update() turtle.done() 44

Trabalho 45

Grupos Individual, em dupla, ou em trio Prazo de entrega: 1 de março Objetivo: criar um programa em Python mais complexo do que os que fizemos em aula O programa deve ter: funções, if, for e while 46

Sugestões Jogo da Velha Sudoku Labirinto Batalha naval Jogo da memória Perguntas e respostas (como Jogo do Milhão) Preencha os espaços em branco (como em testes de idiomas) 47

Não recomendado! Evite programas com muita dinâmica! Super Mario Candy Crush Corrida Luta 48

49