Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMario Santos Pinto Alterado mais de 8 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.