Recursividade, Entrada pelo teclado e Funções com retorno Dilvan Moreira.

Slides:



Advertisements
Apresentações semelhantes
Python: Funções Claudio Esperança.
Advertisements

Programação em Java Prof. Maurício Braga
Estruturas de Controle
Estruturas de Repetição
Métodos, Parâmetros, Argumentos e Contratos
Shell Script Professor: João Paulo
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Conceitos de Programação Paralela - 2
Claudio Esperança Python: Comandos Básicos. Primeiros passos em programação Até agora só vimos como computar algumas expressões simples Expressões são.
Recursividade Conceitos e Aplicações.
Wagner Santos C. de Jesus
Apresentação da linguagem Python
Revisão da Linguagem C.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
O Portal do Estudante de Computação
O Portal do Estudante de Computação
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Introdução a Computação e Cálculo Numérico
Unidade I: “Dê um mergulho rápido”
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Introdução à Programação
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Entrada e saída.
Interpretador Python.
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Introdução a aplicativos Java
Aula 10 - Armazenamento de Dados em Registros
SISTEMAS OPERACIONAIS I
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Introdução à Linguagem C
Algumas notas sobre a linguagem de programação C
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Aula Prática 4 Monitoria IP/CC (~if669).
Aula Prática 3 Funções Monitoria Introdução à Programação.
Programação e Aplicações Gráficas
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
Introdução ao MATLAB 5.3 para Hidrólogos
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Aula Prática 3 Funções Monitoria Introdução à Programação.
Fundamentos de linguagens de programação
Iº Workshop Linux da Unijorge
Algoritmos.
DSC/CCT/UFCG Carga Horária: 60 h Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Ulrich Schiel José Eustáquio Rangel.
Introdução à Programação
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
PROGRAMAÇÃO II – PARTE 3 Profa. Maria Augusta Constante Puget.
Programação Computacional Aula 9: Meu primeiro programa em C
Profa. Maria Augusta Constante Puget
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
JAVASCRIPT Programação Web. O que é  E uma linguagem interpretada que e executada na maquina do cliente  Não esta associada ao framework java  Não.
Shell Script Parte 2.
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
Programação para Web I AULA 4 ESTRUTURAS DE CONTROLE.
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Aula Prática 5 Recursão Monitoria  Na linguagem C, como em muitas outras linguagens, uma função pode chamar a si própria.  Uma função assim.
Iterações Dilvan Moreira. Lembrando... Desenvolvimento de programas  Desenvolvimento incremental:  Evitar depuração de muito código.  A técnica consiste.
Variáveis, expressões e comandos Dilvan Moreira. Lembrando …  Instalação normal (para utilizar no PC com Windows) 
1 Estruturas Condicionais Aula – Tópico 3 Algoritmos e Estruturas de Dados I (DCC/003)
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
1 Aula 07 Strings Prof. Filipe Mutz. 2 Em nossos programas ainda não vimos como armazenar palavras e textos, e eles são muito importantes! Exemplos: Programas.
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Recursividade, Entrada pelo teclado e Funções com retorno
Transcrição da apresentação:

Recursividade, Entrada pelo teclado e Funções com retorno Dilvan Moreira

Lembrando...  Funções devem serem definidas antes de seu primeiro uso  É possível definir suas próprias funções com parâmetros  A função funciona para mais de um tipo de dados. def printTwice(bruce): print bruce, bruce

Lembrando..  Por que a linha de código print cat não funciona??? def catTwice(part1, part2): cat = part1 + part2 printTwice(cat) chant1 = "Pie Jesu domine, " chant2 = "Dona eis requiem. " catTwice(chant1, chant2) print cat

Lembrando...  Operadores de comparação: x == y # x é igual a y x != y # x é diferente de y x > y # x é maior que y x < y # x é menor que y x >= y # x é maior ou igual a y x <= y # x é menor ou igual a y  Erro comum: (=) é diferente de(==)

Lembrando...  Operadores lógicos:  and corresponde a “e”  intercessão X > 0 and x < 10  or corresponde a “ou”  união dos conjuntos n%2 == 0 or n%3 == 0  not corresponde a “não”  negação not(x > y)

Lembrando...

 Condição que muda o comportamento do programa. if x > 0: print "x é positivo“  Se a condição for verdadeira a instrução endentada é executada  Se não, nada acontece.

Objetivos  Entender como utilizar recursividade, entrada pelo teclado e Funções com retorno.  Leitura:  do livro “Think Python” Cap. 5.8 ao Cap. 6.1

A instrução return  Permite terminar a execução antes que ela alcance o fim  Pode ser usada como uma forma de detectar uma condição de erro

A instrução return import math def imprimeLogaritmo(x): if x <= 0: print "Somente números positivos." return resultado = math.log(x) print "O log de x é ", resultado

Recursividade  É valido uma função chamar a si mesma  O processo de uma função chamando a si mesma é chamado de recursividade, e tais funções são ditas recursivas.

Recursividade def contagemRegressiva(n): if n == 0: print "Fogo!" else: print n contagemRegressiva(n-1)  O que essa função faz se for passado 3 como parâmetro?

Recursividade  contagemRegressiva começa com n=3, e desde que n não é 0, produz como saída o valor 3, e então chama a si mesma...  contagemRegressiva começa com n=2, e desde que n não é 0, produz como saída o valor 2, e então chama a si mesma...  contagemRegressiva começa com n=1, e desde que n não é 0, produz como saída o valor 1, e então chama a si mesma...

Recursividade  contagemRegressiva começa com n=0, e desde que n é 0, produz como saída a palavra "Fogo!" e então retorna.  contagemRegressiva que tem n=1 retorna.  contagemRegressiva que tem n=2 retorna.  contagemRegressiva que tem n=3 retorna.  Volta ao fluxo principal do programa

Recursividade  Saída impressa na tela: Fogo

Recursividade infinita  Se uma recursividade nunca chega ao fim  O programa nunca termina def recursiva(): recursiva()  Não roda para sempre  Python reporta uma mensagem de erro quando a profundidade máxima de recursividade é alcançada

Entrada pelo teclado  Funções nativas que pegam entradas do teclado.  A mais simples é raw_input  O programa espera o usuário digitar algo e apertar a tecla Enter ou Return.  Após o Enter, o programa retorna o que o usuário digitou para uma string.

Entrada pelo teclado  Entrada de uma string >>> nome = raw_input(“Nome? ") Nome? Arthur, Rei dos Bretões! >>> print nome Arthur, Rei dos Bretões!

Entrada pelo teclado  Entrada de um inteiro deixa = "Qual... é a velocidade?\n" velocidade = input(deixa)  O programa trava caso seja digitado um caractere em vez de um número  Para evitar esse tipo de problema, se usa raw_input para pegar uma string e depois converte ele para inteiro

Valores de retorno  Funções produzem resultados. e = math.exp(1.0) height = radius * math.sin(radians)  O resultado pode ser atribuído à uma variável, ou usado como parte de uma expressão.  Mas como criar uma função que retorne um valor??

Valores de retorno  Esta função retorna a área de um círculo, passando como parâmetro o raio import math def area(radius): temp = math.pi * radius**2 return temp

Valores de retorno  return significa: "Retorne imediatamente desta função e use a expressão em seguida como um valor de retorno”  Poderíamos ter reescrito a função anterior desta forma: def area(radius): return math.pi * radius**2  Porém com o uso da variável temp, fica mais fácil a depuração.

Múltiplos comandos de return  Apenas um return será executado:  Quando qualquer return executará, a função termina a execução def absolute_value(x): if x < 0: return -x else: return x

return  O linha de código print x será executado??? def absolute_value(x): if x < 0: return –x print x  Não, pois existe um return antes.

Múltiplos comandos de return def absolute_value(x): if x < 0: return -x if x > 0: return x print absolute_value(0)  Qual será a saída?

Perguntas?