Buscar

Funções e Passagem de Parâmetros

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções e passagem de parâmetros
Prof. DSc. Newton Spolaôr
Disciplina Computação I
Bacharelado em Ciência da Computação
Universidade Estadual do Oeste do Paraná (UNIOESTE)
Brasil
13/09/2016
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Sumário
1 Introdução
2 Funções e passagem de parâmetros em C
3 Exercícios
4 Considerações finais
Newton Spolaôr Funções e passagem de parâmetros 2
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Aula anterior em um breve olhar
Na aula anterior foram abordados comandos de entrada e
saída de dados em C
Scanf: comando de entrada de dados
Printf: comando de saída de dados
Também falamos sobre as máscaras de formatação
Nesta aula, falaremos sobre funções e passagem de
parâmetros em C
Newton Spolaôr Funções e passagem de parâmetros 3
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Aula anterior em um breve olhar
Na aula anterior foram abordados comandos de entrada e
saída de dados em C
Scanf: comando de entrada de dados
Printf: comando de saída de dados
Também falamos sobre as máscaras de formatação
Nesta aula, falaremos sobre funções e passagem de
parâmetros em C
Newton Spolaôr Funções e passagem de parâmetros 3
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Motivação para subalgoritmos [1, 2, 3, 4]
Com o avanço do estudo sobre algoritmos os problemas a
serem solucionado aumentam em complexidade
Consequentemente, os algoritmos tendem a ficar cada vez
maiores, dificultando a legibilidade e manutenção deles
Uma alternativa para reduzir a complexidade consiste em
usar a estratégia dividir para conquistar
Newton Spolaôr Funções e passagem de parâmetros 4
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Motivação para procedimentos e funções [1, 2, 3, 4]
Algumas vantagens relacionadas a subalgoritmos
Facilitar reuso de código: se um trecho de código é
repetido várias vezes, é bom candidato a se tornar um
subalgoritmo
Possibilidade de aninhamento: um subalgoritmo pode
conter um ou mais subalgoritmos, permitindo dividir o
problema em partes ainda menores
Potencial melhora na coesão e acoplamento
Suporte à recursão: um subalgoritmo pode chamar a si
próprio, o que é essencial para resolver determinados tipos
de problemas
Newton Spolaôr Funções e passagem de parâmetros 5
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Caracterização de subalgoritmos [4, 2, 1]
Assim como ocorre com um algoritmo, um subalgoritmo é
uma sequência de instruções que realizam entrada,
processamento e saída de dados
Existem dois tipos de subalgoritmos
Procedimento. Nunca retorna saída
Função. Sempre gera (ou retorna) uma saída
Newton Spolaôr Funções e passagem de parâmetros 6
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Caracterização de subalgoritmos [4, 2, 1]
Cada subalgoritmo é associado a um nome (identificador)
Quando se usa esse nome em um comando dentro do
código chamador (programa principal ou outro
subalgoritmo), se realiza uma chamada ao subalgoritmo
associado ao nome
A chamada de um subalgoritmo desvia o fluxo de
execução do código chamador para o subalgoritmo
Quando o subalgoritmo termina, o fluxo retorna ao código
chamador, no ponto imediatamente posterior à chamada
Newton Spolaôr Funções e passagem de parâmetros 7
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Caracterização de subalgoritmos [4, 2, 1]
Além do nome, cada subalgoritmo está associado a 0, 1
ou mais parâmetros
Cada parâmetro pode ser visto como uma variável que
recebe um argumento (valor) do código chamador
Por meio de parâmetros e argumentos, é possível ao
código chamador fornecer dados de entrada para
subalgoritmos
Toda chamada a um subalgoritmo com parâmetros deve
fornecer argumentos para esses parâmetros
Newton Spolaôr Funções e passagem de parâmetros 8
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros para subalgoritmos [2]
Dependendo do tipo de valor fornecido como argumento,
são obtidas duas maneiras de realizar passagem de
parâmetros a subalgoritmos
Passagem de parâmetros por valor: argumento é o valor
de uma variável
Passagem de parâmetros por referência: argumento é o
endereço de uma variável
Newton Spolaôr Funções e passagem de parâmetros 9
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros para subalgoritmos [2]
Dependendo do tipo de valor fornecido como argumento,
são obtidas duas maneiras de realizar passagem de
parâmetros a subalgoritmos
Passagem de parâmetros por valor: argumento é o valor
de uma variável
Passagem de parâmetros por referência: argumento é o
endereço de uma variável
Newton Spolaôr Funções e passagem de parâmetros 9
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros para subalgoritmos [2]
Dependendo do tipo de valor fornecido como argumento,
são obtidas duas maneiras de realizar passagem de
parâmetros a subalgoritmos
Passagem de parâmetros por valor: argumento é o valor
de uma variável
Passagem de parâmetros por referência: argumento é o
endereço de uma variável
Newton Spolaôr Funções e passagem de parâmetros 9
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por valor [4]
No seguinte exemplo, duas variáveis do programa
principal, x e y , contém os valores 5 e 3
Esse algoritmo chama uma função denominada
soma_dobro usando x e y como argumentos
A função resulta na soma do dobro dos parâmetros a e b,
o que é armazenado na variável res do algoritmo principal
Figura: Passagem dos parâmetros a e b por valor
Newton Spolaôr Funções e passagem de parâmetros 10
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por valor
Como resultado da passagem por valor,um parâmetro é
simplesmente uma cópia de um argumento (valor), sendo
o argumento geralmente uma variável
Embora essa abordagem seja suficiente em vários casos,
existem motivos para buscar alternativas
Procedure/função deve retornar mais de um valor
Procedure/função necessita alterar o valor original
fornecido como argumento, ou seja, alterar uma variável do
programa principal
Economia de memória, pois cada cópia de argumento gera
temporariamente uma nova variável
Newton Spolaôr Funções e passagem de parâmetros 11
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por valor
Como resultado da passagem por valor, um parâmetro é
simplesmente uma cópia de um argumento (valor), sendo
o argumento geralmente uma variável
Embora essa abordagem seja suficiente em vários casos,
existem motivos para buscar alternativas
Procedure/função deve retornar mais de um valor
Procedure/função necessita alterar o valor original
fornecido como argumento, ou seja, alterar uma variável do
programa principal
Economia de memória, pois cada cópia de argumento gera
temporariamente uma nova variável
Newton Spolaôr Funções e passagem de parâmetros 11
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por valor
Como resultado da passagem por valor, um parâmetro é
simplesmente uma cópia de um argumento (valor), sendo
o argumento geralmente uma variável
Embora essa abordagem seja suficiente em vários casos,
existem motivos para buscar alternativas
Procedure/função deve retornar mais de um valor
Procedure/função necessita alterar o valor original
fornecido como argumento, ou seja, alterar uma variável do
programa principal
Economia de memória, pois cada cópia de argumento gera
temporariamente uma nova variável
Newton Spolaôr Funções e passagem de parâmetros 11
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por valor
Como resultado da passagem por valor, um parâmetro é
simplesmente uma cópia de um argumento (valor), sendo
o argumento geralmente uma variável
Embora essa abordagem seja suficiente em vários casos,
existem motivos para buscar alternativas
Procedure/função deve retornar mais de um valor
Procedure/função necessita alterar o valor original
fornecido como argumento, ou seja, alterar uma variável do
programa principal
Economia de memória, pois cada cópia de argumento gera
temporariamente uma nova variável
Newton Spolaôr Funções e passagem de parâmetros 11
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por referência
Uma alternativa é obtida com a passagem de parâmetros
por referência
Neste caso, um parâmetro se torna uma cópia do
endereço do argumento, o que permite atender os motivos
mencionados anteriormente
Procedure/função deve retornar mais de um valor: cada
parâmetro pode ser usado para retornar um valor
(parâmetro de “saída”)
Procedure/função necessita alterar o valor original
fornecido como argumento: alterações em um parâmetro
são mantidas após o término do procedure/função
Economia de memória, pois cada cópia de argumento gera
temporariamente uma nova variável: somente uma variável
simples, representando um endereço, é copiada
Newton Spolaôr Funções e passagem de parâmetros 12
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por referência
Uma alternativa é obtida com a passagem de parâmetros
por referência
Neste caso, um parâmetro se torna uma cópia do
endereço do argumento, o que permite atender os motivos
mencionados anteriormente
Procedure/função deve retornar mais de um valor: cada
parâmetro pode ser usado para retornar um valor
(parâmetro de “saída”)
Procedure/função necessita alterar o valor original
fornecido como argumento: alterações em um parâmetro
são mantidas após o término do procedure/função
Economia de memória, pois cada cópia de argumento gera
temporariamente uma nova variável: somente uma variável
simples, representando um endereço, é copiada
Newton Spolaôr Funções e passagem de parâmetros 12
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por referência
Uma alternativa é obtida com a passagem de parâmetros
por referência
Neste caso, um parâmetro se torna uma cópia do
endereço do argumento, o que permite atender os motivos
mencionados anteriormente
Procedure/função deve retornar mais de um valor: cada
parâmetro pode ser usado para retornar um valor
(parâmetro de “saída”)
Procedure/função necessita alterar o valor original
fornecido como argumento: alterações em um parâmetro
são mantidas após o término do procedure/função
Economia de memória, pois cada cópia de argumento gera
temporariamente uma nova variável: somente uma variável
simples, representando um endereço, é copiada
Newton Spolaôr Funções e passagem de parâmetros 12
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por referência
Uma alternativa é obtida com a passagem de parâmetros
por referência
Neste caso, um parâmetro se torna uma cópia do
endereço do argumento, o que permite atender os motivos
mencionados anteriormente
Procedure/função deve retornar mais de um valor: cada
parâmetro pode ser usado para retornar um valor
(parâmetro de “saída”)
Procedure/função necessita alterar o valor original
fornecido como argumento: alterações em um parâmetro
são mantidas após o término do procedure/função
Economia de memória, pois cada cópia de argumento gera
temporariamente uma nova variável: somente uma variável
simples, representando um endereço, é copiada
Newton Spolaôr Funções e passagem de parâmetros 12
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por referência [4]
No seguinte exemplo, as variáveis do algoritmo principal, x
e y , estão declaradas na memória nos endereços 800 e
300, respectivamente
Como os parâmetros a e b são associados aos endereços
de x e y , respectivamente, qualquer alteração em a e b
reflete diretamente em x e y
Newton Spolaôr Funções e passagem de parâmetros 13
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Passagem de parâmetros por referência
Como o uso de passagem de parâmetros por referência
permite a alteração de variáveis globais, esse recurso
deve ser usado com cuidado
Por outro lado, a passagem por referência ilustra o uso de
um conceito importante emprogramação: ponteiros
No restante dessa aula, serão abordados tanto a criação
de subalgoritmos quanto a passagem de parâmetros por
valor e referência na linguagem C
Newton Spolaôr Funções e passagem de parâmetros 14
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para funções e passagem de parâmetros
Passagem de parâmetros
Objetivo desta aula
Objetivo desta aula
Apresentar funções e passagem de parâmetros em C.
Newton Spolaôr Funções e passagem de parâmetros 15
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Sumário
1 Introdução
2 Funções e passagem de parâmetros em C
3 Exercícios
4 Considerações finais
Newton Spolaôr Funções e passagem de parâmetros 16
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Funções em C [5, 6, 1]
Em C, tanto funções quanto procedimentos são chamados
funções; a diferença prática entre eles ocorre no tipo de
retorno, como indicado ainda nesta aula
Todo programa tem ao menos uma função, chamada
main, a qual corresponde ao programa principal
A declaração (interface ou protótipo) de uma função indica
o nome, tipo de retorno e os parâmetros dessa função,
sendo útil em bibliotecas, por exemplo
Por outro lado, a definição corresponde à implementação
de uma função
Newton Spolaôr Funções e passagem de parâmetros 17
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Funções em C [5, 6, 1]
Em C, tanto funções quanto procedimentos são chamados
funções; a diferença prática entre eles ocorre no tipo de
retorno, como indicado ainda nesta aula
Todo programa tem ao menos uma função, chamada
main, a qual corresponde ao programa principal
A declaração (interface ou protótipo) de uma função indica
o nome, tipo de retorno e os parâmetros dessa função,
sendo útil em bibliotecas, por exemplo
Por outro lado, a definição corresponde à implementação
de uma função
Newton Spolaôr Funções e passagem de parâmetros 17
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Funções em C [5, 6, 1]
Em C, tanto funções quanto procedimentos são chamados
funções; a diferença prática entre eles ocorre no tipo de
retorno, como indicado ainda nesta aula
Todo programa tem ao menos uma função, chamada
main, a qual corresponde ao programa principal
A declaração (interface ou protótipo) de uma função indica
o nome, tipo de retorno e os parâmetros dessa função,
sendo útil em bibliotecas, por exemplo
Por outro lado, a definição corresponde à implementação
de uma função
Newton Spolaôr Funções e passagem de parâmetros 17
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Funções em C [5, 6, 1]
Em C, tanto funções quanto procedimentos são chamados
funções; a diferença prática entre eles ocorre no tipo de
retorno, como indicado ainda nesta aula
Todo programa tem ao menos uma função, chamada
main, a qual corresponde ao programa principal
A declaração (interface ou protótipo) de uma função indica
o nome, tipo de retorno e os parâmetros dessa função,
sendo útil em bibliotecas, por exemplo
Por outro lado, a definição corresponde à implementação
de uma função
Newton Spolaôr Funções e passagem de parâmetros 17
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Definição de uma função [6, 1]
tipo_retorno nome_função(lista_parâmetros) {
corpo_função
}
Tipo_retorno: tipo de dados do valor a ser retornado, ou
void para indicar ausência de retorno (“procedimento”)
Nome_função: identificador da função
Lista_parâmetros: sequência de 0, 1 ou mais parâmetros
Corpo_função: sequência de 1 ou mais comandos, sendo
um deles o return – exceto para tipo de retorno void
Newton Spolaôr Funções e passagem de parâmetros 18
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Exemplo de definição de função em C [6]
Figura: Neste exemplo, os parâmetros são passados por valor e há o
retorno de um valor int
Newton Spolaôr Funções e passagem de parâmetros 19
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Exemplo de definição de função sem retorno [5]
Figura: Neste exemplo não há nenhum retorno, lembrando um
procedimento do Pascal
Newton Spolaôr Funções e passagem de parâmetros 20
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Chamada de função [5, 6, 1]
Quando realizamos a chamada a uma função
1 Os argumentos são enviados aos parâmetros
2 O corpo da função é executado
3 O fluxo de execução retorna ao código chamador, no ponto
imediatamente posterior à chamada
Os comandos no corpo da função são executados até
aparecer um return ou não existir mais comandos para
execução nessa função
Newton Spolaôr Funções e passagem de parâmetros 21
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Chamada de função [5, 6, 1]
Quando realizamos a chamada a uma função
1 Os argumentos são enviados aos parâmetros
2 O corpo da função é executado
3 O fluxo de execução retorna ao código chamador, no ponto
imediatamente posterior à chamada
Os comandos no corpo da função são executados até
aparecer um return ou não existir mais comandos para
execução nessa função
Newton Spolaôr Funções e passagem de parâmetros 21
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Chamada de função [5, 6, 1]
Quando realizamos a chamada a uma função
1 Os argumentos são enviados aos parâmetros
2 O corpo da função é executado
3 O fluxo de execução retorna ao código chamador, no ponto
imediatamente posterior à chamada
Os comandos no corpo da função são executados até
aparecer um return ou não existir mais comandos para
execução nessa função
Newton Spolaôr Funções e passagem de parâmetros 21
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Chamada de função [5, 6, 1]
Quando realizamos a chamada a uma função
1 Os argumentos são enviados aos parâmetros
2 O corpo da função é executado
3 O fluxo de execução retorna ao código chamador, no ponto
imediatamente posterior à chamada
Os comandos no corpo da função são executados até
aparecer um return ou não existir mais comandos para
execução nessa função
Newton Spolaôr Funções e passagem de parâmetros 21
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Chamada de função [5, 6, 1]
Quando realizamos a chamada a uma função
1 Os argumentos são enviados aos parâmetros
2 O corpo da função é executado
3 O fluxo de execução retorna ao código chamador, no ponto
imediatamente posterior à chamada
Os comandos no corpo da função são executados até
aparecer um return ou não existir mais comandos para
execução nessa função
Newton Spolaôr Funções e passagem de parâmetros 21
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Exemplo de chamada de função [6]
Newton Spolaôr Funções e passagem de parâmetros 22
Introdução
Funções e passagem de parâmetros emC
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Passagem de parâmetros por valor [1]
Os exemplos indicados até aqui se referem à passagem
de parâmetros por valor
Ainda que existam algumas diferenças em termos de
sintaxe, a implementação dessa modalidade de passagem
de parâmetros em C lembra o que ocorre no Pascal
A diferença marcante entre C e Pascal no contexto de
funções se refere à passagem de parâmetros por
referência
Newton Spolaôr Funções e passagem de parâmetros 23
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Passagem de parâmetros por valor [1]
Os exemplos indicados até aqui se referem à passagem
de parâmetros por valor
Ainda que existam algumas diferenças em termos de
sintaxe, a implementação dessa modalidade de passagem
de parâmetros em C lembra o que ocorre no Pascal
A diferença marcante entre C e Pascal no contexto de
funções se refere à passagem de parâmetros por
referência
Newton Spolaôr Funções e passagem de parâmetros 23
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Passagem de parâmetros por referência [1]
Cada parâmetro de uma função passado por referência
indica (aponta para) a variável argumento informado
durante a chamada de função
Para tanto, é necessário informar o endereço do
argumento para o que o parâmetro possa referenciá-lo
Dentro da função, o parâmetro é usado por meio de um
ponteiro (endereço de memória)
Após o término da função, qualquer alteração realizada no
parâmetro repercutirá no argumento
Newton Spolaôr Funções e passagem de parâmetros 24
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Exemplo de passagem por referência [1]
Newton Spolaôr Funções e passagem de parâmetros 25
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Exemplo de passagem por referência [6]
#include <stdio.h>
void swap(int *x, int *y)
{
int temp;
temp = *x; /* save the value at address x */
*x = *y; /* put y into x */
*y = temp; /* put temp into y */
}
Newton Spolaôr Funções e passagem de parâmetros 26
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Exemplo de passagem por referência [6]
int main ()
{
/* local variable definition */
int a = 100;
int b = 200;
printf("Before swap, value of a : %d\n", a );
printf("Before swap, value of b : %d\n", b );
Newton Spolaôr Funções e passagem de parâmetros 27
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Funções em C
Passagem de parâmetros
Exemplo de programa fonte em C [6]
/* calling a function to swap the values.
* &a indicates the address (pointer to) a
* &a indicates the address (pointer to) b
*/
swap(&a, &b);
printf("After swap, value of a : %d\n", a );
printf("After swap, value of b : %d\n", b );
return 0;
}
Newton Spolaôr Funções e passagem de parâmetros 28
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Sumário
1 Introdução
2 Funções e passagem de parâmetros em C
3 Exercícios
4 Considerações finais
Newton Spolaôr Funções e passagem de parâmetros 29
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Exercício 1 [1]
Crie uma função que receba as coordenadas de 2 pontos
no plano cartesiano e retorne a distância entre eles.
Newton Spolaôr Funções e passagem de parâmetros 30
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Exercício 2
Escreva uma função sem retorno que verifica se um ano A
é bissexto ou não, conforme a seguinte regra: “um ano
bissexto é divisível por 4 mas não por 100, ou então é
divisível por 400”
Essa função deve também escrever na tela uma
mensagem similar a “O ano A é bissexto” ou “O ano A não
é bissexto”, de acordo com o resultado obtido
Crie um programa principal que faça uma chamada a essa
função, fornecendo o ano A como parâmetro
Newton Spolaôr Funções e passagem de parâmetros 31
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Exercício 3
Faça uma função que implemente o “scanf amigável” para
leitura de uma variável para algum tipo de dados da
linguagem C
Newton Spolaôr Funções e passagem de parâmetros 32
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Exercício 4 [1]
Crie uma função C que, dado os três coeficientes de uma
equação do segundo grau, calcule as raízes dessa
equação
Tanto os coeficientes quanto as raízes são parâmetros da
função
O retorno da função consiste na quantidade de raízes da
equação
Newton Spolaôr Funções e passagem de parâmetros 33
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Considerações finais
1 Introdução
2 Funções e passagem de parâmetros em C
3 Exercícios
4 Considerações finais
Newton Spolaôr Funções e passagem de parâmetros 34
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Considerações finais
Nesta aula foram apresentados conceitos sobre funções e
passagem de parâmetros em C
Na próxima aula, vamos falar sobre manipulação de
strings
Newton Spolaôr Funções e passagem de parâmetros 35
Introdução
Funções e passagem de parâmetros em C
Exercícios
Considerações finais
Contato
newtonsp.unioeste@gmail.com
Newton Spolaôr Funções e passagem de parâmetros 36
Referências
[1] Denis F. Wolf. Algoritmos.
http://wiki.icmc.usp.br/index.php/Scc-101, 2014. Notas
didáticas.
[2] Marcelo Santos Linder. Algoritmos e programação.
www.univasf.edu.br/ marcelo.linder, 2011. Notas didáticas.
[3] Christian J. Pereira. Apostila sobre visualg.
http://www2.joinville.udesc.br/ alp/arquivos/U-
DESC_Apostila_sobre_Visualg_2011.pdf,
2011.
[4] Ana Fernanda Gomes Ascencio and Edilene
Aparecida Veneruchi de Campos. Fundamentos da
Programação de Computadores - Algoritmos, Pascal,
C/C++ e Java. Prentice Hall, 2 edition, 2007.
[5] Wikibooks. C Programming. Wikibooks, 2016.
[6] Tutorialspoint. C - data types.
Newton Spolaôr Funções e passagem de parâmetros 36
Referências
http://www.tutorialspoint.com/cprogramming/c_data_types.htm,
2014.
Newton Spolaôr Funções e passagem de parâmetros 36
	Introdução
	Aula anterior em um breve olhar
	Motivação para funções e passagem de parâmetros
	Passagem de parâmetros
	Objetivo desta aula
	Funções e passagem de parâmetros em C
	Funções em C
	Passagem de parâmetros
	Exercícios
	Considerações finais

Continue navegando