master-wiki/01. Projects/Coding Mentorship/Temas/Fundamentos de la programación 3.md
Alexander Navarro 3473680392 Update from obsidian - thinkpad
Affected files:
.obsidian/app.json
.obsidian/plugins/obsidian-omnivore/data.json
01. Projects/Coding Mentorship/Temas/Fundamentos de la programación 2.md
01. Projects/Coding Mentorship/Temas/Fundamentos de la programación 3.md
01. Projects/Coding Mentorship/Temas/Pasted image 20240520174417.png
01. Projects/Coding Mentorship/Temas/Pasted image 20240520174436.png
01. Projects/Coding Mentorship/Temas/Requerimients.md
01. Projects/Coding Mentorship/Temas/_attachments/Pasted image 20240520174501.png
01. Projects/Coding Mentorship/Temas/_attachments/Pasted image 20240520174546.png
01. Projects/Coding Mentorship/Temas/_attachments/Pasted image 20240520175134.png
01. Projects/Coding Mentorship/Temas/_attachments/Pasted image 20240520175325.png
01. Projects/Coding Mentorship/Temas/_attachments/Pasted image 20240520175739.png
01. Projects/Coding Mentorship/Temas/_attachments/Pasted image 20240520180128.png
Pasted image 20240520173241.png
2024-05-21 16:42:23 -04:00

375 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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