Algoritmos I

Stiwar Asprilla

¿QUÉ ES UNA VARIABLE?

una variable es un contenedor que almacena un valor específico, como un número, un texto o una lista, para que puedas manipularlo durante la ejecución del programa

TIPOS DE DATOS

TIPO DESCRIPCIÓN EJEMPLO
Entero (int) Almacena números enteros sin decimales. edad = 30
Flotante (float) Almacena números con decimales. precio = 20.500
Cadena de texto (string) Almacena secuencias de caracteres, como texto. nombre = "jorge"

TIPOS DE DATOS

TIPO DESCRIPCIÓN EJEMPLO
Booleano (boolean) Almacena un valor de verdadero o falso. activo = true
Arreglo (array) Almacena colecciones de valores, accesibles por índices. frutas = ["manzana", "banana"]
Objectos (objects) Almacena pares clave-valor. Se usa para representar entidades más complejas. usuario = {nombre: "Juan", edad: 30}

¿Qué diferencia tienen las variables y las constantes?

La capacidad para cambiar su valor durante la ejecución de un programa.

¿Qué son los operadores en programación?

Los operadores en programación son símbolos (+, -, *, /, <, >, %) especiales que realizan operaciones sobre uno o más operandos.

Operadores aritméticos

Permiten realizar operaciones matemáticas básicas, como suma, resta, multiplicación, división y módulo

Operador Descripción
Suma (+) Se utiliza para sumar dos valores.
Resta (-) Se utiliza para restar el valor de la derecha del valor de la izquierda.
Multiplicación (*) Se utiliza para multiplicar dos valores.
División (/) Se utiliza para dividir el valor de la izquierda por el valor de la derecha.
Módulo (%) Devuelve el resto de la división del valor de la izquierda por el valor de la derecha.

Operadores de comparación o relacionales

Se utilizan para comparar dos valores y devolver un resultado booleano que indica la relación entre esos valores.

Operador Descripción
Asignación (=) Asigna un valor a una variable.
Igual a (==) Devuelve True si los dos valores son iguales; de lo contrario, devuelve False.
Estrictamente igual (===) Compara dos valores sin convertir tipos. Deben ser del mismo tipo.
Diferente de (!=) Devuelve True si los dos valores no son iguales; de lo contrario, devuelve False.
Menor que (<) Devuelve True si el valor de la izquierda es menor que el valor de la derecha; de lo contrario, devuelve False.
Operador Descripción
Mayor que (>) Devuelve True si el valor de la izquierda es mayor que el valor de la derecha; de lo contrario, devuelve False.
Menor o igual que (<=) Devuelve True si el valor de la izquierda es menor o igual al valor de la derecha; de lo contrario, devuelve False.
Mayor o igual que (>=) Devuelve True si el valor de la izquierda es mayor o igual al valor de la derecha; de lo contrario, devuelve False.

Operadores lógicos

Se utilizan para combinar expresiones booleanas y realizar operaciones lógicas en programación.

Operador Descripción
Y lógico (AND - &&) Devuelve True si ambas expresiones son verdaderas; de lo contrario, devuelve False.
O lógico (OR - ||) Devuelve True si al menos una de las expresiones es verdadera; devuelve False si ambas son falsas.
Negación lógica (NOT - !) Devuelve True si la expresión es falsa y False si la expresión es verdadera.

¿QUÉ ES UN PSEUDOCÓDIGO?

Se trata de un falso lenguaje, ya que apela a las normas de estructura de un lenguaje de programación, aunque se encuentra desarrollado para que pueda ser leído por un ser humano y no interpretado por una máquina.

DIAGRAMA DE FLUJO

Es un diagrama que describe un proceso, sistema o algoritmo informático.

Símbolos de diagramas de flujo

Los diagramas de flujo pueden:

  • Demostrar cómo el código está organizado.
  • Visualizar la ejecución de un código dentro de un programa.
  • Mostrar la estructura de un sitio web o aplicación.
  • Comprender cómo los usuarios navegan por un sitio web o programa.

ESTRUCTURA CONDICIONALES

Son bloques de código que permiten a un programa tomar diferentes caminos en función de una condición que se evalúa en tiempo de ejecución.

La estructura condicional simple es un tipo de estructura que permite evaluar una condición y realizar una acción según sea verdad o falsa. If else

Condicional Simple

Los condicionales dobles y anidados son estructuras de programación que permiten evaluar múltiples condiciones de manera secuencial. 

Condicional Doble & Anidado

Es una estructura de control condicional utilizada en programación para tomar decisiones basadas en el valor de una variable o expresión. 

Switch

  • Evaluación única: Evalúa una sola expresión o variable.
  • Casos específicos: Compara el resultado con diferentes valores predefinidos (cases).
  • Ejecución directa: Si encuentra un caso coincidente, ejecuta el bloque de código asociado.
  • Opción predeterminada: Incluye un caso default que se ejecuta si no hay coincidencias.

Características principales

switch (variable) {
    case valor1:
        // Código a ejecutar si variable == valor1
        break;
    case valor2:
        // Código a ejecutar si variable == valor2
        break;
    default:
        // Código a ejecutar si no hay coincidencias
}

Es una estructura de control de flujo cuya función es repetir un conjunto de instrucciones varias veces mientas se cumple una condición especifica.

Ciclo Mientras (While)

mientras (while) (condición) {
...instrucciones
}

resto del código

Es utilizado cuando se conoce el número de iteraciones que se realizarán. La sintaxis general es la siguiente:

Ciclo For

for (inicialización; condición; incremento) {
// código a ejecutar
}

Es similar a while, pero la condición se evalúa al final de cada iteración. Esto significa que el código dentro del bucle se ejecutará al menos una vez, independientemente de la condición.

Ciclo Do While

do {
// código a ejecutar
} while (condición)

Funciones

Es un bloque de código que realiza una tarea específica cuando es llamado.

¿Por qué son importantes?

  1. Reutilización de código: En lugar de escribir el mismo código una y otra vez, puedes crear una función para hacer esa tarea. 
  2. Modularidad: Las funciones dividen un programa en piezas más pequeñas y manejables. Esto hace que sea más fácil de entender y depurar.
  3. Abstracción: Las funciones permiten abstraer detalles innecesarios.
  4. Claridad: Los nombres de las funciones pueden ser descriptivos, lo que hace que el código sea más legible.
def suma(a, b):
    resultado = a + b
    return resultado

suma(5,6)

def saludar(nombre):
    mensaje = f"Hola, {nombre}!"
    return mensaje

saludar(andres)

Arreglos (Array)

Un arreglo, también conocido como array, es una estructura de datos que permite almacenar múltiples valores del mismo tipo en una sola variable.

Características de los arreglos

  1. Homogeneidad: Todos los elementos del arreglo deben ser del mismo tipo de dato (por ejemplo, enteros, cadenas, flotantes, etc.).
  2. Índices: Los elementos se organizan en posiciones numeradas, generalmente comenzando desde 0.
  3. Acceso directo: Los elementos se pueden acceder directamente utilizando su índice, lo que hace que las operaciones de lectura y escritura sean rápidas.
  4. Eficiencia: Son ideales para almacenar y procesar grandes cantidades de datos de manera eficiente.

Ejemplos de uso

  1. Almacenar múltiples valores del mismo tipo.
  2. Acceder rápidamente a elementos por posición (índice).
  3. Recorrer datos secuenciales con bucles.
  4. Realizar operaciones repetitivas sobre un conjunto de datos.

Operaciones comunes

  1. Lectura: Extraer y utilizar los valores almacenados.
  2. Inserción: Agregar nuevos elementos.
  3. Eliminación: Borrar elementos de un arreglo.
  4. Ordenación: Organizar los elementos en orden ascendente o descendente.
  5. Búsqueda: Encontrar un valor específico dentro del arreglo.

Ejercicio

Un estudiante de primer semestre quiere gestionar una lista de calificaciones. El programa debe permitir:

1. Leer las calificaciones.

2. Insertar una nueva calificación.
3. Eliminar una calificación específica.
4. Ordenar las calificaciones.
5. Buscar una calificación en la lista.

Matrices

Es una estructura de datos bidimensional que organiza elementos en filas y columnas, similar a una tabla.

Análisis del problema

  1. ¿Qué se pide?
  2. ¿Qué datos se tienen?
  3. ¿Qué operaciones se deben realizar?
  4. ¿Qué condiciones hay que considerar?

Lectura comprensiva del problema

  1. ¿Qué dice exactamente el problema?
  2. ¿Qué se espera como resultado?

Ejemplo: Diseña un algoritmo que calcule el promedio de tres notas y diga si el estudiante aprueba.

Identificación de entradas

  1. ¿Qué datos necesita el algoritmo?
  2. ¿Qué tipo de datos son? (números, texto, booleanos…)

Identificación de procesos

  1. ¿Qué operaciones hay que hacer?
  2. ¿Hay condiciones o decisiones?

Identificación de salidas

  1. ¿Qué debe mostrar el algoritmo?
  2. ¿Cómo debe presentarse la información?

Principio DRY  

(Don’t Repeat Yourself)

Es un principio de programación que indica que el código no debe contener líneas redundantes o duplicadas. 

Beneficios

  • Reduce el tiempo de desarrollo: Al evitar la repetición del código, se reduce el tiempo necesario para programar. 
  • Ayuda a prevenir errores: Al eliminar la duplicación del código, se disminuye el número de posibles errores durante su construcción.
  • Mejora la mantenibilidad: Al reducir las líneas de códigos es más fácil entenderlo y modificarlo.

¿Cómo implementar el principio DRY?

  • Utiliza funciones o clases en lugar de repetir el mismo código.

  • Escribe una sola función para realizar varias tareas similares.

  • Utiliza variables globales cuando sea necesario y evita escribir varias veces el mismo valor.

  • Evita copiar y pegar bloques de código en diferentes partes del programa.

  • Crea nombres descriptivos para las variables, funciones y clases para mejorar la legibilidad del código.

  • Documenta tu código para hacerlo más comprensible para otros usuarios y desarrolladores.

INTRODUCCIÓN A JAVASCRIPT

JavaScript fue creado por Brendan Eich en 1995 y se convirtió en el lenguaje de programación principal para el desarrollo web.

JavaScript, comúnmente abreviado como JS, es un lenguaje de programación de alto nivel que se usa para hacer que las páginas web sean interactivas y dinámicas. 

Historia

Webgrafia

Algoritmos I

By Stiwar Asprilla

Algoritmos I

  • 136