Funções em C++ e Uso de Funções de Biblioteca Padrão

Definição de Funções

No C++, a estrutura básica de um programa inclui a função principal main, que atua como o ponto de entrada. Uma função é composta por tipo de retorno, nome, parâmetros e corpo.

#include <iostream>
using namespace std;

int principal()    // Função principal
{
    // Corpo da função
    return 0; // Valor de retorno
}

Instrução return

O return é usado para devolver um valor ou encerrar a execução. Funções do tipo void não possuem retorno. Podem existir múltiplos return, mas o primeiro encontrado encerra a chamada.

Exemplo: função para verificar se um número é par.

#include <iostream>
using namespace std;

int verificaPar(int numero) 
{
    if (numero % 2 == 0) 
        return 0;  // É par
    else
        return 1;  // Não é par
}

int main() 
{
    int entrada, resultado;
    cin >> entrada;
    resultado = verificaPar(entrada);
    if (resultado == 0) 
        cout << entrada << " é par";
    else 
        cout << entrada << " não é par";
    return resultado;
}

Alternativa com parâmetro por referência:

#include <iostream>
using namespace std;

void checaPar(int valor, int& saida) 
{  
    if (valor % 2 == 0) 
        saida = 0;
    else
        saida = 1;
}

int main() 
{
    int entrada;
    int saida;  
    cin >> entrada;
    checaPar(entrada, saida);
    if (saida == 0)
        cout << entrada << " é par";
    else
        cout << entrada << " não é par";
    return saida;
}

Parâmetros de Função

Parâmetros Formais e Reais

Parâmetros formais são as variáveis na definição da função (escopo local). Parâmetros reais são os valores passados durante a chamada.

Valores Padrão para Parâmetros

Parâmetros podem ter valores padrão, usados quando não fornecidos na chamada.

#include <iostream>
#include <string>
using namespace std;

void exibirDados(string nome, string genero="masculino", int idade=21) 
{
    cout << nome << " " << genero << " " << idade << endl; 
}

int main() 
{
    exibirDados("João");
    exibirDados("Maria", "feminino", 25);
    return 0;
}

Formas de Chamada de Função

Chamada por Valor

Passa uma cópia do argumento; alterações dentro da função não afetam a variável original.

#include <iostream>
using namespace std;

void modificaCopia(int copia) 
{
    copia = 50;
    cout << "Valor modificado na cópia: " << copia << endl;
}

int main() 
{
    int original = 10;
    cout << "Valor original: " << original << endl;
    modificaCopia(original);
    cout << "Valor após chamada: " << original;  // Permanece 10
    return 0;
}

Chamada por Ponteiro

Passa o endereço da variável; usando desreferência, é possível alterar o valor original.

#include <iostream>
using namespace std;

void modificaViaPonteiro(int* ponteiro) 
{
    *ponteiro = 100;
    cout << "Valor modificado via ponteiro: " << *ponteiro << endl;
}

int main() 
{
    int variavel = 10;
    cout << "Valor inicial: " << variavel << endl;
    modificaViaPonteiro(&variavel);
    cout << "Valor após chamada: " << variavel;  // Alterado para 100
    return 0;
}

Chamada por Referência

Passa um apelido para a variável original; modificações refletem diretamente.

#include <iostream>
using namespace std;

void modificaReferencia(int& refer) 
{
    refer = 200;
    cout << "Valor modificado via referência: " << refer << endl;
}

int main() 
{
    int variavel = 10;
    cout << "Valor inicial: " << variavel << endl;
    modificaReferencia(variavel);
    cout << "Valor após chamada: " << variavel;  // Alterado para 200
    return 0;
}

Funções de Biblioteca Padrão

Bibliotecas padrão fornecem funções pré-definiads. Eexmplos incluem cmath para operações matemáticas e algorithm para algoritmos genéricos.

cmath

Funções comuns:

  • abs(x): valor absoluto.
  • sqrt(x): raiz quadrada.
  • pow(x, y): potência.
  • round(x): arredondamento.
  • fmax(x,y) / fmin(x,y): máximo/mínimo entre floats.
  • ceil(x) / floor(x): arredondamento para cima/baixo.

algorithm

Funções comuns:

  • max(x,y) / min(x,y): máximo/mínimo.
  • find(início, fim, valor): busca de elemento.
  • sort(início, fim): ordenação (crescente por padrão).
  • reverse(início, fim): inversão de intervalo.

Tags: C++ funções parâmetros referência ponteiro

Publicado em 6-8 05:05 por Thomas