A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#

Apresentações semelhantes


Apresentação em tema: "Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#"— Transcrição da apresentação:

1 Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#

2 Sumário  Introdução  Definindo funções  Variáveis locais  Valor de retorno  Parâmetros  Passagem por valor e por referência  Sobrecarga  Vetor Params  Recursividade

3 Introdução  Até agora temos escrito todo o código dentro da função Main  Isso é adequado para resolver problemas simples  Com problemas mais complexos, tentamos dividi-lo em subproblemas mais simples e independentes  Então podemos resolver os problemas mais simples um a um

4 Introdução  Criando funções, um programa C# pode ser estruturado em partes independentes que correspondem às subdivisões do problema  Funções ajudam o programador a separar o código em módulos que desempenham tarefas específicas  Quando esta tarefa é necessária, a função é chamada ou invocada

5 Introdução  Motivação para o uso de funções: Reduz a repetição de código Aumenta a manutenção no código Reduz a complexidade do programa Aumenta a modularidade do programa  Dividindo o programa em funções, é muito mais fácil projetá-lo, entendê-lo e modificá-lo  Programas grandes passam a ser mais fáceis de serem escritos

6 Definindo funções  Sempre há uma função chamada Main  Essa é a função principal, o programa começa a execução pela função Main  Cada função deve ser definida separadamente  Nenhuma função deve ser definida dentro de outra função  Toda função deve ser declarada antes de ser utilizada

7 Definindo funções  O formato geral de uma função é: tipo_do_resultado nome_da_funcao (lista_de_parametros) { ○ declaração das variáveis locais da função ○ código-fonte da função }  No momento precisamos colocar a palavra static antes de cada função. Entenderemos isso no Módulo II.

8 Definindo funções  A primeira linha chama-se cabeçalho da função, e contém o seguinte: Tipo do resultado ○ pode ser qualquer tipo básico ou complexo Nome da função ○ Não deve começar por números, normalmente escreve-se com iniciais maiúsculas, tudo junto Lista de parâmetros ○ Entre parênteses, separados por vírgula

9 Definindo funções  Se a função não retorna nenhum valor, ela é chamada de procedimento  Nesse caso, o tipo de retorno é void  Parâmetros também são chamados de argumentos  Se a função não recebe nenhum parâmetro, não se coloca nada entre os parênteses

10 Variáveis locais  Uma função pode declarar e utilizar quantas variáveis locais ela quiser  Essas variáveis não são enxergadas por nenhuma outra função (nem pela função Main)  As variáveis locais existem apenas enquanto a função está sendo executada  Quando a função termina de executar, as variáveis locais “morrem”

11 Valor de retorno  Toda função pode retornar um tipo básico ou complexo  Se não há valor de retorno, a função é chamada de procedimento  Nesse caso, o tipo de retorno é void  Se há valor de retorno, em algum lugar da função deve existir a palavra return  A execução da função acaba com a palavra return, mesmo que tenha código depois

12 Parâmetros  Parâmetros, também chamados de argumentos, podem ser passados para uma função  Isto é muito útil, por exemplo, para a função conhecer o valor de uma variável que existe fora dela  Os parâmetros devem ser passados separados por vírgula  Cada parâmetro possui um tipo

13 Passagem por valor e por referência  Quando passamos uma variável por parâmetro para uma função, a função consegue enxergar o valor dessa variável  Mas a função consegue apenas ler o valor da variável, não consegue escrever um novo valor nela  Essa forma, que já conhecemos, chama-se passagem por valor.

14 Passagem por valor e por referência  Agora imagine que você precisa que a função altere o valor de uma variável  E imagine que o valor de retorno já está associado a outra coisa... É como se você precisasse ter mais de um retorno para apenas uma função  Podemos passar uma variável por parâmetro, e ainda assim permitir que a função altere o seu valor

15 Passagem por valor e por referência  O nome disso é passagem por referência  Pode ser feito usando dois operadores: out ○ Assume que a variável ainda não foi inicializada, ou seja, ignora seu valor anterior ○ Funciona apenas como escrita (ou saída) ref ○ Variável precisa ter sido inicializada antes da chamada da função ○ Funciona como leitura (ou entrada) e escrita (ou saída)

16 Sobrecarga  Sobrecarga (overloading) de funções é a habilidade de poder definir diversas funções mas com mesmo nome e parâmetros diferentes  Um exemplo de sobrecarga ocorre na função System.Console.WriteLine()  Note como essa função possui diversas “versões”, cada uma com parâmetros diferentes  Se uma função possui diversas versões, dizemos que ela está sobrecarregada

17 Vetor Params  Se o número de parâmetros é variável e indefinido, o uso de sobrecarga torna-se inviável  Por isso foi inventado o vetor Params, que permite que uma mesma função tenha um número variável e indefinido de parâmetros, de qualquer tipo  O vetor é criado em tempo de execução, na chamada da função, os valores são separados por vírgula

18 Vetor Params  Limitações: Não é possível usar a palavra chave params para arrays multidimensionais Não é possível usar os modificadores ref ou out para vetores params Um vetor params deve ser o último parâmetro

19 Recursividade  Recursividade ou recursão é uma técnica de programação em que funções chamam elas mesmas  É importante que o programador defina uma condição de parada para a função  Se não houver condição de parada, ocorrerá uma recursividade infinita  Diferentemente do loop infinito, a recursividade infinita pode consumir toda a memória RAM disponível para o programa

20 Recursividade  Quando uma função é chamada, algumas informações são inseridas na memória virtual do programa  Quando a função encerra sua execução, essas informações saem da memória  No caso da função recursiva, vai sendo criada uma pilha de informações na memória  Isso pode acarretar OutOfMemoryException


Carregar ppt "Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#"

Apresentações semelhantes


Anúncios Google