[C/C++] Protótipos de funções
2 participantes
- covital
Membro VIP - Idade : 27
Posts : 2107
Créditos : 0
Respeito : 18
God damn asshole
[C/C++] Protótipos de funções
Qui 20 Dez 2012, 19:07
Protótipos de funções
A prototipagem é uma técnica muito utilizada em programas criados em C/C++.
Como já vimos, tudo em C/C++ é uma função e a função executada quando criamos um programa é o MAIN. O problema é quando temos muitas funções. Como toda função deve ser compilada primeiro que o MAIN para que esta possa ser utilizada, muitas vezes acabamos escrevendo inúmeras linhas de código nas, prováveis, 20 ou 30 funções e esquecemos a função principal do programa. Isso acaba gerando uma certa dificuldade de navegação pelo código - quando acontece isso dizemos que o código está poluído.
Então, do que se trata, realmente, a prototipagem de funções!?
Quando criamos um protótipo de uma função, estamos, na verdade, declarando uma função. Ou seja, você indica para o MAIN que tal função existe, mas o código dela está em outro lugar. Dessa forma o programa fica muito mais fácil de ler e facilmente chegamos até a função MAIN (que é o que realmente nos interessa).
Para criar um protótipo de uma função é a mesma coisa de criar uma função. A direfença é que, ao invés, de abrirmos um bloco de código ( ** ** ), terminamos a linha com ponto-e-vírgula ( * ). E o código da função que deveríamos ter colocado no começo é colocado após a função MAIN.
Ele ficaria assim:
PROTÓTIPO DA FUNÇÃO 1;
MAIN () ** bloco de dados **
FUNÇÃO 1 ** bloco de dados **
Pronto! Basicamente, só trocamos a função de lugar. Vamos ver isso em um exemplo:
[/quote]#include <iostream>
#include <cstdlib>
using namespace std;
//criando o protótipo de 4 funções
int somar (int x, int y)*
int subtrair (int x, int y)*
int multiplicar (int x, int y)*
int dividir (int x, int y)*
//a função principal
int main (void)**
int valor1, valor2, resSom, resSub, resMult, resDiv;
cout <<"Digite o 1o valor: "*
cin >> valor1;
cin.ignore()*
cout <<"Digite o 2o valor: "*
cin >> valor2;
cin.ignore ()*
//chamando todas as funções
resSom=somar (valor1, valor2)*
resSub=subtrair (valor1, valor2)*
resMult=multiplicar (valor1, valor2)*
resDiv=dividir (valor1, valor2)*
//mostrando os resultados guardados
system ("cls")*
cout <<valor1<<" + "<<valor2<<" = "<<resSom<<"\n"*
cout <<valor1<<" - "<<valor2<<" = "<<resSub<<"\n"*
cout <<valor1<<" * "<<valor2<<" = "<<resMult<<"\n"*
cout <<valor1<<" / "<<valor2<<" = "<<resDiv<<"\n\n"*
system ("pause")*
return EXIT_SUCCESS;
**
//As funções
int somar (int x, int y)**
return x+y;
**
int subtrair (int x, int y)**
return x-y;
**
int multiplicar (int x, int y)**
return x*y;
**
int dividir (int x, int y)**
return x/y;
**[/quote]
Veja como o código está simples. Temos uma parte destinada a declarar as funções (protótipos) e logo após temos a função principal que é o programa. Logo abaixo da função principal estão as funções secundárias.
Isso é prototipagem de funções.
Créditos: Tiexpert
A prototipagem é uma técnica muito utilizada em programas criados em C/C++.
Como já vimos, tudo em C/C++ é uma função e a função executada quando criamos um programa é o MAIN. O problema é quando temos muitas funções. Como toda função deve ser compilada primeiro que o MAIN para que esta possa ser utilizada, muitas vezes acabamos escrevendo inúmeras linhas de código nas, prováveis, 20 ou 30 funções e esquecemos a função principal do programa. Isso acaba gerando uma certa dificuldade de navegação pelo código - quando acontece isso dizemos que o código está poluído.
Então, do que se trata, realmente, a prototipagem de funções!?
Quando criamos um protótipo de uma função, estamos, na verdade, declarando uma função. Ou seja, você indica para o MAIN que tal função existe, mas o código dela está em outro lugar. Dessa forma o programa fica muito mais fácil de ler e facilmente chegamos até a função MAIN (que é o que realmente nos interessa).
Para criar um protótipo de uma função é a mesma coisa de criar uma função. A direfença é que, ao invés, de abrirmos um bloco de código ( ** ** ), terminamos a linha com ponto-e-vírgula ( * ). E o código da função que deveríamos ter colocado no começo é colocado após a função MAIN.
Ele ficaria assim:
PROTÓTIPO DA FUNÇÃO 1;
MAIN () ** bloco de dados **
FUNÇÃO 1 ** bloco de dados **
Pronto! Basicamente, só trocamos a função de lugar. Vamos ver isso em um exemplo:
[/quote]#include <iostream>
#include <cstdlib>
using namespace std;
//criando o protótipo de 4 funções
int somar (int x, int y)*
int subtrair (int x, int y)*
int multiplicar (int x, int y)*
int dividir (int x, int y)*
//a função principal
int main (void)**
int valor1, valor2, resSom, resSub, resMult, resDiv;
cout <<"Digite o 1o valor: "*
cin >> valor1;
cin.ignore()*
cout <<"Digite o 2o valor: "*
cin >> valor2;
cin.ignore ()*
//chamando todas as funções
resSom=somar (valor1, valor2)*
resSub=subtrair (valor1, valor2)*
resMult=multiplicar (valor1, valor2)*
resDiv=dividir (valor1, valor2)*
//mostrando os resultados guardados
system ("cls")*
cout <<valor1<<" + "<<valor2<<" = "<<resSom<<"\n"*
cout <<valor1<<" - "<<valor2<<" = "<<resSub<<"\n"*
cout <<valor1<<" * "<<valor2<<" = "<<resMult<<"\n"*
cout <<valor1<<" / "<<valor2<<" = "<<resDiv<<"\n\n"*
system ("pause")*
return EXIT_SUCCESS;
**
//As funções
int somar (int x, int y)**
return x+y;
**
int subtrair (int x, int y)**
return x-y;
**
int multiplicar (int x, int y)**
return x*y;
**
int dividir (int x, int y)**
return x/y;
**[/quote]
Veja como o código está simples. Temos uma parte destinada a declarar as funções (protótipos) e logo após temos a função principal que é o programa. Logo abaixo da função principal estão as funções secundárias.
Isso é prototipagem de funções.
Créditos: Tiexpert
- Koily
Coordenador - Idade : 29
Posts : 4744
Créditos : 250
Respeito : 36
Foco, força e fé.
Warning :
Re: [C/C++] Protótipos de funções
Sex 21 Dez 2012, 00:27
O tutorial é bom. Mas Luiz, me permita perguntar.. Você só tá dando ctrl c ctrl v né? x] Nem pra dar uma estudada no que você mesmo posta. u.u
Permissões neste sub-fórum
Não podes responder a tópicos
|
|