Sunteți pe pagina 1din 9

PROGRAMACION DE

COMPUTADORES
EJERCICIOS

Profesor: Alexis Rojas Cordero


EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Contenido

OBJETIVO GENERAL. ........................................................................................................ 2


OBJETIVOS ESPECIFICOS................................................................................................. 2
RANDOMICOS. .................................................................................................................... 2
CADENAS ............................................................................................................................ 5
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

OBJETIVO GENERAL.
Trabajar con funciones avanzadas del Java

OBJETIVOS ESPECIFICOS

 Manejo de funciones randómicas


 Manejo de cadenas

RANDOMICOS.

Función floor

La función ceil (en matemáticas llamada función techo) nos redondeará nuestro
número decimal hacia arriba, ejemplo:

Math.ceil(2.7) nos retornará el valor 3.0

Math.ceil(5.3) nos retornará el valor 6.0

Math.ceil(-5.3) nos retornará el valor -5.0

Math.ceil(-4.7) nos retornará el valor -4.0

La función floor (en matemáticas llamada función piso) nos redondeará nuestro
número decimal hacia abajo, ejemplo:

Math.floor(1.6) nos retornará el valor 1.0

Math.floor(6.5) nos retornará el valor 6.0


EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Math.floor(-4.2) nos retornará el valor -5.0

Math.floor(-7.6) nos retornará el valor -8.0

La función round nos redondeará al número entero más cercado, ejemplo:

Math.round(1.1) nos retornará el valor 1

Math.round(6.5) nos retornará el valor 7

Math.round(3.7) nos retornará el valor 4

Math.round(-2.6) nos retornará el valor -3

La función random.

La llamada a Math.random() devuelve un número aleatorio entre 0.0 y 1.0, excluido este
último valor, es decir, puede devolver 0.346442, 0.2344234, 0.98345,....

En muchas de nuestras aplicaciones no nos servirá este rango de valores. Por ejemplo, si
queremos simular una tirada de dado, queremos números entre 1 y 6 sin decimales. Debemos
echar unas cuentas para obtener lo deseado.

En primer lugar, miramos cuántos valores queremos. En nuestro caso del dado son 6 valores,
del 1 al 6 ambos incluido. Debemos entonces multiplicar Math.random() por 6. Si quisieramos
valores entre dos números cualquiera ambos incluídos, por ejemplo, 5 y 10, la cuenta sería
(maximo-minimimo)+1, es decir, (10-5)+1 = 6, también multiplicaríamos por 6.

Math.random()*6 // Esto da valores de 0.0 a 6.0, excluido el 6.0

Como nuestro primer valor es 1, le sumamos 1 al resultado. En el caso de que quisieramos


entre 5 y 10, habría que sumar 5, es decir, el valor mínimo.

Math.random()*6 + 1 // Esto da valores entre 1.0 y 7.0 excluido el 7.0

Finalmente, para conseguir un entero, quitamos los decimales usando la clase Math.floor()

int valorDado = Math.floor(Math.random()*6+1);


EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

En general, para conseguir un número entero entre M y N con M menor que N y ambos
incluídos, debemos usar esta fórmula

int valorEntero = Math.floor(Math.random()*(N-M+1)+M); // Valor entre M


y N, ambos incluidos.

Si no queremos un valor entero sino double, la fórmula es sin el +1

double valorAleatorio = Math.random()*(N-M)+M;

eso sí, recuerda que el valor N queda excluido y no saldrá nunca.

Ejemplo:

package ejercicios;

import java.util.Random;

public class numerosAleatorios {


public static void main(String arg[]) {
int num1 = 50;
int num2 = 120;
System.out.println("Números generados entre 0 y
20, con decimales (sin incluir el 0 y el 20)");
for (int i = 0; i < 5; i++) {
int num = generaNumeroAleatorio(num1, num2);
System.out.println(num);
}
/*
System.out.println("Números generados entre 0 y 20, con decimales (sin
incluir el 0 y el 20)");
for (int i = 0; i < 1000; i++) {
double numAleatorio = Math.random() * 20;
System.out.println(numAleatorio);
}

* println("Números generados entre 5 y 20, con decimales (sin incluir el 5


y el 20)"
* ); for (int i=0;i<1000;i++){ double numAleatorio=Math.random()*(20-5)+5;
* System.out.println(numAleatorio); }
*
* System.out.
* println("Números generados entre 50 y 120, sin decimales (sin incluir el
50 y el 120)"
* ); for (int i=0;i<1000;i++){ int
* numAleatorio=(int)Math.floor(Math.random()*(num1-num2)+num2);
* System.out.println(numAleatorio); }
*
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

* System.out.
* println("Números generados entre 50 y 120, sin decimales (incluyendo el
50 y el 120)"
* ); for (int i=0;i<1000;i++){ int
* numAleatorio=(int)Math.floor(Math.random()*(num1-(num2+1))+(num2));
* System.out.println(numAleatorio); }
*/

// desarrollando el metodo

public static int generaNumeroAleatorio(int minimo, int maximo) {

int num = (int) Math.floor(Math.random() * (maximo - minimo +


1) + (minimo));
return num;
}
}

CADENAS

length ()  Devuelve el número de caracteres en esta cadena.


charAt (índice)  Devuelve el carácter en el índice especificado de esta cadena.
concat (s1)  Devuelve una nueva cadena que concatena esta cadena con la
cadena s1.
toUpperCase ()  Devuelve una nueva cadena con todas las letras en
mayúsculas.
toLowerCase ()  Devuelve una nueva cadena con todas las letras en
minúsculas
trim ()  Devuelve una nueva cadena con caracteres de espacio en blanco
recortados en ambos lados.

El método s.charAt (índice) se puede utilizar para recuperar un carácter


específico en una cadena s, donde el índice está entre 0 y s.length () - 1. Por
ejemplo, message.charAt (0) devuelve el carácter W, como se muestra en la
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Figura 1. Tenga en cuenta que el índice para el primer carácter de la cadena es


0.

Figura 1.

Concatenación de cadenas

Puede utilizar el método concat para concatenar dos cadenas. La declaración que se
muestra a continuación, por ejemplo, concatena las cadenas s1 y s2 en s3:

Cadena s3 = s1.concat (s2);

Debido a que la concatenación de cadenas se usa mucho en la programación, Java


proporciona una manera conveniente de lograrlo. Puede usar el operador más (+)
para concatenar dos cadenas, por lo que la declaración anterior es equivalente a:

Cadena s3 = s1 + s2;

El siguiente código combina el mensaje de cadenas "y" y "HTML" en una cadena:

String myString = message + "y" + "HTML";

Recuerde que el operador + también puede concatenar un número con una cadena.
En este caso, el número se convierte en una cadena y luego se concatena. Tenga en
cuenta que al menos uno de los operandos debe ser una cadena para que la
concatenación tenga lugar.

Lectura de cadenas por consola.

Se hace con next().


EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

Ejemplo:

Scanner input = new Scanner(System.in);


System.out.print("Enter three words separated by spaces: ");
String s1 = input.next();
String s2 = input.next();
String s3 = input.next();
System.out.println("s1 is " + s1);
System.out.println("s2 is " + s2);
System.out.println("s3 is " + s3);

LECTURA DE CARACTERES POR CONSOLA

Para leer un carácter desde la consola, use el método nextLine() para leer una cadena
y luego invoque el método charAt (0) en la cadena

Scanner input = new Scanner(System.in);


System.out.print("Enter a character: ");
String s = input.nextLine();
char ch = s.charAt(0);
System.out.println("The character entered is " + ch);

Comparando cadenas

equals(s1)  Devuelve verdadero si esta cadena es igual a la cadena s1.

compareTo s1)  Devuelve un número entero mayor que 0, igual a 0 o menor que 0
para indicar si esta cadena es mayor, igual o menor que s1.

compareToIgnoreCase(s1)  Igual que compareTo, excepto que la comparación no


distingue entre mayúsculas y minúsculas.

startsWith(prefijo)  Devuelve verdadero si esta cadena comienza con el prefijo


especificado.
endsWith(sufijo)  Devuelve verdadero si esta cadena termina con el sufijo
especificado.
contains(s1)  Devuelve verdadero si s1 es una subcadena contenida en esta
cadena.
EJERCICIOS DE PROGRAMACION CON GRUPO: A y B
METODOS, RANDOMICOS Y CADENAS

package ejercicios;

import java.util.Scanner;

public class Cadenas {

public static void main(String[] args) {


Scanner input = new Scanner(System.in);

// Prompt the user to enter two cities


System.out.print("Entre la primera ciudad: ");
String city1 = input.nextLine();
System.out.print("Entre la segunda ciudad: ");
String city2 = input.nextLine();

if (city1.compareTo(city2) < 0)
System.out.println("las ciuddades en orden
alfabetico son: " + city1 + " " + city2);
else
System.out.println("Las ciudades ordanadas
son " + city2 + " " + city1);
}
}

ARMADO, DESARMADO Y BUSQUEDA EN CADENAS

S-ar putea să vă placă și