Curso básico de algoritmos y pensamiento lógico
¿Qué entiende una computadora?
![[bombetes_binari.png|325]]

¿Qué es un algoritmo?
Pasos para encontrar una solución a problemas simples o complejos.
Características de un algoritmo:
- Preciso: paso a paso en un orden lógico.
- Definido: todas las veces que pasemos por él da el mismo resultado.
- Finito: tenemos un proceso de inicio y de cierre.
Los algoritmos los podemos representar de manera:
- Gráfica: a través de diagramas de flujo.
- No gráfica: se usa un lenguaje de programación, o de manera textual.
Metodología para crear un algoritmo:
- Definir el problema: El para qué.
- Analizar el problema: Analizar cada uno de los detalles que lo componen, que metodología se aplicara
- Diseñar el algoritmo: Iniciamos a escribirlo, a marcar todos aquellos pasos necesarios.
- Prueba de escritorio: Tenemos entradas de prueba, para las cuales tenemos salidas esperadas.


Bit y bite
Un bit es la unidad mínima de información. Es binario: 1 o 0. Verdadero o falso. Con carga o sin carga de corriente. Bit significa binary digit.
Un byte es el conjunto de 8 bits. 7 son de información y 1 es de control.

¿Qué son variables, constantes y tipos de datos?
Constantes: datos no mutables. Se le debe asignar un valor cuando se declaran (excepto si se declara como “final”).
Variable: se usan para almacenar información (palabras, números, cadenas…)
En esta lista podrás ver algunos ejemplos para cada uno de los diferentes tipos de variables:
- Int: Un valor entero (contiene solo números enteros)
- Char: Un valor de caracteres (contiene letras y números)
- NOTA: una fila de char es un string
- Float: Un número con decimales (contiene fracciones)
- Bool: Un valor booleano (conocido comúnmente como verdadero o falso)
TRUCS: int recorda a intero, string és com un fil de caràcters, float és imaginar el punt decimal com una barqueta, bool recorda a bools? sí o no?

Strings (texto) y cadena
Una cadena de texto es la unión de diferentes caracteres que funcionan como eslabones y al unirse forman una cadena o frase.
En el caso del ejemplo cada uno de los elementos de esta frase es un caracter, cada letra y cada espacio al ser concatenado nos da un sentido lógico de valor que al traducirlo es un string
- Char: es un caracter.
- String: es un conjunto de caracteres.
True y false: booleanos y tablas de la verdad



Qué son las tablas de la verdad

OR ( | | )
El resultat només és fals quan totes dues són falses. Es pot entendre com una suma.



AND ( && )
Quan es donen totes dues. Al contrari que abans, només és true quan totes dues són true. Es pot entendre com una multiplicació.


NOT ( ! )
Ho porta al contrari: és la negació de l’anterior.

XOR ( ^ )
Només dona true amb un true i un fals; és a dir, quan els dos són true o els dos són false, dona false. Més estrany, s’usa sovint en encriptació.



O, el que és el mateix:

És a dir: posar == true és el mateix
Condicions anidades
Si ets estudiant o professor, entres a la universitat. Si ets visitant, et fan un tour. Si no ets res d’això, et pregunten wtf (OR | | )

Si la gasolina està per sobre el mínim i la temperatura és menor a la màxima, el cotxe s’encén. (AND &&)

Només s’accepta un dels valors (XOR ^) Cicle Teatre Eugeni d’Ors

Si plou i tens parasol o estàs sota teulada (només una de les dues possibilitats, XOR ^), llavors vas bé. Si no en tens cap o tens les dues, no ho estàs fent bé.
Si no plou, no cal res d’això.

NOTA: Totes les condicions anidades es podrien, de fet, escriure amb una sola línia usant AND &&, però seria completament Il·legible, poc editable i poc escalable. Una bona pràctica és sempre fer codi fàcilment legible.
Ejercicio

if(cliente_id)
{
if(banco_id)
{
transaccion_cost = 0
}
else
{
transaccion_cost = 100
}
if(hora < 9 || hora )
}
Arrays y funciones sobre arrays
Son un conjunto de elementos del mismo tipo ordenados en fila.
- Su primera posición (index) será siempre 0.

- También puedes almacenar números, caracteres y strings.

- Su tamaño puede variar.

- Puedes ordenarlo de la forma que tú lo requieras.

- Puedes recorrerlo. Es decir, podemos pasar uno a uno sobre cada una de sus posiciones y operarlas.

- Puedes acceder a una posición específica.

Diagramas de flujo

Ejercicios
Es momento de aplicar lo aprendido y que identifiques cuántas variables y qué tipo de datos necesitarás para cada uno de los siguientes casos.
Ejercicio 1: Directorio telefónico
Necesitas almacenar tus contactos en una aplicación, para cada uno necesitas: nombre, número telefónico y correo electrónico.
var nombre = string
var numero_telefonico = int
var email = charEjercicio 2: Generando facturas
En tu negocio necesitas emitir facturas que indiquen el nombre del cliente, número de identificación, teléfono, dirección, nombre del producto o servicio, cantidad, valor unitario, valor total por cada producto y valor total a pagar.
var id = int
var tel = int
var direccion = string
var nombre_producto = string
var cantidad = int
var valor_unidad = float
var valor_total = float
var valor_pagar = floatEjercicio 3: Control de paso vehicular
En la carretera necesitas controlar el paso de vehículos por una zona determinada. La condición es el pago del servicio; si este se realizó puede pasar, en caso contrario no podrá continuar.
var pago = boolEjercicio 4: Agenda personal
Debes controlar tus compromisos de cada día, para esto realiza una agenda digital que permita mostrar tus espacios de tiempo disponibles y al seleccionar un espacio disponible se solicita nombre, correo electrónico y motivo del agendamiento.
Ejercicio 5: Sistema de parqueadero
En un parqueadero de bicicletas debes validar si un espacio está vacío, en caso que sea verdadero debes permitir parquear tu bicicleta y almacenar la fecha y hora en la cual fue parqueada para así generar el cobro por minutos. Al finalizar el uso del espacio, debes tomar la fecha y hora nuevamente para calcular cuánto pagarás, teniendo en cuenta que cada minuto que estuvo parqueada costó $1.