Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Fundamentos de programación, Guías, Proyectos, Investigaciones de Informática

Características y fundamentos principales para programación

Tipo: Guías, Proyectos, Investigaciones

2023/2024

Subido el 06/04/2024

belen-brandell
belen-brandell 🇵🇾

Vista previa parcial del texto

¡Descarga Fundamentos de programación y más Guías, Proyectos, Investigaciones en PDF de Informática solo en Docsity! ALGORITMOS Y PROGRAMACIÓN EN PSEUDOCÓDIGO TABLA DE CONTENIDO Prólogo................................................................................................................................ 11 Introducción...................................................................................................................... 13 Capítulo 1 1. Tipos de Datos y Expresiones....................................................................................... 17 1.1 Tipos de Datos......................................................................................................... 17 1.1.1 Numéricos........................................................................................................ 17 1.1.2 Lógicos o Booleanos........................................................................................ 18 1.1.3 Caracteres......................................................................................................... 18 1.2 Identificadores, Constantes y Variables................................................................ 19 1.3 Expresiones Aritméticas, Relacionales y Lógicas................................................ 20 1.3.1 Operadores Aritméticos................................................................................. 20 1.3.2 Operadores Relacionales................................................................................ 23 1.3.3 Operadores Lógicos........................................................................................ 24 1.4 Ejercicios.................................................................................................................. 26 1.4.1 Ejercicios con Respuesta................................................................................. 26 1.4.2 Ejercicios sin Respuesta.................................................................................. 27 1.4.3 Respuesta a los Ejercicios................................................................................ 28 Capítulo 2 2. Algoritmos y Pseudocodigos........................................................................................ 37 2.1 Características de un Algoritmo........................................................................... 37 2.2 Tipos de Instrucciones............................................................................................ 38 2.2.1 Instrucción Inicio / Fin................................................................................... 39 2.2.2 Instrucción de Asignación.............................................................................. 39 2.2.3 Instrucción de Lectura.................................................................................... 43 2.2.4 Instrucción de Escritura................................................................................. 46 2.3 Formato General del Pseudocódigo.................................................................. 50 2.4 Ejercicios............................................................................................................... 55 2.4.1 Ejercicios con Respuesta.............................................................................. 55 2.4.2 Ejercicios sin Respuesta............................................................................... 56 2.4.3 Respuesta a los Ejercicios............................................................................ 57 Capítulo 3 3. Instrucciones de Selección........................................................................................ 87 3.1 Estructuras de Selección Simple......................................................................... 87 3.2 Estructuras de Selección Compuesta................................................................ 90 3.3 Estructuras de Selección Múltiple..................................................................... 92 3.4 Estructuras de Selección Anidadas................................................................... 97 3.5 Construcción de Estructuras de Selección..................................................... 102 3.6 Ejercicios..............................................................................................................110 3.6.1 Ejercicios con Respuesta............................................................................ 110 3.6.2 Ejercicios sin Respuesta............................................................................. 110 3.6.3 Respuesta a los Ejercicios.......................................................................... 111 Capítulo 4 4. Estructuras de Repetición....................................................................................... 131 4.1 Estructura de Repetición Mientras Haga....................................................... 131 4.2 Estructura de Repetición Haga Mientras....................................................... 135 4.3 Estructura de Repetición Repita Hasta............................................................ 138 4.4 Estructura de Repetición Para......................................................................... 141 4.5 Construcción de Estructuras de Repetición................................................... 146 4.6 Casos Especiales................................................................................................ 160 4.7 Ejercicios............................................................................................................. 163 4.7.1 Ejercicios con Respuesta............................................................................ 163 4.7.2 Ejercicios sin Respuesta............................................................................. 164 4.7.3 Respuesta a los Ejercicios.......................................................................... 164 Anexo 1.......................................................................................................................... 187 Bibliografía.................................................................................................................... 191 LISTA DE TABLAS Tabla 1. Operadores Aritméticos....................................................................................... 20 Tabla 2. Operador, Precedencia y Asociación................................................................... 21 Tabla 3. Operadores Relacionales ......................................................................................24 Tabla 4. Operadores Lógicos............................................................................................. 24 Tabla 5. Operadores Lógicos............................................................................................. 25 Tabla 6. Precedencia de los Operadores............................................................................ 25 Tabla 7. Representación de las instrucciones Inicio y Fin en el diagrama de flujo........ 39,43 Tabla 8. Representación de la instrucción Leer en el diagrama de flujo.......................... 45 Tabla 9. Ejemplos de Instrucciones y ejecución........................................................... 47 Tabla 10. Representación de la instrucción Escribir en el diagrama de flujo....................... 50 Tabla 11. Análisis de las cantidades de camisas para el ejemplo 4.................................. 74 Tabla 12. Comprobación de la ecuación Vtpc para el ejemplo 4.................................... 76 Tabla 13. Análisis de las cantidades de zapatos para el ejemplo 4................................... 78 Tabla 14. Comprobación de la ecuación Vtpz para el ejemplo 4.................................... 83 PRÓLOGO En el pasado reciente, la programación de computadores estaba supeditada a un conjunto de expertos, formados o no en la academia, que respondían por igual, al título de ingenieros y más específicamente de sistemas; las gran- des compañías no discriminaban títulos, a un empírico le bastaba con mostrar que tenía conocimiento en el área y era aceptado, de esta forma se crearon grandes sistemas de información que impactaron e impactan aún sectores como el Bancario y Gobierno. Con el desarrollo de la tecnología y el advenimiento de nuevos dispositivos “caseros” de fácil manipulación para el usuario y la presencia del computador en prácticamente todas las actividades, se creó un nuevo orden, en el cual, es imperante dominar estas herramientas y aún más, saberlas programar, indi- ferente de cual sea la profesión; de hecho, representa un plus para quien pro- grame, conociendo su actividad o proceso de negocio, porque logra un mayor aprovechamiento de los recursos computacionales y enriquece su labor. La programación ha sido considerada una actividad compleja y se han escrito e inventado múltiples metodologías para su enseñanza, involucrándola desde el trabajo escolar, e incluso preescolar. Lo cierto y comprobado, es que esta actividad se aprende, haciendo, practicando, involucrándola en el día a día, hasta volverla un hábito. No es fácil establecer cuál es el mejor método para aprender a programar, porque todos no aprenden de la misma forma, sin em- bargo, existen prácticas reconocidas por quienes han estado en la pedagogía que bien manejadas apoyan en gran forma al desarrollo de la lógica y la crea- tividad en la resolución de problemas. 12 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza En el presente libro, se condensa la experiencia adquirida en años de arduo trabajo, por los profesores Yana Elida Saint-Priest Velásquez y Diego Fernan- do Duque Betancourt, quienes han tenido a cargo esa compleja tarea de for- mar programadores Tecnólogos e Ingenieros. Ellos, conocedores de las nece- sidades de un estudiante en formación, presentan un libro de fundamentación básica en programación, en lenguaje sencillo, que permite al estudiante desa- rrollar la lógica requerida para adentrarse en este campo, ayudándolo a forta- lecer sus propias habilidades, a partir de técnicas y estrategias que le permiten indagar y proponer soluciones a situaciones específicas del mundo real, con una metodología basada en problemas y en casos de estudio. El libro consta de cuatro capítulos, que en adecuada secuencia le permiten al estudiante partir de lo básico a situaciones con mayor complejidad, cumplien- do con aprendizajes esperados en cada capítulo, pensado para estudiantes que inician sus estudios profesionales. Los autores, profesores de la Facultad de Ingeniería de la Universidad Santia- go de Cali, demuestran con esta obra, lo esfuerzos que desde el interior de la Universidad y sus programas realizan sus docentes para el mejoramiento de sus prácticas pedagógicas. Para el Director del Programa de Ingeniería de Sistemas, es un honor haber sido invitado a participar con el prólogo de esta importante obra, más aún, considerando que los estudiantes del programa serán los usuarios directos de ella y que los docentes involucrados, son parte fundamental del mismo. Se invita a lectores, técnicos o no, a dejarse tentar por la programación y acom- pañarse con obras como la presente, que hacen fácil este arte. JORGE ENRIQUE LEON ARDILA Director del Programa de Ingeniería en Sistemas Director del Programa de Tecnología en Sistemas Universidad Santiago de Cali. 15 Algoritmos y programación en pseudocódigo código como un lenguaje intermedio entre el lenguaje natural y el lenguaje de máquina; Instrucciones Condicionales, este capítulo presenta al lector la forma de construir soluciones alternas, a un mismo problema, cuya ejecución se encuentra sujeta al cumplimiento de una o más condiciones; y por último Instrucciones de Repetición, cuya necesidad se evidenciada en este capítulo cuando se ejemplifican problemas cuyas soluciones requieren realizar un con- junto de operaciones iguales más de una vez. 1. TIPOS DE DATOS Y EXPRESIONES 1.1 TIPOS DE DATOS Todo dato que se utilice en un programa de computador debe ser almacenado en memoria. La memoria del computador está dividida en “pedazos” del mis- mo tamaño dentro de los cuales se puede guardar información. Cada “peda- zo” es una celda y cada celda tiene asociada una dirección única en memoria que permite conocer su ubicación y acceder la información contenida en ella para consultarla, modificarla o borrarla. … 0 1 2 3 4 5 6 … N Los datos se pueden clasificar en: Simples o Estructurados, según la cantidad de celdas que se utilicen para almacenarlos. Los tipos Simples utilizan una sola celda, los Estructurados, más de una dependiendo de la cantidad de da- tos a almacenar. Los tipos de datos simples que existen en el pseudocódigo son: 1.1.1 Numéricos Que a su vez se clasifican en: a. Enteros Ejemplo: 3, -3, 1234, 0, 6 -45 DIRECCION MEMORIA CELDA CAPÍTULO 1 20 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza • Variables: celdas cuyo valor cambia durante la ejecución del programa. Cuando esto ocurre, el valor viejo es reemplazado por el nuevo sin mo- dificar el tamaño de la celda. 1.3 EXPRESIONES ARITMÉTICAS, RELACIONALES Y LÓGICAS Toda expresión que se construya debe cumplir con: 21 OperandoOperadorOperando Donde Operando representa un dato y el Operador, el símbolo que representa la operación que se va a realizar. 1.3.1 Operadores Aritméticos Son utilizados para construir expresiones aritméticas, los operandos son datos de tipo numéricos y el resultado obtenido también es numérico. En pseudo- código existen los siguientes operadores aritméticos, ver Tabla 1: Tabla 1. Operadores Aritméticos Operador Operación Ejemplo Resultado ** Potencia 3**3 27 * Multiplicación 3*3 9 / División 3/2 1.5 MOD Módulo 5 MOD 2 1 DIV División entera 5 DIV 2 2 + Suma 5 + 2 7 - Resta 5 - 2 3 Fuente: Autores Los operadores MOD y DIV son utilizados para obtener el residuo y el cociente respectivamente en una operación de división pero, a dife- rencia del operador /, cuando se usa MOD o DIV, la división es entera, es decir, nunca el resultado será un número decimal. Por ejemplo: 21 Algoritmos y programación en pseudocódigo Los operadores aritméticos tienen una precedencia que indica cuál de ellos debe resolverse primero. Ejemplos: 3 + 5 * 2 primero se resuelve la multiplicación, luego la suma. 7 / 2 ** 4 primero se resuelve la potencia, luego la división. Adicionalmente los operadores pueden ser asociativos por la derecha o por la izquierda, lo que significa que si en una expresión aritmética todos los opera- dores son el mismo, se resolverán de izquierda a derecha en orden o viceversa, dependiendo del operador. Ejemplos: 3 + 4 + 5 primero se suma 3 + 4 al resultado se le suma el 5. 2 ** 3 ** 6 el 2 se eleva al resultado obtenido de elevar 3 a la 6 primero. Una expresión aritmética puede contener paréntesis, lo cual modifica la pre- cedencia y/o asociación de los operadores. Los paréntesis deben resolverse primero. Ejemplos: (3 + 5) * 2 primero se resuelve la suma, luego la multiplicación. 2 ** (6 / 3) primero se resuelve la división, luego la potencia. La Tabla 2 resume los operadores aritméticos, precedencias y asociaciones: Tabla 2. Operador, Precedencia y Asociación OPERADOR PRECEDENCIA ASOCIACIÓN ( ) Mayor ** Por la derecha * , /, MOD, DIV Por la izquierda +, - Menor Por la izquierda Fuente: Autores. Existen ecuaciones matemáticas que incluyen otros operadores que pueden ser convertidas en expresiones algorítmicas usando los operadores aritméti- cos mencionados. Por ejemplo: n A que es equivalente a nA 1 algorítmi- camente queda: ( ) ( ) aAlgorítmicAritmética AA n AAn 2 1** 1** → → 22 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Los paréntesis son necesarios para que A quede elevado a 1 sobre n, sino pri- mero se elevaría A a La 1 y luego el resultado se dividiría entre n. Y la expresión: n n A A 1 =− Puede escribirse algorítmicamente así: aAlgorítmicAritmética nA A n ∗∗→− 1 En el pseudocódigo existen algunas operaciones que también pueden ser re- sueltas directamente, sin necesidad de conversión, a este tipo de operaciones se les conoce como funciones. La función raíz cuadrada en el pseudocódigo tiene el siguiente formato: Raíz ( ) Dentro de los paréntesis se coloca el valor al cuál se le desea sacar la raíz cua- drada, puede ser una expresión o un número. Por ejemplo: ( )ARaizA → 25 Algoritmos y programación en pseudocódigo Tabla 5. Operadores Lógicos A NOT A A B A AND B A OR B F V F F F F V F F V F V V F F V V V V V Fuente: Autores. Los operadores lógicos, como los aritméticos, tienen precedencia de operado- res y son asociativos por la izquierda. OPERADOR PRECEDENCIA ASOCIACIÓN ( ) Mayor NOT Por la derecha AND Por la izquierda OR Menor Por la izquierda Por ejemplo: NOT ( (V OR F ) AND V ) Primero se resuelve el paréntesis interno, quedando NOT ( V AND V ). Luego se resuelve el siguiente paréntesis, quedando NOT V. Por último se aplica la negación, dando como resultado final F. Una expresión puede contener al mismo tiempo operadores de cualquiera de los tres tipos, en la Tabla 6 se resume la precedencia de todos los operadores: Tabla 6. Precedencia de los Operadores Operador Jerarquía ( ) Mayor ** *, /, MOD, DIV +, - >, <, >=, <=, =, <> NOT AND OR Menor Fuente: Autores. 26 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Recuerde que los operandos con los que trabaja todo operador lógico son los tipo lógico, es decir, Verdadero o Falso, por tanto, si en una expresión se tie- nen operadores lógicos para resolverla observe los operandos – o el conjunto de operaciones – que acompañan a estos operadores y determine si éstos son valores – o generan valores – lógicos si no es así, la expresión no se puede resolver, por ejemplo: La anterior expresión no se puede resolver ya que el operador lógico OR, no tiene a su lado derecho, un operando lógico. 1.4 EJERCICIOS 1.4.1 Ejercicios con Respuesta 1. Resuelva las siguientes expresiones aritméticas: a. 2 * 6 ** 3 / 6 b. 8.0 / (6.5 + 13.2) ** (48.2 – 69.7 + 23.5) c. Con explicación à ((15 * 8 MOD 6 + 24 DIV 2 ** 3) ** 3 / 4) * (5 ** 1 / 2 + 1 / 4 + 2 ** 3 – 4) 2. Resuelva las siguientes expresiones relacionales: a. 90485 >= 39493 b. ‘y’ <> ‘Y’ c. “María” == “María” 3. Resuelva las siguientes expresiones lógicas: a. V OR F AND V b. V AND F OR V OR NOT V c. NOT ( V OR F) AND (F AND V) 27 Algoritmos y programación en pseudocódigo 4. Resuelva las siguientes expresiones que incluye todos los operadores: a. 64 + 25 > 65 * 60 OR 30 / 15 < 6 **3 b. Con explicación à (2 ** 3 DIV 2 MOD 5 > 1 MOD 4 ** 2) OR NOT (((15 * 8 MOD 6 - (24 DIV 2 ** 3) **3 - 7) ** 3 + 4) <> 5) 5. Con explicación à Convierta la siguiente expresión aritmética a algo- rítmica: ( ) 23 2 43 2 PG Q PC Y n J       = − − 1.4.2 Ejercicios sin Respuesta 6. Resuelva las siguientes expresiones aritméticas: a. 29.7 + 5.0 ** 2.0 b. ( (2 - 3) ** 4 * 5 / (4 + 3 * 9) ) c. 49.38 + 127.73 - 15.02 * 6.83 / 3.22 7. Resuelva las siguientes expresiones relacionales: a. ‘A’ >= ‘Z’ b. 429 = 429.0 c. “pseudocódigo” <> “pseudocódigo” 8. Resuelva las siguientes expresiones lógicas: a. V OR V AND F OR V b. NOT ( (F OR F) AND (V OR V) OR V ) c. NOT F AND (F OR V) AND (NOT V AND F) 9. Resuelva las siguientes expresiones que incluye todos los operadores: a. 3 * 5 > 230 / 12 AND F b. “Pedro” <> “PedrO” OR ( 3 + 56 * 2 / 5 ) > 10 AND NOT V 30 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Por último se resuelve el operador suma, y se destruye el paréntesis más interno, quedando: Quedan dos paréntesis, nuevamente se selecciona el de la izquierda, dentro de éste se resuelve primero el operador potencia, quedando: Se resuelve la división y así se destruye el paréntesis En el paréntesis existen dos operadores potencia por lo que se comien- za resolviendo el de la izquierda, entonces: Luego se resuelve la siguiente potencia En la expresión aritmética hay dos operadores /, se resuelve primero el de la izquierda, entonces 31 Algoritmos y programación en pseudocódigo Luego la siguiente división Quedan tres operadores con la misma precedencia, se resuelve prime- ro la suma que se encuentra más a la izquierda La siguiente suma Después la resta y al resolver ésta se destruye el paréntesis quedando Por último la multiplicación y el resultado final de la expresión arit- mética es: 45.5625 2. Resuelva las siguientes expresiones relacionales: a. 90485 >= 39493 Respuesta: TRUE b. ‘y’ <> ‘Y’ Respuesta: TRUE c. “María” == “Maria” Respuesta: FALSE 32 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza 3. Resuelva las siguientes expresiones lógicas: a. V OR F AND V Respuesta: V OR F AND V = V OR F = V b. V AND F OR V OR NOT V Respuesta: V AND F OR V OR NOT V = V AND F OR V OR F = F OR V OR F = V OR F = V c. NOT ( V OR F) AND (F AND V) Respuesta: NOT ( V OR F) AND (F AND V) = NOT V AND (F AND V) = F AND F = F 4. Resuelva las siguientes expresiones que incluye todos los operadores: a. 64 + 25 > 65 * 60 OR 30 / 15 < 6 **3 Respuesta: 64 + 25 > 65 * 60 OR 30 / 15 < 6 **3 = 89 > 65 * 60 OR 30 / 15 < 6 **3 = 89 > 3900 OR 30 / 15 < 6 **3 = 89 > 3900 OR 2 < 6 **3 = 89 > 3900 OR 2 < 216 = F OR 2 < 216 = F OR V = V b. Con explicación à (2 ** 3 DIV 2 MOD 5 > 1 MOD 4 ** 2) OR NOT (((15 * 8 MOD 6 - (24 DIV 2 ** 3) **3 - 7) ** 3 + 4) <> 5) Respuesta: 35 Algoritmos y programación en pseudocódigo 5. Con explicación à Convierta la siguiente expresión aritmética a algo- rítmica: ( ) 23 2 43 2 PG Q PC Y n J       = − − Respuesta: Para resolverlo se pude tomar cada elemento que integra la expresión y con- vertirlo a su respectiva representación en algorítmica, entonces: 2**3** 2** 1**22 4** 3** 1 23 2 43 PPGG Q QJ PP C C J →→ →→ →→ − − La expresión algorítmica queda: ( ) ( ) ( )2***3** ** 2 1** 2** 1***2 4*** 3** 1 PG n Q J P C Y                          ← 2. ALGORITMOS Y PSEUDOCODIGOS 2.1 CARACTERÍSTICAS DE UN ALGORITMO Un Algoritmo es una secuencia de pasos para resolver un problema y debe contar con las siguientes características: Preciso: cada paso debe ser claro y exacto en su construcción para que así determine puntualmente lo que se desea hacer. Definido: toda vez que se ejecute el algoritmo con los mismos datos de entra- da, éste debe generar el mismo resultado. Finito: todo algoritmo debe tener un fin. El algoritmo se construye usando palabras del idioma y debe poder ser enten- dido por cualquier persona. Cuando se utilizan líneas de código se crea un programa y éstos se escriben usando lenguajes de programación. Si se emplea cuasi código en la construcción del programa, se tiene un Pseudocódigo. Un algoritmo se construye en forma general usando los siguientes pasos: 1. Inicio. 2. Capturar, conocer o ingresar todos los datos que permitan resolver el problema. 3. Resolver, calcular o llevar a cabo los procesos con los datos capturados. Se sugiere en este punto colocar las ecuaciones necesarias. 4. Mostrar, visualizar o imprimir todos los resultados que el problema exi- ja. 5. Fin. CAPÍTULO 2 40 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza En donde para saber el valor de Y primero se debe conocer a X y luego llevar a cabo la operación de suma. En el mundo del pseudocódigo la anterior expresión se convierte a: El símbolo Flecha representa la instrucción de Asignación. Para conocer el valor de Y primero se debe resolver el lado derecho de la ins- trucción. En forma general se interpreta toda instrucción de Asignación de la siguiente manera: “El resultado del lado derecho de la flecha se almacena, guarda o asigna en el lado izquierdo”. 1. Las letras al lado izquierdo de la asignación, como en el ejemplo ante- rior la Y, representan un identificador. 2. Las letras al lado derecho de la asignación puede representar dos cosas: a. Si no llevan comillas, como en el ejemplo anterior la X, son un identi- ficador. b. Si llevan comillas (simples o dobles), son un dato tipo carácter. En el ejemplo: Y ß ‘X’, la letra X se almacena en Y. Para poder emplear identificador dentro de una expresión, éste debe: 1. Estar declarado: lo que significa que el computador sabe que existe un espacio de memoria con ese nombre y conoce el tipo de dato que se almacenará en él. 2. Estar inicializado: es necesario que los identificadores del lado derecho tengan un valor inicial para emplearlo en la expresión. Por lo tanto la secuencia de instrucciones correcta sería: X ß 3 Y ß X + 2 41 Algoritmos y programación en pseudocódigo 3. Corresponder en tipo de dato: tanto los identificadores de la derecha como los de la izquierda deben almacenar datos del mismo tipo. Ejemplos: REPRESENTACIÓN DE LA EJECUCIÓN INSTRUCCIÓN Ejecución de las instrucciones Id X y Y son de tipo entero X X ß 3 Al ejecutarse se almacena en X el valor de 3, así: 3 El contenido de la celda X se suma con el Y Y ß X + 2 número 2 y se almacena en Y, entonces en 5 Y se guarda el resultado, el número 5, así: REPRESENTACIÓN DE LA EJECUCIÓN INSTRUCCIÓN Ejecución de las instrucciones Id X y Y son de tipo decimal X X ß 3 Al ejecutarse se almacena en X el valor de 3, así: 3 El contenido de la celda X se suma con el Y Y ß X + 2 número 2 y se almacena en Y, entonces en Y se 5 guarda el resultado, el número 5, así: Y Y ß 2.89 Al ejecutarse se almacena en Y el valor de 2.89 2.89 esto ocasiona que el anterior valor de Y (5) se pierda y sea reemplazado por uno nuevo (2.89) Note en este ejemplo que se manejan datos enteros y decima- les en la misma variable. En la ejecución de las instrucciones no se genera error ya que los números decimales contienen a los números enteros. 42 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza REPRESENTACIÓN DE LA EJECUCIÓN INSTRUCCIÓN Ejecución de las instrucciones Id X es de tipo entero X X ß 3 Al ejecutarse se almacena en X el valor de 3, así: 3 Al ejecutarse se genera un error, ya que el tipo X ß “2” de dato ahora es carácter y la variable sólo recibe números enteros REPRESENTACIÓN DE LA EJECUCIÓN INSTRUCCIÓN Ejecución de las instrucciones Id T es de tipo cadena Al ejecutarse se almacena en T el dato T T ß “hola” “hola”. Note como el identificador T está h o l a conformada por 4 celdas para poder almacenar la palabra T T ß “ola” El contenido de la celda T se destruye y o l a se guarda la palabra “ola” No se puede ejecutar ya que el dato T ß “holas” “holas” está conformado por 5 letras y T representa sólo 4 celdas REPRESENTACIÓN DE LA EJECUCIÓN INSTRUCCIÓN Ejecución de las instrucciones Id X es de tipo entero. Al ejecutarse se almacena X X ß 7 en X el valor de 7, así: 7 Y es de tipo carácter. Al ejecutarse se almacena Y Y ß ‘8’ en Y el valor de ‘8’, así: 8 Esta instrucción no se puede ejecutar en el Z ß X + Y mundo del pseudocódigo, porque no se pueden sumar enteros y caracteres 45 Algoritmos y programación en pseudocódigo Para ser más claro, una alternativa a la instrucción Leer (peso, edad, altura) sería: Leer ( peso ) Leer ( edad) Leer ( altura) La instrucción Leer se representa con un romboide en el mundo del diagrama de flujo, a continuación, ver la Tabla 8 con algunos ejemplos: Tabla 8. Representación de la instrucción Leer en el diagrama de flujo. PSEUDOCÓDIGO Instrucción DIAGRAMA DE FLUJO Leer (A) Leer (A) Leer (peso, edad, altura) Leer (peso, edad, altura) Fuente: Autores La instrucción Leer se necesita en casi todos los problemas, a continuación se muestran algunos ejemplos de enunciados típicos y sus características: • Aquellos en los cuales aparece la palabra conocidos, dados, ingresar o capturar: Dados tres números construya un pseudocódigo que muestre el mayor de ellos. Para poder resolver el problema es necesario conocer los valores de los tres números y éstos deben ser suministrados por el usuario. Escriba un Programa que lea un número entero N y calcule el resultado de la siguiente serie: N 1 4 1 3 1 2 1 1 ±+−+−  En este segundo ejemplo, se conocen como deben ser los términos a generar sin embargo, la cantidad de los mismos está determinada por el valor que tome N, el cual debe ser ingresado por el usuario. Si el usua- rio ingresa el número 3, el programa debe mostrar el resultado de sumar 3 1 2 1 1 +− es decir, 0.8333333. 46 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza • Problemas que resuelven una ecuación cuya solución se obtiene por reemplazar en ella los identificadores por números. Construya un pseudocódigo que muestre el resultado de las raíces rea- les de la siguiente expresión Para encontrar la solución de las raíces reales se necesita conocer los valores de a, b y c. 1. Aquellos problemas cuya solución sólo se puede obtener por el proceso que se le haga a los datos suministrados por el usuario. Por ejemplo: Diseñe un algoritmo que determine si un número es o no es, par positi- vo. Para resolver el problema, es necesario que el usuario ingrese el número a evaluar y así determinar si éste es o no un par positivo. Normalmente la gran mayoría de los enunciados muestran la necesidad de solicitar datos al usuario. 2.2.4 Instrucción de Escritura Durante la solución de un problema a través de pseudocódigo, generalmente se necesita mostrar resultados parciales o totales, esto se logra con la instruc- ción Escribir. En forma general siempre que se desee mostrar, visualizar o imprimir los resultados, en el mundo del pseudocódigo se usa la instrucción Escribir. La instrucción Escribir tiene el siguiente formato: Dentro de los paréntesis se pueden colocar cadenas de texto, identificadores o combinación de ambos. Escribir es una palabra reservada. Toda instrucción Escribir al ser ejecutada visualizará en pantalla lo que se ha colocado dentro de los paréntesis. La instrucción Escribir tiene los siguientes formatos: 47 Algoritmos y programación en pseudocódigo 1. Escribir ( A ) Cuando se ejecuta esta instrucción el computador muestra el contenido del identificador siempre y cuando esté declarado y contenga un dato. 2. Escribir ( “ texto “ ) Siempre que se desee mostrar algún comentario, información o texto en general el uso de este tipo de formato es el adecuado. Este tipo de formato no requiere cumplir con condición alguna. 3. Escribir (“ texto ”, A) Si se desea acompañar el contenido de una celda con un texto, se em- plea este formato. El identificador debe estar declarado y contener un dato. En la Tabla 9 se muestran algunos ejemplos, en todos ellos se asume que los identificadores ya están declaradas. Tabla 9. Ejemplos de Instrucciones y ejecución REPRESENTACIÓN DE LA EJECUCIÓN INSTRUCCIÓN Ejecución de las instrucciones Celda T T ← “hola” Al ejecutarse se almacena en T el dato h o l a Escribir ( T ) cadena “hola”, Cuando se ejecuta la instrucción Escribir aparece en pantalla lo siguiente: G G ← 535 En la G se almacena el valor 535 535 F ← “es” En la F se almacena el dato es Escribir (F, G ) Cuando se ejecuta la instrucción Escribir F se muestra en pantalla: e s 50 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza En la Tabla 10 se puede apreciar tres tipos de símbolos para la instrucción Escribir, el primero de ellos es idéntico al usado por la instrucción Leer, el segundo, es usado para imprimir y, el tercero, para mostrar en pantalla. El símbolo depende del programa que emplee para generar el diagrama de flujo. Tabla 10. Representación de la instrucción Escribir en el diagrama de flujo. PSEUDOCODIGO Instrucción DIAGRAMA DE FLUJO Escribir (A) 1. Escribir ( A ) 1. 2. Escribir ( A ) 3. Escribir ( A ) Escribir (“El resultado es:”, A) Escribir (“El resultado es:”, A) 2.3 FORMATO GENERAL DEL PSEUDOCÓDIGO Todo programa escrito en pseudocódigo está conformado por los siguientes tres bloques: 1. La Cabecera donde se coloca el nombre del programa escrito en pseu- docódigo: Algoritmo_nombre_del_programa 2. El Bloque de Declaración es donde se informa al computador cuántas celdas y de qué tipo se van a necesitar, aquí se deben declarar todos los identificadores que se utilizarán en el transcurso de la ejecución del programa. El Bloque de Declaración puede contener dos secciones: Declaración de Variables y Declaración de Constantes. 51 Algoritmos y programación en pseudocódigo a. Declaración de variables: comienza con la palabra reservada var, de- bajo de ella se debe colocar primero, el tipo de dato, seguido de dos puntos (:) y por último, la(s) celda(s) que se crearán. var Tipo_de_dato : Listado_de_celdas Si se desea declarar más de una variable del mismo tipo de dato, se deben separar con comas, por ejemplo: var Entero : A, B Lo anterior también se puede escribir como sigue: var Entero : A Entero : B El siguiente ejemplo muestra el uso de una celda para cada tipo de dato. var Entero : A Decimal : B Caracter : C Booleano: G Ningún nombre de variable se puede utilizar más de una vez. En el siguiente ejemplo la variable A se encuentra declarada dos veces, por lo tanto generará error en la ejecución del programa: var Entero : A Caracter : A Booleano: G 52 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Para declarar una variable cadena primero se le asigna un nombre y luego entre corchetes se coloca un número que representa la cantidad de celdas que usará la variable, por ejemplo: var Cadena: D[10] Las palabras Decimal, Carácter, Entero, Cadena y Booleano son pa- labras reservadas. El siguiente ejemplo muestra un error por usar una palabra reservada para una función a la cual no pertenece: var Decimal : a, A, Entero Existen dos maneras que ayudan en determinar cuántas variables y de qué tipos se necesitan declarar. La primera es la Técnica de las Preguntas que consiste en formularse dos preguntas cuyas respuestas ayudaran a construir la zona de Declaración de variables. • Pregúntese cuántos datos necesita conocer para resolver el problema. La misma cantidad de datos obtenida en la respuesta corresponden a la cantidad de celdas que se deben crear para almacenarlos. A cada celda se le da un nombre y se evalúa qué tipo de dato debe contener. • Pregúntese cuántos cálculos necesita resolver con los datos capturados en la pregunta anterior. La cantidad de cálculos a llevar a cabo es la misma cantidad de variables que se deben crear para almacenar los datos ob- tenidos al solucionar los mismos. A cada uno se le da un nombre y se evalúa de qué tipo de dato será el resultado obtenido. La segunda técnica es la Técnica del Algoritmo, ésta consiste en guiarse por las palabras utilizadas en los pasos del algoritmo construido. En los ejercicios al final del capítulo se estudia en detalle cómo construir un algoritmo y, después, la aplicación de estas técnicas. b. Declaración de constantes: comienza con la palabra reservada const, debajo de ella se debe colocar primero, el identificador, seguido del símbolo igual (=) y por último, el valor que se asignará a la celda. El valor es un dato, no una expresión aritmética que pueda generarlo. 55 Algoritmos y programación en pseudocódigo 2.4 EJERCICIOS 2.4.1 Ejercicios con Respuesta 1. Construya un algoritmo, pseudocódigo y diagrama de flujo tal, que co- nocida la base y altura de un rectángulo, calcule y muestre su área y perímetro. 2. Realice un algoritmo, pseudocódigo y diagrama de flujo tal que, dado el nombre de una persona (de máximo 8 caracteres), el apellido (de máximo 6), la edad en años y su peso en libras, calcule y muestre la edad en número de días, el peso en kilogramos, y el apellido seguido del nombre. 3. La potencia que consume un bombillo se expresa por medio de la fór- mula P = V×I, donde V es el voltaje e I es la corriente. El voltaje está en función de la corriente I y la resistencia R del bombillo, por medio de la siguiente expresión: V = I×R. La potencia total entregada por la fuente es igual a la suma de las potencias de todos los bombillos. La fi- gura siguiente muestra cuatro (4) bombillos, y ellos están conectados a una fuente. Construya un algoritmo, pseudocódigo y diagrama de flujo tal que, conocidos el valor de la corriente I y los valores de resistencia R - de cada bombillo -, calcule y muestre la potencia de cada bombillo y la potencia total entregada por la fuente, ver Ilustración 1. Ilustración 1. Circuito serie conformado por cuatro bombillos y una fuente de voltaje 56 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza 4. En la tienda Wall Max existen los siguientes productos: Artículo Marca Valor US$ Camisa T-shirt $15 Pantalón Lave`se $25 el par Zapatos Acme $80 Ropa interior Proteggeme $45 Medias Ropita pa pie $10 DVD Pollito $70 La tienda ofrece un descuento del: 10% en las camisas y 10% en los pantalones por la compra de 3 de cada uno de ellos; 4% por la compra de dos pares de zapatos y el 50% de descuento por el tercer par; por la compra de cinco pares de medias el descuento es del 5% y 8% de des- cuento por comprar dos DVD. Construya un algoritmo, pseudocódi- go y diagrama de flujo que muestre: el valor total de cada artículo que se compra, el valor de cada descuento obtenido, el valor total a pagar. 2.4.2 Ejercicios sin Respuesta 1. Pedro tiene el triple de la edad de Juan. Construya un algoritmo, pseu- docódigo y diagrama de flujo tal, que dada la edad de Pedro, calcule y muestre la edad de Juan. 2. Construya un algoritmo, pseudocódigo y diagrama de flujo tal, que co- nocido el radio de un círculo, calcule y muestre su diámetro, circunfe- rencia y área. 3. El supermercado Pepín se encuentra en promoción “miércoles de ver- duras y frutas”; descuento del 15% sobre las compras. Suponiendo que la suma de todas las verduras y frutas compradas fue V, construya un al- goritmo, pseudocódigo y diagrama de flujo que calcule y muestre cuán- to habría que pagar si hoy fuera miércoles. 4. Su profesor de programación ha sacado 4 notas a lo largo del semes- tre y es el momento de conocer su definitiva. Construya un algoritmo, pseudocódigo y diagrama de flujo tal, que dadas unas 4 notas, calcule y muestre el promedio de las mismas. 5. Se necesitan 20 ladrillos para cubrir un área de 1 m2; suponiendo que hay que cubrir un área de X metros * Y metros; construya un algoritmo, 57 Algoritmos y programación en pseudocódigo pseudocódigo y diagrama de flujo que calcule y muestre cuantos ladri- llos se necesitarían en total para cubrir toda el área. 6. Usted saca un crédito en el banco a 5 años con un interés anual del 3%. Construya un algoritmo, pseudocódigo y diagrama de flujo tal, que co- nocido el monto inicial del préstamo, calcule y muestre cuanto debe pagar al cabo de los 5 años. 2.4.3 Respuesta a los Ejercicios 1. Construya un algoritmo, pseudocódigo y diagrama de flujo tal, que co- nocida la base y altura de un rectángulo, calcule y muestre su área y perímetro. • Lo primero es comprender el problema, para ello se conceptualiza y determina el objetivo: • Conceptualización: el problema consiste en obtener de una figura geométrica conocida - el rectángulo - su área y perímetro. Para ello se deben utilizar las ecuaciones: ( )HBPHBA +=×= 2 Objetivo: calcular el valor del área y del perímetro de un rectángulo, utilizando la base y altura ingresadas por el usuario. • Una vez comprendido el problema, se procede a construir el algorit- mo: Para resolver el problema se requiere que el usuario ingrese la base y la altura, por lo tanto deben ser capturados. Luego, se resuelven las ecuaciones del área y perímetro con los datos capturados. Y finalmen- te, se muestran los resultados. El algoritmo queda así: 1. Inicio 2. Capturar la base y altura del rectángulo 3. Resolver las ecuaciones del área y perímetro del rectángulo ( )HBPHBA +=×= 2 4. Mostrar los resultados del área y perímetro del rectángulo 5. Fin 60 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Escribir (“El área y perímetro del rectángulo son:”, area, perimetro) Entonces el pseudocódigo quedaría: Comparando el algoritmo con el pseudocódigo tenemos: Pseudocódigo Algoritmo_calculo_area_y_perimetro_rectangulo var Decimal : base, altura, perímetro, area const Algoritmo C1 = 2 1. Inicio Inicio 2. Capturar la base y altura del rectángulo Escribir (“Ingrese base y altura del rectángulo”) Leer (base, altura) Resolver las ecuaciones del área y area ← base * altura Perímetro del rectángulo )(2 HBPHBA +=×= perímetro ← C1 * ( base + altura) Mostrar los resultados del área y Escribir (“El área y perímetro del rectángulo perímetro del rectángulo son:”, area, perimetro) 5. Fin Fin 61 Algoritmos y programación en pseudocódigo Todo Diagrama de flujo comienza y termina con los símbolos de Ini- cio y Fin, no existe ningún símbolo para representar la cabecera ni la zona de declaración. Inicialmente se construirá el diagrama de flujo partiendo del pseudocódigo y, luego se hará los mismo pero esta vez usando el algoritmo, ver Ilustración 2 Pseudocódigo Algoritmo_calculo_area_y_perimetro_rectangulo var Decimal : base, altura, perímetro, área const C1 = 2 Ilustración 2. Relación entre el pseudocódigo y el diagrama de flujo En forma general, realizar un Diagrama de flujo es muy sencillo tan solo se debe tener en cuenta las instrucciones y los símbolos asociadas a éstas así como también, el uso de conectores que los unan. La Ilus- tración 3 muestra cómo se obtiene el Diagrama de flujo a partir del Algoritmo. 62 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Ilustración 3. Relación entre el algoritmo y el diagrama de flujo. 5. Realice un algoritmo, pseudocódigo y diagrama de flujo tal que, dado el nombre de una persona (de máximo 8 caracteres), el apellido (de máximo 6), la edad en años y su peso en libras, calcule y muestre la edad en número de días, el peso en kilogramos, y el apellido seguido del nombre. Lo primero es conceptualizar el mundo del problema. Es necesario conocer los datos de nombre, apellido, peso y edad de una persona. Los últimos dos datos son importantes porque con ellos se debe llevar a cabo una conversión. Es necesario visualizar el apellido y luego el nombre contrario a la manera en que se capturan estos datos. El objetivo es encontrar y visualizar la edad en días, el peso en kilos así como también mostrar el apellido y el nombre de la persona. Para obtener la edad en días y el peso en kilos es necesario llevar a cabo una conversión, es decir: 65 Algoritmos y programación en pseudocódigo Inicio Escribir (“ingrese el nombre, apellido, edad en años y peso en libras de la persona”) Leer (nom, ape, edad_años, peso_libras) edad_días ← edad_años * 365 peso_kilos ← peso_libras / 2 Escribir (“La edad en días, el peso en kilos:”, edad_días, peso_kilos) Escribir (“el apellido y nombre de la persona son:”, ape, nom) Fin Ilustración 4. Relación entre el pseudocódigo y el diagrama de flujo. 6. La potencia que consume un bombillo se expresa por medio de la fór- mula P = V×I, donde V es el voltaje e I es la corriente. El voltaje está en función de la corriente I y la resistencia R del bombillo, por medio de la siguiente expresión: V = I×R. La potencia total entregada por la fuente es igual a la suma de las potencias de todos los bombillos. La figura siguiente muestra cuatro (4) bombillos, y ellos están conectados a una fuente. Construya un algoritmo, pseudocódigo y diagrama de flujo tal que, conocidos el valor de la corriente I y los valores de resis- tencia R - de cada bombillo -, calcule y muestre la potencia de cada bombillo y la potencia total entregada por la fuente, ver Ilustración 5. Ilustración 5. Circuito serie conformado por cuatro bombillos y una fuente de voltaje. edad_dias edad_años * 365 Leer (nom, ape, edad_años, peso_libras) Escribir (“ingrese el nombre, apellido, edad en años y peso en libras de la persona”) Escribir (“La edad en días, el peso en kilos:”, edad_días, peso_kilos) Inicio Fin peso_kilos peso_Iibras / 2 Escribir (“el apellido y nombre de la persona son:”, ape, nom) 66 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Conceptualización: el circuito contiene cuatro bombillos representa- dos con las palabras R1, R2, R3 y R4 (la letra R es de resistencia) co- nectados a una fuente de voltaje V. La figura muestra que a los cuatro bombillos los atraviesa la corriente I, con un valor igual para cada uno de ellos y a su vez, está sale y retorna a la fuente V. Según el enunciado, multiplicar la corriente I por el valor de la resistencia de un bombillo produce el voltaje de ese bombillo en particular, además, multiplicar este voltaje por el valor de la corriente genera la potencia que consume el bombillo. Objetivo: encontrar la potencia de cada bombillo así como también la potencia total entregada por la fuente y para ello, el enunciado estable- ce que se conocen la corriente I que atraviesa el circuito y los valores de cada resistencia. Para calcular la potencia de cada bombillo se hace uso de IVP ×= En donde V es igual a: RIV ×= Se puede sustituir el valor de V en la primera ecuación por el que éste tiene en la segunda expresión, entonces RIRRIIVP ×=××=×= 2)( Ahora se construye el algoritmo: 1. Inicio. 2. Capturar el valor de la corriente I y los valores de las resistencias R1, R2, R3 y R4 del circuito. 3. Calcular la potencia de cada bombillo y la potencia total de la fuente del circuito. La potencia de cada bombillo se puede obtener por el uso de RIP ×= 2 Donde se reemplaza el valor de I y R por el capturado en el punto 2, note que se deben hallar cuatro valores de potencia y para cada uno de ellos cambia el valor de R quedando igual el valor de I. 67 Algoritmos y programación en pseudocódigo La potencia total se puede hallar de la siguiente manera: 4321 PPPPPt +++= Donde P1, P2, P3 y P4 son las potencias del bombillo R1, R2, R3 y R4 respectivamente. 4. Mostrar la potencia de cada bombillo así como la potencia total del circuito. 5. Fin. Con base en el algoritmo se construirá el pseudocódigo y para ello se hará uso de las palabras claves escritas en aquel con el fin de elaborar las instrucciones pertinentes. El nombre que se le dará a este programa será cálculo área y pe- rímetro rectángulo, por tanto la cabecera queda: Algoritmo_calculo_potencia_circuito_electrico Para determinar cuántas variables y de qué tipo son necesarias declarar se usará en este caso la técnica del algoritmo, es decir: El punto dos nos informa de cuántas variables se necesitan crear para poder almacenar los datos que se desean capturar. En este caso se necesitan de cin- co variables, una para la corriente y las otras cuatro para los valores de las resistencias de los bombillos, a cada una de ellas se les asignan los siguientes identificadores I, R1, R2, R3 y R4 respectivamente. ¿Qué tipo de dato se guar- dará en I, R1, R2, R3 y R4? Los equipos eléctricos que miden estas variables registran valores reales por lo que cada una de estas variables debe ser de tipo Decimal, entonces hasta el momento la Declaración de variables tiene: var Decimal : I, R1, R2, R3, R4 El punto tres muestra cuántos cálculos se deben resolver, en este caso se deben llevar a cabo cinco cálculos, cuatro para las potencias de cada bombillo y uno para la potencia total, por tanto, es necesario declarar cinco variables a cada una de ellas se les asignan los siguientes identificadores P1, P2, P3, P4 y Pt, el tipo de dato que éstas deben almacenar es Decimal. 70 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Ilustración 6. Relación entre el pseudocódigo y el diagrama de flujo. 71 Algoritmos y programación en pseudocódigo 7. En la tienda Wall Max existen los siguientes productos: Artículo Marca Valor US$ Camisa T-shirt $15 Pantalón Lave`se $25 el par Zapatos Acme $80 Ropa interior Proteggeme $45 Medias Ropita pa pie $10 DVD Pollito $70 La tienda ofrece un descuento del: 10% en las camisas y 10% en los pantalones por la compra de 3 de cada uno de ellos; 4% por la compra de dos pares de zapatos y el 50% de descuento por el tercer par; por la compra de cinco pares de medias el descuento es del 5% y 8% de descuento por comprar dos DVD. Construya un algoritmo, pseudocódigo y diagrama de flujo que muestre: el valor total de cada artículo que se compra, el valor de cada descuento obteni- do, el valor total a pagar. Conceptualización: como en toda tienda, los clientes pueden o no comprar uno más productos y varios de cualquier artículo. El precio final a pagar de- pende de la cantidad que compre el cliente de cada artículo, por ejemplo, si se compran dos camisas, éstas tendrán un precio de US $30 dólares pero si se llevan 3, el valor final a pagar debe tener incluido el descuento del 10%. El único producto que no tiene descuento es la ropa interior. Un solo pantalón cuesta US $12.5 dólares. Objetivo: encontrar y visualizar el valor de cada artículo que se compra, por ejemplo, un pantalón vale US $12.5 dólares, por dos son US $25 dólares. Ade- más se debe obtener y mostrar el valor de cada descuento obtenido así como el valor total a pagar. Obtener el descuento implica que el programa pueda reconocer la cantidad de productos que se compran de un artículo basándose en las características del mismo expresadas en el enunciado, pero para hallar este valor es necesario construir las ecuaciones pertinentes y para ello se presenta el siguiente análi- sis: 72 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza El enunciado establece que por la compra de 3 productos del artículo camisas o pantalones tiene un descuento del 10%, pero qué pasa cuando se compra 1 o dos camisas o incluso 6 o 9 de ellas? Si se compra una camisa el valor de este producto es de US $15 dólares; dos valen US $30 dólares; para 3 se debe aplicar el descuento del 10% (10% = 10/100 o 0.1), es decir: 3 x 15 = 45 Valor a pagar sin descuento 3 x 15 x 10 / 100 = 4.5 Valor a pagar del descuento 3 x 15 – 3 x 15 x 10 / 100 = 40.5 Valor a pagar incluido el descuento Por las tres camisas se debe pagar un total de US $40.5, este valor es equiva- lente a: 3 x 15 – 3 x 15 x 0.1 = 3 x 15 (1 – 0.1) = 3 x 15 x 0.9 = 40.5 Donde 0.9 es igual a 90% que es el resultado de restarle al 100% el 10%. La expresión anterior permite calcular el valor a pagar por tres camisas incluido el descuento. En la expresión anterior los números 3 y 15 representan la can- tidad de camisas y su precio por unidad respectivamente. Cuando se compran 4 camisas, cómo se calcula el valor a pagar por esta can- tidad? El programa construido debe detectar si en la cantidad de camisas compradas existen múltiplos o grupos de tres para aplicarles el descuento que ofrece la tienda; el número 4 se puede descomponer en 3 y 1, por lo que se aprecia que al llevar 4 camisas tres de éstas tienen el descuento del 10% y la cuarta no, es decir: 75 Algoritmos y programación en pseudocódigo 3 3 x 15 x 0.9 = 40.5 5 2 2 x 15 = 30 Total 3 x 15 x 0.9 + 2 x 15 = 70.5 3 3 x 15 x 0.9 = 40.5 6 3 3 x 15 x 0.9 = 40.5 Total 3 x 15 x 0.9 + 3 x 15 x 0.9 = 81 6 6 x 15 x 0.9 = 81 7 1 1 x 15 = 15 Total 3 x 15 x 0.9 + 2 x 15 = 96 Fuente: Autores En la Tabla 11 que para una cantidad superior o igual a 3 se descompone ésta en dos valores y uno de ellos, el del múltiplo de 3, está presente en todas las expresiones que determinan el valor total a pagar por la compra. Para una cantidad de cinco camisas y utilizando el análisis previo se tiene que la ecuación que permite encontrar el valor a total a pagar es: 5 MOD 3 * 15 + 5 DIV 3 * 3 * 15 * 0.9 = 70.5 La única diferencia entre las ecuaciones que encuentran el valor total a pagar para 4 y 5 camisas, es el valor que representa la cantidad, es decir, el 4 o el 5, y es exactamente este dato el que siempre está cambiando y es ingresado por el usuario, entonces para generalizar la expresión que permite hallar el valor final a pagar incluido el descuento por la compra de camisas es: Vtpc ← CC MOD 3 * 15 + CC DIV 3 * 3 * 15 * 0.9 Donde CC es la variable que almacena el valor de la cantidad de camisas in- gresado por el usuario y Vtpc es la variable que almacena el valor total a pagar 76 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza por las camisas. La siguiente tabla muestra la comprobación de la ecuación anterior. Tabla 12. Comprobación de la ecuación Vtpc para el ejemplo 4. Primer término Segundo término Cantidad CC MOD 3 * 15 Resultado CC DIV 3 * 3 * 15 * 0.9 Resultado Vtpc 0 0 MOD 3 * 15 0 0 DIV 3 * 3 * 15 * 0.9 0 0 1 1 MOD 3 * 15 15 1 DIV 3 * 3 * 15 * 0.9 0 15 2 2 MOD 3 * 15 30 2 DIV 3 * 3 * 15 * 0.9 0 30 3 3 MOD 3 * 15 0 3 DIV 3 * 3 * 15 * 0.9 40.5 40.5 4 4 MOD 3 * 15 15 4 DIV 3 * 3 * 15 * 0.9 40.5 55.5 5 5 MOD 3 * 15 30 5 DIV 3 * 3 * 15 * 0.9 40.5 70.5 6 6 MOD 3 * 15 0 6 DIV 3 * 3 * 15 * 0.9 81 81 Fuente: Autores Los resultados obtenidos con la ecuación de Vtpc coinciden con los de la Ta- bla 12 así como con los del análisis previo de este ejemplo. Obsérvese como el término que incluye el operador MOD permite obtener el precio a pagar para una cantidad de 1 o 2 productos sea que éstos representen la cuantía de la compra ó los artículos que “sobran” de aquellos que tienen descuento (por ejemplo, de 4 artículos uno de ellos no tiene descuento). La ecuación general del descuento para las camisas es: dtoc ←CC DIV 3 * 3 * 15 * 0.1 Aunque el análisis anterior se realizó para las camisas, para los pantalones la tienda Wall Mart ofrece el mismo tipo de descuento por lo que utilizando los mismos criterios se puede concluir que la expresión que permite obtener el valor total a pagar por la compra de pantalones es: Vtpp ← CP MOD 3 * 12.5 + CP DIV 3 * 3 * 12.5 * 0.9 Esta expresión se diferencia de Vtpc en el precio unitario por pantalón. Vtpp y CP son las variables que almacenan el valor total a pagar por pantalones y la cantidad de pantalones respectivamente. Para los artículos medias y DVD las expresiones son las siguientes: Vtpm ← CM MOD 5 * 10 + CM DIV 5 * 5 * 10 * 0.95 Vtpdvd ← CDVD MOD 2 * 70 + CDVD DIV 2 * 2 * 70 * 0.92 77 Algoritmos y programación en pseudocódigo En estas ecuaciones Vtpm, Vtpdvd, CM y CDVD son valor total a pagar me- dias, valor total a pagar dvd, cantidad de medias y cantidad de dvd respecti- vamente. En estas expresiones que se usa 0.95 y 0.92 para representar el 5% y 8% respectivamente además, obsérvese que el divisor para Vtpm es el 5 y para Vtpdvd el 2 que representan la cantidad de productos de medias y dvd para los cuales la tienda ofrece descuento. Las ecuaciones de descuento para las camisas, pantalones, medias y dvd son: dtoc ←CC DIV 3 * 3 * 15 * 0.1 dtop ←CP DIV 3 * 3 * 12.5 * 0.1 dtom ←CM DIV 5 * 5 * 10 * 0.05 dtodvd ←CDVD DIV 2 * 2 * 70 * 0.08 La tienda ofrece un descuento especial para el articulo Ropita pa pie, 4% por la compra de dos pares de zapatos y el 50% de descuento por el tercer par y el programa construido debe entregar el valor a pagar por cualquier cantidad comprada de este articulo. El siguiente análisis muestra como se obtienen los términos de la expresión con la cual se halla el valor total a pagar por zapatos. Si se compra un par de zapatos el valor de este producto es de US $70 dólares; para dos pares se debe aplicar el descuento del 4% (4% = 4/100 o 0.04), es decir: 2 x 70 = 140 Valor a pagar sin descuento 2 x 70 x 4 / 100 = 5.6 Valor a pagar del descuento 2 x 70 – 2 x 70 x 4 / 100 = 134.4 Valor a pagar incluido el descuento Para tres pares la expresión debe incluir el 50% (50% = 50/100 o 0.5) de des- cuento para el tercer par y el 4% para los otros dos pares, es decir 2 x 70 = 140 Valor a pagar sin descuento 2 x 70 x 4 / 100 = 5.6 Valor a pagar del descuento 2 x 70 – 2 x 70 x 4 / 100 = 134.4 Valor a pagar incluido el descuento 1 x 70 x 0.5 = 35 Valor del tercer par 2 x 70 x 0.96 + 1 x 70 x 0.5 = 169.4 Valor a pagar incluido el descuento La Tabla 13 muestra cómo se discrimina el cobro según la cantidad de zapatos comprados. 80 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Siempre que el DIV genere un valor diferente a cero, se asegura que existe un grupo superior o igual a 3 y con certeza se debe cobrar por dos pares de zapa- tos incluyendo el 4% de descuento en éstos, y el tercer par a la mitad de precio. La expresión para dos pares es 4 DIV 3 * 2 * 70 * 0.96 = 134.4 Y para el tercer par es 4 DIV 3 * 70 * 0.5 = 35 Según la Tabla 13 para cantidades superiores o iguales a 3 pares de zapatos siempre se puede encontrar grupos de 3 por lo que las dos expresiones ante- riores se pueden generalizar para cualquier cantidad de zapatos mayor o igual a 3 pero solo para encontrar el valor a pagar por el grupo, entonces por el gru- po de 3 que hacen parte de los cuatro pares el costo a pagar es: 4 DIV 3 * 2 * 70 * 0.96 + 4 DIV 3 * 70 * 0.5 =169.4 Una compra de cinco pares de zapatos, incluye según la Tabla 13 a un grupo de 3 y “dos pares” libres, por tanto, para este grupo de 3 la expresión es 5 DIV 3 * 2 * 70 * 0.96 + 5 DIV 3 * 70 * 0.5 =169.4 Las expresiones para los grupos de 3 que hacen parte de la cantidad 4 o 5 pares de zapatos solo se diferencian en el valor 4 en el primer caso y cinco en el úl- timo. Para seis pares existen dos grupos de 3 lo que significa que se repite dos veces las expresiones obtenidas para un grupo de 3, la ecuación para 6 pares es 6 DIV 3 * 2 * 70 * 0.96 + 6 DIV 3 * 70 * 0.5 = 338.4 En la expresión anterior el DIV genera el 2 logrando esto la duplicidad de cada término en la ecuación. Entonces para un grupo de 3 se puede generalizar la expresión que permite calcular el precio a pagar por estos tres pares de la siguiente forma: CZ DIV 3 * 2 * 70 * 0.96 + CZ DIV 3 * 70 * 0.5 Donde CZ representa la variable donde se almacena la cantidad de zapatos ingresada por el usuario. 81 Algoritmos y programación en pseudocódigo Hasta el momento la ecuación obtenida permite hallar el valor a pagar por un grupo de 3 en una cantidad de 3 o más pares de zapatos sin embargo aún falta encontrar la expresión para los “pares libres”. Cuatro pares de zapatos incluyen un “par libre”, en la operación de división el MOD muestra que queda un “par libre” el cual no tiene descuento alguno y por el mismo se debe cancelar US $70 dólares, este valor se obtiene de la siguiente manera 4 MOD 3 * 70 = 70 Para cinco pares de zapatos el MOD muestra que quedan dos “pares libres” y, según la oferta de la tienda, para esta cantidad se ofrece un descuento del 4% por lo que estos “pares libres” son cobijados por la promoción, entonces la ecuación que permite obtener el valor a pagar es 5 MOD 3 * 70 * 0.96 = 134.4 De la Tabla 13 que solo se generan dos tipos de valores para los “pares libres” y son 1 y 2, por lo que se necesita una ecuación que permita hallar el valor a pagar por estos residuos y satisfaga para ambas cantidades. Obsérvese que uno de los residuos es par, por lo que se aprovecha esta característica en la ecuación final construyendo dentro de ella el operador que admita solo pares, y para ello se hace uso del DIV 2, entonces 5 MOD 3 DIV 2 * 2 * 70 * 0.96 = 134.4 5 MOD 3 da como resultado 2 luego este junto con el DIV 2 genera 1 que significa un par, este valor se multiplica por 2 obteniéndose el 2, número que indica un par de zapatos a los cuales se les aplica luego el precio y el descuento del 4%. La anterior expresión funciona cuando el DIV genera un valor dife- rente de cero significa entonces que el MOD genera un valor par, por tanto, solo sirve para cantidades de zapatos impares y superiores a 3. Para el valor 1 se cambia el DIV por el MOD quedando 4 MOD 3 MOD 2 * 70 = 70 82 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza Esta ecuación trabaja cuando el primer MOD genera como resultado un 1, esto indica que funciona para cualquier cantidad de zapatos que satisfaga el primer MOD. Si se generalizan las expresiones para cantidades de zapatos cuyo valor son 1 y 2 se tiene lo siguiente CZ MOD 3 DIV 2 * 2 * 70 * 0.96 para el residuo par CZ MOD 3 MOD 2 * 70 para residuo 1 Entonces la expresión que permite obtener el valor a pagar para cualquier cantidad de zapatos incluido el descuento es Donde CZ es la variable que almacena el valor de la cantidad de zapatos in- gresado por el usuario y Vtpz es la variable que almacena el valor total a pagar por este artículo incluido el descuento. En la construcción de Vtpz se elaboró los términos de la misma partiendo de aquellas cantidades de zapatos que son iguales o superiores a 3 y, que los términos para los residuos en cantidades iguales a 4 o 5 pares satisfacen también para la compra de uno o dos pares de zapatos. La Tabla 14 muestra la comprobación de la ecuación anterior. La expresión para el descuento de los zapatos es dtoz ← CZ MOD 3 DIV 2 * 2 * 70 * 0.04 + CZ DIV 3 * 2 * 70 * 0.04 + CZ DIV 3 * 70 * 0.5 En esta expresión que se incorpora el número 0.04 que corresponde al 4% valor del descuento para dos pares de zapatos. Las ecuaciones que permiten resolver el problema de la tienda Wall Mart son: Vtpc ← CC MOD 3 * 15 + CC DIV 3 * 3 * 15 * 0.9 Vtpp ← CP MOD 3 * 12.5 + CP DIV 3 * 3 * 12.5 * 0.9 Vtpm ← CM MOD 5 * 10 + CM DIV 5 * 5 * 10 * 0.95 Vtpdvd ← CDVD MOD 2 * 70 + CDVD DIV 2 * 2 * 70 * 0.92 85 Algoritmos y programación en pseudocódigo DIV 3 * 2 * 70 * 0.96 + CZ DIV 3 * 70 * 0.5 dtoc ←CC DIV 3 * 3 * 15 * 0.1 dtop ←CP DIV 3 * 3 * 12.5 * 0.1 dtom ←CM DIV 5 * 5 * 10 * 0.05 dtodvd ←CDVD DIV 2 * 2 * 70 * 0.08 dtoz ← CZ MOD 3 DIV 2 * 2 * 70 * 0.04 + CZ DIV 3 * 2 * 70 * 0.04 + CZ DIV 3 * 70 * 0.5 Vt ← Vtpc + Vtpp + Vtpm + Vtdvd + Vtpz + Vtri Escribir (“El valor total a pagar por camisas, pantalones, medias, zapatos, DVD y ropa interior de su compra en la tienda Wall Mart es:”, Vtpc, Vtpp, Vtpm, Vtpz, Vtpdvd, Vtri) Escribir (“El valor de descuento de las camisas, pantalones, medias, zapatos y DVD de su compra en la tienda Wall Mart es:”, dtoc, dtop, dtom, dtoz, dtodvd) Escribir (“El valor total a pagar por su compra en la tienda Wall Mart es:”, Vt) Fin 86 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza En la siguiente Ilustración 7 se aprecia el diagrama de flujo para este ejemplo. Vtpc ← CC MOD 3 * 15 + CC DIV 3 * 3 * 15 * 0.9 Leer (CC, CP, CM, CZ, CDVD, CRI) Escribir (“Ingrese la cantidad de camisas, pantalones, medias, zapatos, DVD y ropa interior que desea comprar en la tienda Wall Mart”) Escribir (“El valor total a pagar por camisas, pantalones, medias, zapatos, DVD y ropa interior de su compra en la tienda Wall Mart es:”, Vtpc, Vtpp, Vtpm, Vtpz, Vtpdvd, Vtri) Inicio Fin Vtpp ← CP MOD 3 * 12.5 + CP DIV 3 * 3 * 12.5 * 0.9 Vtpm ← CM MOD 5 * 10 + CM DIV 5 * 5 * 10 * 0.95 Vtpdvd ← CDVD MOD 2 * 70 + CDVD DIV 2 * 2 * 70 * 0.92 Vtri ← CRI * 45 Escribir (“El valor de descuento de las camisas, pantalones, medias, zapatos y DVD de su compra en la tienda Wall Mart es:”, dtoc, dtop, dtom, dtoz, dtodvd) Vtpz ← CZ MOD 3 MOD 2 * 70 + CZ MOD 3 DIV 2 * 2 * 70 * 0.96 + CZ DIV 3 * 2 * 70 * 0.96 + CZ DIV 3 * 70 * 0.5 dtoc ←CC DIV 3 * 3 * 15 * 0.1 dtop ←CP DIV 3 * 3 * 12.5 * 0.1 dtom ←CM DIV 5 * 5 * 10 * 0.05 dtodvd ←CDVD DIV 2 * 2 * 70 * 0.08 dtoz ← CZ MOD 3 DIV 2 * 2 * 70 * 0.04 + CZ DIV 3 * 2 * 70 * 0.04 + CZ DIV 3 * 70 * 0.5 Vt ← Vtpc + Vtpp + Vtpm + Vtdvd + Vtpz + Vtri Escribir (“El valor total a pagar por su compra en la tienda Wall Mart es:”, Vt) Ilustración 7. Diagrama de flujo para el ejemplo 4. 3. INSTRUCCIONES DE SELECCIÓN En pseudocódigo existe un tipo de instrucción llamada de Bifurcación. Una instrucción de bifurcación obliga a tomar un camino basado en la evaluación de una condición. Las instrucciones de bifurcación se subdividen en: Estructuras de Selección y Estructuras de Repetición. En el caso de las estructuras de selección, las instrucciones se ejecutan hacia adelante, siguiendo la secuencia del cuerpo de instrucciones del programa; en las estructuras de repetición las instrucciones se pueden ejecutar hacia adelante o hacia atrás dentro del bloque de ejecución del programa. 3.1 ESTRUCTURAS DE SELECCIÓN SIMPLE La estructura de selección simple, tiene el siguiente formato general en el pseudocódigo, ver Ilustración 8: CAPÍTULO 3 90 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza amente a la flecha que sale de la ejecución de la última instrucción para así continuar con la ejecución del resto de instrucciones. Las palabras DEL DF y RESTO DEL DF indican que existen otras porciones del diagrama de flujo que no se muestra aquí. 3.2 ESTRUCTURAS DE SELECCIÓN COMPUESTA La estructura de selección compuesta tiene el siguiente formato general en el pseudocódigo, ver Ilustración 12: Si (condición) entonces Instrucción 1 Instrucción 2 : : Instrucción N De lo contrario Instrucción O Instrucción P : : Instrucción Z Fin_si Ilustración 12. Formato general pseudocódigo para la Estructura de Selección Compuesta. La Estructura de Selección Compuesta contiene cuatro palabras reservadas: Si, entonces, De lo contrario y Fin_si. Siempre comienza con la palabra Si y termina con Fin_si y contiene dos cuerpos de instrucciones: el primero entre las palabras reservadas Si y De lo contrario y el segundo, entre las palabras De lo contrario y Fin_si. Además, contiene una condición dentro de parén- tesis. La condición al ser evaluada debe siempre generar un valor booleano: verdadero o falso. 91 Algoritmos y programación en pseudocódigo La siguiente figura ilustra su funcionamiento. Cuando la condición genera un resultado verdadero se ejecuta el primer cuerpo de instrucciones. El segundo cuerpo de instrucciones se ejecuta cuando la condición genera un resultado falso, ver Ilustración 13. Ilustración 13. Funcionamiento de la estructura de selección compuesta cuando la condición da verdadero. Ilustración 14. Funcionamiento de la estructura de selección compuesta cuando la condición da falso. 92 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza La Ilustración 13 y la Ilustración 14, muestran que después de ejecutar la úl- tima instrucción del cuerpo de instrucciones correspondiente, el programa salta inmediatamente a ejecutar el Fin_si y sigue con la ejecución del resto de instrucciones. La condición de la estructura de selección compuesta se construye de igual forma que la condición de la estructura de selección simple. La siguiente Ilustración 15 muestra el formato general en el diagrama de flujo para la estructura de selección compuesta. (Condicion) Instruccion 1 Instruccion 2 Instruccion N De lo contrarioV DEL DF RESTO DEL DF : Instruccion O Instruccion P Instruccion Z : Ilustración 15. Formato general diagrama de flujo estructura de selección compuesta. 3.3 ESTRUCTURAS DE SELECCIÓN MÚLTIPLE La estructura de selección múltiple tiene el siguiente formato general en el pseudocódigo, ver Ilustración 16: Si ( selector ) igual Valor 1 : Instrucción 1 Instrucción 2 : Instrucción N 95 Algoritmos y programación en pseudocódigo La siguiente Ilustración 18 muestra el funcionamiento cuando selector gen- era un dato que no coincide con ninguno de los valores, Valor 1, Valor 2, … , Valor N. Ilustración 18. Funcionamiento cuando selector genera un valor que no coincide con ninguno de los valores dentro de la estructura de selección múltiple. 96 Diego Fernando Duque - Yana Saint-Priest Velásquez - Patricia Segovia - Diego Fernando Loaiza La siguiente Ilustración 19 muestra el funcionamiento cuando selector gen- era un dato que no coincide con ninguno de los valores, Valor 1, Valor 2, … , Valor N y no existe De lo contrario. Ilustración 19. Funcionamiento cuando selector genera un valor que no coincide con ninguno de los valores y tampoco existe el De lo contario. Al no existir coincidencia salta automáticamente al Fin_si, cerrándose la es- tructura, luego se sigue la ejecución del resto de instrucciones del pseudocó- digo. 97 Algoritmos y programación en pseudocódigo La siguiente Ilustración 20 muestra el formato general en el diagrama de flujo para la estructura de selección múltiple. Instruccion 1 Instruccion 2 Instruccion N Valor 1 DEL DF RESTO DEL DF : Instruccion 1 Instruccion 2 Instruccion N : Instruccion 1 Instruccion 2 Instruccion N : Instruccion 1 Instruccion 2 Instruccion N : Valor 2 Valor N De lo contrario ……. ……. ……. (SELECTOR) Ilustración 20. Formato general Diagrama de Flujo para la estructura de selección múltiple. 3.4 ESTRUCTURAS DE SELECCIÓN ANIDADAS La estructura de selección anidada no tiene un formato general en el pseudo- código, ni en el diagrama de flujo. Consiste en utilizar las estructuras ante- riormente mencionadas dentro de alguna o varias de ellas mismas, por ejem- plo, utilizar varias estructuras de selección simple dentro de otra estructura de selección simple, o dentro de una estructura de selección compuesta, o dentro de una estructura de selección múltiple, o viceversa. No existe una normal general en la construcción de las expresiones de selección anidadas ni en la cantidad de expresiones de selección que se pueden colocar. Aspectos a tener en cuenta para construir una expresión de selección anidada: • Deben existir tantos Fin_si como Si existan. Debe tenerse presente que un Fin_si nunca cierra más de un Si. • El Fin_si más interno le corresponderá única y exclusivamente al últi- mo Si más interno.
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved