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

Vídeo amb aixetes

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

Ejercicio 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 = float

Ejercicio 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 = bool

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