Crie um programa(código) na linguagem scilab para resolver a questão a seguir: Escreva uma funçāo que receba como parâmetros as coordenadas x e y de três pontos ( x1, y1, x2, y2 e x3, y3) e retorne duas informaçōes. A primeira deve ser um valor böoleano dizendo se é possível formar um retângulo conforme a figura abaixo, ou seja, verdadeiro se o ponto P1 estiver no canto inferior esquerdo e o ponto P2 deve estar no canto superior direito e falso no caso contrário. Caso seja possível formar o retângulo, o segundo valor de retorno deve ser um booleano informando se o terceiro ponto, P3, está interno (verdadeiro) ou externo (falso) ao retângulo. Caso não seja possível formar o retângulo, o segundo booleano deve retornar falso.

Passo 1

Beleza, vamos lá! Você tem um exercício que envolve programação na linguagem Scilab e geometria. O objetivo é criar uma função que recebe as coordenadas de três pontos no plano e determina duas coisas:
  1. Se é possível formar um retângulo com o primeiro ponto no canto inferior esquerdo e o segundo ponto no canto superior direito.
  2. Se o terceiro ponto está dentro desse retângulo, caso ele possa ser formado.
Para resolver isso, vamos precisar entender coordenadas no plano cartesiano, condições para formar um retângulo alinhado com os eixos e como verificar se um ponto está dentro de um retângulo.

Passo 2

Primeiro, vamos entender as coordenadas dos pontos. Cada ponto é definido por dois valores: x (horizontal) e y (vertical). No plano cartesiano, o ponto P1(x₁, y₁) está no canto inferior esquerdo e o ponto P2(x₂, y₂) no canto superior direito do retângulo que queremos formar.
Para formar um retângulo alinhado com os eixos, precisamos que:
  • x₂ > x₁ (o segundo ponto está à direita do primeiro)
  • y₂ > y₁ (o segundo ponto está acima do primeiro)
Se essas condições não forem atendidas, não conseguimos formar o retângulo conforme solicitado, e a função deve retornar falso para a primeira informação.

Passo 3

Agora, supondo que as condições acima sejam verdadeiras e conseguimos formar o retângulo, precisamos verificar se o terceiro ponto P3(x₃, y₃) está dentro desse retângulo.
Um ponto está dentro de um retângulo se:
  • Sua coordenada x está entre x₁ e x₂
  • Sua coordenada y está entre y₁ e y₂
Caso ambas as condições sejam atendidas, o ponto está interno; caso contrário, está externo.

Passo 4

Vamos traduzir isso para uma função em Scilab. A função vai receber seis parâmetros: x₁, y₁, x₂, y₂, x₃, y₃. Ela vai retornar dois valores booleanos:
  1. isRectangle: verdadeiro se as condições para formar o retângulo forem atendidas, falso caso contrário.
  2. isInternal: verdadeiro se o terceiro ponto estiver dentro do retângulo, falso caso contrário. Se não for possível formar o retângulo, este valor também será falso.

Passo 5

Vamos implementar isso passo a passo no Scilab:
  1. Verificar se x₂ > x₁ e y₂ > y₁ para determinar se podemos formar o retângulo.
  2. Se for possível, verificar se x₁ ≤ x₃ ≤ x₂ e y₁ ≤ y₃ ≤ y₂ para determinar se o ponto P3 está interno.
  3. Retornar os dois valores booleanos conforme os resultados dessas verificações.

Resposta

Aqui está o código em Scilab que realiza o que foi descrito:
function [isRectangle, isInternal] = verificarRetangulo(x1, y1, x2, y2, x3, y3)
    // Inicializa os valores de retorno
    isRectangle = %f;
    isInternal = %f;
    
    // Verifica se é possível formar o retângulo
    if (x2 > x1) & (y2 > y1) then
        isRectangle = %t;
        // Verifica se o ponto P3 está dentro do retângulo
        if (x3 >= x1) & (x3 <= x2) & (y3 >= y1) & (y3 <= y2) then
            isInternal = %t;
        else
            isInternal = %f;
        end
    else
        // Se não for possível formar o retângulo, isInternal é falso
        isInternal = %f;
    end
endfunction
Explicação do Código:
  • A função verificarRetangulo recebe seis parâmetros correspondentes às coordenadas dos três pontos.
  • Inicialmente, isRectangle e isInternal são definidos como falso (%f).
  • A primeira condição if (x2 > x1) & (y2 > y1) verifica se o retângulo pode ser formado com P1 no canto inferior esquerdo e P2 no canto superior direito.
  • Se for possível, isRectangle é definido como verdadeiro (%t), e uma segunda verificação é feita para determinar se P3 está dentro do retângulo.
  • A segunda condição if (x3 >= x1) & (x3 <= x2) & (y3 >= y1) & (y3 <= y2) verifica se o ponto P3 está dentro dos limites do retângulo.
  • Dependendo do resultado, isInternal é definido como verdadeiro ou falso.
  • Se o retângulo não puder ser formado, isInternal permanece falso.
Como Usar a Função:
Para usar essa função, você pode chamar da seguinte forma no Scilab:
[xRet, xInt] = verificarRetangulo(1, 1, 5, 5, 3, 3);
disp(xRet); // Deve mostrar %T
disp(xInt); // Deve mostrar %T
Isso verificará se é possível formar um retângulo com P1(1,1) e P2(5,5) e se P3(3,3) está dentro desse retângulo.

Exercícios relacionados