馃摍 Funciones y Procedimientos - Java#
Tabla de Contenido#
1 - Instalar Java
2 - Ejemplos procedimientos
3 - Ejemplos funciones
4 - Ejercicios
Instalar Java#
Descargar el kernel
Ejecuta la siguiente celda. No la modifiques!
%%sh
wget -q https://github.com/SpencerPark/IJava/releases/download/v1.3.0/ijava-1.3.0.zip
unzip -q ijava-1.3.0.zip
python install.py
wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1
python install_ipc_proxy_kernel.py --kernel=java --implementation=ipc_proxy_kernel.py
Installed java kernel into "/usr/local/share/jupyter/kernels/java"
e2732061ad19c1afa4a33a58cb8f18a9-b6cff2bf09b6832344e576ea1e4731f0fb3df10c/install_ipc_proxy_kernel.py
e2732061ad19c1afa4a33a58cb8f18a9-b6cff2bf09b6832344e576ea1e4731f0fb3df10c/ipc_proxy_kernel.py
Moving java kernel from /usr/local/share/jupyter/kernels/java...
Wrote modified kernel.json for java_tcp in /usr/local/share/jupyter/kernels/java_tcp/kernel.json
Installing the proxy kernel in place of java in /usr/local/share/jupyter/kernels/java
Installed proxy kernelspec: {"argv": ["/usr/bin/python3", "/usr/local/share/jupyter/kernels/java/ipc_proxy_kernel.py", "{connection_file}", "--kernel=java_tcp"], "env": {}, "display_name": "Java", "language": "java", "interrupt_mode": "message", "metadata": {}}
Proxy kernel installed. Go to 'Runtime > Change runtime type' and select 'java'
/content/install.py:164: DeprecationWarning: replace is ignored. Installing a kernelspec always replaces an existing installation
install_dest = KernelSpecManager().install_kernel_spec(
Instrucciones para activar el kernel
Dirigite a Entorno de ejecuci贸n > Cambiar tipo de entorno de ejecuci贸n > Elige la opci贸n Java > Da click en Guardar
Importar Librerias#
// Libreria para usar potencia y otras funciones matem谩ticas
import java.lang.Math;
// Libreria para usar el objeto Scanner (leer variables)
import java.util.Scanner;
// Libreria para obtener fecha actual
import java.util.Date;
Ejemplos Procedimientos#
Recordemos que un procediemiento es una funci贸n que no retorna un valor (se debe utilizar la palabra reservada void).
Ejemplo 1.
Imprimir un Hola Mundo con un procedimiento
void miFuncion() {
System.out.println("Hola Mundo, desde una funci贸n!");
}
miFuncion();
Hola Mundo, desde una funci贸n!
Ejemplo 2.
Imprimir la fecha actual con un procedimiento.
public static void fechaActual(){
Date fecha = new Date();
System.out.println(fecha);
}
fechaActual();
Thu Oct 12 03:52:06 UTC 2023
Ejemplo 3
Crea un procedimiento que me diga si un numero ingresado es par o impar.
void esPar(int numero){
if (numero % 2 == 0){
System.out.println("El numero " + numero + " es par.");
} else {
System.out.println("El numero " + numero + " es impar.");
}
}
esPar(5);
esPar(120);
esPar(21);
El numero 5 es impar.
El numero 120 es par.
El numero 21 es impar.
Ejemplo 4
Realizar un procedimiento que me convierta una frase ingresada por el usuario a mayusculas y que imprima en pantalla.
public static void convertirMayuscula(String frase){
String fraseMayus = frase.toUpperCase();
System.out.println(fraseMayus);
}
Scanner scn = new Scanner(System.in);
System.out.println("Ingrese una frase: ");
String frase = scn.nextLine();
convertirMayuscula(frase);
Ingrese una frase:
Hola mundo desde Java
HOLA MUNDO DESDE JAVA
Modificaci贸n del ejemplo anterior. Ahora se debe preguntar cuantas frases desea convertir a mayusculas (se debe ingresar cada frase).
public static void convertirMayuscula(String frase){
String fraseMayus = frase.toUpperCase();
System.out.println(fraseMayus);
}
Scanner scn_iter = new Scanner(System.in);
System.out.print("Ingrese el numero de oraciones que desea convertir: ");
int iter = scn_iter.nextInt();
for (int i=1; i<=iter; i++){
Scanner scn = new Scanner(System.in);
System.out.println("Ingrese la frase " + i + ": ");
String frase = scn.nextLine();
convertirMayuscula(frase);
}
Ingrese el numero de oraciones que desea convertir: 2
Ingrese la frase 1:
Algun texto de prueba 1
ALGUN TEXTO DE PRUEBA 1
Ingrese la frase 2:
Another text with some words
ANOTHER TEXT WITH SOME WORDS
Ejemplos Funciones#
Recordemos que las funciones retornan uno o m谩s valores (se utiliza la palabra reservada return).
Ejemplo 1.
Implemente la siguiente formula (sumatoria). Donde \(n\) debe ingresarlo el usuario.
La sumatoria se define de la siguiente manera:
// Funci贸n sumatoria con parametro n
public static double sumatoria(int n){
int contN = 1;
double sum = 0;
while (contN <= n){
sum += (double) (contN * (contN + 1))/2;
contN++;
}
return sum;
}
// Ingresar el termino n
Scanner input = new Scanner(System.in);
System.out.print("Ingrese n: ");
int n = input.nextInt();
// Llamar la funci贸n sumatoria e ingresar el argumento
double sumatoria1 = sumatoria(n);
System.out.println("El resultado de la sumatoria es: " + sumatoria1);
// Otros valores
double sumatoria2 = sumatoria(34);
System.out.println("El resultado de la sumatoria con n=34 es: " + sumatoria2);
double sumatoria3 = sumatoria(60);
System.out.println("El resultado de la sumatoria con n=60 es: " + sumatoria3);
Ingrese n: 15
El resultado de la sumatoria es: 680.0
El resultado de la sumatoria con n=34 es: 7140.0
El resultado de la sumatoria con n=60 es: 37820.0
Ejemplo 2.
Implemente la siguiente f贸rmula matem谩tica (productorio). Donde \(n\) debe ingresarlo el usuario.
La productoria o productorio se define de la siguiente manera:
public static double productorio(int n){
int contN = 1;
double prod = 1;
while (contN <= n){
prod *= (double) (contN + 1)/(2 * contN);
contN++;
}
return prod;
}
// Ingresar termino n
Scanner input = new Scanner(System.in);
System.out.print("Ingrese n: ");
int n = input.nextInt();
// Llamar la funci贸n productorio e ingresar el argumento
double product = productorio(n);
System.out.println("El resultado del productorio es: " + product);
Ingrese n: 5
El resultado del productorio es: 0.1875
Ejemplo 3
Realice una funci贸n calculadora. El usuario debe ingresar dos numeros y un operaci贸n a realizar entre ellos.
public static double calculadora(double num1, double num2, String operacion){
double resultado = 0;
if (operacion.equals("suma")){
resultado = num1 + num2;
} else if (operacion.equals("resta")) {
resultado = num1 - num2;
} else if (operacion.equals("division")) {
resultado = num1/num2;
} else if (operacion.equals("multiplicacion")) {
resultado = num1*num2;
} else {
System.out.println("Operaci贸n no valida.");
}
return resultado;
}
// Leer numeros y operaci贸n
Scanner scn = new Scanner(System.in);
Scanner scnStr = new Scanner(System.in);
System.out.println("Ingrese el primer numero: ");
double numero1 = scn.nextDouble();
System.out.println("Ingrese el segundo numero: ");
double numero2 = scn.nextDouble();
System.out.println("Ingrese la operaci贸n: ");
String oper = scnStr.nextLine();
// Llamando la funci贸n
double res = calculadora(numero1, numero2, oper);
System.out.println("El resultado de la " + oper + " es: " + res);
// Otros argumentos
double res2 = calculadora(453, 5454, "multiplicacion");
System.out.println("El resultado de la multiplicacion es: " + res2);
Ingrese el primer numero:
45
Ingrese el segundo numero:
100
Ingrese la operaci贸n:
multiplicacion
El resultado de la multiplicacion es: 4500.0
El resultado de la multiplicacion es: 2470662.0
Ejemplo 4.
Realice una funci贸n que cuente el numero de palabras de una oraci贸n ingresada por el usuario.
public static int contarPalabras(String oracion){
int lenString = oracion.length();
int cont = 0;
int contPalabras = 1;
while (cont < lenString){
char letra = oracion.charAt(cont);
if (letra == ' '){
contPalabras++;
}
cont++;
}
return contPalabras;
}
// Leer frase
Scanner input = new Scanner(System.in);
System.out.print("Ingrese la oraci贸n: ");
String oracion = input.nextLine();
// Llamar la funci贸n
int numPalabras = contarPalabras(oracion);
System.out.println("La oraci贸n tiene: " + numPalabras + " palabra(s)");
// Probando con otra frase
String quijote = "En un lugar de la Mancha, de cuyo nombre no quiero acordarme";
System.out.println("La oraci贸n " + "\"" + quijote + "\"" + " tiene: " + contarPalabras(quijote) + " palabra(s)");
Ingrese la oraci贸n: Texto con seis palabras para probar
La oraci贸n tiene: 6 palabra(s)
La oraci贸n "En un lugar de la Mancha, de cuyo nombre no quiero acordarme" tiene: 12 palabra(s)
Ejemplo 5
Realiza una funci贸n la cual verifique un nombre de usuario y una contrase帽a (ingresados por el usuario). Si la contrase帽a o el usuario es incorrecto debe retornar 0 e imprimir un mensaje, en caso contrario debe retornar 1 e imprimir un mensaje.
Nota. Debe hacerse dentro de un ciclo while.
public static int verificarUsuario(String usuario, String password){
String usuarioCorrecto = "juanperez@gmail.com";
String passwordCorrecto = "123456";
if (usuario.equals(usuarioCorrecto) && (password.equals(passwordCorrecto))){
System.out.println("Bienvenido!");
return 1;
} else {
System.out.println("Usuario o contrase帽a incorrecta.");
return 0;
}
}
Scanner scnStr = new Scanner(System.in);
String usuario, password;
int verificacion = 0;
while (verificacion != 1){
System.out.print("Ingrese su usuario: ");
usuario = scnStr.nextLine();
System.out.print("Ingrese su contrase帽a: ");
password = scnStr.nextLine();
verificacion = verificarUsuario(usuario, password);
}
// Instrucciones que desee realizar
Ingrese su usuario: pass123
Ingrese su contrase帽a: 123456
Usuario o contrase帽a incorrecta.
Ingrese su usuario: juanperez@gmail.com
Ingrese su contrase帽a: 123456
Bienvenido!
Ejemplo 6
Realice una funci贸n que imprima los n煤meros pares o impares entre un intervalo de n煤meros, tambien debe devolver la cantidad de n煤meros. El usuario debe ingresar los dos n煤meros (intervalo) y especificar si desea los impares o pares.
Nota. Debe validarse el intervalo y el String del tipo de operaci贸n
// Funci贸n contadora de numeros pares o impares
public static int paresImpares(int numIni, int numFin, String operacion){
int contador= 0;
for (int i=numIni; i<=numFin; i++) {
if (operacion.equals("Pares") && (i % 2 == 0)) {
System.out.println(i + " es par.");
contador++;
} else if (operacion.equals("Impares") && (i % 2 != 0)) {
System.out.println(i + " es impar.");
contador++;
}
}
return contador;
}
// Funci贸n para validar el intervalo
public static int verifIntervalo(int num1, int num2){
if (num1 >= num2){
System.out.println("Intervalo incorrecto. " + num1 + " es mayor o igual que " + num2);
return 0;
} else {
return 1;
}
}
// Funci贸n para validar la operaci贸n
public static int verifOperacion(String oper){
if (oper.equals("Pares") || (oper.equals("Impares"))){
return 1;
} else {
System.out.println("Operaci贸n incorrecta.");
return 0;
}
}
// Inicio del programa
Scanner scn = new Scanner(System.in);
Scanner scnStr = new Scanner(System.in);
// Inicializar variables
int numIni = 0, numFin = 0;
int contadorNums = 0;
String operacion = "";
int intervaloCorrecto = 0, operacionCorrecta = 0;
// Validaci贸n del intervalo
while (intervaloCorrecto != 1){
System.out.print("Ingrese el n煤mero inicial: ");
numIni = scn.nextInt();
System.out.print("Ingrese el n煤mero final: ");
numFin = scn.nextInt();
intervaloCorrecto = verifIntervalo(numIni, numFin);
}
// Validaci贸n de operaci贸n
while (operacionCorrecta != 1){
System.out.print("Desea ver los numeros 'Pares' o 'Impares'?: ");
operacion = scnStr.nextLine();
operacionCorrecta = verifOperacion(operacion);
}
// Realizar operaci贸n y mostrar resultado
contadorNums = paresImpares(numIni, numFin, operacion);
System.out.println("Hay " + contadorNums + " " + operacion + " entre " + numIni + " y " + numFin);
Ingrese el n煤mero inicial: 4
Ingrese el n煤mero final: 15
Desea ver los numeros 'Pares' o 'Impares'?: Impares
5 es impar.
7 es impar.
9 es impar.
11 es impar.
13 es impar.
15 es impar.
Hay 6 Impares entre 4 y 15
Ejercicios#
Realice una funci贸n que retorne la cantidad de n煤meros primos entre 0 y un n煤meor ingresado. Debe validar que el numero entero ingresado sea mayor a 3 y tambi茅n debe imprimir los n煤meros primos.
Realice una funci贸n que cuente el n煤mero de vocales en un frase o palabra. El usuario debe ingresar la frase o palabra, adem谩s se debe validar que el tama帽o sea mayor o igual a 2.
Realice una funci贸n que convierta un n煤mero decimal a binario. El usuario debe ingresar el n煤mero por consola.
Realice una funci贸n que reciba como argumento un n煤mero entero y retorne sus divisores.