100% encontró este documento útil (1 voto)
99 vistas20 páginas

Entregas Final Programacion

Este documento presenta 7 problemas de programación en Java relacionados con arreglos y cadenas de caracteres. Para cada problema, se describe la tarea y se proporciona un esqueleto de código para desarrollar un programa que resuelva el problema. Los problemas incluyen buscar un elemento en un arreglo, verificar si un arreglo está ordenado, contar elementos únicos, calcular la mediana, verificar si una cadena es palíndroma, determinar si dos cadenas son anagramas, y verificar si una contraseña es segura.

Cargado por

RaquelMartinez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
99 vistas20 páginas

Entregas Final Programacion

Este documento presenta 7 problemas de programación en Java relacionados con arreglos y cadenas de caracteres. Para cada problema, se describe la tarea y se proporciona un esqueleto de código para desarrollar un programa que resuelva el problema. Los problemas incluyen buscar un elemento en un arreglo, verificar si un arreglo está ordenado, contar elementos únicos, calcular la mediana, verificar si una cadena es palíndroma, determinar si dos cadenas son anagramas, y verificar si una contraseña es segura.

Cargado por

RaquelMartinez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 20

PROGRAMACION DE COMPUTADORES TALLER DE EJERCICIOS

ENTREGA FINAL

Ejercicios Para cada uno de los siguientes problemas, escriba un programa en el lenguaje java que lo
resuelva:

1. Búsqueda en arreglo Dado un arreglo de enteros x y un entero n, encuentre una posición de x en


la que se encuentre n.

public class Busqueda {

public static void main(String[] args) {


// TODO Auto-generated method stub
Scanner entrada = new
Scanner(System.in); int dim = 0, n = 0;
System.out.println("Ingrese una dimensión para el arreglo de enteros:
");
String dimension = entrada.nextLine();
dim = Integer.parseInt(dimension);

int [] arreglo = new int [dim];

for (int i = 0; i < arreglo.length; i++) {


System.out.println("Ingrese un valor para la posición " +
i); String valor = entrada.nextLine();
arreglo[i] = Integer.parseInt(valor);

}
System.out.println("\n\nIngrese el número que desea buscar en el
arreglo: ");
String numero = entrada.nextLine();
n = Integer.parseInt(numero);
encontrarPosicion(arreglo, n);
}
public static void
encontrarPosicion( int[] x, int
n) { int ban =
0;

for (int i = 0; i < x.length; i++)


{ if (x[i] == n) {
System.out.println("La posisión es " + i);
ban = 1;

}
}

if (ban == 0) {

System.out.println("El número " + n + " no se encuentra en el


arreglo.
");
}

}
2. ¿Está ordenado? Dado un arreglo de enteros x, decida si x está ordenado o no de menor a mayor.

package Ordenado;

import java.util.Scanner;

public class Ordenado {

public static void main(String[] args) {


// TODO Auto-generated method stub
Scanner entrada = new
Scanner(System.in); int dim = 0, n = 0;
System.out.println("Ingrese una dimensión para el arreglo de enteros:
");
String dimension = entrada.nextLine();
dim = Integer.parseInt(dimension);

int [] arreglo = new int [dim];


for (int i = 0; i < arreglo.length; i++) {
System.out.println("Ingrese un valor para la posición " +
i); String valor = entrada.nextLine();
arreglo[i] = Integer.parseInt(valor);
}
if (ordenado(arreglo)) {

System.out.println("El arreglo está ordenado de menor a mayor.");


} else {

System.out.println("El arreglo NO está ordenado de menor a


mayor.");
}

}
public static boolean ordenado(int[] a) {
int ban = 0;
for (int i = 0; i < a.length-1; i++) {
if (a[i] > a[i+1]) {

ban = 1;
}

if (ban == 0) {
return
true;

} else {
return false;

}
}
3. ¿Cuántos diferentes? Dado un arreglo de enteros x, cuente el número de valores diferentes en x.

public class Diferentes {

public static void main(String[] args) {


// TODO Auto-generated method stub

Scanner entrada = new Scanner(System.in);


int dim = 0, n = 0;

System.out.println("Ingrese una dimensión para el arreglo de enteros:


");

String dimension = entrada.nextLine();


dim = Integer.parseInt(dimension);

int [] arreglo = new int [dim]; for (int i = 0; i


< arreglo.length; i++) {
System.out.println("Ingrese un valor para la posición " + i);
String valor = entrada.nextLine();
arreglo[i] = Integer.parseInt(valor);

System.out.println("\nCantidad de números diferentes: " +


diferentes(arreglo));

//Validamos cuales de los numeros no esta repetidos son diferentes

//Recoremos el arreglo buscando los numeros repetidos que despues


separaremos de los que son diferentes y contar la diferencia de tamaños
public static int diferentes(int [] cadena) {

int total = cadena.length;


boolean bandera = false;
String resultado="";
int contar =-1;
for(int i=0;i< total; i++)
{ int c = cadena[i];
for(int j=i+1;j< total; j++)
{ int b = cadena[j];
if (b == c){
resultado += c + " ";
break;
}
}
}
int diferentes = 0;

String[] duplicados = resultado.split(" ");


diferentes = cadena.length - duplicados.length;
return diferentes;
}
}

4. Mediana Dado un arreglo de reales x, calcule su mediana.

public class Diferentes {

public static void main(String[] args) {


// TODO Auto-generated method stub

Scanner entrada = new Scanner(System.in);


int dim = 0, n = 0;

System.out.println("Ingrese una dimensión para el arreglo de enteros:


");

String dimension = entrada.nextLine();


dim = Integer.parseInt(dimension);

int [] arreglo = new int [dim]; for (int i = 0; i


< arreglo.length; i++) {
System.out.println("Ingrese un valor para la posición " +
i); String valor = entrada.nextLine();

arreglo[i] = Integer.parseInt(valor);

}
System.out.println("\nCantidad de números diferentes: " +
diferentes(arreglo));
}

//Validamos cuales de los numeros no esta repetidos son diferentes


//Recoremos el arreglo buscando los numeros repetidos que despues
separaremos de los que son diferentes y contar la diferencia de tamaños
public static int diferentes(int [] cadena) {

int total = cadena.length;


boolean bandera = false;
String resultado="";
int contar =-1;

for(int i=0;i< total; i++)


{ int c = cadena[i];
for(int j=i+1;j< total; j++)
{ int b = cadena[j];
if (b == c){
resultado += c + " ";
break;
}

}
}

int diferentes = 0;

String[] duplicados = resultado.split(" ");


diferentes = cadena.length - duplicados.length;
return diferentes;
}

}
}
}

5. Palíndromo Un palíndromo es una cadena que se lee de igual manera de izquierda a derecha y de
derecha a izquierda. Ejemplos de palíndromos son “sometemos”, “reconocer”, “arenera”, “anilina”
y “radar”. Escriba un método que reciba como entrada una cadena y decida si es palíndromo o no.

package Palíndromo;

import java.util.Scanner;

public class Palíndromo {

public static void main(String[] args) {

// TODO Auto-generated method stub

boolean es_Palindrome = false;


Scanner entrada = new Scanner(System.in);
String palabra;
System.out.println("Introduzca una cadena. Le diremos si es un
palíndromo.");
palabra = entrada.nextLine();

es_Palindrome = EsPalindrome(palabra);
if(es_Palindrome){

System.out.println("\n"+palabra +" es una palabra Palíndromo");


}else{

System.out.println("\n"+palabra +" no es una palabra


Palíndromo");
}

6. Anagramas Una cadena S es anagrama de T si contiene los mismos símbolos en las mismas
cantidades. Por ejemplo, algunos anagramas de “amor” son “roma”, “omar”, “ramo” y “mora”; además,
“aroma” y “nora” no son anagramas de “amor”. Escriba un método que reciba como entrada dos
cadenas S y T, y determine si S es anagrama de T.

package Anagramas;
import java.util.Arrays;
import java.util.Scanner;

public class Anagramas {

public static void main(String[] args)


{

// TODO Auto-generated method stub

boolean esAnagrama = false;

Scanner entrada = new Scanner(System.in);


String palabra1, palabra2;

System.out.println("Introduzca la primera cadena. Le diremos si es un


anagrama.");

palabra1 = entrada.nextLine();

System.out.println("Introduzca la segunda cadena para la


comparacion.");
palabra2 = entrada.nextLine();

esAnagrama = anagrama(palabra1, palabra2);

if(esAnagrama){

System.out.println(palabra1+" es un anagrama de "+palabra2);

}else{
System.out.println(palabra1+" no es un anagrama "+palabra2);
}
}

//Ordenamos una cadena de caracteres en order alfabetico


public static String ordenar(String cadena) {
char[] caracteres =
cadena.toCharArray();
Arrays.sort(caracteres);
return new String(caracteres);

public static boolean anagrama(String s, String t) {


char[] caracteres1 = s.toCharArray();
char[] caracteres2 = t.toCharArray();

String cadena1 = ordenar(s);


String cadena2 = ordenar(t);

int totalCaracteres1 =
cadena1.length(); int totalCaracteres2 =
cadena2.length();

//Retornamos false si las palabras tienen tamaños diferentes ya que asi


no cumpliria la regla
if(totalCaracteres1 != totalCaracteres2)
return false;

// Regresar resultado de la comparación


return cadena1.equals(cadena2);
}

}
7. Contraseña segura Una contraseña se considera segura si su longitud es mayor o igual a 10, tiene al
menos una letra (A-Z, a-z), tiene al menos un dígito (0-9), y tiene al menos un símbolo diferente a letras
o dígitos. Escriba un programa que reciba como entrada una cadena y decida si ésta corresponde a una
contraseña segura.

package Contraseña;

import java.util.Scanner;
public class Contraseña
{

public static void main(String[] args) {

// TODO Auto-generated method stub

// Cadenas de posibles caracteres que contendrá la contraseña


generada

String alfabeto1 = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";


String alfabeto2 = "abcdefgehijlkmnñoprstuvwxyz";
String alfabeto3 = "1234567890";
String alfabeto4 = "@#!$€&[]()/*-.";

boolean esAnagrama = false;

Scanner entrada = new Scanner(System.in);


String palabra = "";
int validacion1, validacion2, validacion3, validacion4,
total; validacion5,

System.out.println("Introduzca una posible contraseña. Le diremos si


se considera segura.");
palabra = entrada.nextLine();

int totalCaracteres = palabra.length();

validacion1 = validar(palabra, alfabeto1);


validacion2 = validar(palabra, alfabeto2);
validacion3 = validar(palabra, alfabeto3);
validacion4 = validar(palabra, alfabeto4);
validacion5 = validarLongitud(palabra);

//Tenemos las 5 validaciones para que sea una contraseña segura


cada una retorna 1 cuando se cumple
total = validacion1 + validacion2 + validacion3 + validacion4 +
validacion5;

if(total == 5){

System.out.println("Es una contraseña segura ");


}else{

System.out.println("No es una contraseña segura ");


}

}
//Validamos si la contraseña es segura
public static int validar(String cadena, String alfabeto)
{ char[] caracteres = cadena.toCharArray();

int totalCaracteres = caracteres.length;


boolean bandera = false;
int contar = 0;

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


//char c = caracteres[i];

String c = String.valueOf(caracteres[i]);
if (String.valueOf(alfabeto).contains(c))
{
contar++;
break;
}

return contar;

//Validamos si la longitud de la contraseña es segura


public static int validarLongitud(String cadena) {
char[] caracteres = cadena.toCharArray();
int totalCaracteres = caracteres.length;
int contar = 0;

if(totalCaracteres >= 10)


contar = 1;

return contar;
}
}

8. Zapatico cochinito Un grupo de hermanos se disponía a jugar fútbol cuando su mamá les ordenó
lavar los platos. Como esta tarea puede ser realizada por una sola persona, decidieron escoger al azar
uno de ellos, y así el resto podría ir a jugar. Los niños resolvieron usar el juego zapatico cochinito como
mecanismo de selección del “lavaplatos”.

package Zapatico;

import java.util.Scanner;

public class Zapatico {

public static void main(String[] args) {


// TODO Auto-generated method stub
//String[] nombres = new String[]{"Hugo", "Paco", "Luis", "Pedro",
"Juan", "Filosofo", "Pitufina", "valiente", "Tontin", "Gruñon", "Pintor",
"Bromista"}; //cadena de nombres estáticos

Scanner entrada = new Scanner(System.in);


System.out.println("Ingrese un número 'k' para el conteo: ");
String valorK = entrada.nextLine();
int k = Integer.parseInt(valorK);

System.out.println("Ingrese la cantidad de niños: ");


String dimension = entrada.nextLine();

int dim = Integer.parseInt(dimension);

String [] nombres = new String [dim];

for (int i = 0; i < nombres.length; i++) {


System.out.println("Ingrese el nombre N°" + i);

nombres[i] = entrada.nextLine();

}
int cant = nombres.length;

String[] resultado = recorridoCircular(nombres, k);


String[] resultado2;
while (cant > 2)
{ if(cant != 3)
resultado2 = recorridoCircular(salida(resultado,0), k);

else
resultado2 = salida(resultado,0);

resultado = resultado2;
cant--;
}

if (cant == 2)
{ if(k == 1){
resultado2 = salida(resultado,1);

} else {
if(k % 2 == 0)
resultado2 = salida(resultado,0);
else
resultado2 = salida(resultado,1);
for(int i = 0;i<resultado2.length;i++){
System.out.print("\nEl 'lavaplatos' es
"+resultado2[i]+". ");

}
}}

public static String[] salida(String [] arr, int toRemove)


{ int newLength = arr.length;

newLength--;

String[] result = new String[newLength];


int count = 0;
for(int i = 0; i < arr.length; i++)

{
if(i != toRemove) {
result[count] = arr[i];
count++;
}
}
return result;

private static String[] recorridoCircular(String[] array, int


startIndex) {
StringBuilder sb = new StringBuilder();
int currentIndex = startIndex;
int newLength = array.length;
String[] result = new String[newLength];

int temp = 0;
try {
do {
if (currentIndex > array.length - 1) {
currentIndex = 0;
}

result[temp]=array[currentIndex++];
temp++;
} while (currentIndex != startIndex);

}
catch(Exception e) {
System.out.println(e);
}

return result;
}

También podría gustarte