LOGICA DE PROGRAMACION
DESDE CERO
Guia completa: Algoritmos, Pseudocodigo, Variables, Condicionales, Bucles, Arreglos y Funciones
TEMAS DE LA GUIA TEMAS DE LA GUIA (cont.)
Nivel 1 — Algoritmos de la vida real Nivel 7 — Condicionales Si/SiNo
Nivel 2 — Pseudocodigo Nivel 8 — Diagramas de Flujo
Nivel 3 — Expresiones Matematicas Nivel 9 — Ciclo Para (For)
Nivel 4 — Variables y Tipos de Datos Nivel 10 — Ciclo Mientras (While)
Nivel 5 — Identificadores y Constantes Nivel 11 — Arreglos (Arrays)
Nivel 6 — Leer, Asignar y Escribir Nivel 12 — Funciones
NIVEL 1: Algoritmos de la Vida Real
🧠 Concepto
Un algoritmo es un conjunto de pasos ordenados, finitos y claros para resolver un problema. Todo programa
de computadora es, en esencia, un algoritmo.
💡 Analogia
Piensa en una receta de cocina. Si mezclas el orden de los pasos (por ejemplo, sirves antes de
licuar), el resultado sera incorrecto. Lo mismo ocurre con los algoritmos: el ORDEN importa.
🧩 Caracteristicas de un algoritmo
• Tiene un Inicio y un Fin claramente definidos
• Los pasos estan en orden logico
• Cada paso es preciso y sin ambiguedad
• Es finito: siempre termina
• Produce un resultado o salida
🧾 Ejemplo del docente — Hacer un jugo de fruta
Inicio
Lavar la fruta
Pelar la fruta
Cortar la fruta en trozos
Agregar agua al vaso de la licuadora
Licuar la fruta
Servir en el vaso
Fin
Cada linea es una instruccion independiente. El algoritmo es lineal: se ejecuta de arriba hacia abajo. Si
eliminamos 'Lavar la fruta', el jugo podria salir con suciedad. Ningun paso es innecesario.
⚠️Errores comunes
• Saltarse pasos que parecen 'obvios'
• Escribir pasos en orden incorrecto
• Pasos ambiguos — Ejemplo incorrecto: 'hacer algo con la fruta'
• No tener un Inicio o Fin definido
🌍 Caso real
El algoritmo de busqueda de Google, el proceso de pago en una tienda virtual, el desbloqueo de tu celular:
todos son algoritmos. Cada aplicacion que usas funciona gracias a ellos.
🎮 Retos — Escribe el algoritmo para:
1. Cepillarte los dientes
2. Encender una computadora
3. Hacer arroz paso a paso
4. Comprar en una tienda
5. Preparar una pizza
✅ Solucion — Reto 1: Cepillarte los dientes
Inicio
Tomar el cepillo de dientes
Aplicar pasta dental sobre el cepillo
Cepillar los dientes durante 2 minutos
Enjuagar la boca con agua
Escupir el agua
Guardar el cepillo
Fin
NIVEL 2: Pseudocodigo
🧠 Concepto
El pseudocodigo es una forma de escribir algoritmos usando palabras en espanol combinadas con una
estructura logica parecida a la programacion real. No es un lenguaje oficial, pero sigue reglas claras. Permite
planificar la solucion antes de escribir codigo real.
💡 Por que usarlo
Antes de programar en Python, Java o C++, los programadores planifican su solucion en
pseudocodigo. Asi detectan errores logicos antes de escribir una sola linea de codigo real.
🧩 Palabras clave del pseudocodigo
Palabra clave Significado
Inicio / Fin Delimitan el inicio y el final del algoritmo
Leer Recibe un dato del usuario — entrada de datos
Escribir Muestra un dato en pantalla — salida de datos
<- (asignacion) Guarda un valor en una variable. Ej: edad <- 18
Si ... Entonces Condicion: ejecuta si es verdadero
SiNo Ejecuta si la condicion es falsa
FinSi Cierra la estructura condicional
Para ... FinPara Ciclo con contador conocido (for)
Mientras ... FinMientras Ciclo con condicion dinamica (while)
🧾 Ejemplo del docente — Leer nombre y edad
Inicio
Leer nombre
Leer edad
Escribir 'El nombre es: ', nombre
Escribir 'La edad es: ', edad
Fin
'Leer nombre' — el usuario escribe su nombre y se almacena en la variable nombre.
'Leer edad' — el usuario escribe su edad y se almacena en la variable edad.
'Escribir' — muestra el contenido de la variable en pantalla.
Los textos entre comillas simples son mensajes literales (etiquetas).
🎮 Retos
6. Leer nombre y mostrarlo con un mensaje
7. Leer precio de un producto y mostrarlo
8. Leer edad y mostrar: 'Tu edad es: XX'
9. Leer dos numeros y mostrar ambos
10. Leer ciudad y pais, mostrar ambos con etiquetas
✅ Solucion — Reto 5
Inicio
Leer ciudad
Leer pais
Escribir 'Ciudad: ', ciudad
Escribir 'Pais: ', pais
Fin
NIVEL 3: Expresiones Matematicas
🧠 Concepto
Las expresiones matematicas combinan valores, variables y operadores para producir un resultado numerico.
Siguen reglas de prioridad (jerarquia de operadores) que determinan el orden en que se resuelven.
🧩 Tabla de operadores
Operador Nombre Ejemplo Resultado
+ Suma 5+3 8
- Resta 10 - 4 6
* Multiplicacion 4*3 12
/ Division decimal 7/2 3.5
** Potencia 2 ** 3 8
Mod Modulo (residuo) 10 Mod 3 1
Div Division entera 10 Div 3 3
⚠️Prioridad de operadores — de mayor a menor
• 1° — Parentesis: ( )
• 2° — Potencia: **
• 3° — Multiplicacion, Division, Div, Mod: * / Div Mod
• 4° — Suma y Resta: + -
➗ Cuando usar /, Div y Mod
Operador Que devuelve Cuando usarlo
Cuando los decimales importan.
/ Division normal El cociente exacto con decimales
Ej: precio unitario, promedios
Cuantas veces COMPLETAS
Solo la parte entera (sin
Div Division entera cabe algo. Ej: 130 Div 60 = 2
redondear)
minutos
Par/impar, digitos, cambio
Mod Modulo Solo el residuo (lo que sobra)
exacto. Ej: 10 Mod 3 = 1
Comparacion rapida de los tres operadores
Operacion / Div Mod
10 / 3 3.333... 3 1
7/2 3.5 3 1
15 / 5 3.0 3 0
💯 Porcentajes en Programacion
Formula base: porcentaje = (parte / total) * 100 o valor = total * (tasa / 100)
Aplicacion Formula Ejemplo
IVA 12% precio * 1.12 precio+precio*0.12 100 * 1.12 = 112
Descuento 15% precio * (1 - 0.15) 200 * 0.85 = 170
Comision 5% venta * 0.05 500 * 0.05 = 25
Incremento 10% valor * 1.10 300 * 1.10 = 330
🧾 Ejemplo del docente — Resolucion paso a paso
Dados: a = 2, b = 3 — Expresion: x = a + b**2 + (a Mod b Div 2) * a / b
Paso Resolucion
1 - Sustituir valores x = 2 + 3**2 + (2 Mod 3 Div 2) * 2 / 3
2 - Parentesis 2 Mod 3 = 2 / 2 Div 2 = 1 => (1)
3 - Potencia 3**2 = 9 => x = 2 + 9 + 1 * 2 / 3
4 - Mult y Div 1 * 2 = 2 / 2 / 3 = 0.667 => x = 2 + 9 + 0.667
5 - Suma x = 11.667
🎮 Retos — Calcula el resultado:
11. 5+3*2
12. (5 + 3) * 2
13. 10 Mod 3
14. 10 Div 3
15. 2**3 + 1
16. (4 + 2)**2
17. 15 Mod 4 + 2
18. 20 Div 6 * 2
19. (8 Mod 3)**2
20. 6 + 2 * (3**2)
✅ Respuestas
Expresion Resultado y explicacion
5+3*2 11 — primero 3*2=6, luego 5+6=11
(5 + 3) * 2 16 — primero 5+3=8, luego 8*2=16
10 Mod 3 1 — 10 = 3x3 + 1, el residuo es 1
10 Div 3 3 — 10 entre 3 cabe 3 veces exactas
2**3 + 1 9 — 2 al cubo = 8, luego 8+1=9
(4+2)**2 36 — 4+2=6, luego 6 al cuadrado = 36
15 Mod 4 + 2 5 — 15 Mod 4=3, luego 3+2=5
20 Div 6 * 2 6 — 20 Div 6=3, luego 3x2=6
(8 Mod 3)**2 4 — 8 Mod 3=2, luego 2 al cuadrado=4
6+2*(3**2) 24 — 3 al cuadrado=9, 2x9=18, 6+18=24
NIVEL 4: Variables y Tipos de Datos
🧠 Concepto
Una variable es un espacio en la memoria del computador que tiene un NOMBRE y guarda un VALOR. Ese
valor puede cambiar durante la ejecucion del programa (de ahi el nombre 'variable').
📦 Analogia de la caja
Imagina una caja con una etiqueta. La etiqueta es el NOMBRE y lo que hay dentro es el VALOR.
Puedes cambiar el contenido en cualquier momento, pero la caja siempre tiene el mismo nombre.
🧩 Tipos de datos
Tipo Descripcion Ejemplo de asignacion Valor
Entero Numeros sin decimales edad <- 20 20
Real Numeros con decimales precio <- 9.99 9.99
Cadena Texto entre comillas nombre <- 'Ana' 'Ana'
Logico Solo Verdadero o Falso activo <- Verdadero Verdadero
🔧 Variables segun su uso
Tipo Inicializacion Operacion tipica Para que sirve
Contadora cont <- 0 cont <- cont + 1 Contar eventos o repeticiones
Sumar valores para totales o
Acumuladora suma <- 0 suma <- suma + valor
promedios
Bandera flag <- Falso flag <- Verdadero Recordar si un evento ocurrio
Guardar temporalmente un
Auxiliar temp <- a Intercambio o calculo
valor
Encontrar el mayor o menor
Maximo/Minimo max <- primer valor Si n > max -> max <- n
de una serie
⚠️Error comun — la asignacion
En Algebra En Programacion
x = x + 1 -> NO tiene sentido x <- x + 1 -> SI tiene sentido
Toma el valor actual de x, sumale 1 y guardalo en
x no puede ser igual a x+1 al mismo tiempo
x. Si x valia 5, ahora vale 6.
🧾 Ejemplo del docente
nombre <- 'Ana' // Variable de tipo Cadena
edad <- 20 // Variable de tipo Entero
precio <- 9.99 // Variable de tipo Real
activo <- Verdadero // Variable de tipo Logico
cont <- 0 // Variable Contadora — siempre inicia en 0
suma <- 0 // Variable Acumuladora — siempre inicia en 0
encontrado <- Falso // Variable Bandera — siempre inicia en Falso
Prueba de escritorio — seguimiento de variables
La prueba de escritorio simula la ejecucion linea por linea y muestra como cambia cada variable. Es la
herramienta mas importante para verificar un algoritmo.
Ejercicio 1 — Secuencia basica
a <- 5
b <- 3
c <- a + b
a <- a * 2
b <- c - a
c <- a + b + c
Paso Linea Instruccion a b c
— — inicio — sin valor asignado ? ? ?
1 1 a <- 5 5 ? ?
2 2 b <- 3 5 3 ?
3 3 c <- a+b (5+3=8) 5 3 8
4 4 a <- a*2 (5*2=10) 10 3 8
5 5 b <- c-a (8-10=-2) 10 -2 8
6 6 c<-a+b+c (10+(-2)+8=16) 10 -2 16
Valores finales: a = 10 b = -2 c = 16
🎮 Retos
21. Declara y asigna: ciudad, precio, edad, nombre, nota
22. Inicializa un contador y un acumulador correctamente
23. Crea una variable bandera 'encontrado' y explica cuando se activaria
24. Intercambia los valores de a = 10 y b = 25 usando una variable temporal
25. Realiza la prueba de escritorio: x<-3 / y<-x*2 / z<-x+y / x<-z-1
✅ Solucion — Reto 1
ciudad <- 'Quito' // Cadena
precio <- 1.50 // Real
edad <- 18 // Entero
nombre <- 'Carlos' // Cadena
nota <- 9.5 // Real
cont <- 0 // Contadora inicializada en 0
suma <- 0 // Acumuladora inicializada en 0
NIVEL 5: Identificadores y Constantes
Identificadores
Un identificador es el NOMBRE que se le asigna a cualquier elemento dentro de un programa: variables,
constantes, funciones, procedimientos, etc.
🔑 Relacion clave
Toda variable ES un identificador, pero no todo identificador es una variable. El identificador es el
concepto mas amplio — es simplemente el nombre de cualquier cosa en el programa.
Tipo de identificador Descripcion
Variable Nombre de un espacio de memoria cuyo valor PUEDE cambiar
Constante Nombre de un valor fijo que NO cambia durante la ejecucion
Funcion / Proceso Nombre de un bloque de instrucciones reutilizable (nivel avanzado)
Parametro Nombre de un valor que recibe una funcion desde el exterior (nivel avanzado)
🔤 Reglas para nombrar identificadores
Caracteres
Cuales son Ejemplos validos
permitidos
a-z y A-Z (sin tildes, sin n con edad precio nombre notaFinal
Letras
tilde)
Numeros 0-9 (no al inicio del nombre) nota1 grupo2 item3
nota_final precio_total
Guion bajo _ reemplaza los espacios
num_alumnos
Nombre Valido? Razon
notaFinal SI valido camelCase — muy recomendado
nota_final SI valido snake_case — recomendado
nota1 SI valido Letra primero, numero al final
1precio NO invalido Empieza con numero
mi variable NO invalido Tiene espacio
nota-final NO invalido Guion medio no permitido
precio$ NO invalido Simbolo no permitido
📌 Constantes
Una constante es un espacio en memoria que tiene un NOMBRE y un VALOR fijo. A diferencia de una
variable, su valor se asigna UNA SOLA VEZ y no puede cambiar durante la ejecucion del programa.
Por convencion, las constantes se escriben en MAYUSCULAS para distinguirlas de las variables.
Variable Constante
El valor PUEDE cambiar El valor NO puede cambiar
Se asigna con <- Se define una sola vez al inicio
edad <- 18 (puede cambiar luego) PI = 3.1416 (nunca cambia)
🧾 Ejemplo del docente — Constantes en PSeInt
// Las constantes se escriben en MAYUSCULAS por convencion
PI = 3.14159 // valor matematico de pi
IVA = 0.15 // tasa de IVA en Ecuador
MAX_NOTA = 10 // nota maxima permitida
DIAS_SEMANA = 7 // siempre son 7 dias
Leer radio
area <- PI * radio * radio // usa la constante PI
Leer precio
total <- precio * (1 + IVA) // usa la constante IVA
Escribir total
🎮 Retos
NIVEL 6: Leer, Asignar y Escribir
🧠 Concepto
Leer, asignar y escribir son las tres instrucciones fundamentales de todo algoritmo. Representan la entrada de
datos, el procesamiento y la salida de resultados.
Instruccion Descripcion Ejemplo
Entrada: recibe un dato del usuario y Leer edad
Leer <variable>
lo guarda
Proceso: asigna un valor literal o total <- precio * cantidad
<var> <- <expresion>
calculado
Salida: muestra texto o variables en Escribir 'Hola', nombre
Escribir <expresion>
pantalla
🧾 Ejemplo del docente — Flujo Entrada-Proceso-Salida
Problema: Calcular el precio con descuento del 10%.
Inicio
// ENTRADA
Leer precio
// PROCESO
descuento <- precio * 0.10
precioFinal <- precio - descuento
// SALIDA
Escribir 'Precio original: ', precio
Escribir 'Descuento (10%): ', descuento
Escribir 'Precio final: ', precioFinal
Fin
Traza — si el usuario ingresa precio = 100
Variable Valor tras ejecutar la instruccion
precio 100
descuento 100 * 0.10 = 10
precioFinal 100 - 10 = 90
Pantalla muestra Precio original: 100 / Descuento: 10 / Precio final: 90
🎮 Retos
26. Leer nombre y mostrarlo con mensaje
27. Leer precio de un producto y mostrar el precio con IVA del 12%
28. Leer base y altura de un rectangulo, calcular y mostrar el area
29. Leer dos numeros y mostrar su suma, resta y producto
30. Leer el sueldo de un empleado y calcular el 30% de descuento
✅ Solucion — Reto 3: Area de rectangulo
Inicio
Leer base
Leer altura
area <- base * altura
Escribir 'El area del rectangulo es: ', area
Fin
NIVEL 7: Condicionales Si / SiNo
🧠 Concepto
Un condicional permite que el algoritmo tome DECISIONES. Evalua una condicion (verdadera o falsa) y
ejecuta diferentes instrucciones segun el resultado. Solo UNO de los dos bloques se ejecuta, nunca ambos.
Si condicion Entonces
// bloque SI — se ejecuta si la condicion es VERDADERA
SiNo
// bloque NO — se ejecuta si la condicion es FALSA
FinSi
// El SiNo es OPCIONAL. Si no lo pones, cuando la condicion es falsa no ocurre nada.
🧩 Operadores de comparacion
Operador Nombre Ejemplo Cuando es Verdadero
= Igual a edad = 18 Si edad vale exactamente
18
<> Diferente de nota <> 0 Si nota es distinta de 0
> Mayor que saldo > 0 Si saldo es positivo
< Menor que edad < 18 Si es menor de edad
>= Mayor o igual nota >= 7 Si aprueba (7 o mas)
<= Menor o igual temp <= 0 Si hay hielo o menos
🧩 Operadores logicos AND, OR, NOT
Operador Nombre Cuando es Verdadero Ejemplo
AMBAS condiciones deben ser
edad >= 18 Y
Y (AND) Y logico verdaderas
tieneDNI
Al menos UNA condicion es esAdmin O
O (OR) O logico
verdadera esSuperusuario
Invierte el resultado: convierte V en NO (nota >= 7)
NO (NOT) Negacion
F y F en V
🧾 Ejemplo 1 — Mayor o menor de edad
Inicio
Leer edad
Si edad >= 18 Entonces
Escribir 'Eres mayor de edad'
SiNo
Escribir 'Eres menor de edad'
FinSi
Fin
🧾 Ejemplo 2 — Calificacion por rango (Si anidado)
Cuando hay mas de dos posibilidades, se pone un Si dentro del Si No:
Inicio
Leer nota
Si nota >= 9 Entonces
Escribir 'A - Excelente'
SiNo Si nota >= 7 Entonces
Escribir 'B - Aprobado'
SiNo Si nota >= 5 Entonces
Escribir 'C - En recuperacion'
SiNo
Escribir 'D - Reprobado'
FinSi
Fin
🧾 Ejemplo 3 — Condicion compuesta con Y (AND)
Problema: Una persona puede votar si tiene 18 o mas Y tiene cedula.
Inicio
Leer edad
Leer tieneCedula // 1 = si, 0 = no
Si edad >= 18 Y tieneCedula = 1 Entonces
Escribir 'Puede votar'
SiNo
Escribir 'No puede votar'
FinSi
Fin
📋 Estrategias de uso del condicional Si
Situación Cuándo usarla Ejemplo en pseudocódigo Truco clave
Antes de operar con un valor, Si nota >= 0 Y nota <= 10 Siempre valida la entrada
Validar un dato
verificar que sea correcto Entonces antes de calcular
Determinar a qué categoría Si n Mod 2 = 0 Entonces → Usa Mod para verificar paridad
Clasificar un valor
pertenece un dato par o divisibilidad
Ejecutar algo únicamente
Acción solo si se Si saldo > 0 Entonces El SiNo es opcional — si no
cuando la condición es
cumple cobrar hay caso contrario, omítelo
verdadera
Dos opciones Elegir entre exactamente dos Si nota >= 7 → Aprobado / Usa Si — SiNo — FinSi
excluyentes caminos posibles SiNo → Reprobado completo
Anida Si dentro del SiNo.
Más de dos Clasificar en tres o más Si nota >= 9 → A / SiNo Si
Ordena siempre de mayor a
casos categorías >= 7 → B / SiNo → C
menor
Regla de oro: evalúa siempre del caso más restrictivo al más general. Si primero preguntas nota >= 5 y
luego nota >= 9, el segundo nunca se alcanza porque el primero ya lo capturó.
🎮 Retos — Condicionales
31. Determinar si un numero es par o impar (usa Mod)
32. Leer nota y mostrar si aprueba (>= 7) o reprueba
33. Mayor de dos numeros con caso de igualdad
34. Mostrar si un numero es positivo, negativo o cero
35. Descuento del 15% si la compra supera 100
36. [AND] Acceso al sistema: usuario correcto Y contrasena correcta
37. [AND] Numero entre 1 y 100
38. [OR] Notificar si temperatura > 38 O < 0
39. [NOT] Mostrar 'No es adulto' usando NOT
40. [COMPUESTO] Clasificar triangulo: equilatero, isosceles o escaleno
✅ Solucion — Reto 7: Numero entre 1 y 100
Inicio
Leer numero
Si numero > 0 Y numero < 101 Entonces
Escribir 'El numero esta entre 1 y 100'
SiNo
Escribir 'El numero esta fuera del rango'
FinSi
Fin
NIVEL 8: Diagramas de Flujo
🧠 Concepto
Un diagrama de flujo es la representacion GRAFICA de un algoritmo. Usa figuras geometricas estandarizadas
para mostrar el flujo de ejecucion de forma visual. Permite entender un algoritmo de un vistazo.
🧩 Simbolos estandar
Simbolo Forma Nombre y uso Ejemplo
Inicio / Fin — delimita el
Ovalo ( O ) Siempre primero y ultimo
algoritmo
Entrada / Salida — Leer y
Paralelogramo // Leer nombre / Escribir total
Escribir
Proceso / Asignacion — calculos total <- precio *
Rectangulo [ ]
y operaciones cantidad
Decision — condicion Verdadera edad >= 18 ?
Rombo ( <> )
o Falsa
Flujo de control — indica el orden
Flecha -> --> Conecta todos los simbolos
de ejecucion
🎮 Retos — Dibuja el diagrama de flujo para:
41. Determinar si una nota aprueba (>= 7) o reprueba
42. Calcular el area de un triangulo (base * altura / 2)
43. Decidir si una persona puede conducir (>= 18 Y tiene licencia)
44. Mostrar el mayor de tres numeros
45. Calcular el promedio de dos notas y decir si aprueba
46. Mostrar los numeros pares de una serie de N numeros usando Mientras
NIVEL 9: Ciclo Para (For)
🧠 Concepto
El ciclo Para se usa cuando se conoce de antemano CUANTAS VECES se va a repetir un bloque de
instrucciones. El propio ciclo maneja el contador automaticamente.
Para <variable> <- <inicio> Hasta <fin> [Con Paso <incremento>] Hacer
// instrucciones que se repiten
FinPara
// El Paso es opcional. Si se omite, el incremento es +1 automaticamente.
// Ejemplo con paso 2 (solo numeros impares):
Para i <- 1 Hasta 10 Con Paso 2 Hacer
Escribir i // Muestra: 1, 3, 5, 7, 9
FinPara
🧾 Ejemplo 1 — Mostrar del 1 al N
Inicio
Leer n
Para i <- 1 Hasta n Hacer
Escribir i
FinPara
Fin
// Si n = 5, muestra: 1 2 3 4 5
🧾 Ejemplo 2 — Tabla de multiplicar
Inicio
Leer numero
Para i <- 1 Hasta 10 Hacer
resultado <- numero * i
Escribir numero, ' x ', i, ' = ', resultado
FinPara
Fin
🧾 Ejemplo 3 — Promedio de N notas
Inicio
Leer n
suma <- 0
Para i <- 1 Hasta n Hacer
Leer nota
suma <- suma + nota // acumulador
FinPara
promedio <- suma / n
Escribir 'Promedio: ', promedio
Fin
// Si n=3 y notas son 8, 9, 7 => suma=24 => promedio=8
🎮 Retos — Ciclo Para
47. Mostrar los numeros del 1 al N
48. Mostrar los numeros del N al 1 (decreciente con Paso -1)
49. Sumar todos los numeros del 1 al N
50. Calcular el promedio de N notas ingresadas por el usuario
51. Mostrar la tabla de multiplicar de un numero (del 1 al 10)
52. Contar cuantos numeros pares hay entre 1 y N
53. Mostrar solo los multiples de 3 entre 1 y 30
54. Calcular el factorial de un numero N
55. Leer N notas y mostrar cuantas aprueban y cuantas reprueban
56. Mostrar los numeros pares entre 1 y 20 usando Paso 2
✅ Solucion — Reto 4: Promedio de N notas
Inicio
Leer n
suma <- 0
Para i <- 1 Hasta n Hacer
Escribir 'Ingrese la nota ', i
Leer nota
suma <- suma + nota
FinPara
promedio <- suma / n
Escribir 'Promedio: ', promedio
Si promedio >= 7 Entonces
Escribir 'Resultado: Aprobado'
SiNo
Escribir 'Resultado: Reprobado'
FinSi
Fin
NIVEL 10: Ciclo Mientras (While)
🧠 Concepto
El ciclo Mientras repite instrucciones MIENTRAS una condicion sea verdadera. A diferencia del Para, no se
sabe de antemano cuantas veces se ejecutara. Primero evalua la condicion y luego ejecuta. Si desde el inicio
es falsa, el cuerpo no se ejecuta ni una vez.
⚠️ Regla de oro — las 3 partes obligatorias
1. Inicializar la variable ANTES del Mientras. 2. Poner la condicion en el encabezado. 3. Actualizar
la variable DENTRO del cuerpo. Sin el paso 3, el ciclo se vuelve infinito.
// 1. Inicializar (antes del ciclo)
i <- 1
// 2. Condicion en el encabezado
Mientras i <= N Hacer
// instrucciones
// 3. Actualizar (dentro del cuerpo — OBLIGATORIO)
i <- i + 1
FinMientras
🧩 Diferencia clave: Para vs Mientras
Para (For) Mientras (While)
Sabes cuantas repeticiones habra No sabes cuantas repeticiones habra
El contador se maneja automaticamente Debes manejar el contador manualmente
Nunca es infinito si esta bien escrito Puede ser infinito si olvidas actualizar
Ej: recorrer N elementos, tabla de multiplicar Ej: leer hasta que el usuario ingrese 0
🧾 Ejemplo 1 — Pares de una serie de N numeros
Inicio
Leer n
c <- 1 // inicializar
Mientras c <= n Hacer // condicion
Si c Mod 2 = 0 Entonces
Escribir c, ' es par'
FinSi
c <- c + 1 // actualizar — obligatorio
FinMientras
Fin
Traza con N = 6
c c Mod 2 c <= 6 ? Resultado
1 1 — impar VERDADERA impar — no se muestra
2 0 — par VERDADERA PAR — escribe: 2 es par
3 1 — impar VERDADERA impar — no se muestra
4 0 — par VERDADERA PAR — escribe: 4 es par
5 1 — impar VERDADERA impar — no se muestra
6 0 — par VERDADERA PAR — escribe: 6 es par
7 — 7<=6 FALSA Sale del ciclo
🧾 Ejemplo 2 — Leer notas hasta ingresar -1 (centinela)
Inicio
suma <- 0
cuenta <- 0
Leer nota
Mientras nota <> -1 Hacer
suma <- suma + nota
cuenta <- cuenta + 1
Leer nota // nueva lectura dentro del ciclo
FinMientras
Si cuenta > 0 Entonces
promedio <- suma / cuenta
Escribir 'Promedio: ', promedio
SiNo
Escribir 'No se ingresaron notas'
FinSi
Fin
// El usuario escribe -1 para terminar. Este patron se llama 'valor centinela'.
🎮 Retos — Ciclo Mientras
57. Mostrar numeros del 1 al 10 usando Mientras
58. Sumar numeros ingresados hasta que el usuario ingrese 0
59. Calcular el promedio de notas ingresadas (centinela = -1)
60. Contar cuantos numeros positivos ingresa el usuario (para con 0)
61. Mostrar la cuenta regresiva desde N hasta 1
62. Leer contrasena hasta que sea correcta (maximo 3 intentos)
63. Encontrar el mayor numero ingresado (para con -1)
64. Sumar solo los numeros pares ingresados (para con 0)
✅ Solucion — Reto 7: Mayor numero ingresado
Inicio
mayor <- -999999
Leer numero
Mientras numero <> -1 Hacer
Si numero > mayor Entonces
mayor <- numero
FinSi
Leer numero
FinMientras
Si mayor <> -999999 Entonces
Escribir 'El mayor fue: ', mayor
SiNo
Escribir 'No se ingresaron numeros'
FinSi
Fin
NIVEL 11: Arreglos (Arrays)
🧠 Concepto
Un arreglo es una coleccion de valores del MISMO TIPO almacenados bajo UN SOLO NOMBRE. Se accede a
cada elemento mediante un INDICE (posicion). Es como una fila de cajas numeradas.
📦 Analogia visual
Variable normal: una sola caja (nota = 8). Arreglo: una fila de cajas numeradas — notas[0]=8,
notas[1]=9, notas[2]=7, notas[3]=10, notas[4]=6. El indice siempre empieza en 0.
🧩 Reglas importantes
• El indice empieza en 0 — el primer elemento es arreglo[0]
• Un arreglo de tamanio 5 tiene indices del 0 al 4
• Todos los elementos son del mismo tipo de dato
• Se recorren con ciclos Para o Mientras
Arreglo notas[5] // Declara 5 elementos: posiciones 0 a 4
notas[0] <- 8 // Asignacion directa
notas[1] <- 9
notas[2] <- 7
Escribir notas[0] // Muestra: 8
🧾 Ejemplo 1 — Llenar y mostrar un arreglo
Inicio
Leer n
Arreglo notas[n]
// Llenar el arreglo (entrada)
Para i <- 0 Hasta n-1 Hacer
Escribir 'Ingrese la nota ', i+1
Leer notas[i]
FinPara
// Mostrar el arreglo (salida)
Para i <- 0 Hasta n-1 Hacer
Escribir 'Nota ', i+1, ': ', notas[i]
FinPara
Fin
🧾 Ejemplo 2 — Promedio y nota mas alta
Inicio
Leer n
Arreglo notas[n]
suma <- 0
Para i <- 0 Hasta n-1 Hacer
Leer notas[i]
FinPara
mayor <- notas[0] // supongo que el primero es el mayor
Para i <- 0 Hasta n-1 Hacer
suma <- suma + notas[i]
Si notas[i] > mayor Entonces
mayor <- notas[i]
FinSi
FinPara
promedio <- suma / n
Escribir 'Promedio: ', promedio
Escribir 'Nota mas alta: ', mayor
Fin
🎮 Retos — Arreglos
65. Llenar un arreglo de N numeros y mostrarlos todos
66. Calcular el promedio de N notas en un arreglo
67. Encontrar el mayor numero de un arreglo
68. Encontrar el menor numero de un arreglo
69. Contar cuantos elementos del arreglo son mayores al promedio
70. Mostrar el arreglo en orden inverso (del ultimo al primero)
71. Buscar si un valor especifico existe en el arreglo
72. Calcular la suma de los elementos en posiciones pares (0, 2, 4...)
73. Llenar dos arreglos A y B, sumar elemento a elemento y guardar en C
74. [AVANZADO] N notas: calcular promedio, mayor, menor, aprobados y reprobados
✅ Solucion — Reto 10: Analisis completo de notas
Inicio
Leer n
Arreglo notas[n]
suma <- 0 / aprobados <- 0 / reprobados <- 0
Para i <- 0 Hasta n-1 Hacer
Leer notas[i]
FinPara
mayor <- notas[0] / menor <- notas[0]
Para i <- 0 Hasta n-1 Hacer
suma <- suma + notas[i]
Si notas[i] > mayor Entonces mayor <- notas[i] FinSi
Si notas[i] < menor Entonces menor <- notas[i] FinSi
Si notas[i] >= 7 Entonces
aprobados <- aprobados + 1
SiNo
reprobados <- reprobados + 1
FinSi
FinPara
promedio <- suma / n
Escribir '===== REPORTE DE NOTAS ====='
Escribir 'Promedio: ', promedio
Escribir 'Nota alta: ', mayor
Escribir 'Nota baja: ', menor
Escribir 'Aprobados: ', aprobados
Escribir 'Reprobados: ', reprobados
Fin
NIVEL 12: Funciones
🧠 Concepto
Una funcion es un BLOQUE DE CODIGO con nombre propio que realiza una tarea especifica. Se define UNA
VEZ y se puede usar cuantas veces necesites desde cualquier parte del algoritmo.
🔧 Analogia — la licuadora
Nombre = nombre del electrodomestico. Parametros = ingredientes que introduces. Cuerpo = lo
que hace internamente. Retorno = lo que sale por la boquilla. Llamada = cuando presionas el
boton.
🧩 Elementos de una funcion
Elemento Descripcion
Nombre Identifica la funcion. Debe ser descriptivo: calcularPromedio, esPar
Parametros Variables de entrada que recibe al ser llamada. Puede tener cero o mas.
Cuerpo Las instrucciones que ejecuta. Va entre Funcion y FinFuncion.
Retornar Devuelve el resultado al lugar donde se llamo la funcion.
Llamada Cuando usas el nombre de la funcion para ejecutarla.
💡 Diferencia: parametro vs argumento
PARAMETRO: variable en la DEFINICION de la funcion. Ejemplo: Funcion sumar(a, b) — a y b
son parametros. ARGUMENTO: valor real al LLAMAR la funcion. Ejemplo: sumar(5, 3) — 5 y 3
son argumentos.
🧾 Ejemplo 1 — Funcion sin parametros ni retorno
// DEFINICION
Funcion mostrarBienvenida()
Escribir '================================'
Escribir ' Bienvenido al sistema '
Escribir '================================'
FinFuncion
// LLAMADA — se puede llamar cuantas veces quieras
Inicio
mostrarBienvenida() // primera llamada
// ... resto del programa ...
mostrarBienvenida() // segunda llamada al final
Fin
🧾 Ejemplo 2 — Funcion con parametros Y retorno
// DEFINICION
Funcion sumar(a, b)
resultado <- a + b
Retornar resultado
FinFuncion
// LLAMADA — el valor retornado se guarda en una variable
Inicio
x <- sumar(5, 3) // x = 8
y <- sumar(10, 20) // y = 30
z <- sumar(x, y) // z = 38 (llamadas anidadas)
Escribir 'Suma: ', z
Fin
🧾 Ejemplo 3 — Funcion que retorna Verdadero o Falso
Funcion esPar(numero)
Si numero Mod 2 = 0 Entonces
Retornar Verdadero
SiNo
Retornar Falso
FinSi
FinFuncion
Funcion esMayorDeEdad(edad)
Retornar edad >= 18 // retorno directo de una expresion logica
FinFuncion
Inicio
Leer num
Si esPar(num) Entonces
Escribir num, ' es par'
SiNo
Escribir num, ' es impar'
FinSi
Fin
⚠️Errores comunes en funciones
• Definir la funcion pero olvidar LLAMARLA — la funcion no se ejecuta sola
• Olvidar el Retornar en funciones que deben devolver un valor
• Pasar los argumentos en orden incorrecto: sumar(b, a) en vez de sumar(a, b)
• Usar variables del programa principal dentro de la funcion sin pasarlas como parametros
• Crear una funcion que hace demasiadas cosas — cada funcion debe tener UNA responsabilidad
• Confundir Retornar con Escribir: Retornar devuelve el valor, Escribir solo lo muestra
🎮 Retos — Funciones
75. Funcion mostrarLinea() que imprima 30 guiones
76. Funcion saludar(nombre) que muestre 'Hola, [nombre]!'
77. Funcion cuadrado(n) que retorne n * n
78. Funcion mayorDeEdad(edad) que retorne Verdadero o Falso
79. Funcion calcularIVA(precio) que retorne el 12% del precio
✅ Solucion — Reto 5: calcularIVA
Funcion calcularIVA(precio)
iva <- precio * 0.12
Retornar iva
FinFuncion
Inicio
Leer precio
iva <- calcularIVA(precio)
total <- precio + iva
Escribir 'Precio base: ', precio
Escribir 'IVA (12%): ', iva
Escribir 'Total: ', total
Fin
CONCLUSION FINAL
Has completado la Guia de Logica de Programacion desde Cero
Tema Lo que aprendiste
Pensar en pasos ordenados y precisos para
Nivel 1 — Algoritmos
resolver problemas
Nivel 2 — Pseudocodigo Escribir logica en lenguaje natural estructurado
Usar operadores y respetar la jerarquia de
Nivel 3 — Expresiones
operaciones
Crear y manipular espacios de memoria para
Nivel 4 — Variables
guardar datos
Nombrar correctamente variables, constantes y
Nivel 5 — Identificadores
elementos del programa
Leer datos del usuario y mostrar resultados en
Nivel 6 — Entrada/Salida
pantalla
Tomar decisiones con Si/SiNo y operadores AND
Nivel 7 — Condicionales
OR NOT
Representar algoritmos visualmente con simbolos
Nivel 8 — Diagramas
estandar
Nivel 9 — Ciclo Para Repetir instrucciones un numero conocido de veces
Repetir instrucciones mientras una condicion sea
Nivel 10 — Ciclo Mientras
verdadera
Almacenar colecciones de datos y procesarlos con
Nivel 11 — Arreglos
ciclos
Organizar el codigo en bloques reutilizables con
Nivel 12 — Funciones
nombre propio
Con esta base estas listo para aprender un lenguaje real: Python, Java, C++ o JavaScript.