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

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

Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

3. Linguagem de Programação C

Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

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

Aula de hoje. Strings. Expressões lógicas. Relações lógicas equivalentes. Operadores para strings. Introdução

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

Aula de hoje. Programação. Comunicação com computadores. Comunicação com computadores. Comunicação com computadores. Comunicação com computadores

Aula de hoje. Outras estruturas de dados. Teoria dos conjuntos. Teoria dos conjuntos. Conjuntos em Python. Conjuntos em Python

A sintaxe básica para definir uma função é: function nome_da_função([arg1, arg2, arg3]) { Comandos;... ; [return <valor de retorno>]; }

Programação I Funções. Prof. Carlos Alberto

Aula de hoje. Python para disciplinas básicas. Computação científica. Introdução. Álgebra Linear. Álgebra linear

Algoritmos e Programação

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.

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

Blocos, Escopo de variáveis, procedimentos e funções. 1- Blocos

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

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

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

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

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

Introdução aos Algoritmos

Comandos em C (cont.)

ECT1203 Linguagem de Programação

Classes e Objetos. Sintaxe de classe em Java

Subprogramação. Vanessa Braganholo

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

Introdução aos Algoritmos

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.

4. Constantes. Constantes pré-definidas

Programação estruturada no Fortran 90-3

Fundamentos de Programação em Python

Laboratório de Programação 1 Aula 04

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

Universidade Estadual do Maranhão Curso de Engenharia da Computação Mestrado em Engenharia da Computação e Sistemas

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

MCG126 Programação de Computadores II

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

Fundamentos de Programação de Computadores Linguagem C Função Unidade 08 Linguagem C - Função 1/18

INFORMÁTICA PARA ENGENHARIA MODULARIZAÇÃO E ORGANIZAÇÃO DE CÓDIGO

Algoritmos e Programação - Engenharia da Computação -

Algoritmos e Programação

Programação Estruturada Aula - Tipos, Constantes, Variáveis e Identificadores

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Programação estruturada no Fortran 90-1

Variáveis primitivas e Controle de fluxo

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

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Estruturas de Dados em Python

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

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Linguagem e Técnicas de Programação

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Material preparado pela profa Silvana Maria Affonso de Lara

24/09/2014. Prof. André Backes

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

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

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

Programação procedimental

Algoritmos e Programação

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++

Linguagens de Programação

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

INSTITUTO FEDERAL CATARINENSE Campus Ibirama

Compile e execute este programa principal com o comando de execução.run:

Organização de programas em Python. Vanessa Braganholo

Programação de Computadores III

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

MC102 - Algoritmos e programação de computadores. Aula 14: Funções e Procedimentos

DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Programação de Computadores III

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução à Programação. Funções e Escopo de Variáveis

Programação de Computadores III

Aula 05. Modularização Função Subrotina Recursividade

Aula 11: Modularização

Aula 15 - Aula sobre Funções e Procedimentos

Aula 07 Introdução à Programação Subprogramas

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Aula 5 Instruções Simples Cleverton Hentz

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

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Aula 13 Oficina de Programação Modularização. Profa. Elaine Faria UFU

Instituto de Informática Estrutura de Dados II

Módulos ou Subrotinas: PARTE II. Criando seus próprios módulos

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

Classes, Métodos e Propriedades

Aula 7: Sub-rotinas e Funções

Fig. 1: Ilustração de um exemplo de Modularização de um guindaste em suas partes Fonte: Internet

Computação II (MAB 225)

Working 04 : Conceitos Básicos III

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

Sub-rotinas David Déharbe

Noção de Funções. A Linguagem C permite que um programa seja escrito como um conjunto de funções que são executadas a partir de uma

Prof. Jorge Cavalcanti

Lógica de Programação e Algoritmos com exemplos na linguagem JAVA

Padrão para a codificação em Python

Programação de Computadores:

Transcrição:

SCC 124 - Introdução à Programação para Engenharias Funções Aula de hoje Introdução Passagem de parâmetros Parâmetros X argumentos Retorno de valores Polimorfismo Argumentos com valor default Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes 1 André de Carvalho - ICMC/USP 2 Introdução Função Programas Python são compostos por funções Código reutilizáveis Permitem nomear um bloco de comandos Que podem ser executados em qualquer parte do programa Qualquer número de vezes Trecho de código para a realização de uma operação específica e especializada Ao final da execução, controle volta para o trecho que chamou a função Associada a um nome O uso desse nome em um código é uma chamada de função Python tem várias funções pré-construídas André de Carvalho - ICMC/USP 3 André de Carvalho - ICMC/USP 4 Definição de funções Funções em Python são definidas de acordo com a seguinte sintaxe: Lista de parâmetros Entradas da função def nome (lista_de_parâmetros): corpo_da_função Funcionam como variáveis locais da função Pode ser vazia def area_quad (altura, largura): a = altura * largura print ( Area =, a) return a def volume_cubo (n): v = n * n * n print ( Volume =, v) return (v) >>> area_quad (2,4) >>> volume_cubo (5) No modo script, a chamada a função multi não imprime resultado André de Carvalho - ICMC/USP 5 André de Carvalho - ICMC/USP 6 1

def area_quad (altura, largura): a = altura * largura print ( Area =, a) return a def volume_cubo (n): v = n * n * n print ( Volume =, v) return (v) >>> area_quad (2,4) 8 >>> volume_cubo (5) 125 15 No modo script, a chamada a função multi não imprime resultado Resultado de funções Uma função pode retornar valores ao programa que a chamou Ex.: return expressão (opcional) Comando return termina execução da função O valor de expressão é retornado como valor da função Valores de qualquer tipo podem ser retornados Funções em Python não têm tipo André de Carvalho - ICMC/USP 7 André de Carvalho - ICMC/USP 8 Chamada de um função Pode enviar informações para a execução da função Argumentos Argumentos = lista de expressões Na chamada de uma função, lista aparece entre parênteses após o nome da função Ex. mdc (x, y) : Chamada de uma função Chamada de função Argumentos Argumentos Parâmetros Função Passa argumentos para os 4 parâmetros André de Carvalho - ICMC/USP 9 André de Carvalho - ICMC/USP 10 Chamada de um função Cada expressão na lista de argumentos é avaliada Número de parâmetros deve ser maior ou igual ao número de argumentos Se maior, e sem default, dá erro O valor de cada argumento é atribuído ao parâmetro correspondente na função O corpo da função é executado Chamada de um função Parâmetros X argumentos Parâmetros dentro Informados na declaração da função Recebem valores dos argumentos Argumentos fora Informados na chamada da função Passam valores para os parâmetros André de Carvalho - ICMC/USP 11 André de Carvalho - ICMC/USP 12 2

Passagem de dados Argumentos são passados por valor Mesmo sendo variáveis Quando função é chamada, seus parâmetros recebem valor das variáveis (arg.) passadas Função chamada não pode mudar valor da variável usada em argumento da chamada Parâmetros de uma função deixam de existir após a execução da função Comando return Se não existir? Função simula um procedimento Existe em outras linguagens Função possui, implicitamente, no final, o comando Return None None Palavra reservada Pode ser usado para indicar que uma variável não tem valor André de Carvalho - ICMC/USP 13 André de Carvalho - ICMC/USP 14 Comando return Se existir? Se comando return possui uma expressão: O valor da expressão é retornado para quem a chamou Pode retornar mais de um valor Valor de um tipo sequência Se comando return não possui uma expressão: Nenhum valor é retornado retorna None (palavra reservada) Módulo Programa Python escrito no editor do ambiente de desenv. (ex. PyCharm) Módulo é um arquivo com as definições e comandos de um programa em Python Código é perdido quando sai do interpretador A menos que seja salvo para reutilizar depois Todo o código escrito ou parte dele André de Carvalho - ICMC/USP 15 André de Carvalho - ICMC/USP 16 Variáveis globais s 1 Declaradas no nível mais alto de um módulo Ou em uma função precedidas da palavra global Válidas em todo o módulo onde são declaradas Atribuições a variáveis globais não são feitas dentro de uma função A menos que seja usado o comando global Variáveis globais podem ser referenciadas em funções Não usar no curso André de Carvalho - ICMC/USP 17 def func (y): (y): z = x + y return z >>> func (1) 100 w = fun (1) print (w) def : def : x = x+1 André de Carvalho - ICMC/USP 18 3

s 1 s 2 def func (y): (y): z = x + y return z >>> func (1) 100 w = fun (1) print (w) 100 def : 20 def : x = x+1 20 99 André de Carvalho - ICMC/USP 19 y, z = 1,2 def : x = z + y y = 2 z = 3 def : global y, z x = y + z y = x + 1 print (y) André de Carvalho - ICMC/USP 20 s 2 Polimorfismo y, z = 1,2 def : x = z + y 3 y = 2 z = 3 def : global y, z x = y + z y = x + 1 print (y) 6 Tipo dos argumentos pode variar de uma chamada para outra Resultado da função depende dos tipos dos objetos que manipula >>> x = multi (3.4, 2) >>> x >>> multi ( qua, 3) André de Carvalho - ICMC/USP 21 André de Carvalho - ICMC/USP 22 Polimorfismo Valores de argumento default Tipo dos argumentos pode variar de uma chamada para outra Resultado da função depende dos tipos dos objetos que manipula 15 >>> x = multi (3.4, 2) >>> x 6.8 >>> multi ( qua, 3) quaquaqua Função pode receber número variável de argumentos a cada chamada Deve ser menor ou igual ao número de parâmetros usado em sua definição Valor default é usado para os demais Usado quando o programador não quer por o valor de todos os argumentos na chamada Precisa colocar nome-do-argumento = valordefault na lista de parâmetros da função André de Carvalho - ICMC/USP 23 André de Carvalho - ICMC/USP 24 4

def fun (arg=5): print (arg) 5 Chamada de uma função Chamada de função Argumentos Argumentos Parâmetros Função Passa argumentos para 2 dos 4 parâmetros Parâmetros default André de Carvalho - ICMC/USP 25 André de Carvalho - ICMC/USP 26 Valores de argumento default Só pode usar para os parâmetros no final da lista de parâmetros da função Parâmetro com valor default não pode proceder parâmetro sem valor default Atribuição de argumentos a parâmetros segue a ordem em que parâmetros aparecem na lista André de Carvalho - ICMC/USP 27 Argumentos palavra chave Permite especificar nominalmente que parâmetros receberão valores Usa o nome do parâmetro na lista ao invés da sua posição na lista Não precisa se preocupar com a ordem dos argumentos na chamada Permite atribuir valores apenas aos parâmetros desejados Desde que os outros tenham valor default André de Carvalho - ICMC/USP 28 Argumentos palavra chave Argumentos de funções podem ser passados em qualquer ordem def calc_area (altura, largura = 3): area = altura * largura print ( Area total =, area) return area >>> x = calc_area (4) Area total = 12 >>> x = calc_area (largura=2, altura=7) Area total = 14 André de Carvalho - ICMC/USP 29 def fun (a, b=5, c=10): print('a =, a, e b =, b, e c =, c) fun(3, 7) fun(25, c=24) fun(c=50, a=100) a = 3 e b = 7 e c = 10 a = 25 e b = 5 e c = 24 a = 100 e b = 5 e c = 50 André de Carvalho - ICMC/USP 30 5

Parâmetros VarArgs Python permite definir função com número de parâmetros variável Chamada à esta função pode ter qualquer número de argumentos Colocar * antes do nome do parâmetro Ex.: def fun (*numeros) Valores vão formar a tupla numeros Para tipo dicionário usar ** def total(inicial=5, *numeros): contador = inicial for numero in numeros: contador += numero return contador print(total(10, 1, 2, 3, )) print(total()) André de Carvalho - ICMC/USP 31 André de Carvalho - ICMC/USP 32 def total(inicial=5, *numeros): contador = inicial for numero in numeros: contador += numero return contador Exercício Escrever função que calcula sequência de Finonacci print(total(10, 1, 2, 3, )) print(total()) 16 5 André de Carvalho - ICMC/USP 33 André de Carvalho - ICMC/USP 34 Conclusão Perguntas Introdução Passagem de parâmetros Parâmetros X argumentos Retorno de valores Polimorfismo Argumentos Valor default Palavra chave VarArgs André de Carvalho - ICMC/USP 35 André de Carvalho - ICMC/USP 36 6