Encontrar a Equação de uma Reta Dados Dois Pontos em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a encontrar a equação de uma reta dados dois pontos em programação C. O laboratório cobre três etapas principais: calcular a inclinação a partir de dois pontos, calcular o coeficiente linear usando a inclinação e um ponto conhecido e, finalmente, imprimir a equação completa da reta na forma y = mx + b. Ao final deste laboratório, você terá uma compreensão sólida de como trabalhar com retas em geometria analítica usando C.

O laboratório começa demonstrando como calcular a inclinação entre dois pontos usando a fórmula (y2 - y1) / (x2 - x1). Em seguida, mostra como determinar o coeficiente linear reorganando a equação y = mx + b para resolver a constante b. Finalmente, a equação completa da reta é impressa, permitindo que você represente a reta na forma padrão.

Calcular a Inclinação a Partir de Dois Pontos

Neste passo, você aprenderá como calcular a inclinação entre dois pontos em um programa C. A inclinação representa a declividade de uma reta e é calculada usando a fórmula: inclinação = (y2 - y1) / (x2 - x1).

Primeiro, crie um novo arquivo C para implementar o cálculo da inclinação:

cd ~/project
nano slope_calculation.c

Agora, escreva o seguinte código C para calcular a inclinação:

#include <stdio.h>

float calculate_slope(float x1, float y1, float x2, float y2) {
    // Verifica se os pontos estão na mesma linha vertical
    if (x2 - x1 == 0) {
        printf("Inclinação indefinida (linha vertical)\n");
        return 0;
    }

    // Calcula a inclinação usando a fórmula: (y2 - y1) / (x2 - x1)
    float slope = (y2 - y1) / (x2 - x1);
    return slope;
}

int main() {
    float x1 = 2.0, y1 = 3.0;  // Primeiro ponto
    float x2 = 5.0, y2 = 7.0;  // Segundo ponto

    float slope = calculate_slope(x1, y1, x2, y2);

    printf("Ponto 1: (%.1f, %.1f)\n", x1, y1);
    printf("Ponto 2: (%.1f, %.1f)\n", x2, y2);
    printf("Inclinação: %.2f\n", slope);

    return 0;
}

Compile e execute o programa:

gcc slope_calculation.c -o slope_calculation
./slope_calculation

Saída de exemplo:

Ponto 1: (2.0, 3.0)
Ponto 2: (5.0, 7.0)
Inclinação: 1.33

Vamos analisar o código:

  1. A função calculate_slope() recebe quatro parâmetros: x1, y1, x2, y2
  2. Primeiro, verifica se os pontos formam uma linha vertical (x2 - x1 = 0)
  3. Se não for uma linha vertical, calcula a inclinação usando a fórmula padrão
  4. A função main() demonstra como usar o cálculo da inclinação

A inclinação representa a variação na coordenada y dividida pela variação na coordenada x entre dois pontos. Neste exemplo, a inclinação é aproximadamente 1,33, o que significa que para cada unidade de variação em x, y varia em 1,33 unidades.

Calcular a Interceptação Usando y - mx

Neste passo, você aprenderá a calcular a interceptação y de uma reta usando a inclinação e um ponto conhecido. A interceptação y é o ponto onde a reta cruza o eixo y, e pode ser calculada usando a equação: b = y - mx.

Continue trabalhando no mesmo diretório do projeto e modifique o arquivo C anterior:

cd ~/project
nano line_equation.c

Escreva o seguinte código C para calcular a interceptação y:

#include <stdio.h>

float calculate_slope(float x1, float y1, float x2, float y2) {
    if (x2 - x1 == 0) {
        printf("Inclinação indefinida (linha vertical)\n");
        return 0;
    }
    return (y2 - y1) / (x2 - x1);
}

float calculate_intercept(float x, float y, float slope) {
    // Calcula a interceptação y usando a fórmula: b = y - mx
    float intercept = y - (slope * x);
    return intercept;
}

int main() {
    float x1 = 2.0, y1 = 3.0;  // Primeiro ponto
    float x2 = 5.0, y2 = 7.0;  // Segundo ponto

    float slope = calculate_slope(x1, y1, x2, y2);
    float intercept = calculate_intercept(x1, y1, slope);

    printf("Ponto 1: (%.1f, %.1f)\n", x1, y1);
    printf("Ponto 2: (%.1f, %.1f)\n", x2, y2);
    printf("Inclinação: %.2f\n", slope);
    printf("Interceptação y: %.2f\n", intercept);

    return 0;
}

Compile e execute o programa:

gcc line_equation.c -o line_equation
./line_equation

Saída de exemplo:

Ponto 1: (2.0, 3.0)
Ponto 2: (5.0, 7.0)
Inclinação: 1.33
Interceptação y: 0.33

Vamos analisar o novo código:

  1. A função calculate_intercept() recebe três parâmetros: x, y e inclinação
  2. Ela usa a fórmula b = y - mx para calcular a interceptação y
  3. Na função main(), usamos a inclinação calculada anteriormente e um ponto para encontrar a interceptação y
  4. A interceptação y representa onde a reta cruza o eixo y quando x = 0

O cálculo mostra que, para os pontos fornecidos, a reta tem uma inclinação de 1,33 e uma interceptação y de 0,33.

Imprimir a Equação da Reta y = mx + b

Neste passo, você aprenderá a imprimir a equação completa da reta usando a inclinação e a interceptação y calculadas nos passos anteriores. Modificaremos o programa C existente para exibir a equação da reta na forma padrão y = mx + b.

Continue trabalhando no mesmo diretório do projeto:

cd ~/project
nano line_equation_final.c

Escreva o seguinte código C para imprimir a equação da reta:

#include <stdio.h>

float calculate_slope(float x1, float y1, float x2, float y2) {
    if (x2 - x1 == 0) {
        printf("Inclinação indefinida (linha vertical)\n");
        return 0;
    }
    return (y2 - y1) / (x2 - x1);
}

float calculate_intercept(float x, float y, float slope) {
    return y - (slope * x);
}

void print_line_equation(float slope, float intercept) {
    printf("Equação da Reta: y = ");

    // Imprime o coeficiente da inclinação
    if (slope == 1) {
        printf("x");
    } else if (slope == -1) {
        printf("-x");
    } else if (slope != 0) {
        printf("%.2fx", slope);
    }

    // Imprime a interceptação
    if (intercept > 0) {
        printf(" + %.2f", intercept);
    } else if (intercept < 0) {
        printf(" - %.2f", -intercept);
    }

    printf("\n");
}

int main() {
    float x1 = 2.0, y1 = 3.0;  // Primeiro ponto
    float x2 = 5.0, y2 = 7.0;  // Segundo ponto

    float slope = calculate_slope(x1, y1, x2, y2);
    float intercept = calculate_intercept(x1, y1, slope);

    printf("Ponto 1: (%.1f, %.1f)\n", x1, y1);
    printf("Ponto 2: (%.1f, %.1f)\n", x2, y2);
    printf("Inclinação: %.2f\n", slope);
    printf("Interceptação y: %.2f\n", intercept);

    print_line_equation(slope, intercept);

    return 0;
}

Compile e execute o programa:

gcc line_equation_final.c -o line_equation_final
./line_equation_final

Saída de exemplo:

Ponto 1: (2.0, 3.0)
Ponto 2: (5.0, 7.0)
Inclinação: 1.33
Interceptação y: 0.33
Equação da Reta: y = 1.33x + 0.33

Vamos analisar o novo código:

  1. A função print_line_equation() lida com diferentes casos de inclinação e interceptação.
  2. Ela lida com casos especiais, como inclinação igual a 1, -1 ou 0.
  3. Formata a equação com sinais corretos para a interceptação.
  4. A função fornece uma representação limpa e legível da equação da reta.

O código demonstra como converter informações de ponto e inclinação em uma forma padrão de equação linear.

Resumo

Neste laboratório, você aprendeu inicialmente como calcular a inclinação entre dois pontos usando a fórmula (y2 - y1) / (x2 - x1). Isso representa a inclinação da reta. Em seguida, aprendeu a calcular a interceptação y da reta usando a inclinação e um ponto conhecido, reorganizando a equação y = mx + b para resolver b. Finalmente, combinou a inclinação e a interceptação para imprimir a equação completa da reta na forma y = mx + b.