Linguagem de Programação - Funções
9 pág.

Linguagem de Programação - Funções


DisciplinaProgramação I24.547 materiais279.612 seguidores
Pré-visualização2 páginas
10/10/2012
1
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
118
U
N
I
D
A
D
E
I
I
I
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Funções ou Modularização
119
Uma das técnicas aplicadas na programação
estruturada, é a modularização de programas
uma ferramenta para a elaboração de programas
visando, os aspectos de confiabilidade,
legibilidade, manutenibilidade e flexibilidade,
dentre outros.
A modularização é um processo que aborda os
aspectos da decomposição de algoritmos em
módulos. Módulo é um grupo de comandos,
constituindo um trecho do algoritmo, com uma
função bem definida e o mais independente
possível em relação ao resto do algoritmo.
10/10/2012
2
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Funções
120
Funções são módulos hierarquicamente
subordinados a um algoritmo, comumente
chamado de módulo principal. Da mesma forma
uma função pode conter outras funções
aninhadas. A função é criadas através das suas
declarações em um algoritmo e para serem
executadas, necessitam de ativação por um
comando de chamada.
A declaração de função é constituída de um
cabeçalho, que a identifica e contém seu nome e
uma lista de parâmetros formais, e de um corpo
que contém declarações locais e os comandos.
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Funções
121
As funções permitem estruturar o código de uma
forma mais modular, aproveitando as
potencialidades da programação estruturada que
a linguagem C++ oferece.
Uma função é um bloco de instruções que é
executado quando é chamada em alguma parte
do programa.
As variáveis declaradas em uma função só são
acessíveis na função
10/10/2012
3
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Funções
122
A sintaxe de uma função é a seguinte:
<tipo-de-dados> <id-da-função>( <argumento 1>,<argumento 2>,...) {
<bloco-de-instruções>
}
<tipo-de-dados> \u2013 este é o tipo de dados devolvido pela função;
<id-da-função> \u2013 este é o identificador pela qual a função é conhecida. As
regras para definição de um identificador são as mesmas que para as
variáveis;
<argumento 1>, <argumento 2>,... \u2013 estes são os argumentos da função (o
número de argumentos é variável, pode ser zero). Cada argumento
consiste num tipo de dados seguido do identificador pelo qual esse
argumento vai ser identificado dentro da função (por exemplo int x). Um
argumento é como uma declaração de uma variável dentro da função. Os
argumentos permitem passar parâmetros para dentro de uma função
quando esta é invocada. Os diferentes parâmetros tem que ser separados
pelo operador vírgula (\u2019,\u2019);
<bloco de instruções> \u2013 é o corpo da função e tem que estar sempre
delimitado por chavetas({}). É constituído por zero ou mais instruções.
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exemplo usando funções
123
#include <iostream>
int soma ( int n1 , int n2 ){
int r ;
r=n1+n2 ;
return r ;
}
int main ( ){
int a , b , z ;
a=5;
b=3;
z = soma ( a , b ) ;
cout << &quot;Resultado : &quot; << z ;
return 0 ;
}
10/10/2012
4
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Rotina da Função
124
Criação de função
função tipo NOME (lista-de-parâmetros-formais)
declarações dos objetos locais a função
comandos da função
fim função;
Chamada da função
NOME (lista-de-parâmetros-atuais);
Como esta função irá retornar um valor, este pode ser
atribuído a alguma variável, contanto que esta seja de tipo
compatível.
A\ufffd\ufffd\ufffd\ufffd NOME (lista-de-parâmetros-atuais);
Ao terminar a execução dos comandos de uma função, o
fluxo de controle retorna ao comando seguinte àquele
que provocou a chamada.
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Modos de transferência de 
parâmetros
125
Os parâmetros de uma função classificam-
se em:
de entrada \u2013 são aqueles que têm seus valores
estabelecidos fora da função e não podem ser
modificados dentro dela.
de saída \u2013 são aqueles que têm seus valores
estabelecidos dentro da função.
de entrada-saída \u2013 são aqueles que têm seus
valores estabelecidos fora da função, mas
podem ter seus valores alterados dentro dela.
10/10/2012
5
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exemplo
126
FUNÇÕES SEM PARAMETROS COM PARAMETROS
SEM RETORNO
#include<iostream>
int main(){
calcular();
system(&quot;pause&quot;);
return 0;
}
void calcular(){
int result, x=5;
result=x*x;
cout<<result;
}
#include<iostream>
int main(){
int n=5;
calcular(n);
system(&quot;pause&quot;);
return 0;
}
void calcular(int x){
int result;
result=x*x;
cout<<result;
}
COM RETORNO
#include<iostream>
int main(){
int resp;
resp=calcular();
cout<<resp;
system(&quot;pause&quot;);
return 0;
}
int calcular(){
int result, x=5;
result=x*x;
return(result); 
}
#include<iostream>
int main(){
int resp;
resp=calcular(5);
cout<<resp;
system(&quot;pause&quot;);
return 0;
}
int calcular(int x){
int result;
result=x*x;
return(result); 
}
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exemplo chamadas
127
#include <iostream>
int main ( ){
f ( ) ;
return 0 ;
}
void h( int a ){
int x ;
cout<<&quot;Funcao h&quot;<<endl ;
}
void g ( int a ){
int x ;
cout<<&quot;Funcao g&quot;<<endl ;
}
void f ( ){
int x ;
cout<<&quot;Funcao f &quot;<<endl ;
g ( x ) ;
h( x ) ;
}
10/10/2012
6
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Transferência de parâmetros
128
A vinculação entre módulos pode ser feita
através da transferência ou passagem de
parâmetros, que associam parâmetros atuais
com parâmetros formais.
Dentre os modos de transferência de parâmetros,
pode-se destacar:
a passagem por valor;
passagem por referência.
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Passagem por valor
129
Na passagem de parâmetros por valor, as
alterações feitas nos parâmetros formais, dentro
da função, não se refletem nos parâmetros
atuais.
O valor do parâmetro atual é copiado no
parâmetro formal, na chamada da função. Assim,
quando a passagem é por valor significa que o
parâmetro é de entrada.
10/10/2012
7
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exemplo de Passagem por 
valor
130
#include <iostream>
int soma ( int n1 , int n2 ){
int r ;
r=n1+n2 ;
return r ;
}
int main ( ){
int a , b , z ;
a=5;
b=3;
z = soma ( a , b ) ;
cout << &quot;Resultado : &quot; << z ;
return 0 ;
}
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exercícios
131
1. Faça uma função para imprimir a soma de todos
os números.
2. Construa uma função imprimir a média de todos
os números.
3. Elabore uma função imprimir quantos números
são múltiplos de 6.
4. Escreva uma função que, dados dois números
reais, retorna a média deles.
5. Faça uma função para receber um numero e
imprimir o mesmo se primo ou a mensagem não
e primo.
6. Escreva um procedimento que imprima os
números primos existentes entre dois números.
10/10/2012
8
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exercícios
132
7. Construa um programa que tenha as seguintes
funções abaixo.
I. Calcular o fatorial de um numero \u2013 PPV \u2013 retorne o
resultado.
II. Calcular a área do triangulo \u2013 PPV \u2013 não retorne o
resultado.
III. Calcular um aumento de 15% no salário do usuário \u2013
PPR \u2013 não retorne o resultado. (PPV)
IV. Somar 20 números aleatórios entre o 5 e a qtde de
números desejada pelo usuário- PPV \u2013 retorne o
resultado.
PPV - Passagem de parâmetro por valor
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exercícios
133
8. Escreva um programa em C++, que tenha um
menu em loop até que o usuário digite 0 para sair
ou uma das opções dos exercícios anteriores:
1. Fatorial
2. Área do triângulo
3. Calcular aumento salarial
4. Soma de números
10/10/2012
9
ENGENHARIAS \u2013 LINGUAGEM