Skip to content

Commit 57c36cb

Browse files
authored
Merge branch 'mouredev:main' into main
2 parents f8589d9 + 35cd65e commit 57c36cb

File tree

5 files changed

+1120
-549
lines changed

5 files changed

+1120
-549
lines changed
Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
package com.example.headfirstjava;
2+
3+
import org.springframework.boot.SpringApplication;
4+
5+
import java.util.ArrayList;
6+
import java.util.Arrays;
7+
import java.util.Collections;
8+
import java.util.List;
9+
10+
public class Natalinacn {
11+
12+
public static void main(String[] args) {
13+
SpringApplication.run(HeadFirstjavaApplication.class, args);
14+
15+
imprimirMensaje();
16+
imprimirNombre("Natalin");
17+
sumarNumeros(2, 5);
18+
System.out.println(saludar());
19+
System.out.println(cuadrado(5));
20+
System.out.println(multiplicar(8, 2));
21+
22+
//EJEMPLO DE FUNCIONES YA CREADAS EN EL LENGUAJE
23+
//1-Funciones de la clase Math
24+
double numEjemplo = 123.45;
25+
System.out.println("Valor absoluto " + numEjemplo + ": " + Math.abs(numEjemplo));
26+
System.out.println("Raíz cuadrada de 16: " + Math.sqrt(16));
27+
System.out.println("Máximo entre 10 y 20: " + Math.max(10, 20));
28+
System.out.println("Mínimo entre 10 y 20: " + Math.min(10, 20));
29+
System.out.println("Número aleatorio entre 0.0 y 1.0: " + Math.random());
30+
31+
//2-Funciones de la clase String
32+
String texto = "Hola Mundo";
33+
System.out.println("Texto en minúsculas: " + texto.toLowerCase());
34+
System.out.println("Texto en mayúsculas: " + texto.toUpperCase());
35+
System.out.println("Longitud del texto: " + texto.length());
36+
System.out.println("Caracter en la posición 5: " + texto.charAt(4));
37+
System.out.println("Reemplazar 'Mundo' con 'Java': " + texto.replace("Mundo", "Java"));
38+
39+
//3-Funciones de la clase Arrays
40+
int[] numerosArray = {5, 3, 8, 2, 9, 1};
41+
42+
// Ordenar el arreglo: sort(int[] a): Ordena el arreglo en orden ascendente.
43+
Arrays.sort(numerosArray);
44+
System.out.println("Arreglo ordenado: " + Arrays.toString(numerosArray));
45+
46+
// Buscar un elemento en el arreglo: binarySearch(int[] a, int key): Busca el elemento especificado en el arreglo ordenado y devuelve el índice de la búsqueda binaria.
47+
int indice = Arrays.binarySearch(numerosArray, 8);
48+
System.out.println("Índice del elemento 8: " + indice);
49+
50+
// Rellenar el arreglo: fill(int[] a, int val): Asigna el valor especificado a cada elemento del arreglo.
51+
Arrays.fill(numerosArray, 7);
52+
System.out.println("Arreglo rellenado con 7: " + Arrays.toString(numerosArray));
53+
54+
//4- Funciones de la clase Collections: La clase Collections proporciona métodos estáticos que operan en colecciones como listas, conjuntos y mapas.
55+
List<String> lista = new ArrayList<>();
56+
lista.add("Banana");
57+
lista.add("Manzana");
58+
lista.add("Pera");
59+
lista.add("Naranja");
60+
61+
// Ordenar la lista
62+
Collections.sort(lista);
63+
System.out.println("Lista ordenada: " + lista);
64+
65+
// Barajar la lista
66+
Collections.shuffle(lista);
67+
System.out.println("Lista barajada: " + lista);
68+
69+
// Encontrar el elemento máximo
70+
String maximo = Collections.max(lista);
71+
System.out.println("Elemento máximo: " + maximo);
72+
73+
// Encontrar el elemento mínimo
74+
String minimo = Collections.min(lista);
75+
System.out.println("Elemento mínimo: " + minimo);
76+
77+
Natalinacn variables = new Natalinacn();
78+
variables.metodoConVariablesLocales();
79+
variables.imprimirMensajeGlobal();
80+
81+
funcionExtra("Múltiplo de 3 ", "Múltiplo de 5");
82+
83+
}
84+
85+
//#02 FUNCIONES Y ALCANCE
86+
87+
//1. Función sin parámetros y sin retorno
88+
public static void imprimirMensaje(){
89+
System.out.println("Hola, este es un mensaje sin parámetros ni retorno.");
90+
}
91+
92+
//2. Función con un parámetro y sin retorno
93+
public static void imprimirNombre(String nombre){
94+
System.out.println("Bienvenida " + nombre);
95+
}
96+
97+
//3. Función con varios parámetros y sin retorno
98+
public static void sumarNumeros(int num1, int num2){
99+
System.out.println("La suma de los números es " + num1 + num2);
100+
}
101+
102+
//4. Función sin parámetros y con retorno
103+
public static String saludar(){
104+
return "Buenas tardes!!";
105+
}
106+
107+
//5. Función con un parámetro y con retorno
108+
public static int cuadrado(int numero){
109+
return numero * numero;
110+
}
111+
112+
//6. Función con varios parámetros y con retorno
113+
public static int multiplicar(int num1, int num2){
114+
return num1 * num2;
115+
}
116+
117+
//Funcion dentro de otra función
118+
//En Java no es posible definir una función (método) dentro de otra función directamente.
119+
//Todos los métodos deben ser definidos al mismo nivel de clase.
120+
//Si necesitas definir una función dentro de otra, puedes hacerlo indirectamente utilizando clases internas,
121+
// clases anónimas, o expresiones lambda en ciertos contextos.
122+
public static void funcionDentroDeFuncion() {
123+
System.out.println("Probando si se puede crear una función dentro de otra a continuación...");
124+
125+
class FuncionAdentro {
126+
void mensaje() {
127+
System.out.println("No se puede crear una función dentro de otra directamente.");
128+
}
129+
}
130+
131+
FuncionAdentro funcionAdentro = new FuncionAdentro();
132+
funcionAdentro.mensaje();
133+
134+
135+
136+
}
137+
138+
// VARIABLE LOCAL y GLOBAL
139+
//En Java Las variables locales son aquellas que se declaran dentro de un método y solo son accesibles dentro de ese método. No pueden ser accedidas fuera del método en el que se declararon.
140+
//Variables de instancia (similares a variables globales) se declaran dentro de una clase pero fuera de cualquier método. Son accesibles por todos los métodos de la clase y su valor puede ser cambiado por cualquier método de la clase.
141+
142+
// Variable de instancia (similar a una variable global)
143+
private String mensajeGlobal = "Este es un mensaje global.";
144+
145+
// Método que imprime la variable global
146+
public void imprimirMensajeGlobal() {
147+
System.out.println(mensajeGlobal);
148+
}
149+
150+
// Método que contiene variables locales
151+
public void metodoConVariablesLocales() {
152+
// Variable local
153+
String mensajeLocal = "Este es un mensaje local.";
154+
155+
System.out.println(mensajeLocal);
156+
157+
// Intentar acceder a una variable global
158+
System.out.println("Intentar acceder a una variable global: " + mensajeGlobal);
159+
}
160+
161+
162+
163+
//DIFICULTAD EXTRA (opcional):
164+
// * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
165+
// * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
166+
// * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
167+
// * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
168+
// * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
169+
// * - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
170+
171+
public static int funcionExtra(String param1, String param2){
172+
173+
int contador = 0;
174+
for (int i = 1; i < 101; i++) {
175+
if(i % 3 == 0 && i % 5 == 0){
176+
System.out.println(i +" es " + param1 + param2);
177+
}else if(i % 3 == 0){
178+
System.out.println(i + " es " +param1);
179+
}else if(i % 5 == 0){
180+
System.out.println(i +" es " + param2);
181+
}else{
182+
contador++;
183+
}
184+
}
185+
System.out.println("El número de veces que se ha impreso el número en lugar de los textos es de " + contador);
186+
return contador;
187+
}
188+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import Foundation
2+
3+
4+
func greet() {
5+
print("Hola, Mundo!")
6+
}
7+
8+
// Decorador
9+
func decorateGreet(originalFunction: @escaping () -> Void) -> () -> Void {
10+
return {
11+
print("Iniciando Saludo")
12+
originalFunction()
13+
print("Saludo Finalizado\n")
14+
}
15+
}
16+
17+
// Usando el decorador
18+
let decoratedGreet = decorateGreet(originalFunction: greet)
19+
decoratedGreet()
20+
21+
22+
func add(a: Int, b: Int) -> Int {
23+
return a + b
24+
}
25+
26+
// Decorador
27+
func decorateAdd(originalFunction: @escaping (Int, Int) -> Int) -> (Int, Int) -> Int {
28+
return { a, b in
29+
print("Sumando \(a) and \(b)")
30+
let result = originalFunction(a, b)
31+
print("El Resultado Es: \(result)")
32+
return result
33+
}
34+
}
35+
36+
// Usando el decorador
37+
let decoratedAdd = decorateAdd(originalFunction: add)
38+
let result = decoratedAdd(3, 4)
39+
print("Resultado Final: \(result)\n")
40+
41+
42+
43+
44+
// DIFICULTAD EXTRA
45+
print("\nDificultad Extra\n")
46+
47+
48+
func sayHi(to personName: String) {
49+
print("Hola, \(personName)")
50+
}
51+
52+
53+
func decorateSayHi(originFunction: @escaping (String) -> Void) -> (String) -> Void {
54+
var callCount = 0
55+
56+
return { personName in
57+
originFunction(personName)
58+
callCount += 1
59+
60+
if callCount < 2 {
61+
print("Función ejecutada \(callCount) vez.\n")
62+
} else {
63+
print("Función ejecutada \(callCount) veces.\n")
64+
}
65+
66+
}
67+
}
68+
69+
let decoratedSayHi = decorateSayHi(originFunction: sayHi)
70+
decoratedSayHi("Sergio")
71+
decoratedSayHi("Alberto")
72+
decoratedSayHi("Arturo")
73+
decoratedSayHi("Angeles")
74+
decoratedSayHi("Yaiza")
75+
decoratedSayHi("Carmen")
76+
77+
78+

0 commit comments

Comments
 (0)