---
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: Thursday, May 16th 2024, 5:24:04 pm
---

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

---

## Tipos De Datos

- Primitivos
  - Numericos
  - Booleanos
  - Carácteres
- Complejos
  - Arrays (arreglos)
  - Strings (texto)
  - Clases

---

## Numéricos En Java

| Tipo de dato | Tamaño  | Descripción                                                                      |
| ------------ | ------- | -------------------------------------------------------------------------------- |
| `byte`       | 1 byte  | Números enteros desde -128 hasta 127                                             |
| `short`      | 2 bytes | Números enteros desde -32,768 hasta 32,767                                       |
| `int`        | 4 bytes | Números enteros desde -2,147,483,648 hasta 2,147,483,647                         |
| `long`       | 8 bytes | Números enteros desde -9,223,372,036,854,775,808 hasta 9,223,372,036,854,775,807 |
| `float`      | 4 bytes | Números con coma flotante, puede tener desde 6 hasta 7 dígitos decimales.        |
| `double`     | 8 bytes | Números con coma flotante. puede tener hasta 15 dígitos decimales.               |

notes:

- Coma flotante have referencia a que el número se guarda como un entero y hay una parte de los bytes dedicada a guardar "donde la coma debería estar"

---

## Numéricos En Python

| Tipo de dato | Descripción                                                   |
| ------------ | ------------------------------------------------------------- |
| `int`        | Números enteros, positivos o negativos sin límite.            |
| `float`      | Números con coma flotante, positivo o negativo sin límite.    |
| `complex`    | Números complejos, con una `j` denotando su parte imaginaria. |

---

## Char

| Tipo de dato | Tamaño | Descripción                                   |
| ------------ | ------ | --------------------------------------------- |
| `char`       | 2 byte | almacena solo 1 carácter/letra o valor ASCII. |

notes: no existe en python.

---

## Booleans

| Tipo de dato | Tamaño | Descripción                       |
| ------------ | ------ | --------------------------------- |
| `boolean`    | 1 byte | Almacena valores `True` o `False` |

notes:

- aveces abreviado como `Bool`
- _"coherción"_

---

## Ejemplos

```java
// JAVA
int myNum = 5;               // Integer (whole number)
float myFloatNum = 5.99f;    // Floating point number
char myLetter = 'D';         // Character
boolean myBool = true;       // Boolean
String myText = "Hello";     // String
```

```python
# PYTHON
myNum = 5                  # Integer (whole number)
myFloatNum = 5.99          # Floating point number
myBool = True              # Boolean
myText = "Hello"           # String
```

---

## Arrays

Los arreglos son un tipo de dato que nos permiten almacenar multiples valores en una sola variable

### Características:

- Tienen un tamaño fijo de elementos.
- Cada elemento debe ser del mismo tipo de dato.
- Se pueden acceder a sus elementos a través de un indice.
- Un array puede container otros arrays (A.K.A. arrays multidimensionales).

 note: 
 - _"colección de datos"_
 - Al ser una estructura compleja, su implementación exacta varia de lenguaje a lenguaje.

---

## Arrays

```java
// JAVA

int[] myNum = {10, 20, 30, 40};
System.out.println(myNum[0]) // imprime el N° 10
```

```python
# PYTHON

myNum = [10, 20, 30, 40]
print(myNum[0]) # imprime el N° 10
```

notes:
- Mencionar la diferencias de arrays vs lists
---

## Strings

los Strings o _"cadenas"_ son en esencia un **array de caracteres**. Se utilizan para representar texto.

---

## Otros tipos de datos

- Hashmaps (A.K.A. dictionaries, structs, associative array u otros).
- Clases
- Enums
- Sets
- Tuples

---

## Operadores Aritméticos

| operador | Nombre         | Descripción                              | Ejemplo |
| -------- | -------------- | ---------------------------------------- | ------- |
| +        | Adición        | Suma dos valores                         | x + y   |
| -        | Substracción   | Resta un valor desde otro<br>            | x - y   |
| *        | Multiplicación | Multiplica dos valores                   | x * y   |
| /        | División       | Divide un valor por otro                 | x / y   |
| %        | Módulo         | Retorta el _resto_ de una división       | x % y   |
| ++       | incremento     | Incrementa el valor de una variable en 1 | ++x     |
| --       | Decremento     | Decrementa el valor de una variable en 1 | --x     |

---

## Operadores de asignación

| operador<br> | Ejemplo | Es lo mismo que |
| ------------ | ------- | --------------- |
| =            | x = 5   | x = 5           |
| +=           | x += 3  | x = x + 3       |
| -=           | x -= 3  | x = x - 3       |
| *=           | x *= 3  | x = x * 3       |
| /=           | x /= 3  | x = x / 3       |
| %=           | x %= 3  | x = x % 3       |

---

## Operadores de comparación

| Operador | Nombre            | Ejemplo  |
| -------- | ----------------- | -------- |
| `==`     | Igual a           | `x == y` |
| `!=`     | No es igual a     | `x != y` |
| `>`      | Mayor que         | `x > y`  |
| `<`      | Menor que         | `x < y`  |
| `>=`     | Mayor o igual que | `x >= y` |
| `<=`     | Menor o igual que | `x <= y` |

+ `10 == 10`
+ `10 == "10"`
+ `10 >= "10"`
+ `10 >= "10".length()`

notes:
- los operadores lógicos dan por resultado un booleano, el cuál puede ser pasado algo que lo evalúe (un if) o ser guardado en una variable

---

## Operadores lógicos

| Operador | Nombre | Descripción                                        | Ejemplo          |
| -------- | ------ | -------------------------------------------------- | ---------------- |
| &&       | and    | Se evalúa como `True` si ambos lados son `True`    | x < 5 && x < 10  |
| \|\|     | or     | Se evalúa como `True` si al menos 1 lado es `True` | x < 5 \|\| x < 4 |
| !        | not    | Invierte el resultado de la evaluación             | !(x < 5)         |

---
## Fin :3
