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

Documentos relacionados
Computação 1. Aula 8 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

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

Computação 1. Aula 7 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. Aula 5 - Teórica Professor: Leonardo Carvalho

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

Processamento da Informação Teoria. Listas e Matrizes

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

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

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

Python - Comandos de Repetição

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

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

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. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

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

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

Python. Resumo e Exercícios P2 Parte 1

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

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

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

Laboratório de Programação 1 Aula 07

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

Processamento da Informação Teoria. Laços

Aula 11: Laços e exercícios

Estruturas Condicionais e de Repetição

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

Aula 16: Laços aninhados e desvios

Estruturas de Repetição

Algoritmos e Técnicas de

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

LINGUAGEM C: COMANDOS DE REPETIÇÃO

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

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

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

Estruturas de Decisão

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

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

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

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

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

Computação 1. Aula 3 - Prática - Parte 1 Professor: Leonardo Carvalho

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Matrizes. Vanessa Braganholo

Computação 1 - Python Aula 11 - Teórica. programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 29

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

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

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

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

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

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

Python 3.x Estrutura de Repetição while

Iteração em Python (Laços)

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

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

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de repetição. Prof. Alex Camargo

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

INSTRUÇÕES DE REPETIÇÃO

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

Linguagem C estruturas de repetição

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

INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO MATLAB

Aula 7 Oficina de Programação Estruturas de Repetição no C. Profa. Elaine Faria UFU

Aula 11 - Repetições Encaixadas

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

Introdução à Programação Aula 18 Método de eliminação de Gauss

Aula 7 Estruturas de Repetição Cleverton Hentz

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

Fundamentos de Programação em Python

Linguagem de Programação Java Terceira aula. Prof. Rogério Albuquerque de Almeida

Estruturas de dados funcionais

LP II Estrutura de Dados

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

Aula 15: Repetição (Parte 3)

Disciplina: Desenvolvimento Web Professor: Paulo César Fernandes de Oliveira, BSc, PhD

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

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

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

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Comandos em C (cont.)

Processamento da Informação Teoria. Coleções: Listas

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

Estruturas de Repetição

ESTRUTURAS DE CONTROLE

Introdução ao Fortran 90. Aula 3

Operadores e Estruturas de Decisão. Vanessa Braganholo

Estruturas de Repetição

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

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Programação de Computadores

MC102 Algoritmos e Programação de Computadores

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

VETORES. Lista de Exercícios Vetores Prof: Yuri Frota

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21

Estruturas de Controle

Python Condicionais e Loops. Introdução à Programação SI1

TCC 00308: Programação de Computadores I Matrizes

Transcrição:

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

Problema Como escrever a função exibe_ate, para obter o resultado abaixo: frase1 = 'Percebe ivair a petulancia do cavalo' frase2 = 'Elementar meu caro Watson!' exibe_ate(frase1, 'odu') turtle.goto(0, -40) exibe_ate(frase2, 'odu') 2

Solução def exibe_ate(frase, limites): '''Exibe uma frase ate encontrar um caractere em limites.''' for x in frase: if x in limites: break turtle.write(x, True, font=('arial', 20, 'normal')) 3

break for x in sequencia:... if condicao: break... O comando break interrompe a execução da repetição 4

break break também pode ser utilizado com while while condicao1:... if condicao2: break... 5

Exemplo Sorteia distância e ângulo até que a distância sorteada seja exatamente igual a 15: import turtle import random turtle.speed('fastest') n = random.randint(10, 30) while n!= 15: turtle.forward(n) ang = random.randint(-30, 30) turtle.left(ang) n = random.randint(10, 30) turtle.done() 6

Exemplo Sorteia distância e ângulo até que a distância sorteada seja exatamente igual a 15: import turtle import random turtle.speed('fastest') while True: n = random.randint(10, 30) if n == 15: break turtle.forward(n) ang = random.randint(-30, 30) turtle.left(ang) turtle.done() 7

break em laços aninhados turtle.up() for i in range(10): for j in range(10): if i == j: break turtle.goto(20*i, 20*j) turtle.dot(10) 8

9

Exemplo import turtle import random def desenho_louco(l): for x in L: r = random.random() g = random.random() b = random.random() turtle.color(r, g, b) turtle.forward(x) ang = random.randint(-80, 80) turtle.left(ang) 10

Exemplo... turtle.speed('fastest') turtle.hideturtle() desenho_louco([30, 18, 12, 32, 47, 29, 27, 20]) turtle.done() 11

Pergunta Como ignorar os valores de L que sejam múltiplos de 3? Solução 1: def desenho_louco(l): for x in L: if x%3!=0: r = random.random() g = random.random() b = random.random() turtle.color(r, g, b) turtle.forward(x) ang = random.randint(-80, 80) turtle.left(ang) 12

Pergunta Como ignorar os valores de L que sejam múltiplos de 3? Solução 2: def desenho_louco(l): for x in L: if x%3==0: continue r = random.random() g = random.random() b = random.random() turtle.color(r, g, b) turtle.forward(x) ang = random.randint(-80, 80) turtle.left(ang) 13

continue for x in sequencia:... if condicao: continue... O comando continue "pula" para o próximo elemento da repetição, ignorando todos os comandos que vêm em seguida. 14

continue em laços aninhados turtle.up() for i in range(10): for j in range(10): if i == j: continue turtle.goto(20*i, 20*j) turtle.dot(10) 15

continue com while Continue também funciona com while Mas tenha muito cuidado para não entrar em loop infinito! s = 0 i = 1 while i <= 10: if i == 5: Se executar o continue o programa volta para a linha do while, sem executar i += 1 continue s += i**2 i += 1 16

17

Matrizes 18

Matrizes Como representar uma matriz como esta no Python? 19

Matrizes Solução: listas de listas! M = [ [5, 8, 1, 3], [4, 6, 0, 1], [1, 1, 2, 0] ] Para enxergar melhor podemos escrever: M = [ [5, 8, 1, 3], [4, 6, 0, 1], [1, 1, 2, 0] ] 20

Matrizes Por que listas de listas? Podemos usar indexação! >>>...... >>> [5, >>> 5 >>> 8 >>> 0 M = [ [5, 8, 1, 3], [4, 6, 0, 1], [1, 1, 2, 0] ] M[0] 8, 1, 3] M[0][0] M[0][1] M[1][2] 21

Matrizes >>> M = [ [5, 8, 1,... [4, 6, 0,... [1, 1, 2, >>> M[0][3] = 10 >>> M[1][2] = 20 >>> M[2][0] = 60 >>> M [[5, 8, 1, 10], [4, 3], 1], 0] ] 6, 20, 1], [60, 1, 2, 0]] 22

Matrizes Como obter a dimensão de uma matriz? >>> M = [ [5, 8, 1, 3],... [4, 6, 0, 1],... [1, 1, 2, 0] ] >>> len(m) 3 # numero de linhas >>> len(m[0]) 4 # numero de colunas 23

E se... E se as linhas não tiverem o mesmo número de elementos? M = [ [5, 8, 1, 3], [4, 6, 1], [1, 0] ] Neste caso não vamos considerar M uma matriz. 24

Suposição Quando falarmos em matrizes, vamos sempre supor que o mundo é perfeito e maravilhoso todas as linhas têm o mesmo número de elementos 25

Exercício Escreva uma função que recebe dois parâmetros m, n, e retorna uma matriz m por n preenchida por zeros. >>> matriz_zeros(4, 3) [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] >>> matriz_zeros(6, 4) [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] >>> matriz_zeros(2, 1) [[0], [0]] 26

Solução def matriz_zeros(m, n): '''Retorna uma matriz m por n preenchida por zeros.''' A = [] for i in range(m): linha = [] for j in range(n): linha.append(0) A.append(linha) return A 27

Exercício Escreva uma função que recebe dois parâmetros m, n, e retorna uma matriz m por n preenchida por valores inteiros aleatórios entre 0 e 9. >>> matriz_aleatorios(3, 2) [[0, 1], [6, 5], [2, 9]] >>> matriz_aleatorios(3, 2) [[7, 2], [1, 5], [2, 8]] >>> matriz_aleatorios(5, 3) [[7, 9, 6], [7, 2, 1], [2, 8, 3], [0, 3, 9], [9, 3, 7]] >>> matriz_aleatorios(2, 4) [[7, 6, 2, 4], [4, 0, 5, 0]] 28

Solução import random def matriz_aleatorios(m, n): '''Retorna uma matriz m por n preenchida por valores aleatorios.''' A = [] for i in range(m): linha = [] for j in range(n): x = random.randint(0, 9) linha.append(x) A.append(linha) return A 29

Exercício Escreva uma função que recebe um parâmetro n, e retorna a matriz identidade de ordem n. >>> matriz_identidade(3) [[1, 0, 0], [0, 1, 0], [0, 0, 1]] >>> matriz_identidade(4) [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] >>> matriz_identidade(2) [[1, 0], [0, 1]] >>> matriz_identidade(1) [[1]] 30

Solução def matriz_identidade(n): '''Retorna a matriz identidade de ordem n.''' A = [] for i in range(n): linha = [] for j in range(n): if i == j: linha.append(1) else: linha.append(0) A.append(linha) return A 31

Exercício Escreva uma função que recebe uma matriz A e desenha esta matriz usando turtle. turtle.speed('fastest') turtle.hideturtle() A = [ [3, 1, 4], [8, 9, 0], [0, 1, 2], [5, 5, 6] ] desenha_matriz(a) turtle.done() 32

Solução def desenha_matriz(a): '''Desenha uma matriz A.''' m = len(a) n = len(a[0]) turtle.up() for i in range(m): for j in range(n): turtle.goto(30*j, -20*i) turtle.write(a[i][j], font=('arial', 14, 'normal')) 33

Exercício Escreva uma função que recebe uma matriz A e uma posição x, y e desenha esta matriz de forma que o termo A[0][0] apareça na posição x,y. turtle.speed('fastest') turtle.hideturtle() A = matriz_aleatorios(5, 7) B = matriz_identidade(12) desenha_matriz(a, -200, 200) desenha_matriz(b, 50, 200) turtle.done() 34

Solução def desenha_matriz(a, x, y): '''Desenha uma matriz A na posicao x,y.''' m = len(a) n = len(a[0]) turtle.up() for i in range(m): for j in range(n): turtle.goto(x+30*j, y-20*i) turtle.write(a[i][j], font=('arial', 14, 'normal')) 35

Exercício Escreva uma função que recebe uma matriz A e retorna a matriz transposta de A. A = [ [3, 2, 6, 8, 0], [5, 9, 7, 8, 3], [2, 9, 3, 1, 4] ] At = matriz_transposta(a) desenha_matriz(a, 0, 200) desenha_matriz(at, 200, 200) 36

Solução def matriz_transposta(a): '''Retorna a matriz transposta de A.''' m = len(a) n = len(a[0]) At = [] for i in range(n): linha = [] for j in range(m): linha.append(a[j][i]) At.append(linha) return At 37

Exercício Escreva uma função que recebe uma matriz A e um número x e retorna o produto de x por A (multiplicação de número por matriz). A = [ [3, 2, 6, 8, 0], [5, 9, 7, 8, 3], [2, 9, 3, 1, 4] ] B = produto(2, A) desenha_matriz(a, 0, 200) desenha_matriz(b, 200, 200) 38

Solução def produto(x, A): '''Retorna o produto entre um valor x e A.''' m = len(a) n = len(a[0]) xa = [] for i in range(m): linha = [] for j in range(n): linha.append(x*a[i][j]) xa.append(linha) return xa 39

Exercício Escreva uma função que recebe duas matrizes A e B e retorna a soma de A por B. A = [ [3, 2, 6, 8, 0], [5, 9, 7, 8, 3], [2, 9, 3, 1, 4] ] B = [ [1, 2, 2, 4, 5], [2, 0, 6, 3, 5], [3, 3, 1, 2, 0] ] C = soma_matrizes(a, B) desenha_matriz(a, -200, 200) desenha_matriz(b, 0, 200) desenha_matriz(c, 200, 200) 40

Solução def soma_matrizes(a, B): '''Retorna a soma entre as matrizes A e B.''' m = len(a) n = len(a[0]) C = [] for i in range(m): linha = [] for j in range(n): linha.append(a[i][j] + B[i][j]) C.append(linha) return C 41

Produto de matrizes 42

Produto de matrizes 43

Produto de matrizes def multiplica_matrizes(a, B): '''Multiplica duas matrizes.''' n = len(a) m = len(a[0]) p = len(b[0]) C = [] for i in range(n): linha = [] for j in range(p): s = 0 for k in range(m): s += A[i][k]*B[k][j] linha.append(s) C.append(linha) return C 44

Produto de matrizes A = [ [3, 1], [4, 2], [5, 3] ] B = [ [1, 2, 3, 0], [0, 1, 2, 1] ] C = multiplica_matrizes(a, B) desenha_matriz(a, -200, 200) desenha_matriz(b, 0, 200) desenha_matriz(c, 200, 200) 45

46

Cenas dos próximos capítulos 47

48

49