func.pdf

40
ECT1203 Linguagem de Programação 2014.1 Prof. Aquiles Burlamaqui Prof. Luiz Eduardo (mod. Prof. Carlos Olarte) Aula 10 – Funções Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia

Upload: anderson-costa

Post on 03-Oct-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

  • ECT1203 Linguagem de Programao2014.1

    Prof. Aquiles Burlamaqui Prof. Luiz Eduardo (mod. Prof. Carlos Olarte) Aula 10 Funes

    Universidade Federal do Rio Grande do Norte!Escola de Cincias e Tecnologia

  • Objetivo da Aula

    Introduzir o conceito de funes em C++ Motivar o uso de funes

  • Antes de comear....

    Na engenharia e nas cincias, que coisas podem ser "reutilizadas" ?

  • Alguns exemplos

    Engenharia electrnica

    Voc no precisa implementar os circuitos bsicos porque eles j existem!

  • No caso do Software...

    Cdigo Designs Componentes Sistemas em geral

    No precisa reinventar a roda!

  • Uma funo em C++ ...

    Um conjunto de comandos agrupados em um bloco, destinado a realizar uma tarefa particular, que recebe um nome e atravs deste pode ser ativado.

    Ser que isso to novo assim?

  • Exemplos de funes

    sqrt(valor) pow(x,2) rand() cos(ang)

    !OBS: cin e cout so objetos, a compreenso de objetos

    est fora do escopo da nossa disciplina.

  • Curiosidade: Algum sabe como o computador calcula o cosseno de um ngulo? ex: cos(68)

  • Resposta: Polinmio de Mclaurin

    Pergunta: eu preciso conhecer o polinmio de Mclaurin para usar a funo cos() nos meus programas?

  • Para que servem as funes?

    Para dividir um problemas maior em vrios menores, simplificando e organizando o cdigo;!

    Reduzir o tamanho do programa; ! Para permitir reaproveitamento de cdigo; ! Para permitir a alterao de um trecho de cdigo de

    uma forma mais rpida;! Para que os blocos do programa no fiquem grandes

    demais e mais difceis de entender; ! Para separar o programa em partes(blocos) que possam

    ser logicamente compreendidos de forma isolada;! Etc.!

  • A funo pow()

    Como ser o algoritmo da funo pow? !pow(2,3) = 23 = 2*2*2 pow(5,4) = 54 = 5*5*5*5 pow(x,2) = x2 = x*x pow(a,b) = ab = a multiplicado por ele mesmo, uma

    quantidade b de vezes !Como ser esse algoritmo?

  • pow(x,y) { int prod =1; for(int i=1;i
  • Como o compilador raciocina

    pow? no conheo esse comando... Depois dele tem algo entre parnteses, ento uma funo!!

  • Como o compilador raciocina

    Ser uma funo criada pelo usurio?? No .

  • Como o compilador raciocina

    Ser que est na biblioteca* iostream?.

    *Biblioteca = Conjunto de funes.

  • Como o compilador raciocina

    Ser que est na biblioteca math.h? Se no estiver l esse programa tem um erro.

  • Como o compilador raciocina

    Modelo de processamento. Quem so as entradas? E as

    sadas?

    ProcessamentoEntrada Sada

  • Como o compilador raciocina

    No algoritmo, que base, expoente e

    exponencial?

    ProcessamentoBase

    ExponencialExpoente

  • Como o compilador raciocina

    Quem so eles no programa?

    ProcessamentoBase(x)

    Exponencial(prod)Expoente(y)

  • Como o compilador raciocinaQuem x,y? onde

    devo armazenar prod?

  • Como o compilador raciocinax a y b

    prod result

  • Definindo uma funo

    A primeira linha o cabealho da definio da funo.!

    tipo_da_funo o tipo do valor retornado por meio do comando return.

    tipo_da_funo nome_da_funo (lista de parmetros) { corpo da funo }

  • Definindo uma funo

    A lista de parmetros, tambm chamada de lista de argumentos, opcional. A funo pode no ter entrada (void).

    tipo_da_funo nome_da_funo (lista de parmetros) { corpo da funo }

  • Antes de continuar...

    Um programa com o sem funes Valor absoluto de dois inteiros

  • Antes de continuar...

    Um programa com o sem funes Valor absoluto de dois inteiros

    2. Com funes: parece muito melhor!

  • O comando return

    Sintaxe de um comando return:

    A instruo return expresso; tem os seguintes efeitos: 1) avaliao da expresso 2) converso automtica do resultado da expresso

    para o tipo da funo 3) retorno do resultado 4) trmino da execuo da funo e retorno do

    controle para a instruo seguinte do cdigo de chamada

    return;! return expresso;! return (expresso);

  • O comando return

    Por exemplo:

    Funo com um comando return

    Funo com mais de um comando return

  • O comando return

    Funes do tipo void podem ter um comando return sem expresso, servindo para terminar a execuo da funo

    Em funes do tipo void, o comando return no obrigatrio

    Uma funo sem comando return termina quando encontra a chave de fechamento

    O valor de retorno obtido atravs de uma chamada funo, como no exemplo:

  • Funes definidas pelo usurio

  • Declarao e definio de funes

    Em geral, o nome de uma funo aparece em trs lugares em um programa:!

    1) na declarao (prottipo/assinatura) 2) na definio!3) na chamada!

  • Exemplo

    Declarao de funes (prottipos)

    Chamadas de funes

    Definio de funes

  • Uma funo no pode ser chamada sem antes ter sido declarada!

    No exemplo, temos a declarao das funes:

    Declarao de uma funo

    A declarao de uma funo, dita prottipo da funo, uma instruo, geralmente colocada no incio do programa, que estabelece o tipo da funo e os argumentos que ela recebe.

    a funo de nome le_numero() do tipo int e no recebe argumentos !

    a funo de nome max() do tipo int e recebe como argumento dois valores do tipo int

  • Exemplos de declarao (prottipos) de funes

  • Observaes

    1) O nome dos parmetros podem ser omitidos na declarao.

    2) Se uma funo no tem parmetros, pode-se declarar a lista de parmetros como (void) ou simplesmente ()

  • Outras observaes

    1) Se uma funo definida antes da sua primeira chamada, esta no precisa ser declarada.

    2) O comando return pode retornar somente um nico valor.

    3) Se uma funo no tem valor de retorno, deve-se indicar o tipo de retorno como void

    4) No se pode definir funes dentro de uma outra funo.

  • Declarao de funciones

    Que sucede se a funo declarada mais no definida ?

  • Exerccio

    Faa uma funo que dado um nmero inteiro como entrada diga se esse nmero primo ou no. Um nmero primo quando ele divisvel somente por 1 e por ele mesmo.

    38

  • Exerccio

    Faa uma funo que dado um nmero inteiro qualquer retorne a soma de seus dgitos. Por exemplo, dado o nmero 1537, ento a soma 16 (1 + 5 + 3 + 7).

    39

  • Exerccio

    A sequncia Fibonacci corresponde aos nmeros:1 , 1, 2, 3, 5, 8, 13, 21, 34 ,....Faa uma funo que pea como entrada um nmero inteiro positivo n e imprima na tela os primeiros n elementos da sequncia.

    40