Practicas java gustavo carbajal macias 402

42
Nombre: Gustavo Carbajal Macías Manual de prácticas de java Grupo: 402 Nl:2

Transcript of Practicas java gustavo carbajal macias 402

Page 2: Practicas java gustavo carbajal macias 402

Figuras RectangularesDescripciónTenemos un conjunto de cuadrados y rectángulos cuyos medidas de sus diferentes lados son cantidades enteras y mayores a 1 y , si tenemos el área de la figura, es posible que sea un cuadrado o un rectángulo.ProblemaConstruye un programa que nos ayude a resolver este problema (dada el área de una figura determinar si es cuadrado o rectángulo), la lectura la debes hacer de la entrada estándar (teclado) y la escritura se debe hacer a la salida estándar (pantalla).EntradaLa primera línea contendrá un número "N" entre 1 y 1,000,000,000, representando el área.SalidaUna sola línea indicando la figura que se puede formar, si el área puede formar un cuadrado debes imprimir la palabra “cuadrado” si el área puede formar un rectángulo, debes imprimir la palabra “rectangulo” y si el área puede formar ambos debe imprimir la palabra “ambos” (note no hay acentos ni mayusculas), en caso de que no se pueda formar un cuadrado o rectángulo escriba "ninguno"EjemplosEntrada Salida9cuadrado6rectangulo36ambos

ConsideracionesTu programa se ejecutara con varios casos de prueba.

Page 3: Practicas java gustavo carbajal macias 402

TipsÁrea de un cuadrado = lado * ladoÁrea de un rectángulo= (base * altura )¿Hasta que valor con respecto a “N” debo probar ?Observa que solo debes probar desde 2 hasta raíz de "N", si un número es divisible entre 2 significa que también es divisible entre N/2 por tanto si probamos con el numero 2, estamos al mismo tiempo probando con el numero N/2.

Solucion

import java.util.*;

public class figuras{

public static void main (String [] args){

Scanner in=new Scanner (System.in);

int contador=0;

int n=in.nextInt();

int raiz=(int)Math.sqrt(n);

for(int i=2; i<n; i++){

if(n!=0){

System.out.println("n:"+n+"i"+i);

contador++;

}

}

if((raiz*raiz)==n && contador>=2){

System.out.println("ambos");

}

if((raiz*raiz)==n && contador>=2){

System.out.println("ambos");

Page 4: Practicas java gustavo carbajal macias 402

}

if((raiz*raiz)==n && contador>=2){

System.out.println("ambos");

}

}

}

OrdenandoProblemaDada una lista de números enteros hay que determinar si la lista esta ordenada de menor a mayor, de mayor a menor o sencillamente no está ordenada.EntradaEn la primera línea un valor “n” indicando la cantidad de valores que conforma la lista, donde 3<=n<=1000, en la segunda línea los “n” números separados por un espacio, cada número está en el rango de 1 a 1,000,000,000.SalidaUna sola línea con 3 posibles valores, si la lista está ordenada de menor a mayor debes escribir la palabra “CRECIENTE” si la lista esta ordenada de mayor a menor debes escribir la palabra “DECRECIENTE” y si la lista no esta ordenada debes escribir la frase “NO ORDENADA”. Te aseguramos que no existe un caso con posibilidad de empate (que pueda ser creciente y decreciente).ConsideracionesTu programa se evaluará con varios casos de prueba.EjemplosEntradaSalida Descripción510 20 30 40 40CRECIENTECase #1:33 2 2DECRECIENTECase #2:41 10 10 5NO ORDENADACase #3:

Solucion

import java.util.*;

public class ordenado{

Page 5: Practicas java gustavo carbajal macias 402

public static void main(String [] args){

Scanner in=new Scanner (System.in);

int n=in.nextInt();

int [] numeros=new int [n];

for (int i=0; i<n; i++){

numeros[i]=in.nextInt();

}

ImprimeArray(numeros, n);

checarOrden(numeros, n;

}

public static void ImprimeArray(int [] n, int num ){

for (int i=0; i<num; i++) {

System.out.println("N-> "+n[i]);

}

}

public static void checarOrden(int [] n, int num){

int c=0, d=0;

for(int i=1; i<num; i++){

if(n[i-1]>=n[i]){

c++;

}

else if(n[i-1]>=n[i]){

Page 6: Practicas java gustavo carbajal macias 402

d++;

}

}

if(c==(num-1)){System.out.println("creciente");}

else if (d==(num-1)){System.out.println("decreciente");}

else {System.out.println("no ordenado");}

}

}

SumandoProblemaSe tiene un matriz cuadrada de tamaño “n” y se requiere saber cuánto suma cada columna.

EntradaEn el primer renglón un valor “n” indicando el tamaño de la matriz donde 1<=n<=1000 y en los siguientes “n” renglones habrán “n” valores correspondientes los valores de cada renglón de la matriz donde 1<=V<= 1000.

SalidaUn renglón con “n” cantidades, cada cantidad representa la sumatoria de cada columna de la matriz, el primer valor corresponde a la columna 1, el segundo a la columna 2 ,... y el último valor corresponde a la columna “n”.

ConsideracionesTu programa se evaluará con varios casos de prueba.

EjemplosEntradaSalida Descripción31 2 33 5 67 8 911 15 18Case #1:43 2 4 32 3 3 27 8 5 31 1 1 113 14 13 9

Page 7: Practicas java gustavo carbajal macias 402

Case #2:

Solucion

import java.util.*;

public class sumando{

public static void main (String [] args){

Scanner ui=new Scanner (System.in);

int n=ui.nextInt();

int numero [][] = new int [n][n];

int suma [] = new int [n];

for(int i=0; i<n; i++){

for(int k=0; k<n; k++){

numero [i][k]=ui.nextInt();

suma [i]=0;

}

}

Imprimir (numero, n);

ObtenerSuma(numero,n,suma);

ImprimirSuma(suma, n);

}

public static void Imprimir(int [][] numero, int n){

for(int i=0; i<n; i++){

for(int k=0; k<n; k++){

Page 8: Practicas java gustavo carbajal macias 402

System.out.println("numero["+(i+1)+"]["+(k+1)+"]=>"+numero [i][k]+" ");

}

System.out.println("");

}

}

public static void ObtenerSuma (int [][] numero, int n, int [] suma){

for(int i=0; i<n; i++){

for(int k=0; k<n; k++){

suma [k]=numero [i][k];

}

}

}

public static void ImprimirSuma(int [] suma, int n){

for(int i=0; i<n; i++){

System.out.println(""+suma [i]+"");

}

}

}

CuadradoDescripción.A continuación te mostramos un giro de 90 grados a la derecha de una matriz de 2 por 2 cuyos valores son:

Page 9: Practicas java gustavo carbajal macias 402

Matriz original 1 2 3 4Matriz Girada 90° a la derecha 3 1 4 2

ProblemaDada una matriz cuadrada de tamaño “n” , debes hacer que tu programa la gire 90 grados a la derecha.

EntradaEn la primera línea el valor “n” indicando el tamaño de la matriz donde 1<=n<=1000, en los siguientes “n” renglones habrán “n” valores de la matriz separados por un espacio.

Salida“n” renglones cada renglón con "n" valores mostrando la matriz girada 90 grados.Consideraciones Tu programa se evaluará con varios casos de prueba

EjemploEntradaSalida Descripción21 23 43 14 2Case #1:31 2 34 5 67 8 97 4 18 5 2

Solucion

import java.util.*;public class cuadrado{

public static void main(String[]args){Scanner in=new Scanner(System.in);int j=in.nextInt();int numeros [][]=new int[j][j];for(int m=0;m<j;m++){

for(int i=0;i<j;i++){numeros[m][i]=in.nextInt();

}

}for(int i=0;i<j;i++){

for (int m=(j-1);m>=0;m--){System.out.print(numeros[m][j]+"");

} System.out.println("");

}

Page 10: Practicas java gustavo carbajal macias 402

}

}

BardeandoDescripciónSe tiene un conjunto de “n” trozos de malla ciclónica y un terreno de perímetro “P” el terreno es cuadrado.

ProblemaDebes escribir un programa que nos diga cuántos metros de malla ciclonica nos hace falta para poder bardear el terreno.

EntradaEn la primera línea dos números “P” y "n", donde "P" representa el perímetro del terreno con un rango de valores de 1<=P <= 2,000,000,000 y “n” representa la cantidad de trozos de malla ciclónica que tenemos, donde 1<=n<=100,000. En las siguientes “n” líneas es el tamaño de cada trozo de malla que tenemos. La suma de todos los trozos siempre será menor a 2147483648.

SalidaUn único valor entero indicando los metros de malla que nos hacen falta para bardear el terreno.

EjemplosEntradaSalida Descripción100 325201045Caso #1100 2100020000Caso #221 1201Caso #3

Solucionimport java.util.*;public class bardeando{ public static void main(String[] args) { Scanner in=new Scanner (System.in); int a=in.nextInt(); int c[]=new int [a];

Page 11: Practicas java gustavo carbajal macias 402

for (int i=0;i<a ;i++ ) { c[i]=in.nextInt(); int cx=c[i]; int d[]=new int [cx]; for (int k=0;k<cx ;k++ ) { int ax=k+1; d[k]=c[i]%ax; if (d[k]==0) {

Suma TripleDescripciónSe tiene la siguiente función f(n), formada por la suma de los tres números anteriores.f(1)=1f(2)=1f(3)=2f(4)=4f(5)=7f(6)=13f(7)=24f(8)=44f(9)=81Note que f(1) = 1 ya que no tiene números anteriores, f(2)=1 ya que es el único número anterior, f(3) tiene solo 2 números anteriores y a partir de f(4) se da la suma de los tres números anteriores.

ProblemaEscribe un programa que dado el valor de “n” escriba la serie correspondiente.

EntradaUn solo renglón conteniendo el valor “n”donde 1<=n<=64.

SalidaUna sola línea mostrando la serie desde el número menor hasta el mayor cada número debe estar separado por un espacio.EntradaSalida Descripción41 1 2 4Caso #161 1 2 4 7 13Caso #291 1 2 4 7 13 24 44 81Caso #3Tips Un entero 32 bits es capaz de almacenar la f(n) para n=60

import java.util.*;

public class sumando{

public static void main (String [] args){

Page 12: Practicas java gustavo carbajal macias 402

Scanner ui=new Scanner (System.in);

int n=ui.nextInt();

int numero [][] = new int [n][n];

int suma [] = new int [n];

for(int i=0; i<n; i++){

for(int k=0; k<n; k++){

numero [i][k]=ui.nextInt();

suma [i]=0;

}

}

Imprimir (numero, n);

ObtenerSuma(numero,n,suma);

ImprimirSuma(suma, n);

}

public static void Imprimir(int [][] numero, int n){

for(int i=0; i<n; i++){

for(int k=0; k<n; k++){

System.out.println("numero["+(i+1)+"]["+(k+1)+"]=>"+numero [i][k]+" ");

}

System.out.println("");

}

Page 13: Practicas java gustavo carbajal macias 402

}

public static void ObtenerSuma (int [][] numero, int n, int [] suma){

for(int i=0; i<n; i++){

for(int k=0; k<n; k++){

suma [k]=numero [i][k];

TriánguloDescripciónUn triángulo es formado por 3 segmentos (con valor entero) de recta unidos por sus extremos, sin embargo no todas las combinaciones de 3 segmentos pueden formar un triángulo.

ProblemaEscriba un programa que dados 3 números que representan 3 segmentos de rectas, diga si pueden formar un triángulo rectángulo.

EntradaEn la primera línea 3 números “a”, “b” y “c” representando las longitudes de 3 segmentos de recta en un rango de entre 1 y 32,000.

SalidaUna sola línea en donde si es posible generar un triángulo rectángulo debes imprimir la hipotenusa, el cateto mayor y el cateto menor y si no es posible formar un triángulo rectángulo imprime la palabra “imposible”.

ConsideracionesTu programa se evaluará con varios casos de prueba, para cada caso de prueba (entrada)

EjemplosEntradaSalida Descripción1 1 1imposibleCaso #13 4 55 4 3Caso #2

ConsideracionesTu programa se ejecutara con varios casos de prueba.

TipsEl teorema de Pitágoras la hipotenusa es igual a la raíz cuadrada de la suma de los cuadrados de sus catetos.¿Es necesario hacer el cálculo de la raíz cuadrada?

import java.util.*;

public class Triangulo {

Page 14: Practicas java gustavo carbajal macias 402

public static void main(String[] args) {

Scanner a=new Scanner (System.in);

int b=a.nextInt();

int y=a.nextInt();

int s=a.nextInt();

if(b>y){

if(y<s){

int u=(b*b)+(y*y);

double v=Math.sqrt(u);

System.out.println(""+v+","+b+","+y);

}

}

if(b>y){

if(y<s){

int d=(y*y)+(s*s);

double v=Math.sqrt(d);

System.out.println(""+v+","+y+","+b);

}

}

if(b>y){

if(s<y){

System.out.println("IMPOSIBLE:");

}

Page 15: Practicas java gustavo carbajal macias 402

}

if(y>b){

if(s<y){

System.out.println("IMPOSIBLE:");

}

}

RomanosDescripciónEscribe un programa que lea un entero entre 1 y 100 e imprima su equivalencia en números romanos.

EntradaUna línea con el entero a convertir.

Salidala conversión a números romanos (en mayúsculas).

EjemplosEntradaSalida Descripción48SalidaXLVIIILas equivalencias de números arábigos a romanos son:I 1V 5X 10L 50C 100EntradaSalida Descripción89SalidaLXXXIX

public static void main(String[] args) {

Scanner h=new Scanner (System.in);

int d=h.nextInt();

int c=d/10;

Page 16: Practicas java gustavo carbajal macias 402

int a=c*10;

int b=d-a;

String romano,unidades;

switch(c){

case 1:

romano="X";

break;

case 2:

romano="XX";

break;

case 3:

romano="XXX";

break;

case 4:

romano="XL";

break;

case 5:

romano="L";

break;

case 6:

romano="LX";

Page 17: Practicas java gustavo carbajal macias 402

break;

case 7:

romano="LXX";

break;

case 8:

romano="LXXX";

break;

case 9:

romano="XC";

break;

case 10:

romano="C";

break;

default:

}

int er=romano+unidades;

switch(b){

case 1:

unidades="I";

break;

case 2:

unidades="II";

break;

Page 18: Practicas java gustavo carbajal macias 402

case 3:

unidades="III";

break;

case 4:

unidades="IV";

break;

case 5:

unidades="V";

break;

case 6:

unidades="VI";

break;

case 7:

unidades="VII";

break;

case 8:

unidades="VIII";

break;

case 9:

unidades="IX";

break;

case 10:

unidades="";

Page 19: Practicas java gustavo carbajal macias 402

break;

default:

}

}

}

Tablero de AjedrezDescripciónDadas las coordenadas de una casilla en un tablero de ajedrez de 8x8, determinar el color de dicha casilla.

EntradaUna línea con la letra y dígito separados por espacios correspondientes a la coordenada de la casilla.

SalidaImprime BLANCO, NEGRO según sea el caso.

EjemplosEntradaSalida Descripcióna 1SalidaNEGROEntradaSalida Descripción c 2 Salida BLANCO

import java.util.*;

public class Ajedrez {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Page 20: Practicas java gustavo carbajal macias 402

Scanner Z=new Scanner (System.in);

String a=Z.nextLine();

int lin=Z.nextInt();

if(a.equals("a")){

if(lin==1){

System.out.println("salida negro");

}

else if(lin==3){

System.out.println("salida negro");

}

else if(lin==5){

System.out.println("salida negro");

}

else if(lin==7){

System.out.println("salida negro");

}

else{

Page 21: Practicas java gustavo carbajal macias 402

System.out.println("salida blanco");

}

}

else if(a.equals("b")){

if(lin==1){

System.out.println("salida blanco");

}

else if(lin==3){

System.out.println("salida blanco");

}

else if(lin==5){

System.out.println("salida blanco");

}

else if(lin==7){

System.out.println("salida blanco");

}

else{

Page 22: Practicas java gustavo carbajal macias 402

System.out.println("salida negro");

}

}

if(a.equals("c")){

if(lin==1){

System.out.println("salida negro");

}

else if(lin==3){

System.out.println("salida negro");

}

else if(lin==5){

System.out.println("salida negro");

}

else if(lin==7){

System.out.println("salida negro");

}

else{

Page 23: Practicas java gustavo carbajal macias 402

System.out.println("salida blanco");

}

}

else if(a.equals("d")){

if(lin==1){

System.out.println("salida blanco");

}

else if(lin==3){

System.out.println("salida blanco");

}

else if(lin==5){

System.out.println("salida blanco");

}

else if(lin==7){

System.out.println("salida blanco");

}

else{

Page 24: Practicas java gustavo carbajal macias 402

System.out.println("salida negro");

}

}

if(a.equals("e")){

if(lin==1){

System.out.println("salida negro");

}

else if(lin==3){

System.out.println("salida negro");

}

else if(lin==5){

System.out.println("salida negro");

}

else if(lin==7){

System.out.println("salida negro");

}

else{

Page 25: Practicas java gustavo carbajal macias 402

System.out.println("salida blanco");

}

}

else if(a.equals("f")){

if(lin==1){

System.out.println("salida blanco");

}

else if(lin==3){

System.out.println("salida blanco");

}

else if(lin==5){

System.out.println("salida blanco");

}

else if(lin==7){

System.out.println("salida blanco");

}

else{

Page 26: Practicas java gustavo carbajal macias 402

System.out.println("salida negro");

}

}

if(a.equals("g")){

if(lin==1){

System.out.println("salida negro");

}

else if(lin==3){

System.out.println("salida negro");

}

else if(lin==5){

System.out.println("salida negro");

}

else if(lin==7){

System.out.println("salida negro");

}

else{

Page 27: Practicas java gustavo carbajal macias 402

System.out.println("salida blanco");

}

}

else if(a.equals("h")){

if(lin==1){

System.out.println("salida blanco");

}

else if(lin==3){

System.out.println("salida blanco");

}

else if(lin==5){

System.out.println("salida blanco");

}

else if(lin==7){

System.out.println("salida blanco");

}

else{

Page 28: Practicas java gustavo carbajal macias 402

System.out.println("salida negro");

}

}

}

}

IntervaloDescripciónEscribe un programa que lea tres enteros a, b, c y determine si c se encuentra en el intervalo [a,b], a la izquierda o a la derecha de dicho intervalo.

EntradaUna línea con los enteros a,b,c separados por un espacio

SalidaImprime INTERVALO, IZQUIERDA o DERECHA según sea el caso.

EjemplosEntradaSalida Descripción3 10 6SalidaINTERVALO6 se encuentra contenido en el intervalo desde 3 hasta 10EntradaSalida Descripción4 20 30SalidaDERECHA30 está a la derecha del intervalo 4 a 20.EntradaSalida Descripción2 30 1SalidaIZQUIERDA1 está a la izquierda del intervalo 2 a 30EntradaSalida Descripción10 20 10SalidaINTERVALO

Page 29: Practicas java gustavo carbajal macias 402

import java.util.*;

public class intervalo{

public static void main(String[]args){

Scanner a=new Scanner (System.in);

int x=a.nextInt();

int y=a.nextInt();

int z=a.nextInt();

if(x>z){

if(y>z){

System.out.println("El numero "+z+" se encuentra a la izquierda del intervalo "+x+" - "+y);

}

}

if(x<z){

if(y<z){

System.out.println("El numero "+z+" se encuentra a la derecha del intervalo " +x+" - "+y);

}

}

if(x<z){

if(z<y){

System.out.println("El numero "+z+" se encuentra contenido en el intervalo "+x+" - "+y);

}

Page 30: Practicas java gustavo carbajal macias 402

}

if(x>=z){

if(z<=y){

System.out.println("Intervalo");

}

}

if(x<=z){

if(z>=y){

System.out.println("Intervalo");

}

}

}

}

SedesDescripciónAhora que estás en la preselección de Veracruz, debes prepararte mucho para ser seleccionado. Como parte de este proceso, se deben realizar algunos entrenamientos y de preferencia en varias sedes del estado, por ejemplo Coatzacoalcos, Veracruz, Xalapa, Tuxpan, etc. Puesto que a ti te gusta viajar mucho, quieres asistir a las dos sedes que estén más lejos entre sí.Suponiendo que todas las sedes se encontraran en línea recta, una tras de otra, identifica, cuál es la distancia más larga que deberías recorrer entre dos sedes.

EntradaEn la primera línea el número n, que indica la cantidad de sedes para este año. 1<=n<=100000. En las siguientes n líneas un número indicando la distancia de esa sede con respecto a tu ubicación actual entre 0<=d <=5000. Supón que tu ubicación actual es el inicio de la línea recta, por lo que todas las distancias serán positivas. Siempre te encuentras en el km 0, y en el ejemplo la primera sede está a 7 kilómetros de tu ubicación, la segunda a 5, la tercera a 13, y la cuarta a 4 kilómetros de tu ubicac

SalidaUn solo número con un salto de línea, indicando la distancia máxima que hay entre dos sedes.

Ejemplo47

Page 31: Practicas java gustavo carbajal macias 402

51349

import java.util.*;

public class sede{

public static void main(String[] args) {

Scanner in=new Scanner (System.in);

int a=in.nextInt();

int lmfao[]=new int [a];

for (int i=0;i<a ;i++ ){

lmfao[i]=in.nextInt();

}

int c=lmfao[0];

for (int i=1;i<a ;i++ ) {

if (lmfao[i]>c){

c=lmfao[i];

}

}

int q=lmfao[0];

for (int i=1;i<a ;i++ ) {

if (lmfao[i]<q){

Page 32: Practicas java gustavo carbajal macias 402

q=lmfao[i];

}

}

int x=c-q;

System.out.println(" "+x);

Par Impar

Solución

import java.util.*;

public class par{

public static void main(String[] args) {

Scanner in=new Scanner (System.in);

int a=in.nextInt();

int b[]=new int [a];

System.out.println("\n");

for (int i=0;i<a ;i++ ) {

b[i]=in.nextInt();

}

for(int j=0;j<a;j++){

int c=b[j]%2;

Page 33: Practicas java gustavo carbajal macias 402

if (b[j]==0) {

System.out.println("CERO");

}

else if (c==0) {

if (b[j]<0){

System.out.println("PAR NEGATIVO");

}

else{

System.out.println("PAR POSITIVO");

}

}

else{

if (b[j]<0) {

System.out.println("IMPAR NEGATIVO");

}

else{

System.out.println("IMPAR POSITIVO");

}

}

}

}

Page 34: Practicas java gustavo carbajal macias 402

}

Dados

Solución

import java.util.*;

public class dados{

public static void main(String[] args) {

Scanner in=new Scanner (System.in);

int a=in.nextInt();

int c[]=new int [a];

int ar[]=new int [a];

int mayor;

for (int i=0;i<a ;i++ ){

ar[i]=in.nextInt();

}

for (int m=1;m<a ;m++ ) {

for (int z=0;z<a ;z++ ) {

if(ar[m]<ar[z]){

mayor=ar[z];

ar[z]=ar[m];

ar[m]=mayor;

}

Page 35: Practicas java gustavo carbajal macias 402

}

}

int q=ar[0]+ar[1];

int qx=ar[a-1]+ar[a-2];

System.out.println(" El numero menor es= " + q + " El numero Mayor es= "+qx);

}

}

Bisiesto

import java.util.*;

public class a{

public static void main (String []args){

Scanner abc=new Scanner(System.in);

int a=abc.nextInt();

int c=0;

int arreintglo []=new int[a];

for ( b=0;b<a ;b++ ) {

arreglo[b]=abc.nextInt();

}

for (int b=0;b<a ;b++ ) {

c=arreglo[b];

if((c%4)==0 & (c%100)==0 & (c%400)==0){

Page 36: Practicas java gustavo carbajal macias 402

System.out.println("S");

}

else if((c%4)==0){

System.out.println("S");

}

else if((c%4)>0 ){

System.out.println("n");

}