1.1. Conceptos Básicos de Programación#
En términos simples, programar es el proceso de dar instrucciones a una computadora para que realice una tarea. Estas instrucciones son interpretadas por la computadora en lenguaje de máquina, es decir, en una serie de ceros y unos que representan las operaciones a ejecutar. Para poder comunicarnos con la computadora, se utilizan lenguajes de programación que permiten escribir instrucciones de manera más comprensible para los humanos. Estas instrucciones se traducen a lenguaje de máquina a través de compiladores o intérpretes, según el lenguaje de programación utilizado. La siguiente imagen ilustra este proceso:

En youtube existen muchos canales dedicados a la programación, unos más generales, otros más especicos en las diferentes áreas de la programación. Particularmente, el canal de EDTeam tiene buen contenido y además en español, se recomienda tomarse un tiempo para ver algunos de sus videos. En especifico, la siguiente listas de reproducción podrían ser de interés:
También, puede ver el siguiente video, que es un excelente material divulgativo que ayuda a comprender el concepto de programación desde un enfoque histórico.
Algoritmo#
Un algoritmo es una secuencia finita y ordenada de pasos que permiten resolver un problema o realizar una tarea. Un buen algoritmo debe ser preciso, es decir, cada paso debe estar claramente definido. Además, debe ser finito, garantizando que la solución del problema se pueda alcanzar. También debe ser eficiente, permitiendo resolver la tarea en el menor tiempo y con los menores recursos posibles.
Al comenzar a programar, una de las habilidades más importantes a desarrollar es la lógica, es decir, la capacidad de pensar de manera estructurada y ordenada para identificar los pasos mínimos necesarios para resolver la tarea.
Es importante tener en cuenta que un problema puede tener múltiples algoritmos o métodos válidos. La elección de uno u otro dependerá del programador y de los factores que se deseen priorizar, como la velocidad de procesamiento, la cantidad de memoria utilizada, la legibilidad del código, la interacción con el usuario, entre otros.
Ejemplos
- Problema: Calcular la suma de dos números.
Información de entrada: Dos números enteros.
Resultado o salida: La suma de los dos números.
Recibir y guardar los valores ingresados.
Sumarlos.
Retornar el resultado de la suma.
- Problema: Preparar un sándwich.
Información de entrada: Tamaño (pisos), lista de ingredientes, etc.
Resultado o salida: Un sándwich listo para comer.
Tomar dos rebanadas de pan.
Agregar cada ingrediente de la lista a una rebanada de pan.
Tapar con la otra rebanada de pan.
Repetir los pasos 1-3 según el tamaño del sándwich.
Servir el sándwich.
- Problema: Encontrar el número mayor en una lista.
Información de entrada: Una lista de números.
Resultado o salida: El número mayor de la lista.
Tomar una lista de números.
Asignar el primer número como el mayor.
Comparar con cada número en la lista.
Si se encuentra un número mayor, actualizar la variable mayor.
Al finalizar, devolver el número mayor.
Pseudocódigo#
Nota
Instale PSeInt para practicar pseudocódigo. Lo necesitará de ahora en adelante.
El pseudocódigo es una forma de representar algoritmos utilizando un lenguaje similar a la programación pero sin seguir una sintaxis particular ni muy estricta. Su objetivo es diseñar soluciones de manera comprensible antes de codificarlas en un lenguaje de programación.
Para escribir pseudocódigo, solo se necesita lápiz y papel. Sin embargo, existen herramientas como **PSeInt** que permiten escribir y probar algoritmos de manera sencilla y cercana a un lenguaje de programación real.
Puede descargar el instalador de PSeInt aquí, y puede revisar la documentación oficial en este enlace. Además, puede encontrar diversos tutoriales en YouTube, como por ejemplo este:
Ejemplos
Calcular la suma de dos números.
1Algoritmo Suma
2 // Leer los valores de entrada
3 Leer valor1, valor2
4 // Calcular la suma de los dos valores
5 sum = valor1 + valor2
6 // Mostrar el resultado de la suma
7 Escribir sum
8FinAlgoritmo
Encontrar el número mayor en una lista.
1Algoritmo Suma
2 Dimension nums[5]
3 // Leer los numeros y almacenarlos en el arreglo nums
4 Para i Desde 0 Hasta 4 Con Paso 1 Hacer
5 Leer valor
6 nums[i] = valor
7 FinPara
8
9 // Inicializar la variable mayor con el primer elemento del arreglo
10 mayor = nums[0]
11 // Recorrer el arreglo para encontrar el número mayor
12 Para Cada num En nums Hacer
13 Si num > mayor Entonces
14 mayor = num
15 FinSi
16 FinPara
17
18 // Mostrar el número mayor encontrado
19 Mostrar mayor
20
21FinAlgoritmo
Diagramas de Flujo#
Un diagrama de flujo es una representación gráfica del proceso ya codificado en pseudocodigo de un algoritmo mediante símbolos estandarizados. Esta representacion basta con ser legible y entendible para poder representar la secuencia de pasos de un algoritmo, sin embargo, se usan como estandar los simbolos que se muestran acá.
Ejemplos
Calcular la suma de dos números.

Encontrar el número mayor en una lista.

Ejercicios sencillos#
Escribir un algoritmo que solicite el nombre del usuario y lo salude.
1Algoritmo Saludo
2 Escribir "Por favor ingrese su nombre:"
3 Leer nombre
4 Escribir "Hola ¡", nombre, "! espero que estés teniendo un gran día :)"
5FinAlgoritmo
Imprimir los números del 1 al 10 utilizando un bucle.
1Algoritmo ImprimirNumeros
2 Para i Desde 1 Hasta 10 Con Paso 1 Hacer
3 Escribir i
4 FinPara
5FinAlgoritmo
Generar la tabla de multiplicar de un número ingresado por el usuario.
1Algoritmo TablaMultiplicar
2 Escribir "Ingrese un número:"
3 Leer numero
4 Para i Desde 1 Hasta 10 Con Paso 1 Hacer
5 Escribir numero, " x ", i, " = ", numero * i
6 FinPara
7FinAlgoritmo
Determinar si un número ingresado es positivo, negativo o cero. Tambien Verificar si un número es par o impar.
1Algoritmo PositivoNegativoParImpar
2 Escribir "Ingrese un número:"
3 Leer numero
4 Si numero > 0 Entonces
5 Escribir "El número es positivo"
6 Sino
7 Si numero < 0 Entonces
8 Escribir "El número es negativo"
9 Sino
10 Escribir "El número es cero"
11 FinSi
12 FinSi
13 Si numero MOD 2 = 0 Entonces
14 Escribir "El número es par"
15 Sino
16 Escribir "El número es impar"
17 FinSi
18FinAlgoritmo
1Algoritmo PositivoNegativoParImpar
2 Escribir "Ingrese un número:"
3 Leer numero
4
5 mensaje = "El numero es "
6 complemento_1 = "negativo "
7 complemento_2 = "e impar"
8
9 Si numero = 0 Entonces
10 complemento_1 = "cero"
11 complemento_2 = ""
12 Sino
13 Si numero > 0 Entonces
14 complemento_1 = "positivo "
15 FinSi
16 Si numero MOD 2 = 0 Entonces
17 complemento_2 = "y par"
18 FinSi
19 FinSi
20
21 Escribir mensaje + complemento_1 + complemento_2
22
23FinAlgoritmo
Calcular el promedio de un conjunto de calificaciones ingresadas.
1Algoritmo PromedioCalificaciones
2 Escribir "Acontinuacion debe ingresae las calificacion, cuando ya estén todas oprima ENTER..."
3 suma = 0
4 cantidad = 0
5 Leer calificacion
6 Mientras calificacion != ""
7 suma = suma + ConvertirANumero(calificacion)
8 cantidad = cantidad + 1
9 Leer calificacion
10 FinMientras
11 promedio = suma / cantidad
12 Escribir "El promedio es: ", promedio
13FinAlgoritmo
Calcular el área de un rectángulo ingresando la base y la altura.
1Funcion area <- calcular_area (b, h)
2 area = b * h / 2
3FinFuncion
4
5Algoritmo AreaRectangulo
6 Escribir "Ingrese la base del rectángulo:"
7 Leer base
8 Escribir "Ingrese la altura del rectángulo:"
9 Leer altura
10 Escribir "El área del rectángulo es: ", calcular_area(base, altura)
11FinAlgoritmo
Importante
En los siguientes ejercicio se puede desplegar la solución, sin embargo, INTENTE RESOLVERLO por su cuenta antes de revisarla.
Desafios#
Escribir un algoritmo que funcione como una calculadora básica. El usuario debe ingresar dos números y una operación (suma, resta, multiplicación o división), y el programa debe mostrar el resultado correspondiente.
Diseñar un algoritmo que convierta una cantidad de dinero de una moneda a otra (por ejemplo, de dólares a euros o pesos). El usuario deberá ingresar la cantidad y seleccionar la moneda de destino.
Implementar un juego de adivinanza en el que el programa genera un número aleatorio entre 1 y 100, y el usuario debe adivinarlo. Después de cada intento, el programa debe indicar si el número es mayor o menor que la suposición del usuario.
Diseñar un algoritmo que permita al usuario simular las funciones de un cajero automático. El usuario podrá consultar su saldo, realizar depósitos, retiros y salir del sistema. El programa debe validar que no se pueda retirar más dinero del que hay disponible.
Diseñar un programa que simule el clásico juego del ahorcado. El programa debe seleccionar una palabra secreta y mostrarla como una serie de guiones. El usuario podrá ingresar letras una por una e ir descubriendo la palabra. Si la letra no está en la palabra, se debe descontar una vida. El juego termina cuando el usuario adivina la palabra o se queda sin intentos. Opcional: agregar una lista de palabras para elegir aleatoriamente y mostrar la cantidad de intentos restantes.