abertura e fechamento.Retorno da Funcao.As funcoes retornam um valor a quem chama.Para retornar um valor de uma funcao, e necessario fazer duas alteracoes:1. Substituir void pelo tipo de valor que vc deseja retornar.2. Colocar o valor a retornar depois da palavra-chave return. C++ nao permite vc retornar sem nada de uma funcao se o tipo de retorno for diferente de void.Vamos ver um exemplo:A funcao somaSequencia() e chamada repetidamente para somar uma serie de numeros fornecidos pelo usuario, ate que o usuario forneca uma sequencia de comprimento zero.------------------------------------------------------------------------------------------------------------#include<cstdio>#include<cstdlib>#include<iostream>using namespace std;int somaSequencia(){ //criamos a variavel que vai armazenar os dados digitados. int nAcumulador = 0; //lendo os valores digitados for(;;) { int nValor; cout << "Proximo: "; cin >> nValor; //saindo do loop quando o valor de alvo for digitado if(nValor < 0) { break; } //agora, passamos o valor para o acumulador nAcumulador += nValor; } //aqui retornamos o valor chamado para o acumulador return nAcumulador;}int main(int nNumberofArgs, char* pszArgs[]){ cout << "Entre com a sequencia de numeros\n" << "Numero negativo encerra o programa\n" ;for(;;){ int nSoma = somaSequencia(); if(nSoma == 0) { break; } cout << "Soma = " << nSoma << endl;}system("pause");return 0; }------------------------------------------------------------------------------------------------------------Como Passar Argumentos para Funcoes. Quando a funcao apenas retorna valor, elas sao de valor limitado e a comunicacao e de uma via - da funcao para o chamador. Vamos ver agora a comunicacao de duas vias, argumentos de funcao.Um argumento de funcao e uma variavel, cujo valor e passado para a funcao durante a chamada. Vamos converter a operacao fatorial do estudo anterior em uma funcao:------------------------------------------------------------------------------------------------------------#include<cstdio>#include<cstdlib>#include<iostream>using namespace std;int fatorial(int nAlvo){ //Vamos inicializa o acumulador com 1. int nAcumulador = 1; for(int nValor = 1; nValor <= nAlvo; nValor++) { nAcumulador *= nValor; } return nAcumulador;}int main(int nNumberofArgs, char* pszArgs[]){ cout << "Programa para calculo de fator\n" << "Digite um numero negativo para encerrar o programa" << endl;for(;;){ int nValor; cout << "Digite o numero: "; cin >> nValor; if(nValor < 0) { break; } int nFatorial = fatorial(nValor); cout << nValor << " o fator e " << nFatorial << endl; }system("pause");return 0;}------------------------------------------------------------------------------------------------------------Uma funcao pode ter multiplos argumentos separados por virgulas. Ex:.int produto(int nValor1, int nValor2){ retorno nValor1 * nValor2;} ------------------------------------------------------------------------------------------------------------A palavra-chave main() do nosso gabarito e uma funcao. Mesmo com alguns argumentos estranhos ;)C++ permite designar o mesmo nome a duas ou mais funcoes, se puderem ser distinguidas pelo nome ou pelo tipo de argumento. Isso e chamado de sobrecarga de funcoes.