2.2.3.- Tablas de decisión. Una tabla de decisión es una representación en la que se distinguen cuatro zonas: Condiciones. Es un vector columna donde figuran las condiciones que intervienen en el problema. Ej: trabaja? tiene hijos? Acciones. Es un vector columna en el que aparecen las acciones a realizar. Si en algún caso, para un estado determinado de las condiciones, se realizan varias acciones y éstas se tienen que ejecutar en un orden preestablecido, figurarán en ese orden, de arriba abajo. Ej: paga extra, devolver dinero, Entrada de condiciones. Es una matriz de tantas filas como condiciones y tantas columnas como situaciones distintas se pueden presentar. Salida de acciones. Matriz en la que figuran tantas filas como acciones y tantas columnas como situaciones distintas se pueden presentar. Cada casilla de la matriz indica el tratamiento a realizar para una situación concreta. La indicación se hace con una X. Gráficamente: CONDICIONES ENTRADA DE CONDICIONES ACCIONES SALIDA DE ACCIONES Por ejemplo, supongamos que tenemos dos condiciones que se evalúan con se cumple (S) o no se cumple (N) y cinco acciones que se ejecutarán según la siguiente representación: 17
hace buen tiempo? S S N N hay buena programación en la tele? S N S N Va de pesca X X Ve la tele X Va al cine X Con su familia X X Con sus amigos X X Cada columna de la entrada de condiciones, correspondiente a un determinado estado de las mismas, se denomina situación. Cada columna de la salida de acciones se denomina tratamiento. A una situación junto con su tratamiento se denomina regla de decisión. UTILIDAD DE LAS TABLAS DE DECISIÓN: 1) Se usa para traducir textos administrativos, legislativos, que describen las reglas de gestión de procedimientos a automatizar. 2) Estudio de los posibles eventos de usuario en una aplicación para interfaz gráfica. 3) Posible consideración de la división de un problema complejo en subproblemas. 2.2.4.- Diagramas de Nassi-Schneiderman o de Chapin. Es similar a un diagrama de flujo, pero sin líneas y, donde los símbolos son cajas o bloques contiguos. SIMBOLOS USADOS EN ESTOS DIAGRAMAS: 1º) SÍMBOLOS DE OPERACIÓN O PROCESO: Acción 1... Acción N 18
2º) SIMBOLOS DE INSTRUCCIONES DE CONTROL (alternativas y bucles): sí condición no expresión e1 e2 e3...en-1 otro acc 1 acc 2 ac 1 ac 2 ac 3... ac n-1 ac n Decisión de 2 salidas Decisión con múltiples salidas o de n salidas MIENTRAS cond HACER REPETIR acción FIN_MIENTRAS Bucle MIENTRAS acción MIENTRAS condición Bucle REPETIR- MIENTRAS REPETI PARA x=x 0,x y,y acción acción Ejemplos: HASTA condición Bucle REPETIR-HASTA FIN_PARA Bucle PARA 1.- Realizar un diagrama de NASSI-SCHNEIDERMAN para un programa que pida 3 números y calcule la media media MEDIA DE 3 NÚMEROS Escribir media Leer A, B, C (A+B+C) 3 19
2.- Realizar el diagrama de NASSI-SCHNEIDERMAN para un programa que lea 2 números y después escriba el mayor seguido del menor. MAYOR DE 2 NÚMEROS Leer A, B A>B SÍ NO Escribir A, B Escribir B, A 3.- Realizar un diagrama de NASSI-SCHNEIDERMAN para un programa que escriba los números del 1 al 20 NÚMEROS DEL 1 AL 20 N 1 MIENTRAS N<=20 HACER: Escribir N N N+1 FIN_MIENTRAS 4.- Realizar un diagrama de NASSI-SCHNEIDERMAN para un programa que calcule la raíz cuadrada de cualquier número entero. SÍ RAIZ CUADRADA Leer N N<0 NO Escribir solución irreal Raiz Escribir Raiz N 20
2.3.-OBJETOS o ELEMENTOS DE UN PROGRAMA QUÉ SON? Los objetos de un programa son elementos a través de los cuales podemos almacenar datos y resultados de operaciones que conducen a la resolución de un problema. Son objetos de un programa todos los datos y resultados manipulados por las instrucciones de un programa En un programa la información se guarda en varios tipos de elementos, entre los que se encuentran las CONSTANTES y VARIABLES. Los elementos que almacenan la información poseen TRES CARACTERÍSTICAS BÁSICAS que son: 1) NOMBRE o IDENTIFICADOR: Son palabras creadas por el programador para dar nombre a los objetos y demás elementos que necesita declarar un programa. Servirá para identificar a un objeto. El nombre de un elemento: - se formará con letras, números y/o guiones (_), empezando siempre con una letra, - y no puede tener espacios por el medio. - El número máximo de caracteres que se pueden emplear depende del compilador utilizado. - El nombre asignado conviene que tenga relación con la información que contiene, pudiéndose emplear abreviaturas que sean significativas 2) TIPO DE DATOS QUE ALMACENA: Es el conjunto de valores que puede tomar el elemento, es decir, la variable o constante. Pueden ser valores numéricos enteros, reales,... 21
3) VALOR: Es la información que contiene el elemento. Para asignar los valores a los elementos se usan las INSTRUCCIONES DE ASIGNACIÓN. Por ejemplo, si declaramos el elemento variable dia de tipo entero, podríamos asignarle el valor 7 con la siguiente instrucción: dia 7 Con esto, el elemento dia almacena el valor 7. A un elemento de un tipo determinado no se le pueden asignar valores de otro tipo. Por ejemplo, si el elemento saldo es de tipo número real, sería incorrecto escribir la instrucción: Saldo H pues H es un carácter. CUÁLES SON? Una clasificación de los objetos más importantes que usan los programas sería: a) CONSTANTES: Son objetos cuyo valor no varía durante la ejecución de un programa. Las constantes pueden ser: Enteras Reales Alfanuméricas (es un carácter válido encerrado entre apóstrofos ). Cadena de caracteres (son varios caracteres entre comillas dobles). Ejemplos: PI = 3.1416 constante numérica real 0.85 constante. numérica real 1E+12 constante numérica real a constante carácter b) VARIABLES: Son objetos cuyo valor puede ser modificado durante la ejecución de un programa. Estos objetos deben ser definidos con un identificador y un tipo de dato. 22
El identificador es elegido por el programador y permite referenciar la variable para su uso en el programa pudiéndose modificar su valor. El tipo de dato permite determinar el tamaño de la variable en memoria. Según el tipo de dato que almacenan las variables pueden ser: Numéricas: enteras y reales Carácter Cadenas de texto Lógicas: almacenan valores de tipo verdadero o falso Antes de utilizar una variable en el programa, esta debe contener un valor que puede ser asignado inicialmente o bien durante la ejecución del programa. Ejemplo: a = 5 a = a * 6 c) DATOS: Son los objetos que se almacenan en las variables y constantes. En realidad es cualquier información necesaria para el programa y susceptible de ser guardada. Los tipos de datos más importantes y usados son: Datos básicos Numéricos No numéricos Entero Real Lógico Carácter Puntero 23
Datos derivados o compuestos Estáticos Dinámicos Externos Estructuras o registros Tablas (de 1 o más dimensiones) Lista Pila Cola Árbol Grafo Ficheros C.1) BÁSICOS: C.1.1) NUMÉRICOS: Se usan para representar datos formados exclusivamente por números (0, 1, 2, 4.5, etc). Se dividen en: - NUMÉRICOS ENTEROS: Sirve para representar número enteros. Pueden llevar o no el signo. Su rango depende del computador y del lenguaje de programación. Ejemplo: +58, -458, 9876 - NUMÉRICOS REALES: Se usa para representar números con parte decimal o los números enteros muy grandes o muy pequeños que se salgan del rango de los enteros. Se pueden representar de dos formas: Punto decimal: emplea los dígitos del 0 al 9 con su signo correspondiente y un punto para separar la parte entera de la decimal. Ejemplo: -82.75, +345.87 Científica o exponencial: Utiliza el formato mantisaecaracterística, donde: Mantisa es un número real. E representa la base decimal. Característica es el exponente correspondiente a un número entero con su signo. Ejemplos: 2.5E3, -0.75E-2 Ejemplo: 8999.393, -87.55, 3.4E+1 24
C.1.2) NO NUMÉRICOS: C.1.2.1 CARÁCTER: Se emplea para representar un carácter dentro de un conjunto definido por el fabricante del ordenador, de tal forma que cada carácter se corresponde con un número entero sin signo según un determinado código. Se usan mediante apóstrofo o comillas simples. Por ejemplo: N, /, a En algunos lenguajes (como en COBOL) se incluye como tipo de datos básico el tipo alfanumérico, que es una cadena de caracteres formada por un número determinado de caracteres y en otros lenguajes (como en C) se considera este tipo de dato como un vector de caracteres. C.1.2.2) LÓGICO O BOOLEANO: se emplea para representar dos valores opuestos, Verdadero o Falso, True o False, V o F, 1 o 0. Internamente se considera 1 como verdadero y 0 como falso. C.1.2.3) PUNTEROS: Se emplea para contener la dirección de memoria de otra variable C.2) DERIVADOS O COMPUESTOS: C.2.1) ESTÁTICOS: Residen en la memoria principal del ordenador. Son aquellos cuyo tamaño queda definido en la compilación del programa y no se puede modificar durante la ejecución del mismo. C.2.2) DINÁMICOS: Residen en la memoria principal del ordenador. Son aquellos cuyo tamaño puede ser modificado durante la ejecución del programa. 25
C.2.3) EXTERNOS: son los que residen en un soporte externo a la memoria principal, es decir memoria auxiliar (disco, lápiz memoria, ) d) EXPRESIONES: Son un conjunto de datos (operandos) y operadores que incluyen el cálculo necesario para obtener un resultado. Este resultado puede ser un valor, una constante, una función o una combinación de valores. Los operandos pueden ser también valores retornados por funciones. En la obtención del resultado se debe tener en cuenta el orden de prioridad de los operadores. Según sea el resultado que producen y los operadores que utilizan se clasifican en: TIPOS DE EXPRESIONES: 1) Numéricas: Su resultado es numérico y utilizan operandos y operadores numéricos. Ejemplo: 2 * PI * radio 2) Alfanuméricas: Su resultado es una cadena de caracteres y usa operandos alfanuméricos. Ejemplo: Don + nombre + apellidos donde: nombre y apellidos son 2 variables de tipo cadena caracter 3) Lógicas o booleanas: Su resultado es verdadero o falso y utilizan operadores relacionales y lógicos. Ejemplo: A > 25 AND (B + C) < D/2 26
e) OPERADORES: Son símbolos que sirven para conectar los datos haciendo diversas clases de operaciones. Es decir, se usan para construir expresiones. Hay varios tipos de operadores en función de las operaciones que vayan a realizar y se resumen en el siguiente cuadro: TIPO DE OPERADOR SÍMBOLO USADO Y SIGNIFICADO (depende del lenguaje de programación. Se muestran los más conocidos para cada tipo de operador) Aritméticos **, ^ Potencia * Producto / División div, \ %,mod División entera Módulo (resto de la división entera) + Signo positivo o suma - Signo negativo o resta Alfanuméricos + Concatenación - Concatenación eliminando espacios EJEMPLO DE USO 2 ^3 = 8 5 / 2 = 2.5 5 mod 2 = 1 DON + JOSE = = DON JOSE Relacionales ==,= Igual a!=,<> Distinto a < Menor que <= Menor o igual que > Mayor que >= Mayor o igual que 5 > = 2 es Verdadero Lógicos!, NOT, no Negación &&, AND, y Conjunción, OR, o Disyunción V y F es Falso ORDEN DE PRIORIDAD DE LOS OPERADORES: Dentro de las expresiones hay que tener un orden de prioridad de los operadores, que depende del lenguaje de programación que se vaya a usar, pero que de forma general se puede establecer, de MAYOR A MENOR PRIORIDAD de la siguiente forma: 27
1 - Paréntesis 2 - Signo 3 - Negación 4 - Potencia 5 - Producto, división y módulo 6 - Suma y resta 7 - Concatenación 8 - Operadores relacionales 9 - Conjunción 10 - Disyunción Los operadores con igual prioridad se evalúan de izquierda a derecha. Ejemplos de expresiones y cómo se evalúan: ((2+4)2-3) = 33 5 + 3 * 8 = 29 3 + 5 * 2 2 = 23 3 + (5 * 2) 2 = 103 (3 + 5) * 2 2 = 32 5<3 y 8<=12 es Falso f) INSTRUCCIONES: Son símbolos especiales de un lenguaje de programación que representan estructuras de procesamiento y de definición de elementos de programación. Toda instrucción se caracteriza por tener una duración limitada, un inicio (que será el final de la anterior) y un final (que será el comienzo de la siguiente). Ejemplos de 3 instrucciones en C: printf( hola que tal ); if (edad>12) printf ( hola joven ) else printf( hola niño ); edad= edad + 23; 28
2.4.-ESTRUCTURA GENERAL DE UN PROGRAMA: Partes de un programa, tipos de instrucciones y variables auxiliares 2.4.1.-PARTES DE UN PROGRAMA Un programa es un conjunto de instrucciones escritas en un lenguaje de programación y en un determinado orden que nos llevan a resolver un determinado problema. Todo programa, en general contiene dos bloques bien diferenciados: Bloque de declaraciones. Bloque de instrucciones. Dentro del bloque de instrucciones de un programa podemos diferenciar 3 partes fundamentales: entrada de datos, proceso y salida de datos. Entrada De datos Proceso Salida de datos En algunos casos estas tres partes están perfectamente delimitadas, pero a veces las instrucciones quedan entremezcladas a lo largo del programa. 2. 4.1.1.- Entrada de datos. Lo constituyen todas aquellas instrucciones que toman datos de un dispositivo externo (teclado, ) almacenándolos en memoria central para que puedan ser procesados. 2.4.1.2.- Proceso. Está formado por las instrucciones que modifican los objetos a partir de un estado inicial hasta el estado final, dejando estos disponibles en la memoria central. Es decir es el proceso que transforma los datos de entrada en datos de salida. 29
2.4.1.3.- Salida de datos. Son el conjunto de instrucciones que toman los datos finales de la memoria central y la envían a los dispositivos externos (impresora, pantalla, ). 2.4.2.-CLASIFICACIÓN DE LAS INSTRUCCIONES Una instrucción puede ser considerada como un hecho o suceso que genera unos cambios previstos en la ejecución de un programa. Toda instrucción se caracteriza por tener una: - duración limitada, - donde el inicio de la misma viene delimitado por el final de la anterior instrucción, - y donde el final de la misma viene delimitado por el comienzo de la siguiente instrucción. Las instrucciones dependen de cada lenguaje. Pero hay una serie de instrucciones que soportan todos los lenguajes y que son las que veremos. TIPOS DE INSTRUCCIONES: - Instrucciones de declaración o definición de datos - Instrucciones primitivas - Instrucciones de control 1) INSTRUCCIONES DE DECLARACIÓN ( o definición de datos): Se usan para anunciar el uso de objetos en un programa (variables, constantes, estructuras complejas de datos,...) y el nombre que tendrán dentro de él y de qué tipo serán. Es necesario indicárselo al procesador para que sepa cuánta memoria debe reservar para ese objeto. 2) INSTRUCCIONES PRIMITIVAS Son instrucciones sencillas que se ejecutan de manera inmediata, es decir, no dependen de nada más para ejecutarse. Se consideran las de : asignación y las de entrada y salida. 30
TIPOS DE INSTRUCCIONES PRIMITIVAS: 2.1) DE ENTRADA: Son las instrucciones encargadas de recoger datos de un periférico de entrada (teclado) y seguidamente almacenarlos en memoria en una variable previamente definida (con una instrucción de declaración), para la cual se ha reservado suficiente espacio en memoria. Ejemplo: LEER num Ordinograma Pseudocódigo Leer variable Leer variable Ordinograma Pseudocódigo Leer Lista de variables Leer var1, var2, var3,.. 2.2) DE SALIDA: Son las instrucciones encargadas de recoger datos de una variable o los resultados obtenidos de expresiones evaluadas y depositarlos en un periférico de salida (pantalla). Ejemplo: ESCRIBIR num Ordinograma Pseudocódigo Escribir variable Visualizar variable 31
Escribir expresión Visualizar expresión 2.3) DE ASIGNACIÓN: Son las instrucciones encargadas de almacenar (o asignar) el resultado de una expresión o de un objeto cualquiera en una variable previamente definida (con una instrucción de declaración). Debe tenerse en cuenta, que el tipo de la variable sobre la que se realizará la asignación debe ser del MISMO TIPO que el valor que se le va a asignar. Ejemplo: a 2 * 3 + 4 Ordinograma pseudocódigo Nombre_variable expresión Nom_variable expresión La operación de asignación es destructiva ya que al almacenarse un nuevo valor en la variable se borra el que tenia antes. Ejemplo: ordinograma pseudocódigo X = 1 X 1 A = 4 A 4 X A + 2 X = A + 2 32
Es posible utilizar el mismo nombre de variable en ambos lados del operador de asignación. Ejemplo: ordinograma pseudocódigo X = 1 X 1 A = 4 A 4 X = X + A X X + A Las sentencias de asignación se clasifican según el tipo de expresión en: Asignación aritmética: nota suma + 3 Asignación lógica: numero 3 > 5 Asignación alfanumérica: dia hoy es martes 3) INSTRUCCIONES DE CONTROL Son instrucciones que evalúan una expresión lógica y en función de su valor, alteran el orden de ejecución normal de las instrucciones del programa o controla el orden de ejecución de otras instrucciones. TIPOS DE INSTRUCCIONES DE CONTROL: 3.1) ALTERNATIVAS: Controlan la ejecución o la no ejecución de uno o varios bloques de instrucciones dependiendo del cumplimiento o no de una condición o del valor de una expresión. Pueden ser: 33
3.1.1) SIMPLE: (SI ENTONCES) SÍ acciones SÍ cond NO SI condición ENTONCES acción 1 acción 2... FIN_SI 3.1.2) DOBLE: (SI ENTONCES SINO) Si se cumple una condición se ejecutan unas instrucciones y si no se cumple se ejecutan otras. SI condición ENTONCES SÍ cond NO acción 1 acción 2... SINO acciones SÍ acciones NO acción 3 acción 4... FIN_SI 3.1.3) MÚLTIPLE: (SEGÚN_VALOR): Controla la ejecución de varios bloques de instrucciones según sea el valor final de una expresión, de forma que cada bloque está ligado a un solo valor posible de la expresión. Ordinograma: expresión v1 v2 v3... vn acción v1 acción v2 acción v3... acción vn 34
Pseudocódigo: SEGÚN_VALOR expresión valor 1: instrucción 1 valor 2: instrucción 2... valor n: instrucción n sino: otra instrucción FIN_SEGUN_VALOR 3.2) REPETITIVAS: Controlan la repetición de una o más instrucciones un número determinado de veces, o hasta, o mientras se cumpla una condición. DEBE HABER UNA CONDICIÓN DE PARADA (EN OTRO CASO, LA REPETICIÓN ES INFINITA) Existen varios tipos de estructuras repetitivas: 3.2.1) MIENTRAS: El conjunto de instrucciones se ejecuta mientras se cumpla la condición, que será evaluada siempre antes de cada repetición. Por tanto: La condición se verifica ANTES de cada repetición Permite repetir un bloque de instrucciones DE CERO A INFINITAS VECES Ordinograma: Pseudocódigo: cond SÍ acciones NO MIENTRAS condición HACER: acción 1 acción 2... FIN_MIENTRAS 35
3.2.2) REPETIR: Hay 2 versiones: REPETIR-MIENTRAS y REPETIR-HASTA. La condición se verifica DESPUÉS de cada repetición en ambas versiones. Permite repetir un bloque de instrucciones DE 1 A INFINITAS veces REPETIR - MIENTRAS acciones cond SÍ NO REPETIR acción 1 acción 2... MIENTRAS condición REPETIR - HASTA acciones cond NO SÍ REPETIR acción 1 acción 2... HASTA condición 36
3.2.3) PARA O FOR: El bloque de instrucciones se repite un nº determinado de veces que queda definido en la cabecera del bucle. Esta estructura lleva asociada una variable que actúa como contador. El contador parte de un valor inicial y se irá incrementando en cada repetición hasta llegar al valor final que es cuando se detiene la ejecución. A este contador se le llama variable de control. Ordinograma pseudocódigo Vcont = Vi, Vf, n PARA Vcont desde Vi hasta Vf,Inc=n HACER Instrucción 1 Instruccion 2... Bloque de instrucciones instrucción n FIN_PARA Vcont = variable de control Vi = valor inicial Vf = valor final Inc = incremento Nº de repeticiones = (Vf Vi) div Inc + 1 3.3) DE RUPTURA DE SECUENCIA O SALTO: Son aquellas instrucciones que alteran o rompen la secuencia normal de ejecución de un programa enviándolo a una etiqueta y perdiendo toda posibilidad de retornar el control de ejecución del programa al punto de llamada. EN PROGRAMACIÓN ESTRUCTURADA, NO SE DEBEN USAR. 37
Hay 2 tipos: Salto incondicional Salto condicional: Se altera si se cumple una condición asociada a la propia instrucción 2.4.3.-VARIABLES AUXILIARES: contadores, acumuladores e indicadores QUÉ SON? Son variables cuyos valores van a variar a lo largo de la ejecución del programa. Los valores que van tomando siempre estarán en relación con el valor anterior. TIPOS Contadores Acumuladores Indicadores 2.4.3.1.-CONTADORES Son variables numéricas cuyo valor se incrementa o decrementa EN UNA DETERMINADA CANTIDAD FIJA E INVARIABLE. Todo contador debe tomar un valor inicial antes de ser usado. Normalmente se inicializan a 0. contador valor_inicial 38
Son variables que se usan para contar: en las estructuras repetitivas para contar el nº de veces que queremos se ejecute un conjunto de instrucciones o para contar un suceso particular solicitado por el enunciado del problema. Cada vez que queramos que se incremente o decremente el valor del contador se pondrá la siguiente instrucción: contador contador ± cantidadfija EJEMPLO DE USO Queremos hacer un programa que nos diga cuantos alumnos mayores de 25 años hay en clase. Para ello se diseñará el algoritmo de un programa que pedirá la edad a los 30 alumnos que están matriculados y mostrará en pantalla el resultado deseado: PROGRAMA mayores_25 ENTORNO: edad, contalum, ** contador de alumnos (hasta 30) contmay, ** contador de mayores de 25 años : numéricas enteras ALGORITMO: contalum 0 contmay 0 REPETIR LEER edad contalum contalum + 1 39
SI (edad > 25) ENTONCES FIN_SI contmay contmay + 1 HASTA QUE (contalum = 30) VISUALIZAR EL nº de alumnos mayores de 25 es: contmay FIN_PROGRAMA 2.4.3.2.-ACUMULADORES Son variables numéricas cuyo valor se incrementa o decrementa CON CANTIDADES VARIABLES Son variables que se utilizan para almacenar cantidades variables resultantes de operaciones sucesivas; es decir, para almacenar sumatorios o productos sucesivos. La forma de uso es: identificador1 identificador1 + identificador2 identificador1 identificador1 * identificador2 Todo acumulador también debe tomar un valor inicial antes de ser usado. Normalmente se inicializan así: Para sumatorios se inicializan a 0 Para productos se inicializan a 1 40
EJEMPLO DE USO Realizar el pseudocódigo de un programa que permita calcular la suma de los números pares que hay del 1 al 100 y, su producto también: PROGRAMA opera_pares_1_100 ENTORNO: cont, ** contador de números del 1 al 100 suma, producto ** acumulador de sumas ** acumulador de productos : numéricas enteras ALGORITMO: cont 0 suma 0 producto 1 MIENTRAS (cont <100) HACER: cont cont + 1 SI (cont modulo 2 = 0) ENTONCES suma suma + cont producto producto * cont FIN_SI FIN_MIENTRAS VISUALIZAR La suma es: suma y el producto es: producto FIN_PROGRAMA 41
2.4.3.3.-INDICADORES O INTERRUPTORES O SWITCHES Son variables que sólo pueden tomar 2 valores lógicos y opuestos entre sí (normalmente 0 y 1, -1 y +1,...Por esto, también se les llama interruptores o conmutadores o switch. Todo switch debe tomar un valor inicial antes de ser usado. Son variables que se usan para transmitir información de un punto a otro de un programa y para conmutar alternativamente entre 2 posibles caminos. EJEMPLO DE USO Diseñar un pseudocódigo correspondiente a un programa que pida 100 números enteros al usuario y después nos diga si el usuario ha introducido algún 5. PROGRAMA averiguar_numero ENTORNO cont, **contador de números del 1 al 100 sw, **variable de tipo switch o indicador num : numéricas enteras ALGORITMO: cont 0 sw 0 MIENTRAS (cont < 100) HACER: LEER num cont cont + 1 42
SI (num = 5) ENTONCES FINSI sw 1 FIN_MIENTRAS SI (sw = 1) ENTONCES VISUALIZAR El usuario ha introducido algún 5 SINO VISUALIZAR El usuario no ha introducido ningún 5 FIN_SI FIN_PROGRAMA 43