--- id: Fundamentos de la programación 2 aliases: - Fundamentos De la Programación tags: [] date_created: Thursday, May 16th 2024, 10:03:49 am date_modified: Sunday, May 19th 2024, 11:05:58 am --- # Fundamentos De la Programación --- ## Código notes: - Lo que veremos es transversal para cualquier lenguaje de programación. - dicho esto, cada lenguaje tiene sus leves diferencias. --- ## Flujo De Datos + Condicionales + Bucles + Funciones --- ## Condicionales ```mermaid flowchart TD start([Inicio]) ---> entrada1[/ x = 1 /] entrada1 ---> if1{"¿x < 10?"} if1 --si--> salida1[/x es menor que 10/] if1 --no--> salida2[/x no es menor que 10/] salida1 ---> finish([Fin]) salida2 ---> finish([Fin]) ``` --- ## Condicionales ## If/Else | Sentencia | Traducción literal | Descripción | | ---------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | `if` | Si… | El siguiente bloque de código se ejecuta si la sentencia se evalúa como verdadera | | `else` | de lo contrario… | El siguiente bloque se ejecuta si la última sentencia `if` se evalúa como falsa | | `else if`/`elif` | de lo contrario, si… | El siguiente bloque se ejecuta si la ultima sentencia `if` se evalúa como falsa y la siguiente condición se evalúa como verdadera | --- ## Condicionales ## If/Else ```java // JAVA int x = 1; if (x < 10) { System.out.println("x es menor a 10"); else if (x < 50) { System.out.println("x es menor a 50"); } else { System.out.println("x es un número muy grande"); } ``` ```python # PYTHON x = 1; if x < 10: print("x es menor a 10"); elif x < 50: print("x es menor a 10"); else: print("x es un número muy grande"); ``` ```lua -- LUA x = 1; if x < 10 then print("x es menor a 10"); elseif x < 50 then print("x es menor a 10"); else print("x es un número muy grande"); end ``` --- ## Condicionales ### Ternary Operator ```java // JAVA String foo = 10 % 2 == 0 ? "10 es par" : "10 no es par"; ``` ```python # PYTHON foo = "10 es par" if 10 % 2 == 0 else "10 no es par"; ``` --- ## Condicionales ## Switch ```java // JAVA int dia = 4; switch (dia) { case 6: System.out.println("Hoy es sábado"); break; case 7: System.out.println("Hoy es domingo"); break; default: System.out.println("Esperando el fin de semana :3"); } ``` --- ## Ciclos/Bucles ```mermaid flowchart TD start([Inicio]) --> entrada1[/ x = 1 /] entrada1 --> if1{"¿x < 10?"} if1 --no--> finish([Fin]) if1 --si--> salida1[/x es menor que 10/] salida1 --> process1[x += 1] process1 --> if1 ``` --- ## Ciclos ### While ```java // JAVA int i = 1; while (i < 10) { System.out.println(i); i += 1; } /* --- */ int j = 0; do { System.out.println(j); j += 1; } while (j < 50); ``` ```python # PYTHON i = 1 while i < 10:   print(i)   i += 1 ``` notes: - El bloque del while se ejecuta mientras la condicional sea **Verdadera** - Preguntar: _"¿cuál es el ultimo número que se va a imprimir?"_ -> 9 - El while se usa cuando no sabemos cuando la condición se vaya a cumplir. - while: mientras verdadero, hacer - do-while: hacer, mientras verdadero --- ## Bucles ### For ```java // JAVA for (int i = 0; i <= 5; i++) { System.out.println(i); } /* --- */ String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; for (int i = 0; i < cars.length(); i++) { System.out.println(cars[i]); } ``` ```python # PYTHON for x in range(6):   print(x) ``` notes: - python declara el for de esta manera por ser un lenguaje más declarativo. --- ## Bucles ### For Each ```java // JAVA String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; for (String i : cars) { System.out.println(i); } ``` ```python # PYTHON fruits = ["apple", "banana", "cherry"] for x in fruits:   print(x) ``` --- ## Bucles | Sentencia | Significado literal | Descripción | | ---------- | ------------------- | --------------------------------------------------------------------- | | `Continue` | Continuar | Detiene la ejecución del código y continúa con la siguiente iteración | | `break` | Romper | Sale del bucle, independiente si la condición sigue siendo verdadera | --- ## Bucles ```java // JAVA while (true) { boolean error = Math.calculos_complicados() if (error) { break; } } /* --- */ String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; for (String i : cars) { if (i == "BMW") { System.out.println("No trabajamos con BMW!"); continue; } Fabrica.procesar(i); } ``` --- ## Funciones Las funciones son bloques de código re-utilizables, ayuda a evitar la duplicidad del código siguiendo lógicas como _"don't repeat yourself"_. Las funciones vendrían a representar un _"proceso"_. notes: - en java no existen las funciones fuera de una clase, por lo que sólo las veremos en OOP cómo métodos. - entrada, proceso, salida. --- ## Funciones + Las funciones deben ser definidas antes de ser llamadas. + pueden recibir argumentos/parámetros. + En lenguajes tipeados, deben tener un tipo de retorno. --- ## Funciones ```python # PYTHON def saludar(nombre): print("hola " + nombre) saludar("pedro") saludar("juan") saludar("diego") ``` ```python # PYTHON def elevarCuadrado(num1): resultado = num1 * num1 return resultado foo = elevarCuadrado(2) print(foo) ``` --- ## Scope De Las Variables ```python # PYTHON def myFunction(): numero = 5 # calculos complicados return numero myFunction() print(numero) # Error ``` ```python # PYTHON def myFunction(): numero = 5 # calculos complicados return numero numero = myFunction() print(numero) # funciona ``` --- ## Scope De Las Variables ```python # PYTHON PI = 3.14 def areaCirculo(radio): area = PI * (radio * radio) return area area = areaCirculo(3) print(area) ``` --- ## Fin :3