Outros Exercícios

Exercícios propostos no laboratório:

1. (em 11/04/2008) Receba do usuário dois pontos do plano cartesiano. Estes pontos devem representar os vértices superior esquerdo e inferior direito de um retângulo paralelo aos eixos x e y.
Primeiramente informe se estes pontos podem constituir um retângulo, ou seja:
- se é um retângulo
- se é uma reta horizontal
- se é uma reta vertical
- se é um ponto

Depois, calcule e exiba área deste retângulo.
Em seguida, receba outro ponto e exiba a posição dele em relação ao retângulo.
Uma das 10 seguintes situações é possível:
- acima e à esquerda
- acima
- acima e à direita
- embaixo e à esquerda
- embaixo
- embaixo e à direita
- à esquerda
- à direita
- dentro do retângulo
- na linha do retângulo


Escreva aqui sua solução:

Dica: para colocar o seu código clique no botão 'code block wizard' escolha 'Java' e 'insert code'. Agora é só copiar e colar o programa do eclipse para a linha 'insert the code here'. Ou então, simplesmente coloque o seu código entre [[code type="Java"]] ... [[/code]]

Resolvido por Gustavo Sperandio e Howard Roatti

package outro_exercicio;
 
import java.util.Scanner;
 
public class Principal {
 
    public static void main(String[] args) {
        int x, y, xa, ya, xb, yb, superiorx, inferiorx, superiory, inferiory, base, altura, area;
 
        System.out.println("Por favor informe o primeiro valor de x");
        System.out.print("x: ");
        xa = new Scanner(System.in).nextInt();
 
        System.out.println("Por favor informe o primeiro valor de y");
        System.out.print("y: ");
        ya = new Scanner(System.in).nextInt();
 
        System.out.println("Por favor informe o segundo valor de x");
        System.out.print("x: ");
        xb = new Scanner(System.in).nextInt();
 
        System.out.println("Por favor informe o segundo valor de y");
        System.out.print("y: ");
        yb = new Scanner(System.in).nextInt();
 
        if ( ( xa == xb ) &&  ( ya == yb ) )
            System.out.println("As coordenadas formam um ponto");
        else if ((xa != xb)&& (ya == yb))
            System.out.println("As coordenadas formam uma reta horizontal");
        else if ((ya != yb) && (xa == xb))
            System.out.println("As coordenadas formam uma reta vertical");
        else{
            System.out.println("As coordenadas formam um retangulo");
 
            if (ya > yb){
                superiory = ya;
                inferiory = yb;
            } else{
                superiory = yb;
                inferiory = ya;
            }
 
            if (xa > xb){
                superiorx = xa;
                inferiorx = xb;
            } else{
                superiorx = xb;
                inferiorx = xa;
            }
            base = superiorx - inferiorx;
            altura = superiory - inferiory;
            area = base * altura;
 
            System.out.println("A área do retângulo é: "+ area);
 
            System.out.println("Agora informe um terceiro ponto");
            System.out.print("x: ");
            x = new Scanner(System.in).nextInt();
            System.out.print("y: ");
            y = new Scanner(System.in).nextInt();
 
            if ( ( y > inferiory ) && ( y > superiory)){
                if ((x>inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está na parte superior central do retângulo");
                else if ((x>inferiorx)&&(x>superiorx))
                    System.out.println("O ponto informado está na parte superior a direita do retângulo");
                else if ((x<inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está na parte superior a esquerda do retângulo");
                else if ((x==inferiorx)&&(x!=superiorx))
                    System.out.println("O ponto informado está na mesma linha vertical a esquerda do retângulo");
                else 
                    System.out.println("O ponto informado está na mesma linha vertical a direita do retângulo");
            } 
            else if ( ( y > inferiory ) && ( y < superiory)){
                if ((x>inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está no centro do retângulo");
                else if ((x>inferiorx)&&(x>superiorx))
                    System.out.println("O ponto informado está do lado direito do retângulo");
                else if ((x<inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está do lado esquerdo do retângulo");
                else if ((x==inferiorx)&&(x!=superiorx))
                    System.out.println("O ponto informado está na mesma linha vertical a esquerda do retângulo");
                else 
                    System.out.println("O ponto informado está na mesma linha vertical a direita do retângulo");
            }
            else if ( ( y < inferiory ) && ( y < superiory)){
                if ((x>inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está na parte inferior central do retângulo");
                else if ((x>inferiorx)&&(x>superiorx))
                    System.out.println("O ponto informado está na parte inferior a direita do retângulo");
                else if ((x<inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está na parte inferior a esquerda do retângulo");
                else if ((x==inferiorx)&&(x!=superiorx))
                    System.out.println("O ponto informado está na mesma linha vertical a esquerda do retângulo");
                else 
                    System.out.println("O ponto informado está na mesma linha vertical a direita do retângulo");
            }
            else if ((y == inferiory)&&(y != superiory)){
                if ((x>inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está entre os pontos inferiores do retângulo");
                else if ((x>inferiorx)&&(x>superiorx))
                    System.out.println("O ponto informado está na mesma linha inferior(horizontal) do retângulo lado direito");
                else if ((x<inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está na mesma linha inferior(horizontal) do retângulo lado esquerdo");
                else if ((x==inferiorx)&&(x!=superiorx))
                    System.out.println("O ponto informado está no ponto esquerdo inferior(horizontal) do retângulo");
                else 
                    System.out.println("O ponto informado está no ponto direito inferior(horizontal) do retângulo");
            } else {
                if ((x>inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está entre os pontos superiores do retângulo");
                else if ((x>inferiorx)&&(x>superiorx))
                    System.out.println("O ponto informado está na mesma linha superior(horizontal) do retângulo lado direito");
                else if ((x<inferiorx)&&(x<superiorx))
                    System.out.println("O ponto informado está na mesma linha superior(horizontal) do retângulo lado esquerdo");
                else if ((x==inferiorx)&&(x!=superiorx))
                    System.out.println("O ponto informado está no ponto esquerdo superior(horizontal) do retângulo");
                else 
                    System.out.println("O ponto informado está no ponto direito superior(horizontal) do retângulo");
            }
        }
    }
 
}

Resolvido por Fabíola Keffer e Marco Aurélio

package quadrado;
 
import java.util.Scanner;
 
public class Quadrado {
 
    public static void main(String[] args) {
 
        int x1, y1, x2, y2, xp, yp, codObj, base, altura, xPtoEsq, yPtoEsq, xPtoDir, yPtoDir;
 
        System.out.println("Insira a Coordenada X do 1o ponto:");
        x1 = new Scanner(System.in).nextInt();
 
        System.out.println("Insira a Coordenada Y do 1o ponto");
        y1 = new Scanner(System.in).nextInt();
 
        System.out.println("Insira a Coordenada X do 2o ponto:");
        x2 = new Scanner(System.in).nextInt();
 
        System.out.println("Insira a Coordenada Y do 2o ponto");
        y2 = new Scanner(System.in).nextInt();
 
        if((x1 != x2) && (y1 != y2))
        {
            codObj = 1; // (RETANGULO)
            System.out.println("Objeto: Retângulo.");
        }
        else
        {
            if((x1 == x2) && (y1 == y2))
            {
                codObj = 2;// (PONTO)
                System.out.println("Objeto: Ponto.");
            }
            else
            {
                if(x1 == x2)
                {
                    codObj = 3;// (RETA VERTICAL)
                    System.out.println("Objeto: Reta Vertical");
                }
                else
                {
                    codObj = 4;// (RETA HORIZONTAL)
                    System.out.println("Objeto: Reta Horizontal");
                }
            }
        }
 
        if(codObj == 1) // Eh Retângulo?
        {
            base = Math.abs(x1 - x2);
            altura = Math.abs(y1 - y2);
            System.out.println("Altura: " + altura + " e Base: " + base);
            System.out.println("Área: " + altura*base);
 
            System.out.println("Insira a Coordenada X do 3o ponto:");
            xp = new Scanner(System.in).nextInt();
            System.out.println("Insira a Coordenada Y do 3o ponto:");
            yp = new Scanner(System.in).nextInt();
 
            if (y1 > y2)
            {
                // Ponto 1 eh o superior esquerdo
                xPtoEsq = x1;
                yPtoEsq = y1;
                xPtoDir = x2;
                yPtoDir = y2;
            }
            else
            {
                // Ponto 2 eh o superior esquerdo
                xPtoEsq = x2;
                yPtoEsq = y2;
                xPtoDir = x1;
                yPtoDir = y1;
            }
 
            // Fatia Esquerda
 
            if(xp < xPtoEsq)
            {
 
                if(yp > yPtoEsq)
                {
                    System.out.println("3o Pto está na área 1");
                }
 
                if((yp < yPtoEsq) && (yp > yPtoDir))
                {
                    System.out.println("3o Pto está na área 4");
                }
 
                if(yp < yPtoDir)
                {
                    System.out.println("3o Pto está na área 7");
                }
 
            }
 
            // Fatia Central
 
            if((xp > xPtoEsq) && (xp < xPtoDir))
            {
                if(yp > yPtoEsq)
                {
                    System.out.println("3o Pto está na área 2");
                }
 
                if((yp < yPtoEsq) && (yp > yPtoDir))
                {
                    System.out.println("3o Pto está na área 5");
                }
 
                if(yp < yPtoDir)
                {
                    System.out.println("3o Pto está na área 8");
                }
 
            }
 
            // Fatia DIieita
 
            if(xp > xPtoDir)
            {
 
                if(yp > yPtoEsq)
                {
                    System.out.println("3o Pto está na área 3");
                }
 
                if((yp < yPtoEsq) && (yp > yPtoDir))
                {
                    System.out.println("3o Pto está na área 6");
                }
 
                if(yp < yPtoDir)
                {
                    System.out.println("3o Pto está na área 9");
                }
 
            }
 
            // LINHAS !!!!
 
            if ((xp > xPtoEsq) && (xp < xPtoDir))
            {
 
                // Linha Superior
 
                if (yp == yPtoEsq)
                {
                    System.out.println("3o Pto está na Linha Superior");
 
                }
 
                // Linha Inferior
 
                if (yp == yPtoEsq)
                {
                    System.out.println("3o Pto está na Linha Inferior");
 
                }
 
            }
 
            if ((yp < yPtoEsq) && (yp > yPtoDir))
            {
 
                // Linha Esquerda
 
                if (xp == xPtoEsq)
                {
                    System.out.println("3o Pto está na Linha Esquerda");
 
                }
 
                // Linha Direita
 
                if (xp == xPtoDir)
                {
                    System.out.println("3o Pto está na Linha Direita");
 
                }
 
            }
 
            // Vértices
 
            if (xp == xPtoEsq)
            {
 
                // Superior Esquerdo
 
                if (yp == yPtoEsq)
                {
                    System.out.println("3o Pto está no Vértice Superior Esquerdo");
                }
 
                // Inferior Esquerdo
 
                if (yp == yPtoDir)
                {
                    System.out.println("3o Pto está no Vértice Inferior Esquerdo");
                }
 
            }
 
            if (xp == xPtoDir)
            {
 
                // Superior Direito
 
                if (yp == yPtoEsq)
                {
                    System.out.println("3o Pto está no Vértice Superior Direito");
                }
 
                // Inferior Direito
 
                if (yp == yPtoDir)
                {
                    System.out.println("3o Pto está no Vértice Inferior Direito");
                }
 
            }
 
            System.out.println("Ponto 3 (" + xp + "," + yp + ")");
            System.out.println("PE (" + xPtoEsq + "," + yPtoEsq + ") PD (" + xPtoDir + "," + yPtoDir + ")");
 
        }
 
    }
 
}
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License