Trocar Dois Números Usando Funções

C++Beginner
Pratique Agora

Introdução

Neste laboratório, discutiremos como trocar dois números usando funções em C++. Existem dois métodos para resolver este problema com a ajuda de funções:

Criar um novo arquivo C++

Para começar, crie um novo arquivo C++ no seu editor de código preferido. Você deve fornecer o caminho e o nome do arquivo de código no início do laboratório. Por exemplo: ~/project/main.cpp.

touch ~/project/main.cpp

Trocar Dois Números Usando Call by Value

Em "Call by Value" (Chamada por Valor), os parâmetros reais são passados ao chamar a função, e as operações nos parâmetros formais não se refletem nos parâmetros reais. Veja como implementá-lo:

#include<iostream>
using namespace std;

void swap(int x,int y);
/*Troca de Dois Números em C++ Usando Funções Call by Value*/

int main()
{
    int a,b;
    cout<<"Digite os Dois Números para Trocar em C++: ";
    cin>>a>>b;
    cout<<"\nApós a Troca de Dois Números:";
    swap(a,b);
    return 0;
}

void swap(int x,int y)
{
    int z;
    /*Variável extra para armazenar o valor da primeira ou segunda variável*/
    z = x;
    /*Copiando o valor da primeira variável para a variável temporária*/
    x = y;
    /*Copiando o valor da segunda variável para a primeira variável*/
    y = z;
    /*Copiando o valor da variável temporária para a segunda variável*/
    cout<<" "<<x<<"   "<<y;
}

Para executar o código, salve o arquivo, abra o terminal e digite o seguinte comando:

g++ main.cpp -o main && ./main

Trocar Dois Números Usando Call by Reference

Em "Call by Reference" (Chamada por Referência), passamos o endereço do parâmetro real no parâmetro formal, de modo que as alterações nos parâmetros formais se refletem nos parâmetros reais. Veja como implementá-lo:

#include<iostream>
using namespace std;

void swap(int *x,int *y);
/*Troca de Dois Números em C++ Usando Funções Call by Reference*/

int main()
{
    int a,b;
    cout<<"Digite Dois Números para Trocar: ";
    cin>>a>>b;

    swap(&a,&b);

    cout<<"\nApós a Troca de Dois Números: ";
    cout<<a<<" "<<b<<" \n";

    return 0;
}

void swap(int *x,int *y)
{
    int z;
    z = *x;
    /*Copiando o endereço da primeira variável para a variável temporária*/
    *x = *y;
    /*Copiando o endereço da segunda variável para a primeira variável*/
    *y = z;
    /*Copiando o endereço da variável temporária para a segunda variável*/
}

Para executar o código, salve o arquivo, abra o terminal e digite o seguinte comando:

g++ main.cpp -o main && ./main

Código Completo para o arquivo main.cpp

Aqui está o código completo para o arquivo main.cpp:

#include<iostream>
using namespace std;

void swap(int x,int y);
/*Troca de Dois Números em C++ Usando Funções Call by Value*/

void swap(int *x,int *y);
/*Troca de Dois Números em C++ Usando Funções Call by Reference*/

int main()
{
    int a,b;
    cout<<"Digite o primeiro número: ";
    cin>>a;

    cout<<"Digite o segundo número: ";
    cin>>b;

    // Método 1: Call By Value (Chamada por Valor)
    cout<<"\nTroca de Dois Números Usando Call By Value\n";
    swap(a,b);

    // Método 2: Call By Reference (Chamada por Referência)
    cout<<"\nTroca de Dois Números Usando Call By Reference\n";
    swap(&a,&b);

    return 0;
}

void swap(int x,int y)
{
    int z;
    /*Variável extra para armazenar o valor da primeira ou segunda variável*/
    z = x;
    /*Copiando o valor da primeira variável para a variável temporária*/
    x = y;
    /*Copiando o valor da segunda variável para a primeira variável*/
    y = z;
    /*Copiando o valor da variável temporária para a segunda variável*/
    cout<<" "<<x<<"   "<<y;
}

void swap(int *x,int *y)
{
    int z;
    z = *x;
    /*Copiando o endereço da primeira variável para a variável temporária*/
    *x = *y;
    /*Copiando o endereço da segunda variável para a primeira variável*/
    *y = z;
    /*Copiando o endereço da variável temporária para a segunda variável*/
}

Executar o Código

Salve o arquivo, abra o terminal e digite o seguinte comando para executar o código:

g++ main.cpp -o main && ./main

Resumo

Neste laboratório, aprendemos como usar funções para trocar dois números usando os métodos Call by Value (Chamada por Valor) e Call by Reference (Chamada por Referência) na linguagem de programação C++.