Skip to content

Especificación de pseudocódigo

Este documento define la notación de pseudocódigo que se utilizará en la Unidad III.

La finalidad es establecer una notación:

  • sencilla
  • consistente
  • legible
  • independiente de un lenguaje de programación específico
  • adecuada para estudiantes de primer semestre
  • suficiente para representar los algoritmos abordados durante la unidad

El pseudocódigo utilizado en esta unidad no corresponde directamente a la sintaxis de PSeInt ni de ningún lenguaje de programación.

La notación debe permitir que el estudiante se concentre en la lógica de la solución y no en las particularidades sintácticas de un lenguaje.

El pseudocódigo debe cumplir las siguientes características:

  • Cada instrucción debe expresar una acción clara.
  • Las palabras reservadas se escribirán en mayúsculas.
  • Los tipos de datos se escribirán en mayúsculas.
  • Los identificadores seguirán las convenciones definidas en este documento.
  • La indentación debe utilizarse para mostrar la estructura lógica.
  • No se utilizarán instrucciones específicas de un lenguaje de programación.
  • No se utilizarán construcciones propias de PSeInt que no formen parte de esta especificación.
  • La solución debe poder entenderse sin conocer un lenguaje de programación concreto.

Durante esta unidad se utilizarán los siguientes tipos:

TipoUsoEjemplo
ENTERONúmeros sin parte decimal25
REALNúmeros con parte decimal25.50
CADENASecuencia de caracteres“ANA”
CARACTERUn solo carácter‘A’
LOGICOValor verdadero o falsoVERDADERO

Representa números enteros positivos, negativos o cero.

ENTERO edad = 18
ENTERO cantidadPersonas = 25
ENTERO temperatura = -5

Representa números que pueden contener una parte decimal.

REAL precio = 125.50
REAL promedio = 8.75
REAL area = 24.50

Cuando una operación pueda producir un resultado decimal, se debe utilizar REAL cuando corresponda.

Representa texto.

Las cadenas se escriben entre comillas dobles.

CADENA nombre = "ANA"
CADENA ciudad = "CULIACAN"

Representa un único carácter.

Los caracteres se escriben entre comillas simples.

CARACTER inicial = 'A'
CARACTER opcion = 'S'

Representa una condición que solamente puede tener uno de dos valores:

VERDADERO
FALSO

Ejemplo:

LOGICO esMayorEdad = VERDADERO

Un identificador es el nombre utilizado para representar una variable, constante o función.

Los identificadores deben:

  • comenzar con una letra
  • utilizar nombres descriptivos
  • evitar abreviaturas innecesarias
  • no contener espacios
  • no utilizar palabras reservadas
  • respetar la convención correspondiente a su categoría

4.1 Compatibilidad con la traducción a PSeInt

Section titled “4.1 Compatibilidad con la traducción a PSeInt”

Para que la traducción a PSeInt nunca tenga que cambiar un identificador, los identificadores del pseudocódigo tampoco deben:

  • coincidir con una palabra que PSeInt no acepta como identificador
  • diferenciarse de otro identificador del mismo algoritmo únicamente por mayúsculas y minúsculas (PSeInt no distingue entre ellas: iva e IVA son el mismo identificador)

Identificadores rechazados por PSeInt (PSeInt, perfil Flexible):

CategoríaIdentificadores
Operadoresy, o, no, mod
Valores y constantes predefinidaspi, verdadero, falso
Palabras claveproceso, algoritmo, fin, definir, como, leer, escribir, si, sino, mientras, hacer, para, hasta, repetir, segun, dimension, limpiar, esperar
Funciones predefinidasabs, trunc, redon, rc, azar, longitud

La lista no es exhaustiva. Si una traducción produce un error de “Identificador no válido”, el identificador debe cambiarse en el pseudocódigo, no solo en la traducción.

Ejemplos:

No se recomiendaMotivoAlternativa
REAL PI = 3.141592PI es una constante predefinida de PSeIntREAL VALOR_PI = 3.141592
REAL y = 5y es el operador lógico YREAL b = 5 (o un nombre descriptivo)
REAL iva y REAL IVA en el mismo algoritmoSolo difieren en mayúsculasREAL importeIva y REAL TASA_IVA

Las variables utilizarán camelCase.

La primera palabra comienza con minúscula y las palabras siguientes comienzan con mayúscula.

Ejemplos:

cantidadPersonas
precioUnitario
areaTriangulo
nombreEstudiante
promedioFinal
esMayorEdad

No se recomienda:

x
dato2
aux
cantidadpersonas
CANTIDADpersonas
cantidad personas

Las constantes utilizarán SCREAMING_SNAKE_CASE.

Las palabras se escriben en mayúsculas y se separan mediante guiones bajos.

Ejemplos:

VALOR_PI
IVA_GENERAL
LIMITE_MAXIMO
EDAD_MAYORIA
DIAS_SEMANA

Cuando las funciones sean abordadas en la unidad o en unidades posteriores, utilizarán camelCase.

Ejemplos:

calcularArea()
obtenerPromedio()
esPar()
validarEdad()

La declaración de una variable puede incluir su valor inicial.

Formato:

<TIPO> <identificador> = <valor>

Ejemplos:

ENTERO cantidadPersonas = 10
REAL precio = 25.50
CADENA nombre = "ANA"
CARACTER inicial = 'A'
LOGICO esValido = VERDADERO

Una variable también puede declararse sin valor inicial cuando el algoritmo obtendrá posteriormente su valor mediante una entrada o una asignación.

ENTERO edad
REAL promedio
CADENA nombre

Las constantes representan valores que no deben modificarse durante la ejecución del algoritmo.

Formato:

<TIPO> <CONSTANTE> = <VALOR>

Ejemplo:

REAL VALOR_PI = 3.141592
ENTERO EDAD_MAYORIA = 18
REAL IVA_GENERAL = 0.16

Las constantes deben utilizar SCREAMING_SNAKE_CASE.

La entrada representa información que debe proporcionar el usuario o que recibe el algoritmo.

Se utilizará:

Entrada: identificador

Ejemplo:

ENTERO edad
Entrada: edad

Para múltiples datos:

Entrada: nombre
Entrada: edad
Entrada: promedio

Cuando sea conveniente, puede indicarse el mensaje que debe mostrarse antes de solicitar el dato:

Mostrar "Ingrese su edad:"
Entrada: edad

La instrucción oficial para presentar información será:

Mostrar

No se utilizarán indistintamente los términos IMPRIMIR, ESCRIBIR, PRESENTAR o OUTPUT.

La palabra reservada establecida para esta unidad es:

Mostrar

Ejemplos:

Mostrar edad
Mostrar promedio
Mostrar "El resultado es:"
Mostrar "El área es:", area

La asignación utiliza el símbolo:

=

Ejemplos:

area = base * altura / 2
promedio = suma / cantidad
total = precio + impuesto

La expresión situada a la derecha se evalúa y el resultado se almacena en el identificador situado a la izquierda.

OperadorOperaciónEjemplo
+Sumaa + b
-Restaa - b
*Multiplicacióna * b
/Divisióna / b
%Residuoa % b

Ejemplo:

ENTERO residuo
residuo = numero % 2
OperadorSignificado
=Igual a
<>Diferente de
<Menor que
>Mayor que
<=Menor o igual que
>=Mayor o igual que

Ejemplos:

edad >= 18
promedio < 6
numero = 0
nombre <> "ANA"
OperadorSignificado
YConjunción lógica
ODisyunción lógica
NONegación lógica

Ejemplos:

edad >= 18 Y edad <= 60
promedio >= 6 O tieneExtraordinario = VERDADERO
NO esValido

Cuando una expresión contiene varias operaciones, se utilizarán paréntesis para hacer explícito el orden de evaluación cuando exista posibilidad de ambigüedad.

Ejemplo:

promedio = (calificacion1 + calificacion2 + calificacion3) / 3

Se recomienda utilizar paréntesis incluso cuando el orden pueda deducirse fácilmente si estos mejoran la legibilidad.

Todo algoritmo deberá comenzar con Inicio y terminar con Fin.

Inicio
[instrucciones]
Fin

Ejemplo:

Inicio
ENTERO edad
Entrada: edad
Mostrar edad
Fin

Una secuencia es un conjunto de instrucciones que se ejecutan en el orden en que aparecen.

Ejemplo:

Inicio
REAL base
REAL altura
REAL area
Entrada: base
Entrada: altura
area = (base * altura) / 2
Mostrar area
Fin

Formato:

Si <condición> Entonces
[instrucciones]
FinSi

Ejemplo:

Si edad >= 18 Entonces
Mostrar "Es mayor de edad"
FinSi

Formato:

Si <condición> Entonces
[instrucciones]
Sino
[instrucciones]
FinSi

Ejemplo:

Si promedio >= 6 Entonces
Mostrar "Aprobado"
Sino
Mostrar "Reprobado"
FinSi

Cuando se requieran varias condiciones relacionadas que se evalúan en orden (por ejemplo, rangos), puede utilizarse:

Si <condición 1> Entonces
[instrucciones]
Sino Si <condición 2> Entonces
[instrucciones]
Sino
[instrucciones]
FinSi

Ejemplo:

Si promedio >= 9 Entonces
Mostrar "Excelente"
Sino Si promedio >= 8 Entonces
Mostrar "Muy bien"
Sino Si promedio >= 6 Entonces
Mostrar "Aprobado"
Sino
Mostrar "Reprobado"
FinSi

Nota: la cadena Sino Si no es la condicional múltiple del programa oficial (4.2.3). La condicional múltiple selecciona una alternativa según el valor de una variable y se escribe con Segun … FinSegun. Su notación se define en la Unidad IV (especificación de estructuras de la Unidad IV).

La estructura de repetición básica será:

Mientras <condición> Hacer
[instrucciones]
FinMientras

Ejemplo:

Mientras contador <= 10 Hacer
Mostrar contador
contador = contador + 1
FinMientras

Las instrucciones contenidas dentro de una estructura deben utilizar indentación.

Ejemplo:

Si edad >= 18 Entonces
Mostrar "Mayor de edad"
Si tieneIdentificacion = VERDADERO Entonces
Mostrar "Puede continuar"
FinSi
Sino
Mostrar "Menor de edad"
FinSi

La indentación facilita identificar visualmente la estructura del algoritmo.

Cuando sea necesario agregar una aclaración dentro del pseudocódigo se utilizará:

// comentario

Ejemplo:

// Calcular el área del triángulo
area = (base * altura) / 2

Los comentarios deben explicar aspectos relevantes de la solución y no repetir literalmente lo que ya expresa la instrucción.

En las actividades de esta unidad no se utilizarán directamente construcciones específicas de lenguajes de programación como:

scanf
printf
cin
cout
System.out.println
console.log

Tampoco se utilizarán instrucciones propias de PSeInt que no formen parte de esta especificación.

El objetivo es mantener una notación común para todos los ejercicios.

Problema:

Calcular el área de un triángulo a partir de su base y altura.

Inicio
REAL base
REAL altura
REAL area
Mostrar "Ingrese la base:"
Entrada: base
Mostrar "Ingrese la altura:"
Entrada: altura
area = (base * altura) / 2
Mostrar "El área del triángulo es:", area
Fin
ConceptoNotación
InicioInicio
FinFin
EntradaEntrada:
SalidaMostrar
Asignación=
CondicionalSi … Entonces
AlternativaSino
Fin de condicionalFinSi
Condicional encadenadaSino Si … Entonces
RepeticiónMientras … Hacer
Fin de repeticiónFinMientras
Comentario//

El pseudocódigo debe priorizar:

  • claridad de la solución sobre similitud con un lenguaje de programación.

La finalidad del pseudocódigo es representar el algoritmo de manera precisa y comprensible antes de implementarlo en un lenguaje de programación.

27. Relación con las otras representaciones

Section titled “27. Relación con las otras representaciones”

El pseudocódigo de este documento es la representación principal que se enseña y se evalúa. Un mismo algoritmo puede tener, además:

RepresentaciónDocumentoFunción
Diagrama de flujoEspecificación de diagramas de flujoRepresentación gráfica del mismo algoritmo
Traducción a PSeIntTraducción a PSeIntVerificación: ejecución y prueba de resultados

El pseudocódigo no se modifica para adaptarlo a PSeInt ni al diagrama. La traducción se realiza después de construir la solución.