Avaliar Funções Por Partes em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a avaliar funções por partes na programação em C. O laboratório cobre os passos para ler um valor de entrada, usar instruções if/else para determinar qual fórmula aplicar e imprimir o resultado avaliado. Você começará solicitando ao usuário que insira um valor para a variável x, em seguida, implementará uma função por partes com diferentes fórmulas com base no valor de entrada. Este laboratório ajudará você a desenvolver suas habilidades em trabalhar com expressões algébricas e lógica condicional em C.

Ler o Valor de Entrada x

Neste passo, você aprenderá como ler um valor de entrada para uma função por partes em programação C. Criaremos um programa simples que permite aos usuários inserir um valor numérico a ser usado na avaliação da função.

Primeiro, crie um novo arquivo C no diretório do projeto:

cd ~/project
nano piecewise_function.c

Agora, adicione o seguinte código ao arquivo:

#include <stdio.h>

int main() {
    double x;

    // Solicita ao usuário que insira um valor para x
    printf("Digite um valor para x: ");

    // Lê o valor de entrada
    scanf("%lf", &x);

    // Imprime o valor de entrada para confirmação
    printf("Você digitou x = %.2f\n", x);

    return 0;
}

Compile o programa:

gcc piecewise_function.c -o piecewise_function

Execute o programa:

./piecewise_function

Exemplo de saída:

Digite um valor para x: 5.5
Você digitou x = 5.50

Vamos analisar o código:

  • #include <stdio.h> inclui a biblioteca de entrada/saída padrão
  • double x; declara uma variável para armazenar o valor de entrada
  • printf() exibe um prompt para o usuário
  • scanf() lê o valor de entrada como um número de ponto flutuante de precisão dupla
  • %.2f formata a saída para exibir duas casas decimais

Usar if/else para Determinar Qual Fórmula Aplicar

Neste passo, você modificará o programa anterior para implementar uma função por partes usando instruções if/else. Criaremos uma função com diferentes fórmulas com base no valor de entrada x.

Atualize o arquivo piecewise_function.c:

cd ~/project
nano piecewise_function.c

Substitua o conteúdo anterior pelo seguinte código:

#include <stdio.h>

// Define uma função por partes
double piecewise_function(double x) {
    // Condição 1: Se x for menor que 0
    if (x < 0) {
        return x * x;  // f(x) = x^2 para x < 0
    }
    // Condição 2: Se x estiver entre 0 e 5
    else if (x >= 0 && x < 5) {
        return 2 * x + 3;  // f(x) = 2x + 3 para 0 ≤ x < 5
    }
    // Condição 3: Se x for maior ou igual a 5
    else {
        return x - 2;  // f(x) = x - 2 para x ≥ 5
    }
}

int main() {
    double x;

    // Solicita ao usuário que insira um valor para x
    printf("Digite um valor para x: ");

    // Lê o valor de entrada
    scanf("%lf", &x);

    // Calcula e imprime o resultado da função por partes
    double result = piecewise_function(x);
    printf("f(%.2f) = %.2f\n", x, result);

    return 0;
}

Compile o programa:

gcc piecewise_function.c -o piecewise_function

Execute o programa com diferentes valores de entrada:

./piecewise_function

Exemplo de saída 1:

Digite um valor para x: -2
f(-2.00) = 4.00

Exemplo de saída 2:

Digite um valor para x: 3
f(3.00) = 9.00

Exemplo de saída 3:

Digite um valor para x: 6
f(6.00) = 4.00

Vamos analisar o código:

  • piecewise_function() implementa três fórmulas diferentes com base no valor de x
  • As instruções if/else verificam as condições e aplicam a fórmula apropriada
  • A função retorna o valor calculado com base no valor de entrada x

Imprimir o Resultado Avaliado

Neste passo final, você aprimorará o programa da função por partes para fornecer uma saída mais detalhada e demonstrar o comportamento da função em diferentes intervalos de entrada.

Vamos modificar o arquivo piecewise_function.c para adicionar a impressão de resultados mais abrangente:

cd ~/project
nano piecewise_function.c

Atualize o código com a seguinte implementação:

#include <stdio.h>

// Define uma função por partes
double piecewise_function(double x) {
    // Condição 1: Se x for menor que 0
    if (x < 0) {
        return x * x;  // f(x) = x^2 para x < 0
    }
    // Condição 2: Se x estiver entre 0 e 5
    else if (x >= 0 && x < 5) {
        return 2 * x + 3;  // f(x) = 2x + 3 para 0 ≤ x < 5
    }
    // Condição 3: Se x for maior ou igual a 5
    else {
        return x - 2;  // f(x) = x - 2 para x ≥ 5
    }
}

int main() {
    double x;

    // Solicita ao usuário que insira um valor para x
    printf("Avaliação de Função por Partes\n");
    printf("Regras da função:\n");
    printf("  f(x) = x^2      para x < 0\n");
    printf("  f(x) = 2x + 3   para 0 ≤ x < 5\n");
    printf("  f(x) = x - 2    para x ≥ 5\n\n");

    printf("Digite um valor para x: ");

    // Lê o valor de entrada
    scanf("%lf", &x);

    // Calcula o resultado da função por partes
    double result = piecewise_function(x);

    // Fornece saída detalhada
    printf("\nAnálise de Entrada:\n");
    printf("  Valor de entrada x: %.2f\n", x);

    // Determina e imprime a fórmula aplicada
    if (x < 0) {
        printf("  Fórmula aplicada: f(x) = x^2\n");
    }
    else if (x >= 0 && x < 5) {
        printf("  Fórmula aplicada: f(x) = 2x + 3\n");
    }
    else {
        printf("  Fórmula aplicada: f(x) = x - 2\n");
    }

    // Imprime o resultado final
    printf("  Resultado f(x): %.2f\n", result);

    return 0;
}

Compile o programa:

gcc piecewise_function.c -o piecewise_function

Execute o programa com diferentes valores de entrada:

./piecewise_function

Exemplo de saída 1 (x < 0):

Avaliação de Função por Partes
Regras da função:
  f(x) = x^2      para x < 0
  f(x) = 2x + 3   para 0 ≤ x < 5
  f(x) = x - 2    para x ≥ 5

Digite um valor para x: -3

Análise de Entrada:
  Valor de entrada x: -3.00
  Fórmula aplicada: f(x) = x^2
  Resultado f(x): 9.00

(Exemplos de saída 2 e 3 omitidos para manter o tamanho da resposta dentro do limite)

Melhorias-chave neste passo:

  • Adicionada explicação detalhada das regras da função.
  • Fornecida análise de entrada com a fórmula aplicada.
  • Legibilidade aprimorada da saída.
  • Demonstração do comportamento da função por partes em diferentes intervalos de entrada.

Resumo

Neste laboratório, você aprendeu como ler um valor de entrada para uma função por partes em programação C e como usar instruções if/else para determinar qual fórmula aplicar com base no valor de entrada. Você criou um programa simples que permite aos usuários inserir um valor numérico e, em seguida, avaliou a função por partes usando diferentes fórmulas dependendo do valor de x. Os principais pontos de aprendizado são a leitura de entrada do usuário, a implementação de lógica condicional com instruções if/else e a aplicação de diferentes fórmulas matemáticas dentro de uma função por partes.