Programação I Aula 4 Definição de procedimentos e funções

Documentos relacionados
Introdução à Programação Aula 4 Definição de funções

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

Introdução à programação orientada a objetos. Nesta aula... Turtle graphics. Primeiro programa com objetos. Exercício. Métodos.

Nesta aula... 1 Orientação a objetos. 2 Utilização de bibliotecas. 3 Definição de funções/procedimentos

Nesta aula... Diagramas da stack. Recursão. 1 Funções. 2 Valores booleanos e condicionais. 3 Execução condicional e recursão

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

Computação 1 - Python 1/ 41

Computação 1 - Python Aula 2 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 39

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

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

Introdução à Programação Aula 16 Mais exemplos de recursão

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

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

Introdução à Programação Aula 17 Deteção e correção de erros

Programação de Computadores

Introdução à Programação Aula 13 Manipulação de ficheiros

Tutorial Klogo Turtle

Informática Aplicada à Engenharia Florestal

Pedro Vasconcelos DCC/FCUP. Programação Funcional 11 a Aula Gráficos usando Gloss

Python Funções. Introdução à Programação SI1

TCC 00308: Programação de Computadores I Organização de programas em Python

Linguagens de Programação

Python: Funções. Claudio Esperança

Vetores. Vanessa Braganholo

Computação II (MAB 225)

Exercícios para Fundamentos da Programação

Python: Módulos. Claudio Esperança

Aula de hoje. Funções. Introdução. Função. Definição de funções. Exemplo. SCC Introdução à Programação para Engenharias

Introdução à Programação Aula 10 Processamento de listas

COLÉGIO OBJETIVO JÚNIOR

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Subprogramação. Vanessa Braganholo

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?

1. O programa StarLogo

Introdução à Ciência da Computação Disciplina:

Minicurso de Python Aula 2. Raphael Lupchinski Marcelo Millani

Programação I Aula 9 Listas e tuplos

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

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

Computação 1 - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings 1/ 26

1. O programa StarLogo

Programação I Aula 2 Apresentação da linguagem Python

Ambiente de programação

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

Mosaicos com o Superlogo

Resumo da matéria: - Sintaxe da definição duma função C: - Diagramas sintácticos do if e dos mecanismos de ciclos em C:

DESENHAR COM PRECISÃO - O SISTEMA DE COORDENADAS

Programação I Aula 10 Processamento de listas

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

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

Introdução à Ciência da Computação Disciplina:

INF1005: Programação 1. Condicionais. 08/03/10 (c) Rogério Rodrigues 1

Manipulação de Strings. Vanessa Braganholo

Algoritmos e estrutura de dados

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

Programação para GI. Subprogramas

Nas aulas anteriores Strings. Ciclos

CAPÍTULO 5 ESTRUTURAS DE REPETIÇÃO

Aula 4 ESTRUTURAS DE REPETIÇÃO (FOR)

1 Da aula teórica ao Java

Introdução a Programação de Jogos

Introdução à Linguagem Lua Variáveis e Expressões

Introdução ao Python. Programa Computacional

Conceitos básicos de programação

Manipulação de Strings. Vanessa Braganholo

Capítulo 4: Condicionais

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

Fundamentos de Programação. revisão e adendos

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

Python: Comandos Básicos. Claudio Esperança

Pedro Vasconcelos DCC/FCUP. Programação Funcional 4 a Aula Listas

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

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.

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

Lógica de Programação

Laboratório de Programação de Computadores para Engenharia - Notas de aula - Teoria - 12/12/2013. Funções

Computação 1 - Python Aula 12 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 22

Projeto e Desenvolvimento de Algoritmos

Python: Listas. Claudio Esperança

Experimento 1 - Movimento Uniforme: Simulação em Logo / SAM

1) Operadores de auto incremento ++ e auto decremento --

Programação WEB I Funções

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática

Aula 01. Prof. Diemesleno Souza Carvalho /

Programas Interativos

Controle de Fluxo. Laços e Desvios incondicionais

Linguagem e Ambiente Scratch. Introdução à Laboratório Prof.Alfredo Parteli Gomes

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

Introdução à Programação Aula 20 Definição de classes

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Pilotagem Squeak no computador Magalhães. Projecto: Geometria Básica

Processamento da Informação Teoria Funções

Processamento da Informação Teoria. Laços

Compiladores Ambiente de Execução

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

DURAÇÃO DA PROVA: 2 horas

k 1 ENQUANTO A[k] $ E k 512 FAÇA SE A[k] = a ENTÃO contaa contaa + 1 SENÃO SE A[k] = i ENTÃO contai contai + 1 FIM-SE

Transcrição:

Programação I Aula 4 Definição de procedimentos e funções Pedro Vasconcelos DCC/FCUP 2018 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 1 / 28

Nesta aula... 1 Definição de procedimentos e funções 2 Retornar resultados 3 Módulo turtle Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 2 / 28

Definição de procedimentos e funções Na aula passada vimos como usar as funções matemáticas pré-definidas Nesta aula vamos ver como definir novos procededimentos e funções Programação estruturada Decompor um problema em procedimentos mais simples até chegar às operações elementares. Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 3 / 28

Definições def nome(lista de parâmetros): primeira instrução segunda instrução. instrução final A lista de parâmetros pode ser vazia O início e fim do procedimento são marcados pela indentação Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 4 / 28

Exemplo def refrao(): print("se um elefante incomoda muita gente") print("dois elefantes incomodam muito mais.") def repete_refrao(): refrao() refrao() Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 5 / 28

Exemplo (cont.) Experimentando no interpretador: >>> refrao() Se um elefante incomoda muita gente Dois elefantes incomodam muito mais. >>> repete_refrao() Se um elefante incomoda muita gente Dois elefantes incomodam muito mais. Se um elefante incomoda muita gente Dois elefantes incomodam muito mais. Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 6 / 28

Fluxo da execução 1 Começa na primeira instrução do programa 2 As instruções são executadas por ordem sequencial 3 A definição de um procedimento não altera fluxo de execução 4 A invocação de um procedimento: 1 executa as instruções da definição por ordem; 2 no final: continua a execulão do ponto original. 5 Procedimentos podem chamar outras procedimentos Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 7 / 28

Parâmetros e argumentos Procedimentos podem necessitar de argumentos: >>> import math >>> math.sin() Traceback (most recent call last): File "<stdin>", line 1, in? TypeError: sin() takes exactly 1 argument (0 given) O valor dos argumentos é associado a variáveis chamadas parâmetros Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 8 / 28

Exemplo do livro def print_twice(bruce): print(bruce) print(bruce) >>> print_twice( Spam ) Spam Spam >>> print_twice(5) 5 5 >>> print_twice(math.pi) 3.14159265359 3.14159265359 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 9 / 28

Procedimentos que retornam resultados Funções são procedimentos que calculam um resultado O resultado deve ser indicado com a instrução return A instrução return termina o procedimento Exemplo: calcular o volume V de uma esfera de raio r. V = 4 3 πr 3 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 10 / 28

Procedimentos que retornam resultados (cont.) import math def volume(r): V = 4/3 * math.pi * r**3 return V >>> volume(1.0) 4.1887902047863905 >>> volume(1.5) 14.137166941154067 >>> volume(2.0) 33.510321638291124 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 11 / 28

Âmbito das variáveis Os parâmetros são variáveis locais não existem fora do bloco da definição As variáveis definidas dentro do bloco também são locais Exemplo: >>> r = 42 >>> volume(1) 4.1887902047863905 >>> r 42 >>> V NameError: name V is not defined Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 12 / 28

Âmbito das variáveis (cont.) As variáveis definidas fora das funções (globais) podem ser usadas dentro destas. Exemplo: uma função para acrescentar a taxa de IVA a um preço. taxa_iva = 0.23 def preçofinal(valor): return valor*(1+taxa_iva) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 13 / 28

Documentação É boa idea documentar usando comentários e/ou docstrings. taxa_iva = 0.23 # taxa de IVA em percentagem def preçofinal(valor): Acrescenta a taxa de IVA a um valor. Usa a variável global taxa_iva. return valor*(1+taxa_iva) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 14 / 28

Documentação (cont.) Os comentários e docstrings são para quem lê o código As docstrings são também usadas pelo sistema de ajuda. >>> help(preçofinal) Help on function preçofinal in module main : preçofinal(valor) Acrescenta a taxa de IVA a um valor. Usa a variável global taxa_iva. Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 15 / 28

Return ou print? return termina a execução e define o resultado da função; print imprime um resultado (no terminal ou janela de texto). Só podemos usar o resultado se a função efetuar return: def f(x): return x*x print(f(f(3))) 81 def g(x): print(x*x) print(g(g(3)) 9 Erro Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 16 / 28

Módulo turtle Vamos fazer programas que desenham usando o módulo turtle: o programa controla um robot virtual (tartaruga); desloca-se para frente, para trás e roda sobre si próprio; usa uma caneta para deixar um rasto; muito simples, mas permite fazer desenhos impressionantes. Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 17 / 28

Primeiros passos Devemos começar por importar o módulo: >>> import turtle Os comandos têm a forma turtle.comando(...): >>> turtle.clear() # limpar a janela >>> turtle.forward(100) # avançar 100 pixels >>> turtle.left(90) # rodar 90 graus à esquerda >>> turtle.forward(200) # avançar 200 pixels Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 18 / 28

Primeiros passos (cont.) Em alternativa, podemos usar >>> from turtle import * e omitir o nome do módulo: >>> clear() >>> forward(100) >>> left(90) >>> forward(200) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 19 / 28

Comando principais forward(n) avançar n pixels backward(n) retroceder n pixels left(α) rodar α graus à esquerda right(α) rodar α graus à direita color(c) mudar a cor do traço pensize(n) mudar a largura do traço penup() levantar a caneta pendown() baixar a caneta speed(n) mudar a velocidade da tartaruga clear() limpar a janela reset() limpar a janela e re-inicializar a tartaruga Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 20 / 28

Desenhar um quadrado Vamos definir um procedimento para desenhar um quadrado com 100 pixels de lado. Desenhar quatro lados, rodando 90 para a esquerda após cada lado Alternativa: poderiamos rodar para a direita Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 21 / 28

Desenhar um quadrado (cont.) def quadrado(): forward(100) # primeiro lado left(90) forward(100) # segundo lado left(90) forward(100) # terceiro lado left(90) forward(100) # quarto lado left(90) # terminar na orientação original Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 22 / 28

Evitando repetições Repetimos quatro vezes as instruções: forward(100) left(90) Podemos evitar a repetição usando um ciclo for Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 23 / 28

Evitando repetições (cont.) def quadrado(): for lado in [1,2,3,4]: forward(100) left(90) # repetir 4 vezes A variável lado não é usada dentro do ciclo Poderiamos usar qualquer outra lista com 4 valores... Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 24 / 28

Alternativas def quadrado(): for i in [1,2,3,4]: forward(100) left(90) def quadrado(): for i in range(4): # 0, 1, 2, 3 forward(100) left(90) def quadrado(): for c in [ red, green, blue, black ]: color(c) forward(100) left(90) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 25 / 28

Generalizando Vamos generalizar o procedimento para desenhar um quadrado de lado dado. Basta tomar a medida do lado como um parâmetro. Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 26 / 28

Generalizando (cont.) def quadrado(lado): "Desenhar um quadrado dado o comprimento do lado." for i in range(4): forward(lado) left(90) Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 27 / 28

Exemplo: uma espiral espiral.py from turtle import * def quadrado(lado): for c in [ red, blue, green, black ]: color(c) forward(lado) left(90) reset() speed(10) for i in range(36): quadrado(50+i*5) left(10) # desenhar 36 quadrados... #...de lado variável # ângulo entre os quadrados Pedro Vasconcelos (DCC/FCUP) Programação I Aula 4 Definição de procedimentos e funções 2018 28 / 28