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 + ")"); } } }