Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

FUNDAMENTOS DE PROGRAMACIÓN – ALGORITMOS
OBJETIVO. Mostrar los fundamentos de la programación, de modo que al final del curso, el estudiante será capaz de diseñar algoritmos mediante ejercicios prácticos utilizados cotidianamente en el desarrollo de aplicaciones de software, con ayuda de las diferentes técnicas algorítmicas, con la finalidad de formarse una mentalidad de programador. INTRODUCCIÓN. Todos tenemos conciencia de que el éxito de una empresa depende de la rapidez, calidad, control de los recursos, exactitud y otros muchos factores. Hace tiempo, las empresas ya sean grandes o pequeñas, tenían que hacer sus procesos manualmente o con ayuda de máquinas. Pero a raíz de la aparición de las primeras computadoras, las grandes empresas obtuvieron unas de estas y comenzaron a tener mayor ventaja sobre las demás organizaciones. Con el paso del tiempo, se crearon computadoras más pequeñas, de menos costo, más rápidas, lo cual ha provocado que cualquier persona o empresa pueda adquirir una o más de estas computadoras. En la actualidad, muchas empresas realizan sus operaciones por medio de computadoras, por ejemplo en las fábricas ensambladoras de autos se utilizan robots programados, los cuales se encargan de montar y soldar las partes que forman el carro; en los supermercados, se utilizan las computadoras junto con un programa para registrar rápidamente las compras de los clientes, además de que les ayuda para llevar el control de su inventario y de sus ingresos entre otras cosas; en los hospitales, se están utilizando pequeños robots programados, los cuales se introducen en el cuerpo del paciente para realizar incisiones, cauterizar, saturar, etc.; este manual, fue elaborado en un editor de textos llamado Microsoft Word, el cual es un programa de aplicación diseñado específicamente para poder crear y dar formato a documentos de texto. En fin, podríamos continuar enumerando en donde se utilizan las computadoras y nunca terminaríamos, lo cual da un amplio campo de trabajo para los programadores. Este manual, tiene la finalidad de mostrarte los fundamentos de la programación y formarte una mentalidad de programador, mediante la elaboración de algoritmos utilizando diferentes técnicas algorítmicas y herramientas de software para escribir y entender de manera más sencilla el fascinante mundo de la programación. Ya que un programador es decir, la persona que diseña sistemas computacionales o
Ing. Jéfferson Beltrán M. Msc. 1

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

aplicaciones de software, antes de comenzar a interactuar con la computadora tiene que tener una manera de pensar diferente a las demás personas para poder analizar y resolver problemas mediante aplicaciones de software, los cuales primero debe plasmarlos en papel o en alguna herramienta de software específica para ello y luego en un lenguaje de programación. ÍNDICE. El ordenador. El software. Sistema binario y representación binaria de datos. Algoritmos y elementos que lo conforman. Conceptos básicos de programación. Resolución de problemas con computadora – Desarrollo de Software Tipos y Paradigmas de Programación. Lenguajes de programación. La lógica como aspecto fundamental de la programación. Representación gráfica de los algoritmos. Entorno de programación integrado (IDE). Programación Estructurada. Estructura de datos y Arreglos. Modularidad. Recursividad. Estilos de Programación

Ing. Jéfferson Beltrán M. Msc.

2

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

1. EL ORDENADOR. Un ordenador es una máquina programable. Las dos características principales de un ordenador son: Responde a un sistema específico de instrucciones de una manera bien definida. Puede ejecutar una lista de instrucciones pregrabadas (un programa). Los ordenadores modernos son electrónicos y digitales. La maquinaria real, cables, transistores, y circuitos, se llaman hardware; las instrucciones y los datos se llaman software. Todos los ordenadores de uso general requieren los siguientes componentes de hardware: Dispositivos de Entrada: Como su nombre lo indica, sirven para introducir datos (información) en el ordenador para su proceso. Ejemplo: teclado, ratón, scanner, etc. Dispositivos de Salida: Regresan los datos procesados que sirven de información al usuario. Los más comunes son el monitor y la impresora. La Unidad Central de Procesamiento (CPU). Aunque generalmente al gabinete se le denomina CPU, el CPU es el microprocesador del ordenador y es el encargado de hacer todos los cálculos y operaciones (es cerebro del ordenador). El CPU a su vez se divide en las siguientes partes: Unidad de Control: Coordina las actividades del ordenador y determina que operaciones se deben realizar y en qué orden; así mismo controla todo el proceso del ordenador. Unidad Aritmética - Lógica: Realiza operaciones aritméticas y lógicas, tales como suma, resta, multiplicación, división y comparaciones. La Memoria. Es una parte del ordenador en donde se almacenan los datos a procesar y la información resultante. Esta puede ser de dos tipos: Memoria Primaria: Es el espacio en que se almacenan los datos a procesar o calcular en este momento. Memoria Secundaria: Es el espacio en el que se almacena la información resultante para su futura consulta o manejo. Por ejemplo: discos duros, unidades de almacenamiento magnético (CD-DVD), etc.
Ing. Jéfferson Beltrán M. Msc. 3

UNIDAD DE CONTROL DISPOSITIVOS DE ENTRADA UNIDAD DE ARITMÉTICA Y LÓGICA DISPOSITIVOS DE SALIDA MEMORIA Además de estos componentes. y un dispositivo de almacenamiento para guardar datos. 4 . pero tiene un microprocesador más potente y un monitor de mejor calidad. Ing. los ordenadores se pueden clasificar por tamaño y potencia de la siguiente forma. Además del microprocesador. un monitor para mostrar la información. muchos otros hacen posible que los componentes básicos trabajen juntos eficientemente. Una estación de trabajo es como un ordenador personal. Generalmente. para un sólo usuario basado en un microprocesador. Chasis (mainframe): Una computadora multiusuario de gran potencia capaz de soportar miles de usuarios simultáneamente. Msc. Miniordenador (minicomputer): Un ordenador para varios usuarios capaz de soportar centenares de usuarios simultáneamente. aunque hoy un solapamiento considerable: Ordenador personal (personal computer): Un ordenador pequeño.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador C.U. Estación de trabajo (workstation): Una computadora de gran potencia para un sólo usuario. Superordenador (supercomputer): Un ordenador extremadamente rápido que puede realizar cientos de millones de instrucciones por segundo.P. un ordenador personal tiene un teclado para introducir datos. cada ordenador requiere un bus que transmita datos de una parte del ordenador a otra. Jéfferson Beltrán M. Por ejemplo.

los dispositivos de hardware y el usuario. el Sistema Operativo. Estos programas son. Los principales sistemas operativos son: MS-DOS. instruye a la computadora para ejecutar otros programas. Jéfferson Beltrán M. Unix. Ing. iOS. navegadores. los compiladores de lenguajes de programación y los utilitarios (Microsoft Office. El software del sistema es el conjunto de programas indispensables para que la máquina funcione. básicamente. Microsoft Windows. Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones. Android. los editores de texto (Word. etc). correo electrónico. o El Sistema Operativo es el software básico de una computadora. etc. administra los recursos de la máquina. o software. OpenOffice. coordina el hardware y organiza archivos y directorios en dispositivos de almacenamiento de una forma sencilla y transparente para el usuario. etc). Solaris. 5 . El software se divide en dos grandes grupos: Software del sistema.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Nota: No se dará más detalle sobre los ordenadores pues nos tomaría todo el semestre y no es el objetivo del curso. que provee una interfaz entre el resto de programas del ordenador. antivirus. EL SOFTWARE. Msc. 2. Mac OS. y Software de aplicaciones. Writer. Dirige las operaciones globales de la computadora. Linux. llamadas programas.

a través de reglas propias. operaciones y relaciones que. 6 . El SISTEMA BINARIO. El sistema de numeración binario es el conjunto de elementos {0. Msc.1. 3. contabilidad. 1} con las operaciones aritméticas (suma. Ing. SISTEMAS DE NUMERACIÓN. Se utilizan los sistemas octal y hexadecimal (bases 8 y 16) respectivamente para obtener códigos intermedios. utilizar códigos intermedios resulta más favorable que transformar directamente decimales en binarios y al revés.2. 3.) se denominan programas de aplicación o software de aplicaciones. El bit del extremo de la derecha es el bit menos significativo o de menor peso. análisis estadístico. Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Los programas que realizan tareas concretas (por ejemplo facturación. permite establecer el papel de tales relaciones y operaciones. multiplicación) y lógicas (OR. AND y NOT). gestión de negocios. Las computadoras suelen efectuar las operaciones aritméticas utilizando una representación para los datos numéricos basada en el sistema de numeración de base dos conocido como binario natural o simplemente binario. el hexadecimal y sobre todo el binario. Los elementos del conjunto o alfabeto binario se denominan cifras binarias o bits. SISTEMA BINARIO Y REPRESENTACIÓN BINARIA DE DATOS. Sistema de Numeración es el conjunto de elementos o símbolos. 3. El más conocido y usado es el sistema de numeración decimal. sistemas bancarios. resta. no es el único y por el contrario los más utilizados en los circuitos digitales son el octal. etc. A nivel electrónico.

hasta obtener cociente cero. Se va dividiendo la cantidad decimal por 2.2. 7 .1. Ejemplo: convertir a decimal 101011102 3. Msc. y realizar la suma de las operaciones.2. TRANSFORMACIÓN DE BINARIO A DECIMAL (ENTEROS). Consiste en multiplicar cada uno de los términos por potencias crecientes de 2 a partir de la coma decimal y hacia la izquierda.2. Ing. TRANSFORMACIÓN DE DECIMAL (ENTEROS) A BINARIO. El último resto obtenido es el bit más significativo (MSB) y el primero es el bit menos significativo (LSB).Fundamentos de Programación – Algoritmos Universidad Central del Ecuador El bit del extremo de la izquierda es el bit más significativo o de mayor peso. 3. apuntando los restos. Jéfferson Beltrán M.

la resta.3. Msc. ya que el sistema binario también es un sistema posicional Las operaciones binarias lógicas básicas son OR. XOR. 8 . Jéfferson Beltrán M. OPERACIONES BÁSICAS Y LÓGICAS. la multiplicación y la división. AND y NOT. de aquí surgen otras como la NOR. la NAND.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 3. Las operaciones más básicas con el sistema binario son la suma. Estas operaciones son similares a las del sistema decimal.2. Ing. la XOR y la XNOR.

que ocupa un byte. 9 . 64. que se compone de 8 bits. 8. 32. como la memoria y los buses. Msc. La AND a la intersección y la NOT al complemento. Ing.3. 3. megabyte (Mb). 256 y 512 bits. en cualquier dispositivo digital o en la teoría de la información. Los tamaños más comunes son: Octeto. etc). números. por los que su sistema de numeración natural es el sistema binario. A mayor tamaño de palabra. El ordenador trabaja con agrupaciones de bits fáciles de manipular y suelen ser múltiplos de 2. caracteres especiales. con él se puede codificar un alfabeto completo (ASCII estándar). 32 y 64 bytes. Es la agrupación de 8 bits. 1 byte. sino que se trabaja a nivel de carácter (letras. carácter o byte. Son comunes palabras de 8. etc. El bit es la unidad mínima de almacenamiento empleado en informática. con él podemos represe4ntar dos valores (0 y 1). es el tamaño más común de información. Es el tamaño de información manejada en paralelo por los componentes del sistema. A continuación se muestra la tabla de verdad de las principales operaciones lógicas binarias. 16. es decir. Palabra. mayor es la precisión y la potencia de cálculo del ordenador. 4. los ordenadores trabajan internamente con dos niveles de voltaje: ―apagado‖ (0) y ―encendido‖ (1).Fundamentos de Programación – Algoritmos Universidad Central del Ecuador La OR responde a la unión entre conjuntos. gigabyte (Gb). la base del sistema binario. Jéfferson Beltrán M. REPRESENTACIÓN BINARIA DE DATOS. Cuando se almacena la información no se trabaja a nivel de bit. Lo normal es utilizar los múltiplos del byte: kilobyte (kb). 128.

Jéfferson Beltrán M. Si utilizamos n bits para codificar m símbolos. así como su número m. los caracteres se codifican con un código de entrada/salida. sincronización de una transmisión (SYN). cualquier texto se puede representar por medio de caracteres. Ing. Caracteres especiales: símbolos ortográficos y matemáticos no incluidos en los grupos anteriores. 10 . etc. Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Cualquier información escrita. Los caracteres utilizados en informática se suelen clasificar en cinco categorías: Caracteres alfabéticos: letras mayúsculas y minúsculas del alfabeto Caracteres numéricos: constituidos por las diez cifras decimales. se podrían codificar 4 símbolos distintos (m=4). es decir. Los elementos del conjunto de caracteres. asociando a cada carácter una determinada combinación de n bits. dependerán del código de E/S utilizado por el programa que interprete el texto introducido así como del periférico que lo codifique. como salto de línea (NL). Cuando se introducen textos en un ordenador a través del periférico que corresponda. el número mínimo de bits necesarios para codificar un conjunto de símbolos depende del cardinal de este conjunto: Con 2 bits (n=2) podemos hacer 2^2=4 combinaciones. pitido (BEL). Caracteres geométricos y gráficos: símbolos con los que se representan formas geométricas o iconos elementales: Caracteres de control: representan órdenes de control. comienzo de línea (CR).

y así sucesivamente. Jéfferson Beltrán M. Dicho de otra forma. o No contempla la codificación de caracteres de control. ALGORITMOS Y ELEMENTOS QUE LO CONFORMAN. para codificar m símbolos distintos se necesitan n bits. o No determina la forma o imagen concreta de cada carácter (fuente). pudiendo codificarse en total 216 = 65356 símbolos diferentes. Ing. que es el lenguaje de programación. Todos los símbolos se representan con un número fijo de bits.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Con 3 bits (n=3) serían 2^3=8 combinaciones. Unicode es un código de E/S propuesto por un consorcio de empresas y entidades que trata de crear aplicaciones capaces de procesar texto de muy diferentes sistemas de escritura. Cada una de las acciones de que consta un algoritmo es denominada sentencia (o instrucciones) y éstas deben ser escritas en términos de cierto lenguaje comprensible para el computador. definidos y finitos. Msc. El código ASCII extendido usa 8 bits por carácter por lo que se tienen 256 caracteres diferentes.. 8 símbolos (m=8). etc. y cualquier información que se almacene en un computador. japonesa. Con n bits se podrían codificar m=2^n símbolos distintos. o Cubre la mayoría de los lenguajes actuales. símbolos como ä. 4. siendo n el menor número natural que verifica: Los principales códigos de E/S son: El código ASCII (American Standard Code for Information Interchange) básico utiliza 7 bits y es uno de los más utilizados actualmente. o A cada carácter se le asigna un único código. Las características principales son: o Está reconocido como estándar ISO/IEC 10646. coreana. o Cada carácter está formado por una cadena de 16 bits. etc. imágenes. Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos. 16 concretamente. o Incluye caracteres combinados. El problema es que los símbolos codificados son insuficientes para representar caracteres especiales de idiomas de diversas culturas como china. videos. Se puede también representar también sonidos. ñ. 11 . Es un conjunto de reglas para resolver determinado problema describiendo de forma lógica su solución. etc.

Terminará después de un número finito de pasos. Los criterios que debe satisfacer un algoritmo (características) son: o Entrada. CONSTANTES Y VARIABLES. Una variable es. Por su parte. o Exactitud/precisión. tal como ‗B‘. pueden clasificarse en dos grupos: A un dato cuyo valor no puede cambiar (se mantiene constante) durante la ejecución de un programa se lo denomina Constante.2. Dada una misma entrada. Estos datos. Por ejemplo. Cada instrucción debe ser clara y sin ambigüedad (hacen lo que deben hacer). Son cero o más parámetros (datos) los cuales son externamente sustituidas. que determina la naturaleza del conjunto de valores que aquel puede tomar. o Repetible. 4.2. 12 .1. Todos los programas necesitan almacenar datos temporalmente para poder procesarlos y generar así la salida esperada.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 4. 4. Las diferencias piezas de información con las que un programa trabaja se conocen colectivamente como “datos”. una cadena de caracteres como ―Hola Mundo‖. Cada instrucción puede ser verificada por una persona con una prueba manual que satisfaga los requerimientos planteados por el problema. un valor de verdad como Verdadero o Falso. Al menos un dato es producido.1.2. o Eficiente. Entre ellos se tienen: 4. CARACTERÍSTICAS DE LOS ALGORITMOS. a grandes rasgos. PARTES DE UN ALGORITMO. un valor entero como 36. en Ing. entre otros. Msc. Jéfferson Beltrán M. Las constantes deben ser declaradas y asignadas un valor antes de su utilización. un dato puede ser un simple caracter. un número real como 5. los datos de un programa cuyo valor puede cambiar durante la ejecución del mismo se conocen como Variables. TIPOS DE DATOS. Los algoritmos se construyen utilizando elementos simples para que el lenguaje se parezca más a los lenguajes de programación de alto nivel. Todos los datos tienen un “tipo” asociado con ellos. siempre debe dar la misma salida. o Salida.75.2. o Finito.

2. El ejemplo más típico de sentencia simple es la sentencia de asignación. la cual se utiliza para almacenar un valor en una variable. operaciones de cálculos aritméticos y entradas/salidas de datos) y no ejecutables (no realizan acciones concretas ni afectan a la ejecución del programa. Las sentencias describen acciones algorítmicas que pueden ser ejecutadas. 13 . según su tipo y número.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador realidad. donde cada una de las cuales tiene un número y contiene un valor. Las variables se asemejan a cajas o buzones. Las sentencias se clasifican. las sentencias se clasifican en ejecutables (especifican. y que contiene un valor (Valor de la Variable). Las variables y constantes se pueden procesar utilizando operaciones y funciones adecuadas para sus tipos. Sentencias estructuradas: Son sentencias compuestas de otras sentencias que se ejecutan en secuencia. Se denomina expresión a un conjunto de variables y / o constantes unidas por operadores. en: Sentencias Simples: Son sentencias que no contiene ninguna otra sentencia. Existen tantos tipos de variables como tipos de datos diferentes.3. por ejemplo. una posición de memoria con nombre (Nombre de la Variable). OPERADORES Y EXPRESIONES. SENTENCIAS O INSTRUCCIONES. En general. Otros ejemplos de sentencias simples son las de entrada/salida. sino que ayudan a su legibilidad) como la declaración de variables.4. condicionalmente o repetidamente. La operación de asignación se suele representar en pseudocódigo con el símbolo ‗‘. 4. para denotar que el valor situado a su derecha se almacena en la variable situada a la izquierda: o variable  Valor o Ejemplo: suma0 (la asignación sólo será válida si el valor es válido para el tipo de dato definido para la variable). Jéfferson Beltrán M.2. Msc. Ing. Un operador es un símbolo o palabra que significa que se ha de realizar cierta acción entre uno o dos valores que son llamados operandos. 4.

Los operadores aritméticos y los relacionales se utilizan de la siguiente forma: variable o constante operador variable o constante.2. La operación and (y) combina dos condiciones simples y produce un resultado verdadero sólo si los dos operandos son verdaderos. ― = ‖ (Igual a) y ― <> ‖ (Distinto a). Aunque un flujo normal de un programa estructurado es lineal. Existen diversos tipos de operadores. Su resultado es un número. Su resultado es un valor de verdad. Ejemplos de operadores relacionales son ― < ‖ (Menor que). ― . Por ejemplo: a + b. etc. Ejemplos de operadores aritméticos son ― + ‖.‖. Jéfferson Beltrán M. Existen otros operadores lógicos además de los mencionados. De relación: Los operadores de relación (o relacionales) se utilizan para expresar condiciones y describen una relación entre dos valores. ― >‖ (Mayor que). la resta. ― * ‖ y ― / ‖.. por ejemplo: Aritméticos: Son apropiados únicamente para tipos numéricos. etc. etc. a<b.69 * X 4. Su resultado en es valor de verdad.5.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Si en una expresión existe más de una operación debe tenerse en cuenta que existen una serie de reglas para definir la prioridad en la que éstas se realizarán. existen métodos que Ing. El concepto de flujo de control a través de un algoritmo y luego del programa se refiere al orden en que se ejecutan las acciones individuales del mismo. los cuales permiten obtener el resultado de la suma. c/d. 14 . Lógicos: Estos operadores se utilizan con constantes lógicas de forma similar al modo en que los operadores aritméticos se utilizan con las constantes numéricas. la multiplicación y la división de dos datos respectivamente. Estos operadores trabajan con operandos que son expresiones lógicas. Ejemplo de expresión: Cos (2*pi * X) + 7. Por este motivo es que se suelen utilizar los paréntesis para establecer la prioridad de aplicación de los operandos. La operación not (no) actúa sobre una sola condición simple u operando y simplemente niega (o invierte) su valor. La operación or (o) es verdadera si uno de los dos operandos es verdadero. ESTRUCTURAS DE CONTROL. c<>d. Msc.

Las estructuras de control de un lenguaje de programación son métodos para especificar el orden en que las instrucciones de un algoritmo se ejecutarán. 15 . fundamentales en los lenguajes de programación y en los diseños de los algoritmos. por consiguiente. De Selección/Condicionales: Bifurcación condicional de una o más operaciones. 4. los procesa y genera la salida. De Repetición o Iteración: Repetición de una operación mientras se cumple una condición. A partir de los datos de entrada se consigue la salida. PASOS PARA CREAR UN ALGORITMO. los algoritmos reciben datos de entrada. Los pasos para crear un algoritmo son: Análisis del problema. El proceso se refiere a los cálculos que se deben hacer para obtener la salida deseada. Estas estructuras son. Es mejor solucionar problemas pequeños. Se realiza las pruebas manuales necesarias para comprobar que el algoritmo arroje los resultados deseados. Msc. Para resolver cualquier problema.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador permiten salir del flujo lineal a través del uso de las llamadas estructuras de control. Jéfferson Beltrán M. Prueba del algoritmo.3. Se describen los pasos para resolver el problema. Las estructuras de control son: Secuencia: Sucesión simple de dos o más operaciones (una tras otra). Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el problema y disponerlas en el orden en que han de ser ejecutadas. En general. Diseño del algoritmo. Ing. se debe comprenderlo completamente.

impresoras. DATOS. CONCEPTOS BÁSICOS DE PROGRAMACIÓN.1. Es un proceso para convertir especificaciones generales de un sistema en instrucciones utilizables por la máquina. Msc. El primero trabaja con representaciones gráficas. Por ejemplo: los datos de una persona como su edad. 5.3. Debe ser confiable y funcional. etc. que produzcan los resultados deseados.) para la realización y explotación de aplicaciones informáticas. SISTEMA INFORMÁTICO.2. el segundo con un lenguaje especial (más adelante se describirá a detalle éstos conceptos). Java. etc. Ser comprensible. En el conjunto de elementos necesarios (computadora. Ing. INFORMACIÓN. Se le conoce también como desarrollo de software. domicilio. número de teléfono. etc.5. fecha de nacimiento. Las instrucciones se componen de enunciados usados en lenguajes de programación como Pascal. Son las características propias de cualquier entidad. CARACTERÍSTICAS DEL PROGRAMA.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Los algoritmos generalmente se escriben en diagramas de flujo y pseudocódigo. C. PROGRAMA. 5.4.1. APLICACIÓN INFORMÁTICA. terminales. 5. Es el conjunto de uno a varios programas. Documentado adecuadamente. 5. 5. C#. Codificado en el lenguaje apropiado. Advertir errores de entrada obvios y comunes. 16 . 5. Jéfferson Beltrán M.1. Es una lista de instrucciones que la computadora debe seguir para procesar datos y convertirlos en información. 5.

6. Consiste en la recolección de datos de entrada que son evaluados y ordenados para ser colocados de manera que produzcan información útil. se pueden considerar una serie de fases o pasos comunes que generalmente deben seguir todos los programadores. PROCESAMIENTO DE DATOS.1. etc) Administración de la salida resultante. 5. cálculos. un proceso creativo. Msc. Como habíamos mencionado. y a su ejecución en la misma. El proceso de resolución de un problema con una computadora conduce a la escritura de un programa. 6.6. Las dos primeras fases conducen a un diseño detallado escrito en forma de algoritmo. 5. ACTIVIDADES DEL PROCESAMIENTO DE DATOS.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Es el conocimiento relevante producido como resultado del procesamiento de datos y adquirido por la gente para realzar el entendimiento y cumplir ciertos propósitos. esencialmente. transformación. un algoritmo es un método para resolver un problema mediante una serie de pasos (instrucciones) precisos. RESOLUCIÓN DE PROBLEMAS CON COMPUTADORA . Jéfferson Beltrán M. Aunque el proceso de diseñar programas es. definidos y Ing. ordenación. Las fases de resolución de un problema con computadoras son: Análisis del problema Diseño del algoritmo solución Codificación Compilación y Ejecución Verificación Depuración Documentación Mantenimiento El proceso de crear y mantener programas de computación se denomina Desarrollo de Software o Ciclo de Vida de Desarrollo de Software.DESARROLLO DE SOFTWARE. Captura de datos de entrada Manejo de los datos (incluye clasificación. 17 .

6. Los programas son mantenidos en el tiempo. Se requieren de cinco tareas: 1.1. esto nos permitirá saber qué es lo que se pretende solucionar y nos proporcionará información útil para el planeamiento de la solución. Msc. Los datos seleccionados deben ser arreglados en una forma ordenada para producir información. 5. Aquí se definen las tareas de procesamiento que deben desempeñarse para que los datos de entrada se conviertan en una salida. debe realizarse la documentación del mismo..1. 6. se pueden determinar los datos de entrada y la fuente de estos datos. en definitiva. 18 . Una vez identificada la salida que se desea. el planteamiento del problema. Determinación de los requerimientos de procesamiento. Los datos deben ser recolectados y analizados.. de qué presupuestos se debe partir. 4.1. Determinación de la salida deseada. definición o análisis del problema. En las fases de verificación y depuración el programador busca errores de las etapas anteriores y los elimina. reflejando las ideas desarrolladas en la fase de análisis y diseño. Deben registrarse todos los datos necesarios para el procesamiento requerido. ANÁLISIS DEL PROBLEMA. 2. Durante la tercer etapa (codificación) se implementa (poner en funcionamiento) el algoritmo en un código escrito en un lenguaje de programación. Determinación de los datos de entrada. Esta salida podría ser una salida de impresión. etc. Por último. menor será el tiempo necesario para depurar el programa. Es importante disponer de documentación permanente. Determinación de objetivos del programa. Esto conduce al siguiente paso del diseño del programa. de presentación en el monitor. En este paso se determinan la información inicial para la elaboración del programa. Jéfferson Beltrán M. Cuanto más tiempo se invierta en la fase de análisis y diseño. Es donde se determina qué es lo que debe resolverse con el computador.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador finitos. La fase de compilación y ejecución traduce y ejecuta el programa. PASOS DEL DESARROLLO DE SOFTWARE. Debe definirse claramente los problemas particulares que deberán ser resueltos o las tareas que hay que realizar. Ing. 3. Se conoce también como especificación. pues se realizan mejoras o se aumenta funcionalidad a los mismos. Documentación de las especificaciones del programa.

Msc.3. Intento de Traducción. Se corre el programa en forma manual aplicando datos tanto correctos como incorrectos para comprobar que funciona correctamente. Revisa el listado línea por línea en busca de errores de sintaxis y lógica. 6. Es la generación real del programa con un lenguaje de programación. Cálculos. el compilador comprueba la sintaxis y semántica del programa.1. En la fase de compilación y ejecución. CODIFICACIÓN DEL PROGRAMA.5.4. lo traduce y se ejecuta el programa. Almacenamiento/ consulta. DISEÑO DEL ALGORITMO SOLUCIÓN.VERIFICACIÓN. 6. COMPILACIÓN Y EJECUCIÓN. Para ello debe Ing. PRUEBAS . 19 . Prueba manual de datos de muestra. Chequeo de Escritorio. Es diseñar cualquier sistema nuevo o las aplicaciones que se requieren para satisfacer las necesidades. En este paso se genera una solución con técnicas de programación como diseño descendente de programas.1. El programa corre en una computadora usando un programa traductor para convertirlo a lenguaje de máquina.1. El programador se sienta frente a un escritorio y corrige una impresión del programa.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 6. Lógica/ comparación. Consiste en verificar la funcionalidad del programa a través de varios métodos para detectar errores posibles.2.1. 6. En esta etapa se hace uso de la lógica que desarrolló en el paso del diseño del programa para efectivamente generar un programa. Se debe seleccionar el lenguaje apropiado para resolver el problema. Jéfferson Beltrán M. Esta actividad se debe dividir en: Operaciones de entrada/salida. pseudocódigos. diagramas de flujo y estructuras lógicas.

Usuarios potenciales ponen a prueba el programa y ofrecen retroalimentación. DOCUMENTACIÓN DE PROGRAMA. Son los más difíciles de corregir. Errores de Lógica. exceder un rango de valores permitidos. no sólo por la dificultad de detectarlos. Después del intento de traducción y corregidos los errores de sintaxis. En esta fase se comprueba el funcionamiento de cada programa y esto se hace con datos reales o ficticios. el cual dará información sobre el lugar donde está y la naturaleza de cada uno de ellos mediante un mensaje de error. Es el peor tipo de error y el más difícil de corregir. Msc. se pueden encontrar los siguientes errores: Errores de sintaxis o de compilación. Cuando los programas están depurados. lo cual puede implicar repetir gran parte del trabajo realizado. DEPURACIÓN. sino porque se deben a la propia concepción y diseño del programa. leer un dato no numérico en una variable numérica. Se trata por lo general del paso final en la prueba de un programa. Se deben a mal diseño del programa posiblemente por mala comunicación usuario-programador y se detectan cuando ya se ha concluido el diseño e incluso cuando el programa está en producción (funcionando).6. Son más fáciles de corregir. Se deben generalmente a operaciones no permitidas como dividir por cero. etc. Errores de Especificación. Es una violación de las reglas del lenguaje de programación. Prueba de datos de muestra en la computadora.7.1. Jéfferson Beltrán M. 6. de lo contrario serán identificados por el programa de traducción. 20 . Depurar es correr el programa en una computadora y corregir las partes que no funcionan. Corresponden a la obtención de resultados que no son correctos y la única manera de detectarlos es realizando suficientes pruebas del programa.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador estar ya libre de errores de sintaxis. se procede a buscar errores de lógica utilizando diferentes datos de muestra. Ing. se prueban. Esto se conoce como prueba beta. 6. Cuando los programas se depuran. Prueba por un grupo selecto de usuarios potenciales. Se detectan porque se produce una parada anormal del programa durante su ejecución. ya que son detectados por el compilador (posible error de escritura).1. Errores de Ejecución.

Jéfferson Beltrán M. 6. mensajes de error. El manual del usuario no está escrito a nivel técnico sino al de los distintos usuarios previstos y explica en detalle cómo usar el programa: descripción de las tareas que realiza el programa. Es por ello. También se documenta técnicamente mediante diagramas UML (Unified Modeling Language). descripción de los ficheros de cada módulo y todo lo que sea de importancia para un programador. corridas. 21 . A los programadores a través del manual técnico para que recuerden aspectos de la elaboración del programa o en caso que otras personas puedan actualizarlo o modificarlo (darle mantenimiento) y no son necesariamente las personas que lo diseñaron.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Consiste en describir por escrito a nivel técnico los procedimientos relacionados con el programa y su modo de uso. Alrededor del 75% del costo total del ciclo de vida de un programa se destina al mantenimiento. El propósito del Ing. recomendaciones de uso. A los analistas de sistemas que son las personas que deberán proporcionar toda la información al programador. etc. descripción de variables que se emplean en cada módulo. Es el paso final del desarrollo del software. A los operadores por si se presentan mensajes de error. cuáles son comunes a diferentes módulos y cuáles locales. MANTENIMIENTO DEL PROGRAMA. método de entrada y salida de datos. menús de opciones. recuperación de errores. A los usuarios se les elabora un manual de referencia o de usuario para que aprendan a utilizar el programa. Además que se encargan de darle soporte técnico al programa.8. También se debe documentar el programa para que sea más entendible.1. sepan cómo responder a ellos. Esto se hace a través de capacitaciones y revisión de la documentación del manual de usuario. instrucciones necesarias para su instalación puesta en marcha y funcionamiento. Estos se encargan de hacer una investigación previa de cómo realizar el programa y documentar con las herramientas necesarias para que el programador pueda desarrollar el sistema en algún lenguaje de programación adecuado. listados del programa. Msc. que la documentación debe contener algoritmos y diagramas de flujo de los diferentes módulos que lo constituyen y las relaciones que se establecen entre ellos. ¿Para quiénes es la documentación? Los documentos que deben elaborarse son: Manual de Usuario y Manual Técnico.

además que los sistemas evolucionan en el tiempo y su funcionalidad es aumentada o mejorada de acuerdo a las necesidades de los usuarios. TIPOS Y PARADIGMAS DE PROGRAMACIÓN. Programación Estructurada es una técnica en la cual la estructura de un programa. PROGRAMACIÓN ESTRUCTURADA. esto es. 7. la interpelación de sus partes se realiza tan claramente como es posible mediante el uso de tres estructuras de control: Secuencia: Sucesión simple de dos o más operaciones (una tras otra). Jéfferson Beltrán M. se presenta brevemente las principales técnicas de programación: 7. Una característica importante en un programa estructurado es que puede ser leído en secuencia. Existen varios tipos o técnicas de programación. Estos tres tipos de estructuras lógicas de control pueden ser combinados para producir programas que manejen cualquier tarea de procesamiento de información. La programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a funciones o procedimientos. 22 . PROGRAMACIÓN MODULAR. Msc. las técnicas se centran en programación estructurada.2. En la programación modular. Ing. modular y orientada a objetos. 7. Repetición: Repetición de una operación mientras se cumple una condición. el programa principal coordina las llamadas a los módulos secundarios (subprogramas) y pasa los datos necesarios en forma de parámetros. de esta manera la comprensión y lectura de un programa es muy sencilla y se torna fácil el encontrar errores. en la mayoría de casos.1. Selección/Condicional: Bifurcación condicional de una o más operaciones. desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa. que integran el programa en su totalidad.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador mantenimiento es garantizar que los programas en uso estén libres de errores de operación y sean eficientes y efectivos. A continuación.

qué operaciones se pueden realizar con él. los objetos disponen de mecanismos de interacción llamados métodos. La Ing. De esta manera se estaría realizando una programación estructurada camuflada en un lenguaje de programación orientado a objetos. polimorfismo y encapsulamiento Los objetos son entidades que tienen un determinado estado (atributos). al poder tener valores bien diferenciados en sus atributos. El comportamiento está definido por los métodos o mensajes a los que sabe responder dicho objeto. es decir. en las que no se separa el estado y el comportamiento. Msc. 23 . 7. La POO difiere de la programación estructurada tradicional. 7. Esta característica lleva a tratarlos como unidades indivisibles. para diseñar aplicaciones y programas informáticos. es su identificador (concepto análogo al de identificador de una variable o una constante). en la que los datos y los procedimientos están separados y sin relación. PROGRAMACIÓN ORIENTADA A OBJETOS (POO). abstracción.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador A su vez.3. La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones. PROGRAMACIÓN FUNCIONAL. dicho con otras palabras. comportamiento (método) e identidad: El estado está compuesto de datos. ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. que favorecen la comunicación entre ellos. será uno o varios atributos a los que se habrán asignado unos valores concretos (datos). Jéfferson Beltrán M. Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase. cada módulo puede contener sus propios datos y llamar a otros módulos o funciones.4. A su vez. Está basado en varias técnicas. La identidad es una propiedad de un objeto que lo diferencia del resto. Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. incluyendo herencia.

24 . en la programación dirigida por eventos será el propio usuario —o lo que sea que esté accionando el programa— el que dirija el flujo del programa. se ejecutará el código del administrador de evento. Mientras en la programación estructurada (o secuencial) es el programador el que define cuál va a ser el flujo del programa. En la programación dirigida por eventos. al ejecutarse el programa esperará hasta que se produzca algún evento. para que sea interpretado comando por comando cada vez que se ejecuta por un intérprete o un shell.6. lo que se conoce como el administrador de evento. estas intervenciones ocurrirán cuando el programador lo haya determinado. el programa pasará a ejecutar el código del correspondiente administrador de evento. Ing. 7. PROGRAMACIÓN DE SCRIPTS. La programación dirigida por eventos es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema.5. Aunque en la programación secuencial puede haber intervención de un agente externo al programa. definidos por el usuario o que ellos mismos provoquen.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones. Cuando alguno de los eventos esperados por el programa tenga lugar. PROGRAMACIÓN DIRIGIDA POR EVENTOS. Por ejemplo. y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada solo se escriben funciones que procesan datos. Msc. en cambio. si el evento consiste en que el usuario ha hecho click en el botón de play de un reproductor de películas. Un script es un programa que se escribe con una sintaxis particular generalmente en un archivo de texto plano que permanece en su forma original. Jéfferson Beltrán M. y no en cualquier momento como puede ser en el caso de la programación dirigida por eventos. que será el que haga que la película se muestre por pantalla. primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos. El creador de un programa dirigido por eventos debe definir los eventos que manejarán su programa y las acciones que se realizarán al producirse cada uno de ellos. Los programadores que emplean POO. 7.

Esto se logra dividiendo el problema en partes independientes de tal manera que cada elemento de procesamiento pueda ejecutar su parte del algoritmo a la misma vez que los demás. Ing. 7. Los elementos de procesamiento pueden ser diversos e incluir recursos tales como un único ordenador con muchos procesadores. 7. Se basa en el principio de que los problemas grandes se pueden dividir en partes más pequeñas que pueden resolverse de forma concurrente ("en paralelo"). Este paradigma es el resultado natural del uso de las computadoras y las redes. PROGRAMACIÓN LÓGICA. abiertos. Casi cualquier lenguaje de programación que tenga acceso al máximo al hardware del sistema puede manejar la programación distribuida. La programación paralela es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente. varios ordenadores en red. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas. considerando una buena cantidad de tiempo y código. PROGRAMACIÓN CONCURRENTE Y PARALELA. operaciones matemáticas simples. La programación distribuida es un paradigma de programación enfocado en desarrollar sistemas distribuidos. con la posibilidad de hacer algún tipo de procesamiento propio (como control de flujo. Se trata de una programación más lenta y laboriosa. pueda dar soluciones inteligentes). Se suele utilizar en la inteligencia artificial.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Un script es básicamente un programa que llama a otros programas.9. PROGRAMACIÓN DISTRIBUIDA. Msc. escalables. transparentes y tolerantes a fallos. 25 . etc). Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultánea. La computación paralela emplea elementos de procesamiento múltiple simultáneamente para resolver un problema. Jéfferson Beltrán M. principalmente en juegos y en sistemas expertos. 7.7. hardware especializado o una combinación de los anteriores.8.

. Es un conjunto de símbolos junto a un conjunto de reglas para combinar dichos símbolos que se usan para escribir programas de computadoras que pueden ser entendidos por ellas. que viene a ser el lenguaje común para la construcción de una página Web. en cambio el cliente es un navegador web como Internet Explorer. PROGRAMACIÓN WEB. se deben tener claros. Apple Safari. En la programación web. Mozilla Firefox.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador La programación distribuida típicamente cae en alguna de las varias arquitecturas básicas o arquitecturas: cliente-servidor. Constan de un léxico. Con la programación web podemos desarrollar sitios dinámicos como periódicos digitales o tiendas virtuales. Jéfferson Beltrán M. objetos distribuidos. es el lenguaje necesario cuya funcionalidad es la de representar cualquier clase de información que se encuentre almacenada en una página Web. La programación web. 26 . Las aplicaciones web residen en un servidor web como Apache. el HTML es el lenguaje que permite codificar o preparar documentos de hipertexto. etc. LENGUAJES DE PROGRAMACIÓN. HTML (Hypertext Markup Language). Google Chrome. que es el protocolo encargado de llevar la información que contiene una página Web por toda la red de internet. 7. tres conceptos fundamentales: El URL (Uniform Resource Locators). el URL no es más que un nombre. 8. que identifica una computadora. que significan World Wide Web o telaraña mundial. una sintaxis y una semántica. Esto se consigue generando los contenidos del sitio a través de una base de datos mediante lenguajes de script. n-tier. parte de las siglas WWW. Para realizar una página con la programación web. entre otras además.10. Msc. Ing. un servicio o cualquier otra cosa. dentro de esa computadora un archivo que indica el camino al recurso que se solicita. Internet Information Server (IIS). 3-tier. La programación web permite la creación de sitios dinámicos en Internet. etc. este recurso puede ser una página web. En resumen. es un sistema con el cual se localiza un recurso dentro de la red. HTTP (Hypertext Transfer Protocol).

27 . Éstos se clasifican en tres grandes categorías: máquina. Los lenguajes de bajo nivel fueron diseñados con ese fin. Un lenguaje típico de bajo nivel es el lenguaje ensamblador (Assembler). Msc. La programación en lenguaje de máquina es difícil.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Léxico: Conjunto de símbolos permitidos o vocabulario. Sintaxis: Reglas que indican cómo realizar las construcciones del lenguaje. Semántica: Reglas que permiten determinar el significado de cualquier construcción del lenguaje. ya que implica escribir directamente en un sistema binario (ceros y unos). Los lenguajes de programación de alto nivel son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos – en general lenguaje inglés – lo que facilita la escritura y comprensión por parte del programador. y los programas escritos en ellos deben ser traducidos a lenguaje máquina para poder ser ejecutados. 8. LENGUAJES DE BAJO NIVEL. no son entendibles directamente por la máquina.2. 8. LENGUAJES DE MAQUINA. Los lenguajes de máquina son aquellos cuyas instrucciones son directamente entendibles por la computadora. y no necesitan traducción posterior para que el CPU pueda comprender y ejecutar el programa. Algunos ejemplos de tipos de lenguajes de alto nivel son: Ing. Una propiedad de los lenguajes de alto nivel es que son independientes de la máquina. según su evolución temporal y el uso que se les quiera dar. esto es. las sentencias del programa no dependen del diseño de hardware de una computadora específica. o assembler) y alto nivel. LENGUAJES DE ALTO NIVEL.3. Jéfferson Beltrán M. Los programas escritos en un lenguaje de alto nivel se llaman Programas Fuente. 8. Éstos son dependientes de la arquitectura física de la computadora y de un conjunto específico de instrucciones para el CPU. por eso se necesitan lenguajes que permitan simplificar ese proceso. Existen diversos tipos de lenguajes de programación de alto nivel.1. bajo nivel (ensamblador. al igual que los escritos en lenguajes de bajo nivel. sino que necesitan ser traducidos a instrucciones en lenguaje máquina que entiendan las computadoras. Los programas escritos en lenguajes de alto nivel.

 De programación web: Del lado del servidor se tiene ASP (Active Server Pages). etc. sed.NET. C#. Lisp. Visual Basic. o GUI Scripting: AutoHotkey. Fortran. Msc. CAML. 28 . Expect. o Lenguaje scripting de aplicaciones específicas: ActionScript en Flash. Prolog. Cobol. etc. AutoIt. etc De scripting: o Lenguaje de control de tareas y shells: cmd. Python. C++. Perl. Delphi.. MATLAB. etc. etc. Jéfferson Beltrán M. JScript. Ing.procedimentales: Basic. Declarativos: Lisp. etc. Multiparadigma: Java. PHP. AppleScript. Funcionales: AML. COMPILADORES E INTÉRPRETES. etc. sh. Ruby. El proceso de traducción de un programa fuente a un programa objeto se denomina Compilación. Los compiladores son programas se encargan de traducir lo que haya escrito en lenguaje de alto nivel (código o programa fuente) y lo convierten en un programa llamado código o programa objeto (casi ejecutable). etc. XSLT.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Estructurados . Visual Basic. Visual Basic. Perl.exe. C#. o Lenguajes dinámicos de propósito general: Groovy. mIRC. JSP (JavaServer Pages). PHP. Java. csh. etc. C++. VBScript. y del lado del cliente lenguajes como JavaScript.4. C. o Lenguajes de procesamiento de textos: AWK. Orientados a Objetos: SmallTalk. etc. Automator. COMPILACIÓN. etc. Objetive-C.NET. Pascal. Dirigidos por eventos: Visual Basic. etc. 8.

Ejemplo: Basic estándar y JavaScript. un intérprete permite que un programa fuente escrito en un lenguaje vaya traduciéndose y ejecutándose directamente sentencia a sentencia por la computadora. su ejecución es independiente de su compilación. sobre todo cuando se habla de programas objeto. En cambio.1. Compilador un programa que traduce un programa escrito en un lenguaje de alto nivel. el programa se ejecuta más rápido.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 8. Para evitar confusiones. Jéfferson Beltrán M. informa al usuario de la presencia de errores en el programa fuente. Involucra dos pasos en su operación: Convertir código fuente a objeto. por ejemplo C++. Msc. Convierte y ejecuta el programa en línea al mismo tiempo. Código se usa frecuentemente para referirse a un programa o a una parte de él. Al tener el código objeto. COMPILADOR E INTÉRPRETE. solemos llamar programa fuente o código fuente al programa de entrada.4. Un compilador es un tipo especial de programa. en un programa en lenguaje de máquina que la computadora es capaz de entender y ejecutar directamente. Una vez traducido un programa. y programa objeto o código objeto a la versión traducida que el compilador produce. Convierte uno por uno los enunciados del código fuente a código objeto antes de ser ejecutados. pasándose a crear el programa objeto cuando está libre de errores. Ejecutar el código objeto. 29 . El compilador. El código objeto puede ser ejecutado posteriormente. en cuanto a que sus entradas o datos son algún programa y su salida es otro programa. Las ventajas de los intérpretes son: Ing.

La lógica se remonta a la época de Aristóteles en el siglo IV antes de Cristo. Aristóteles desarrolló reglas para establecer un razonamiento encadenado que. se llega a la conclusión válida de que "Todos los griegos son mortales" 9. Permite proporcionar la simbología que nos servirá para facilitar el desarrollo de la capacidad de análisis de problemas. En lógica. Argumentos. Ejecución de esa línea. Traducción de esa línea (si ya está correcta) a código objeto. En el ejemplo más famoso. recibe el nombre de "argumento". Es la capacidad de pensar racionalmente acerca de soluciones alternativas y los resultados de aplicarlas. si se respetaban. Cuando el razonamiento se expresa con palabras. "Todos los humanos son mortales" y "Todos los griegos son humanos". Jéfferson Beltrán M. Con el compilador. 9. Con el intérprete. ¿QUÉ ES LÓGICA? Lógica Deductiva. El programa es más fácil de desarrollar. sólo se realiza una vez.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Resulta más fácil localizar y corregir errores (depuración de programas) Son más pedagógicos para aprender a programar. Un argumento es un grupo cualquiera de Ing. En un sentido amplio. y por lo tanto. Para cada una de las líneas se ejecuta el siguiente proceso: Análisis de la instrucción de esa línea. no producirían nunca falsas conclusiones si la reflexión partía de premisas verdaderas (reglas de validez). aunque más lenta la traducción.1. Es el estudio de los métodos y principios usados al distinguir entre los argumentos correctos (buenos) y los argumentos incorrectos (malos). es el estudio del correcto razonamiento. Msc. Es la que se encarga de determinar la validez o invalidez de los argumentos. LA LÓGICA COMO ASPECTO FUNDAMENTAL DE LA PROGRAMACIÓN. cada vez que necesitamos ejecutar el programa tenemos que volver a analizarlo porque no hay código objeto. para obtener una solución posible. 30 . de hacer elecciones inteligentes. Es el estudio crítico del razonamiento y tiene un valor teórico y práctico.

La conclusión es la proposición afirmada que se basa en las otras proposiciones o premisas. "Las rosas son rojas y las violetas son azules". Ej.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador proposiciones o enunciados que forman premisas y conclusiones. "Por consiguiente. "Ninguno de los que se aburren presta atención". Ing. ninguno de los asistentes está prestando atención". se denominan Enunciados conyuntos. Una proposición puede ser premisa en un argumento y conclusión en otro. "de ello se deduce". Ej. Hay dos condiciones que debe satisfacer un argumento para establecer la verdad de su conclusión: Debe ser válido y todas sus premisas deben ser verdaderas. Enunciado Simple: Es el que no contiene otro enunciado como parte componente. Por ejemplo: "Todos los hombres son mortales". todos los hombres son mortales" Expresiones como "por tanto". Otro Ejemplo: "Todos se aburren en la conferencia". Las premisas de un argumento son proposiciones afirmadas como fundamento o razones para aceptar una conclusión. Es el que se compone de varios enunciados. sirven para introducir la conclusión de un argumento. Sócrates es mortal". en tanto que "pues" y "porque" se emplean para introducir las premisas. "Las rosas son rojas" Enunciado compuesto. Msc. Y como conclusión en el siguiente argumento: " Todos los animales son mortales" "Todos los hombres son animales" "Luego. "por lo cual". 31 . Cuando los enunciados se unen por la conjunción ―Y‖. Aparece como premisa en el siguiente argumento: "Todos los hombres son mortales" "Sócrates es un hombre" "Por lo tanto. Este puede constar de varias premisas pero de una sola conclusión. Premisas y Conclusión. Jéfferson Beltrán M.

10. comenzando con el primero. Msc. Luego. su valor opuesto es Falso. Como la expresión está negada. si P es falso nos queda Falso and Verdadero. describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada. Bañarse Ing. y esto es igual a Falso. En la tabla OR buscamos a qué equivalen Verdadero or Verdadero (porque A y B son verdaderos según el enunciado). Este algoritmo es caracterizado porque sigue un proceso de ejecución común y lógico.1. se denominan Enunciados disyuntos. Ejemplo: Algoritmo para asistir a clases: 1. De aquí surgen las siguientes tablas de verdad: Ejemplos de aplicación de estas tablas de verdad: Si A y B son valores verdaderos y P y Q son falsos. Al evaluar el segundo paréntesis. REPRESENTACIÓN GRÁFICA DE LOS ALGORITMOS. 32 . Jéfferson Beltrán M. cuál es el valor de verdad de la siguiente expresión: not (A or B) and (P and not Q) Solución: Evaluamos primero los paréntesis. Levantarse 2. DESCRIPCIÓN NARRADA. 10. Obtenemos que es Verdadero.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Cuando los enunciados se unen por el conector ―O‖. Q es falso y al negarlo nos queda verdadero.

con los pasos del algoritmo escritos en el símbolo adecuado y los símbolos unidos con flechas. Proceso HolaMundo Escribir "Hola Mundo‖. 33 . Vestirse 4. Para diseñarlos se utilizan determinados símbolos o figuras que representan una acción dentro del procedimiento. Ubicarse en un asiento 10. Cepillarse los dientes 6. denominadas líneas de flujo. PSEUDOCÓDIGO.3. Utilizan unos símbolos normalizados. Buscar el aula 10. Para su elaboración se sigue las siguientes reglas: Ing. Es una técnica para diseño de programas que permite definir las estructuras de datos.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 3. FinProceso 10. Utiliza un pseudolenguaje muy parecido a nuestro idioma. que indican el orden en que los pasos deben ser ejecutados. Msc. Llegar a la Universidad 9. Pseudo = falso. Ejemplo: Escribir un algoritmo que imprima en pantalla ―Hola Mundo‖. El pseudo código no es realmente un código sino una imitación y una versión abreviada de instrucciones reales para las computadoras.2. Tomar el autobús 8. las operaciones que se aplicarán a los datos y la lógica que tendrá el programa de computadora para solucionar un determinado problema. Se concibió para superar las dos principales desventajas de los diagramas de flujo: lento de crear y difícil de modificar sin un nuevo redibujo. Desayunar 5. pero que respeta las directrices y los elementos de los lenguajes de programación. DIAGRAMAS DE FLUJO O FLUJOGRAMAS. Jéfferson Beltrán M. Salir de casa 7. Son la representación gráfica de la solución algorítmica de un problema.

5. Un final Ejemplo: Dibujar un diagrama de flujo que imprima en pantalla ―Hola Mundo‖. 34 . Una lectura o entrada de datos. 3. Jéfferson Beltrán M. o Análisis efectivo de las diferentes secciones del programa. 4. o Documentación adecuada de los programas. o Codificación eficaz de los programas. o Comunicación con el usuario. o Pueden usarse como modelos de trabajo en el diseño de nuevos programas o sistemas. 4. En cada paso expresar una acción concreta. Una salida de información. o Depuración y pruebas ordenadas de programas Ing. jamás curvas. 2. Msc. El proceso de datos. Entre las ventajas de usar diagrama de flujos se tiene: o Rápida comprensión de las relaciones. La secuencia de un flujo normal en una solución de un problema es: 1.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 1. Siempre se usan flechas verticales u horizontales. Tiene un inicio. Se escribe de arriba hacia abajo y de izquierda a derecha. Evitar cruce de flujos. 3. 2.

o Acciones a seguir tras la salida de un símbolo de decisión. es el lenguaje en el que está descrito el modelo. 10. construir y documentar un sistema. Ing. o Diagrama de interacción. esquemas de bases de datos y componentes reutilizables.4. tan solo se trata de una notación. Msc. está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar. o Diagrama de actividad.1. incluyendo aspectos conceptuales tales como procesos de negocio. o Diagrama de estado. Estos diagramas son: 10. no es una metodología de desarrollo de software. y aspectos concretos como expresiones de lenguajes de programación. o No existen normas fijas para la elaboración de los diagramas de flujo que permitan incluir todos los detalles que el usuario desee introducir. pueden ser difíciles de seguir si existen diferentes caminos. 35 . Diagramas de comportamiento. Jéfferson Beltrán M.4. Se utiliza para definir un sistema. es decir. Hay que tener en cuenta que el estándar UML no define un proceso de desarrollo específico. Es importante resaltar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. UML cuenta con varios tipos de diagramas. especificar. Permiten exhibir comportamientos de un sistema o de los procesos de las organizaciones. DIAGRAMAS UML. los cuales muestran diferentes aspectos de las entidades representadas. o Diagrama de caso de uso. para detallar los artefactos en el sistema y para documentar y construir. INTRODUCCIÒN A UML (Unified Modeling Language). UML ofrece un estándar para describir un "plano" del sistema (modelo). En otras palabras. funciones del sistema.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Entre las desventajas podemos anotar: o Diagramas complejos y detallados suelen ser laboriosos en su planteamiento y diseño. UML es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad.

11. ENTORNO DE PROGRAMACIÓN INTEGRADO (IDE). Es un subconjunto de los diagramas de comportamiento que permiten enfatizar las interacciones entre los objetos. etc. Msc. que convierte el código fuente en instrucciones que la computadora puede comprender y ejecutar. Jéfferson Beltrán M. además del compilador. o Diagrama de clases. depuración y ejecución de un programa es mucho más fácil y rápido cuando se utiliza un buen entorno de programación. para ello usaremos las herramientas PSeInt y JTraductor aunque no son propiamente IDEs. utilitarios y herramientas. o Entorne de programación integrado). Eclipse. a los entornos de programación frecuentemente se los identifica con la sigla IDE (en inglés.) integrada. Un entorno de programación típico contiene: Un editor. PSeInt es una herramienta en donde se escribe algoritmos en Ing. 36 . Ayuda (manuales. Nuestro objetivo ahora es escribir algoritmos en pseudocódigo y en diagramas de flujo. o Diagrama de comunicaciones o Diagrama de secuencia o Diagrama de tiempo. Un depurador (o debugger). o Diagrama de estructura. Ejemplos de entorno de programación son: Microsoft Visual Studio. codificación.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Diagramas de Interacción. El proceso de diseño. Estos elementos están integrados. o Diagrama de objeto o Diagrama de paquetes. ejemplos. Un entorno de programación es un programa que contiene. que proporciona el medio para introducir el texto y los símbolos que constituyen el código fuente Un intérprete o un compilador. de modo que pueden llamarse fácilmente uno a otros durante el proceso de programación. Por este motivo. tutoriales. NetBeans. Integrated Development Environment. Diagramas de estructura. que ayuda a analizar y corregir errores en tiempo de ejecución. o Diagrama despliegue. o Diagrama de componentes. Muestran los elementos de una especificación que sean independientes del tiempo.

Selectivas o Condicionales: Bifurcación condicional de una o más operaciones. . Ing. Ejemplos 'hola' "hola mundo" '123' 'FALSO' 'etc'. 37 . Ejemplos: 12 23 0 -2. o Caracter: Caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples). PSeInt es un software con varios años de creación. Msc. Todo algoritmo en pseudocógido tiene la siguiente estructura general: Proceso <NombrePrograma> <acción 1>. Escribiremos los algoritmos bajo el paradigma de la programación estructurada. JTraductor genera un programa Java. Sólo 3 tipos de datos básicos: o Numérico: Números.3 3. Repetitivas o Iterativas: Repetición de una operación mientras se cumple una condición. para ello usaremos un pseudolenguaje cuyas características son: Sintaxis sencilla (sin la complejidad de los lenguajes de programación). tanto enteros como reales. PROGRAMACIÓN ESTRUCTURADA. Recordemos que Programación Estructurada es una técnica en la cual la estructura de un programa se lo realiza tan claramente como es posible mediante el uso de tres estructuras de control: Secuenciales: Sucesión simple de dos o más operaciones (una tras otra). Jéfferson Beltrán M. permite ejecutar el algoritmo paso a paso controlando la velocidad e inspeccionando expresiones. Para separar decimales se utiliza el punto.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador pseudocódigo. 12. . (generalmente se usa comillas simples para un carácter y dobles para cadena de caracteres o texto) Estructuras de datos: Arreglos.14 o Lógico: Sólo puede tomar dos valores: VERDADERO o FALSO. en cambio. Manejo de las estructuras básicas de control. en cambio JTraductor se basa en PSeInt pero es de reciente creación. <acción 2>. genera un diagrama de flujo y lo convierte en un programa C++.

Constantes e identificadores. asignaciones de variables. Las acciones incluyen operaciones de entrada y salida. sólo de letras y números. aunque la asignación de tipos a los datos tiene dos objetivos principales: 1. no será tomado en cuenta al interpretar el algoritmo. hasta el fin de la línea. Las estructuras no secuenciales pueden anidarse. el punto ( . 38 . Todo lo que precede a //. luego le sigue una secuencia de instrucciones (acciones) y finaliza con la palabra FinProceso. <acción n>. repetir o para. o Las constates lógicas son Verdadero y Falso. Esta definición puede ser opcional u obligatoria. Jéfferson Beltrán M. Definición de variables. No puede haber instrucciones fuera del programa. No puede haber instrucciones fuera del proceso. FinProceso Se inicia con la palabra clave Proceso seguida del nombre del programa. Es decir.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador . pero la estructura contenida debe comenzar y finalizar dentro de la contenedora. aunque si comentarios. condicionales si-entonces o de selección múltiple y/o lazos mientras. Una secuencia de instrucciones es una lista de una o más instrucciones. Msc. o Las constantes de tipo carácter se escriben entre comillas ( " ).Detectar errores de operaciones en los programas durante la fase de codificación.Determinar cómo se ejecutarán las operaciones entre datos. 2. o en líneas separadas. o Los identificadores deben constar comenzando siempre con una letra. Se pueden introducir comentarios luego de una instrucción. aunque si comentarios. mediante el uso de la doble barra ( // ). o En las constantes numéricas. cada una terminada en punto y coma. La instrucción Definir permite explicitar el tipo de una o más variables. pueden contener otras adentro. Ing. ) es el separador decimal.

Este mecanismo explícito de conversión de tipos de datos se suele denominar “CAST”. Ejemplo: Definir var Como Real. El tipo de un dato puede ser convertido bajo ciertas condiciones a otro tipo. A los lenguajes que exigen que todos los datos utilizados deban tener sus tipos declarados explícitamente se los conoce como “fuertemente tipados”. ya que los números enteros y los reales se almacenan de formas distintas en memoria. A menos que el programa conozca los tipos de datos no puede ejecutar correctamente la operación de suma. <var2> . El tipo de la variable y el de la expresión deben coincidir. // asigna 1. Jéfferson Beltrán M. <varN> Como [Real/Entero/Logico/Caracter] . Msc. La sintaxis es: Definir <var1> . // se define la variable var como Real Definir acumulador Como Entero. si el compilador detecta una operación de suma de dos caracteres normalmente producirá un error. Una variable debe ser definida antes de ser utilizada por primera vez. // incrementa en 1 el acumulador Ing.0 a var acumulador<-acumulador +1. 39 . <variable> <. Por consiguiente. primero se evalúa la expresión de la derecha y luego se asigna el resultado a la variable de la izquierda. Ejemplo: var<-1.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Una operación de suma no tiene sentido con caracteres de texto.0. La instrucción de asignación permite almacenar un valor en una variable.<expresión> . sólo con números. Incluso entre tipos numéricos la operación de suma se almacena de modo distinto. // acumulador es una variable Entero Asignación. Al ejecutarse la asignación. … .

Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de evaluar N expresiones.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Entradas. La instrucción Escribir permite mostrar valores al ambiente. . Jéfferson Beltrán M. Escribir ―El Resultado es: ‖ . . Leer <variablel> . La instrucción Leer permite ingresar información desde el ambiente. . Pueden incluirse una o más variables. <expr2> . por lo tanto el comando leerá uno o más valores. Ing.<variableN> ... valor2.. Los arreglos son estructuras de datos homogéneas (todos sus datos son del mismo tipo) que permiten almacenar un determinado número de datos bajo un mismo identificador.. Msc. valor3. Dado que puede incluir una o más expresiones. mostrará uno o más valores. . Leer valor1. Ejemplo: Leer cantidad. Escribir <exprl> . Salidas. Arreglos. 40 . Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las N variables mencionadas. <exprN> . Ejemplo: Escribir ―Ingrese el nombre: ‖. <variable2> . para luego referirse a los mismos utilizando uno o más subíndices. resp*2 .

<max1N>). Dimension <ident1> (<max11>. Es importante notar que es necesario definir un arreglo antes de utilizarlo.20]. Se pueden definir más de un arreglo en una misma instrucción.<maxMN>). Jéfferson Beltrán M.. Los N parámetros indican la cantidad de dimensiones y el valor máximo de cada una de ellas. Este pseudolenguaje dispone de un conjunto básico de operadores y funciones que pueden ser utilizados para la construcción de expresiones más o menos complejas.<maxN>). Esta instrucción define un arreglo con el nombre indicado en <indentificador> y N dimensiones. Ejemplo: Definir vector. Dimesion <identificador> (<max1>.. Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje reducido: Operador Relacionales > < = Mayor que Menor que Igual que 3>2 'ABC'<'abc' 4=3 41 Significado Ejemplo Ing..Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Para utilizar un arreglo.. Dimension vector[100]. . lo cual determina cuantos elementos se almacenarán y como se accederá a los mismos. La cantidad de dimensiones puede ser una o más.. matriz Como Entero. La instrucción Dimension permite definir un arreglo. Operadores y Funciones. primero es obligatorio su dimensionamiento. separándolos con una coma (.. y la máxima cantidad de elementos debe ser una expresión numérica positiva... Dimensionamiento.. matriz[10..)..<identM>(<maxM1>. definirlo declarando los rangos de sus subíndices.. es decir. Msc. indicando sus dimensiones..

1. un problema se puede dividir en acciones elementales o instrucciones. usando un número limitado de estructuras de control (básicas) y sus combinaciones que pueden servir para resolver dicho problema 12. aunque puede alterarse mediante el uso de paréntesis.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador <> <= >= Lógicos & | ~ Algebraicos + * / ^ Diferente que Menor o igual que Mayor o igual que 4<>3 'a'<='b' 4>=5 Conjunción (y / and). (7>4) & (2=1) //falso Disyunción (o / or). 42 . A continuación se listan las funciones integradas disponibles: Función RC(X) ABS(X) LN(X) EXP(X) SEN(X) COS(X) ATAN(X) Significado Raíz Cuadrada de X Valor Absoluto de X Logaritmo Natural de X Función Exponencial de X Seno de X Coseno de X Arcotangente de X TRUNC(X) Parte entera de X REDON(X) Entero más cercano a X Como habíamos mencionado anteriormente. ~(2<5) //falso Suma Multiplicación División Potenciación La jerarquía de los operadores matemáticos es igual a la del álgebra. ESTRUCTURA SECUENCIAL. Ing. Jéfferson Beltrán M. Msc. (1=1 | 2=1) //verdadero Negación (no / not).

pi = 3. hagamos el algoritmo: Pseudocódigo: Proceso Algoritmo1 //este algoritmo calcula el área y la longitud de un círculo de radio ingresado por teclado Definir pi. Jéfferson Beltrán M. etc. sumarización. 3. cálculo. Cálculo. inicialización de variables. (Fase 4 del algoritmo) Si definimos las variables como: (fase 1 del algoritmo) long = Longitud. Ejemplo 1: Se desea encontrar la longitud y el área de un círculo de radio ingresado por teclado. operaciones de asignación. Las salidas serán entonces la longitud y el área. long Como Real. El flujo del programa coincide con el orden físico en el que se han ido poniendo las instrucciones. Definición de variables (Declaración) Inicialización de variables.3. radio = radio. El objetivo del ejercicio es encontrar la longitud y el área de un círculo con un radio ingresado por teclado. (Fase 5 del algoritmo) Sabemos que la longitud de un círculo viene dada por la fórmula 2 * pi * radio y que el área viene dada por pi * radio al cuadrado.1416. //definición de variables pi <. Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa: 1. 43 . 5. //despliega en pantalla Leer radio.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Se caracteriza porque una acción se ejecuta detrás de otra.1416. //asignación del valor del área Ing. Salida. //definición de un valor constante Escribir "Ingrese el radio: ". 2. area. Solución.pi * radio ^ 2. 4. Msc. Lectura de datos. area = área. //Ingresa por teclado el radio area <. Dentro de este tipo podemos encontrar operaciones de inicio/fin. radio.

Fundamentos de Programación – Algoritmos Universidad Central del Ecuador long <. Ing. " Longitud: ". area. Desplegar el resultado. //salida del algoritmo FinProceso Diagrama de Flujo: Ejemplo 2. Jéfferson Beltrán M.2 * pi * radio . 44 .//asignación del valor de la longitud Escribir "Area: ". Solución. Msc. long. 12 y 15% respectivamente. Leer el sueldo de tres empleados y aplicarles un aumento del 10.

0. 12 y //15% respectivamente Definir sueldo1. sueldoFinal3 Como Real. //inicializamos variables sueldo2 <.sueldo2.sueldo1 * 1. Msc. Entradas: Salarios de los empleados.10.sueldo3. 12 y 15% Cálculos: Sueldo final = sueldo inicial * (1+porcentaje/100) Definición de variables: sueldoFinal1. sueldoFinal2. Escribir "Ingrese el sueldo de los 3 empleados". sueldoFinal1 <. sueldo3 = salarios de los empleados Pseudocódigo: Proceso Algoritmo2 //Leer el sueldo de tres empleados y aplica un aumento del 10. sueldoFinal2 <.0. //incrementa el 10% al sueldo original //y lo asigna en sueldoFinal1 sueldoFinal2 <.sueldo3 Como Real. 45 . Datos adicionales: aumentos del 10. //incrementa el 12% al sueldo original //y lo asigna en sueldoFinal2 Ing. //lee los sueldos sueldoFinal1 <.0. sueldoFinal3 <. sueldo2.12.0. //definición de variables Definir sueldoFinal1. sueldoFinal3 = los sueldos finales sueldo1. sueldoFinal2.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Salidas: Sueldos finales. sueldo3 <. Leer sueldo1.0. Jéfferson Beltrán M. sueldo1 <.0.sueldo2.sueldo2 * 1.

Jéfferson Beltrán M." "." Diagrama de flujo: Ing.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador sueldoFinal3 <.sueldoFinal3.sueldoFinal1. //incrementa el 15% al sueldo original //y lo asigna en sueldoFinal3 Escribir "Sueldos ".sueldoFinal2. 46 . FinProceso incrementados: ".15. Msc.sueldo3 * 1.

47 .Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Otras Acciones Secuenciales. Ing. Msc. Jéfferson Beltrán M.

La realización de acciones alternativas o decisiones se especifican utilizando condiciones que son verdaderas o falsas.2. como su nombre lo indica. 12. La instrucción "Esperar" también puede utilizarse para pausar el algoritmo durante un intervalo de tiempo predefinido. Ejemplo: Esperar Tecla. reflejando el cumplimiento o no de una determinada condición. La instrucción "Esperar Tecla" detiene su algoritmo hasta que el usuario presione una tecla cualquiera de su teclado.2. ESTRUCTURA SELECTIVA “SI-ENTONCES” (“IF-THEN”). La instrucción "Borrar Pantalla" (o "Limpiar Pantalla") permite. Ejemplo: Borrar Pantalla. Msc. Ejemplo: Esperar 3 Segundos. Las unidades válidas son Segundos y Milisegundos. ESTRUCTURAS SELECTIVAS O CONDICIONALES.1. Jéfferson Beltrán M. borrar la pantalla y colocar el cursor en la esquina superior izquierda. indicando a continuación de la palabra clave la longitud y unidad de dicho intervalo. y otra sentencia en caso de que sea falsa. o booleanas. Estas condiciones se llaman expresiones lógicas. 12. La siguiente figura muestra el diagrama de flujo de la estructura ―Si-Entonces‖: Ing. se necesita una sentencia de control que dirija a la computadora a ejecutar una sentencia si la expresión es verdadera. Dado que las expresiones lógicas toman el valor verdadero o falso.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador En PSeInt. Con frecuencia nos enfrentamos a situaciones en las que se deben proporcionar instrucciones alternativas que pueden o no ejecutarse dependiendo de los datos de entrada. 48 .

escriba "Aprobado" en caso que esa calificación fuese mayor o igual que 7. Msc. Construir un algoritmo que lea la calificación de un alumno en un examen.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador EL pseudocódigo es: Si <condición> Entonces <instrucciones> Sino <instrucciones> FinSi La estructura ―Si‖ funciona de la siguiente manera: 1. Se evalúa la expresión lógica. . entonces sólo se ejecutará la sentencia B y el control pasa de nuevo inmediatamente a la siguiente sentencia del programa. Ejemplo 3. Entradas: Calificación. Datos adicionales: Un alumno aprueba si la calificación es mayor o igual que 7. se ejecutará la sentencia A y el control pasará a la sentencia inmediatamente siguiente. en ese caso. 3. Si la expresión toma el valor verdadero (true). La cláusula sino (else) es optativa. Si la expresión toma el valor falso (false). Variables: Ing. 49 . 2. si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente. Solución. Salidas: Mensaje de aprobado si se cumple la condición. Jéfferson Beltrán M.

Leer cal. Msc. Jéfferson Beltrán M. 50 . Si cal>=7 Entonces Escribir "Aprobado".Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Cal = calificación Pseudocódigo: Proceso Algoritmo3 //lee la calificación de un alumno y escribe "Aprobado" si es mayor o //igual que 7 Definir cal Como Real. //declaro la variable Escribir "Ingrese la calificación del alumno: ". FinSi FinProceso. Diagrama de flujo: Ing.

Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo 4. //declaro la variable Escribir "Ingrese la calificación del alumno: ". Dada la calificación de un alumno en un examen. Pseudocódigo: Proceso Algoritmo3 //escribe "Aprobado" si es mayor o igual que 7 o "Reprobado" caso //contrario Definir cal Como Real. escriba "Aprobado" si su calificación es mayor o igual que 7 y "Reprobado" en caso contrario. Si cal>=7 Entonces Ing. Leer cal. Msc. 51 .

FinSi FinProceso Diagrama de flujo: Ejemplo 5. Sino Escribir "Reprobado". Ing. Dado como dato el sueldo de un trabajador. Msc. 52 . aplicar un aumento del 15% si su sueldo es inferior a $1000 y 12% en caso contrario. Jéfferson Beltrán M. luego imprimir el nuevo sueldo del trabajador.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Escribir "Aprobado".

nuevoSueldo Como Real.15.sueldo*1. FinProceso Diagrama de flujo: Ing. Sino NuevoSueldo <. FinSi Escribir "El nuevo sueldo es: ".12. //declaro la variable Escribir "Ingrese el sueldo del trabajador: ".Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Pseudocódigo: Proceso Algoritmo5 //aumento el 15% si su sueldo es inferior a $1000 y 12% en caso //contrario Definir sueldo. 53 .sueldo*1. Jéfferson Beltrán M. Leer sueldo. Msc. nuevoSueldo. Si sueldo<1000 Entonces NuevoSueldo <.

Se pueden clasificar en simples y complejas. Las simples son las que usan operadores relacionales y las complejas las que usan operadores lógicos. 54 . El aspirante que obtenga calificaciones mayores o iguales que 7 en ambos exámenes es aceptado. Jéfferson Beltrán M. Msc.2. Sirven para plantear alternativas o decisiones y dan como resultado un valor booleano verdadero o falso. se cumple o no se cumple la condición.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 12. es decir. EXPRESIONES LÓGICAS. por lo que cada uno de ellos obtiene dos calificaciones denotadas como calif1 y calif2. Ejemplo 6: Operador lógico Y (―&‖): Una escuela aplica dos exámenes a sus aspirantes. Ing. en caso contrario es rechazado.2.

calif2 Como Real. Msc. 55 . Escribir "Ingrese la nota 1: ". caso contrario //es rechazado Definir calif1. Si ((calif1>=7) & (calif2>=7)) Entonces Escribir "Estudiante aceptado". Escribir "Ingrese la nota 2: ". Leer calif2. Leer calif1. FinSi FinProceso Diagrama de flujo: Ing. Sino Escribir "Estudiante rechazado". Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Pseudocódigo: Proceso Algoritmo6 //escribe aceptado si las 2 calificaciones son >= que 7.

éstos van acompañados de operadores relacionales. 56 . Por lo general cuando hay operadores lógicos.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador En este ejemplo. Pseudocódigo: Proceso Algoritmo7 Ing. en caso contrario es rechazado. El aspirante que obtenga una calificación mayor o igual que 9 en cualquiera de los exámenes es aceptado. Ejemplo 7: Operador lógico O (―|‖): Una escuela aplica dos exámenes a sus aspirantes. Jéfferson Beltrán M. Msc. por lo que cada uno de ellos obtiene dos calificaciones denotadas como calif1 y calif2. nótese que también se usa operadores relacionales.

FinSi FinProceso Diagrama de flujo: Ing. 57 . Leer calif1. Msc. Escribir "Ingrese la nota 2: ". Leer calif2. Escribir "Ingrese la nota 1: ". calif2 Como Real.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador //escribe aceptado si una de las 2 calificaciones es >= que 9. Si ((calif1>=9) | (calif2>=9)) Entonces Escribir "Estudiante aceptado". Jéfferson Beltrán M. caso //contrario es rechazado Definir calif1. Sino Escribir "Estudiante rechazado".

Si la instrucción nos dijera que obtenga una nota en cualquiera de los exámenes pero no en ambos. Es decir. solo en uno de los dos. Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador La instrucción del ejemplo 7 equivale a OR ya que nos dice que puede ser en cualquiera de los exámenes no necesariamente en los dos. no puede considerarse el caso en que tenga la misma nota en los dos exámenes. En ejemplo 6 la palabra ambos equivale a seleccionar la instrucción AND. nos estaría indicando una instrucción XOR que es un tipo de OR pero exclusivo. Ing. 58 . Jéfferson Beltrán M.

si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple. Datos de entrada: número de horas trabajadas y pago por hora normal.2. Recordemos que las estructuras no secuenciales se pueden anidar. Datos de salida: Pago. En la solución de problemas encontramos numerosos casos en los que luego de tomar una decisión y marcar el camino correspondiente a seguir. Si no trabajó horas extras tendremos: Pago = pago por hora normal * horas trabajadas. ESTRUCTURAS ANIDADAS. pago total que recibirá el trabajador será: Pago = pago * hora normal * 40 + pago por horas extras. En los problemas en donde un bloque condicional incluye otro bloque condicional se dice que un bloque está anidado dentro del otro. Encontrar las horas extras de la siguiente forma: Horas extras = horas trabajadas . Lo primero que hay que determinar es si el trabajador trabajó horas extras o no. Dicho proceso puede repetirse numerosas veces. Solución. Msc. pero la estructura contenida debe comenzar y finalizar dentro de la contenedora. Finalmente.40 En caso que sí trabajó horas extras: Si horas extras > 8 entonces a horas extras excedentes de 8 = horas extras -8 y pago por horas extras = pago por hora normal * 2 * 8 + pago por hora normal * 3 * horas extras excedentes de 8 De otra forma (sólo horas al doble) pago por horas extras = pago por hora normal * 2 * horas extras. Definición de variables: ht = horas trabajadas het = horas extras que exceden de 8 ph = pago por hora normal Ing. sabiendo que cuando las horas de trabajo exceden de 40.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 12. el resto se consideran horas extras y que éstas se pagan al doble de una hora normal cuando no exceden de 8. Jéfferson Beltrán M. es necesario tomar otra decisión. Ejemplo 8. es decir. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa. pueden contener otras adentro.3. 59 .

60 . //las 8 se pagan al doble y el resto al triple phe <.he . Leer ht. Si he > 8 entonces //determinamos las horas a pagar al triple het <. pt Como Real. ht Como Entero.ph * 2 * 8 + ph * 3 * het.ph * 2 * he. Si ht > 40 entonces //determinamos las horas extras he <. Escribir "Ingrese el valor por hora normal: ". //variables para pago Escribir "Ingrese las horas trabajadas: ". Jéfferson Beltrán M.40. het. //variable de horas trabajadas Definir ph.ht . Sino //se pagan al doble phe <. FinSi //pago horas normales más horas extras Ing. Msc. phe.8.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador phe = pago por horas extras he = horas extras pt = pago que recibe el trabajador Pseudocódigo: Proceso Algoritmo8 Definir he. Leer ph.

Msc. FinSi Escribir "El valor a pagar es: ".ph * 40 + phe.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador pt <. 61 .ph * ht. Sino //no hay horas extras pt <. Jéfferson Beltrán M. FinProceso Diagrama de flujo: Ing. pt.

62 . Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ing. Msc.

c. Si a>b Entonces Si a>c Entonces Si b>c Entonces Escribir a. Observación: Para ordenar números no es un algoritmo eficiente.b. Solución: Salida: A." ". 63 .c Como Entero." ". Entradas: A. Dados los datos A. B y C. B y C que representan números enteros diferentes.b.b. Escribir "Los números ordenados descendentemente son: ". Jéfferson Beltrán M. Escribir "Ingrese 3 números: "." ".b. B y C ordenados descendentemente. La dinámica del problema es comparar dos números a la vez para conocer cuál es el mayor. Sino Escribir a. Este es un ejemplo de los algoritmos conocidos como de Lógica Pura.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo 9." ". ya que poseen muchas decisiones y muchas bifurcaciones.c. construir un algoritmo para escribir estos números en forma descendente. Msc. FinSi Sino Ing. Pseudocódigo: Proceso Algoritmo9 //ordenar 3 números de mayor a menor Definir a. pero nos sirve para ejemplarizar estructuras anidadas.c. Leer a.

" "." ".a.a.b." ".c. Msc.a. FinSi FinSi FinProceso Diagrama de flujo: Ing.a." "." ". FinSi Sino Escribir c.b." "." ".c. Sino Escribir b." ".Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Escribir c. Jéfferson Beltrán M. FinSi Sino Si b>c Entonces Si a>c Entonces Escribir b. 64 .

Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ing. Msc. 65 . Jéfferson Beltrán M.

66 . La estructura de selección múltiple se implementa con la sentencia Según.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 12. Con frecuencia es necesario que existan más de dos elecciones posibles.…. 3. Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos. si toma el valor N realizará la acción N..n y según que elija uno de estos valores en la condición. 1. Este problema se podría resolver por estructuras selectivas anidadas o en cascada.<número3>: <instrucciones> <. Msc. pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad. 2. cuyo diagrama de flujo y pseudocódigo son: Diagrama de flujo: Pseudocódigo: Segun <variable> Hacer <número1>: <instrucciones> <número2>. si toma el valor 2 ejecutará la acción B.2. Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción A.> De Otro Modo: <instrucciones> FinSegun Ing. se realizará una de las n acciones o lo que es igual. Jéfferson Beltrán M. el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles..4. ESTRUCTURA DE SELECCIÓN MÚLTIPLE “SEGÚN” (“CASE”).

Escribir "Ingrese los dos números a operar: ". Opcionalmente. opc Como Entero. si opc=3. Segun opc Hacer Ing.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Reglas: Esta instrucción permite ejecutar opcionalmente varias acciones posibles (distintas entre si). dos puntos y una secuencia de instrucciones. la división y 0 en cualquier otro caso. el producto. se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor. Escribir "Ingrese una opción: 1 (Suma). Msc. resp <-0. denominada De Otro Modo. Leer opc. Cada opción está formada por uno o más números separados por comas.num2. si opc=2. 2 (Producto). dependiendo del valor almacenado en una variable de tipo numérico. despliegue el resultado: Pseudocódigo: //Ejemplo de estructura Segun Proceso Algoritmo10 Definir num1. se puede agregar una opción final. la secuencia de instrucciones asociada se debe ejecutar cuando el valor de la variable es uno de esos números. Jéfferson Beltrán M. 67 .num2. Leer num1. Si una opción incluye varios números. 3 (División) :". cuya secuencia de instrucciones asociada se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores. Al ejecutarse. Definir resp Como Real. Ejemplo 10: Escribir un algoritmo tal que si opc=1 realice la suma.

0.resp.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 1: resp <.num1+num2. Sino resp <. FinProceso Diagrama de Flujo: Ing. 2: resp <.num1*num2. 68 . Msc. Jéfferson Beltrán M. FinSi De Otro Modo: resp <. 3: Si num2=0 Entonces Escribir "El denominador no puede ser 0".num1/num2. FinSegun Escribir "El resultado es : ".

Dados como datos la categoría y el sueldo de un trabajador. Imprimir la categoría del trabajador y el nuevo sueldo.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo 11. Jéfferson Beltrán M. calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Incrementos Categoría Aumento 1 15% 2 10% 3 8% Ing. 69 . Msc.

inc.08. Jéfferson Beltrán M.07. 3: inc <.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 4 Pseudocódigo: Proceso Algoritmo11 //ejemplo de estructura Segun Definir cat Como Entero.1. nuevoSueldo Como Real. Escribir "Ingrese la categoría : ". Segun cat Hacer 1: inc <.sueldo*0. 70 . Escribir "Ingrese el sueldo : ". 4: inc <. FinSegun nuevoSueldo <. Leer sueldo.0.sueldo + inc. 7% Definir sueldo. Leer cat. 2: inc <. Msc. De Otro Modo: inc<.15.sueldo*0.sueldo*0.sueldo*0. Ing.

cat. nuevo sueldo: ". Msc. FinProceso Diagrama de Flujo: Ing.nuevoSueldo.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Escribir "Categoría : ". 71 . Jéfferson Beltrán M.".

Esta sentencia requiere que conozcamos por anticipado el número de veces que se ejecutarán las sentencias del interior del bucle. Las estructuras de control repetitivas son aquellas en las que una sentencia o grupos de sentencias se repiten muchas veces. En la siguiente figura se muestra el diagrama de flujo de la estructura Para: El pseudocódigo es: Ing. Msc. 72 . ESTRUCTURAS REPETITIVAS O ITERATIVAS. ESTRUCTURA REPETITIVA “PARA” (“FOR”). y cada repetición del cuerpo del bucle se denomina iteración. En numerosas ocasiones se puede necesitar un bucle que se ejecute un número determinado de veces. Las computadoras están especialmente preparadas para ejecutar tareas repetidamente. Estructura Repetir. ciclo. lazo. Este conjunto de sentencias se denomina bucle. Jéfferson Beltrán M. Para aplicaciones de este tipo se utiliza la sentencia Para (for). Las acciones que se repiten en un bucle constituyen el cuerpo del bucle. y cuyo número se conozca por anticipado. Las estructuras repetitivas básicas son: Estructura Para. o loop. Los cálculos simples o la manipulación de pequeños conjuntos de datos se pueden realizar fácilmente a mano.3.1. Estructura Mientras.3.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 12. pero las tareas grandes o repetitivas son realizadas con mayor eficiencia por una computadora. 12.

que es la cantidad de unidades en las que se incrementará o decrementará la variable de control en cada iteración. y a continuación se ejecuta las sentencias de instrucciones que forman el cuerpo del bucle. Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción.<inicial> Hasta <final> (Con Paso <paso>) Hacer <instrucciones> FinPara Al ejecutarse la sentencia Para la primera vez. Al llegar al final del bucle (FinPara). Si se omite la cláusula Con Paso <paso>. ACUMULADOR O TOTALIZADOR.3. Ing. Si en vez de incremento es decremento se coloca un menos en lugar del más.1. en caso negativo se vuelve a ejecutar todas las sentencias del interior del bucle hasta que la variable de control <variable> sea mayor que el valor final <final>. denominada variable de control.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Para <variable> <.1.2. Es común usar en las estructuras repetitivas los contadores y acumuladores que los describimos a continuación: 12. Algunos lenguajes permiten definir lo que se llama paso. Msc.1.<nombre del contador> + <valor constante>. CONTADOR.3. 73 . el valor <inicial> se asigna a la variable <variable>. Jéfferson Beltrán M. Ejemplo: i <. deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle. se incrementa la variable <variable> en <paso> unidades y se verifica si el valor almacenado en <variable> es mayor que el valor <final>. La inicialización consiste en asignarle al contador un valor. la variable <variable> se incrementará en uno. Representación: <nombre del contador> <. 12.i + 1. Se situará antes y fuera del bucle.

Jéfferson Beltrán M. La diferencia entre un contador y un acumulador es que mientras el primero va aumentando un valor constante. Representación: <Nombre del acumulador> <. //inicializo el acumulador suma <.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Es una variable que suma sobre sí misma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable. Msc. 74 . Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado. el acumulador va aumentando en una cantidad variable.0.<nombre del acumulador> + <valor variable>.suma.suma + i*i. Para i<-1 Hasta 100 Con Paso 1 Hacer suma <. FinProceso Diagrama de flujo: Ing.suma Como Entero. FinPara Escribir "La suma de los 100 primeros enteros es: ". Ejemplo 12. Se desea resolver el problema usando estructura Para. Pseudocódigo: Proceso Algoritmo12 //Ejemplo estructura Para Definir i.

promedio. Calcular la promedio de N números enteros y escribir el resultado. Pseudocódigo: // Calcula el promedio de una lista de N datos Proceso Algoritmo13 Definir i.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo 13.0. dato Como Real. Leer numDatos. Escribir "Ingrese la cantidad de datos:". Ing. numDatos Como Entero. Msc. 75 . Jéfferson Beltrán M. Definir acum. acum <.

FinPara promedio <. Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Para i<-1 Hasta numDatos Hacer Escribir "Ingrese el dato ".": ". Escribir "El promedio es: ". Msc.i.acum + dato. 76 .acum / numDatos.promedio. FinProceso Diagrama de flujo: Ing. Leer dato. acum <.

se lo conoce como bucle condicional. Por esta razón.2.3. El diagrama de flujo y pseudocódigo de la estructura iterativa mientras son: Ing. 77 .Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 12. ESTRUCTURA ITERATIVA “MIENTRAS” (“WHILE”). La estructura iterativa Mientras es aquella en la que el número de iteraciones no se conoce por anticipado y el cuerpo del bucle se repite mientras se cumple una determinada condición. Msc. Jéfferson Beltrán M.

de modo que sea falsa en algún momento y así finalice la ejecución del ciclo. entonces se ejecuta el cuerpo del bucle y se evalúa de nuevo la expresión lógica <condición>. Este proceso se repite mientras la expresión lógica sea verdadera. Si la expresión nunca cambia de valor. Si se evalúa como falsa.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Diagrama de flujo: Pseudocódigo: Mientras <condición> Hacer <instrucciones> FinMientras Cuando la sentencia mientras se ejecuta. cero o más veces. Ing. si cambia de verdadera a falsa la sentencia mientras finaliza. es decir. Después de cada iteración la expresión lógica se evalúa y se verifica de nuevo. a fin de evitarlo. 78 . Mientras que la condición sea verdadera el bucle se ejecutará. Esto significa que el bucle se ejecutará indefinidamente a menos que algo en el interior del mismo modifique la condición haciendo que su valor pase a falso. Si la expresión lógica se evalúa como verdadera. se puede ejecutar el bucle. las instrucciones del cuerpo del bucle deben contener alguna instrucción que modifique la o las variables involucradas en la expresión lógica <condición>. lo primero que sucede es la evaluación de la expresión lógica <condición>. entonces el bucle no termina nunca y se denomina bucle o loop infinito (en general. Jéfferson Beltrán M. ninguna acción se realiza y el programa sigue en la siguiente sentencia después del bucle. esta situación no es deseable). Msc.

Ing. Jéfferson Beltrán M.0. Pseudocódigo: //Ejemplo estructura Mientras Proceso Algoritmo14 Definir i. se sale del ciclo. Calcular la suma de los cuadrados de los primeros 100 números enteros y escribir el resultado. Mientras i<=100 Hacer //sumo al acumulador suma <. 79 . Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo 14. se necesita un contador (un índice).suma + i*i.i+1. resolvimos este ejercicio en la lección anterior pero utilizando la estructura Para. //inicializo el acumulador y el contador suma <. i <. En este caso. cuando no se cumple la condición. Esta variable además nos sirve para compararla con el valor dado en la condición. Ahora lo haremos con la estructura Mientras. //incremento el contador i <. Como recordarás. para llevar la cuenta de las veces que entramos al cuerpo del bucle. Solución. También es importante notar que esta variable se debe inicializar antes de entrar al cuerpo del ciclo y dentro del cuerpo se incrementará en uno cada vez que ingrese a él.1.suma Como Entero.

80 . Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador FinMientras Escribir "La suma de los 100 primeros enteros es: ". FinProceso Diagrama de flujo: Ing.suma. Jéfferson Beltrán M.

Fundamentos de Programación – Algoritmos Universidad Central del Ecuador En las estructuras cíclicas condicionales es común controlar los ciclos con centinelas y banderas. Escribir "Ingrese el gasto realizado: ". Suponga que debemos obtener la suma de los gastos que hicimos en nuestro último viaje. la condición mientras especifica que el cuerpo del bucle debe continuar ejecutándose mientras la tarea no haya sido completada. gasto2. si se tienen las calificaciones de un test (comprendida entre 0 y 100). pero no sabemos exactamente cuántos fueron.. -1 es el centinela de fin de datos.3. Ejemplo 15. gasto3. un valor centinela puede ser un número negativo.2. Jéfferson Beltrán M. //leemos gasto fuera del bucle mientras Leer gasto. Msc. -1 donde gastoi es el gasto número i y sumaGasto es el acumulador de gastos efectuados. sumaGasto Como Real.. . sumaGasto <. Centinelas son variables que toman valores adecuados para suspender el ingreso a un bucle. Por ejemplo. 81 . 12.1. CENTINELAS. Si la lista de datos son números positivos. En un bucle mientras controlado por tarea. Ing. Pseudocódigo: //Ejemplo de centinelas Proceso Algoritmo15 Definir gasto. Escribir "Ingrese -1 para salir".0. esto puede ser controlado por centinelas. un valor centinela en esta lista puede ser -1.. ya que nunca será una calificación válida y cuando aparezca este valor se terminará de ejecutar el bucle.. Solución: Si definimos gasto1.

Leer gasto. Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Mientras gasto <> -1 Hacer sumaGasto <. Msc.sumaGasto + gasto. 82 . Escribir "Ingrese el gasto realizado: ".sumaGasto. FinMientras Escribir "El gasto total es: ". FinProceso Diagrama de flujo: Ing.

83 .2. Msc. o bien los valores booleanos True o False. son variables que pueden tomar solamente dos valores durante la ejecución del programa. Conocidas también como interruptores.2. los cuales pueden ser 0 ó 1. switch. Ing. Jéfferson Beltrán M. flags o conmutadores. BANDERAS.3.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 12. Se les suele llamar interruptores porque cuando toman los valores 0 ó 1 están simulando un interruptor abierto/cerrado o encendido/apagado.

Msc. Definir serie Como Real.1/2+ 1/3 . Ing.. num Como Entero. Mientras i <= num Hacer Si bandera = Verdadero Entonces serie <. bandera <. bandera <. serie <. Pseudocódigo: //Ejemplo de banderas Proceso Algoritmo16 Definir bandera Como Logico.Falso. Escribir "Ingrese el valor de N: ". //inicializamos la bandera bandera <.1/i. i <.0. Sino serie <.Verdadero.Verdadero.serie + 1/i. Definir i. 84 . Jéfferson Beltrán M.serie ..1/N. FinSi i <.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo 16: Leer un número entero N y calcular el resultado de la siguiente serie: 1 . Leer num.1.i+1.1/4+. +/..

Jéfferson Beltrán M.serie. Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador FinMientras Escribir "La suma de la serie es: ". FinProceso Diagrama de flujo: Ing. 85 .

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

Ing. Jéfferson Beltrán M. Msc.

86

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

12.3.3.

ESTRUCTURA ITERATIVA “REPETIR” (“REPEAT”).

La estructura iterativa Repetir es una bucle condicional como lo es también la estructura Mientras. Se usa cuando el número de iteraciones no se conoce por anticipado (lo cual si se conoce en la estructura Para). La diferencia entre ambas es que la condición se sitúa al inicio (Mientras) o al final (Repetir) de la secuencia de instrucciones. Entonces, en el primero, el bucle continúa mientras la condición es verdadera (la cual se comprueba antes de ejecutar la acción, es decir se ejecuta cero o más veces) y en el segundo, el bucle continúa hasta que la condición se hace verdadera (la condición se comprueba después de ejecutar la acción, es decir, se ejecutará al menos una vez). El diagrama de flujo de la estructura Repetir es el siguiente:

El pseudocódigo de la estructura Repetir es: Repetir <instrucciones> Hasta Que <condición>

Al ejecutarse esta instrucción, la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evalúa la condición <condición>. Si la condición es falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición. Esto se repite hasta que la condición sea verdadera. Note que, dado que la condición se evalúa al final, las instrucciones del cuerpo del ciclo serán ejecutadas al menos una vez. Además, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna instrucción que modifique la o las variables involucradas en la condición de modo
Ing. Jéfferson Beltrán M. Msc. 87

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

que en algún momento la condición sea verdadera y se finalice la ejecución del ciclo. Un ciclo Repetir controlado por centinela, por ejemplo es cuando el usuario digita una letra para salir como ‗S‘ o ‗N‘ para indicar si desea continuar o no. El bucle debe repetirse hasta que la respuesta del usuario sea ‗n‘ o ‗N‘. (Observe que los centinelas solamente pueden usarse con las estructuras Mientras y Repetir, no con estructuras Para). Ejemplo 17: Calcular la suma de los cuadrados de los primeros 100 números enteros y escribir el resultado. Solución. Nuevamente resolveremos el ejercicio de las dos lecciones anteriores, ahora utilizando la estructura Repetir. Como sabemos, en los bucles condicionales podemos usar una variable contador que debe inicializarse antes del ciclo e incrementarse dentro del bucle para controlar el número de veces que se ingresará al mismo. A diferencia de la estructura Mientras, la condición ahora estará colocada al final del bucle para que primero se ejecute la instrucción y luego se verifique si la condición se cumple. Esto quiere decir, que en esta estructura el bucle se realizará por lo menos una vez. También podrás observar que la condición está al revés, porque el bucle se repite hasta que la condición se cumpla. En el bucle Mientras, la condición se evaluaba mientras era verdadera. Pseudocódigo: //Ejemplo estructura Repetir Proceso Algoritmo17 Definir i,suma Como Entero; //inicializo el acumulador y el contador suma <- 0; i <- 1;

Repetir
Ing. Jéfferson Beltrán M. Msc. 88

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

//sumo al acumulador suma <- suma + i*i; //incremento el contador i <- i+1; Hasta Que i>100

Escribir "La suma de los 100 primeros enteros es: ",suma; FinProceso

Diagrama de flujo:

Ing. Jéfferson Beltrán M. Msc.

89

. Pseudocódigo: //Ejemplo estructura Repetir con centinelas Proceso Algoritmo18 Definir suma. Jéfferson Beltrán M. Se desea calcular la suma de N números ingresados por el usuario. Definir resp Como Caracter. 90 . Msc. Ing. num Como Real. hasta que él decida no ingresar más números.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo 18.

Fundamentos de Programación – Algoritmos Universidad Central del Ecuador //inicializo acumulador suma <. Jéfferson Beltrán M. FinProceso Diagrama de flujo: Ing. //inicializo la centinela Repetir Escribir "Ingrese un número: ". // leo la respuesta Leer resp.0.suma + num. Hasta Que (resp='N' | resp='n') Escribir "La suma es: ". Leer num. //pregunto se desea continuar Escribir "Desea ingresar otro número (S/N): ". Msc. //sumo al acumulador suma <.suma. 91 .

1. Jéfferson Beltrán M. 13. Ing. Msc. INTRODUCCIÓN. ESTRUCTURA DE DATOS Y ARREGLOS. 92 .Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 13.

Un arreglo (o array) es una estructura de datos en la que se almacena una colección de datos del mismo tipo (por ejemplo. Los datos de tipo estándar pueden ser organizados en diferentes estructuras de datos: estáticas y dinámicas. etc. del lenguaje. puede almacenar más de un elemento (valor) a la vez. En cambio un dato de tipo estructurado. Corresponden a este tipo los arreglos y registros. Son aquellas en las que el espacio ocupado en memoria puede ser modificado en tiempo de ejecución. carácter. Una variable de tipo estructurado consiste en toda una colección de casillas de memoria. es decir. lógico son considerados como datos de tipo simple. puede representar a múltiples datos individuales. ESTRUCTURA DE DATOS. puesto que una variable que se define con alguno de estos tipos sólo puede almacenar un valor a la vez. los sueldos de los empleados de Ing. Estructura de Datos Estáticas. Jéfferson Beltrán M. real. en menor medida.3. Estructura de Datos es una colección de datos que se caracterizan por su organización y las operaciones que se definen en ella. Msc. Son aquellas en las que se asigna una cantidad fija de memoria cuando se declara la variable y no puede ser modificada durante la ejecución del programa. Corresponden a este tipo las listas. árboles y grafos. Estructuras de Datos Dinámicas. existe una relación de uno a uno entre la variable y el número de elementos (valores) que es capaz de almacenar. Los tipos de datos estudiados: entero. Las estructuras de datos tienen en común que un identificador o nombre. 13. Estas estructuras no son soportadas en todos los lenguajes.2. 93 . con la condición de que todos los elementos deben ser del mismo tipo. La elección de la estructura de datos idónea dependerá de la naturaleza del problema a resolver y. Una variable de tipo simple consiste de una sola localidad o ―caja‖ de memoria y sólo puede contener un valor a la vez. reales. ARREGLOS. que se puede tener un conjunto de datos enteros. 13. es decir.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Todas las variables que se han considerado hasta ahora son de tipo simple.

Homogénea.. homogénea y ordenada de elementos. Dicho de otra forma... un arreglo es una colección finita. debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo. Ing.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador una empresa). Jéfferson Beltrán M. para ello se utiliza un índice que especifique la posición relativa en el arreglo. Multidimensionales (tres o más dimensiones). Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. 94 . Así se tienen los arreglos: Unidimensionales (vectores). Bidimensionales (tablas o matrices). un arreglo y es una lista de un número finito n de elementos del mismo tipo que se caracteriza por: Almacenar sus elementos en posiciones de memoria contiguas Tener un único nombre de variable (por ejemplo salarios) que representa a todos los elementos Permitir acceso directo o aleatorio a sus elementos individuales. Ordenada: Se puede determinar cuál es el primer elemento. Todos los elementos del arreglo deben ser del mismo tipo. Finita. En resumen. Todo arreglo tiene un límite. el segundo. es decir. el tercero. y el n-ésimo elemento.. Msc.

Para calcular la media: media  (nota1+nota2+.. Se imagina declarar las 100 variables... Jéfferson Beltrán M. de ese modo son 100 direcciones diferentes de memoria para almacenar las calificaciones del examen. nota100... Leer una lista de calificaciones de un examen. Con lo estudiado hasta el momento. nota2. 2. Supongamos también que hay 100 calificaciones....... Escribir una lista de las calificaciones mayores que la media.. Encontrar su media. Ordenar la lista de las calificaciones en orden ascendente. 4. por lo tanto serán 100 veces).. nota2.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo..... ¿cuántas instrucciones involucra? Definir nota1.. serán también 100 veces las instrucciones para ir leyendo cada valor. En la fase de lectura de datos.. deberíamos utilizar 100 variables diferentes nota1. Ing..... nota3. 95 .. 3.. nota2.+nota100)/100.... Leer nota1. nota100.. Msc. (En la declaración real de un algoritmo en pseudocódigo no pueden usarse puntos suspensivos.nota100 Como Entero. Suponga que se desea desarrollar un programa para: 1. . nota3.

debemos indicar su tipo. que están organizados en una secuencia de elementos. Queremos también que esta estructura se almacene en memoria principal para que su almacenaje y recuperación sea más rápida. Al declarar un arreglo. lo cual determina cuantos elementos se almacenarán y como se accederá a los mismos. todos del mismo tipo y se puede acceder a cada elemento directamente especificando su posición en esta secuencia. Para poder utilizar un arreglo. se debe inicializar sus elementos antes de utilizarlos Definición y Dimensionamiento. FinSi … Si nota100 > media Entonces Escribir nota100. es decir. Es por ello que existen los arreglos. un nombre único y su dimensionamiento. FinSi Si nota2 > media Entonces Escribir nota2.. En el caso anterior. sólo se puede acceder a un elemento buscando desde el principio de la lista. Msc... Jéfferson Beltrán M. deberá también compararse una por una: Si nota1 > media Entonces Escribir nota1. ¡Todavía falta ordenar la lista de calificaciones en orden ascendente! Los arreglos nos permiten ahorrar instrucciones.. y esto es algo lento. Ing. 96 . porque es fácil recorrer toda la lista de notas con unas pocas instrucciones. Lo que se necesita es una estructura de acceso directo que permita almacenar y recuperar los datos directamente especificando su posición en la estructura. FinSi Y después de muchísimas líneas de código. declarar los rangos de sus índices.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Para la lista de calificaciones mayores que la media. de esa manera se requerirá el mismo tiempo para acceder al elemento de la posición 100 que el de la posición 5. cuando el acceso a la información es secuencial.

Fundamentos de Programación – Algoritmos Universidad Central del Ecuador La instrucción Dimension permite declarar un arreglo.. Es importante notar que es necesario definir un arreglo antes de utilizarlo. 97 . Los elementos del arreglo se almacenan en posiciones contiguas de memoria.. matriz[10. si declaramos un arreglo de 100 elementos. Esta instrucción define un arreglo con el nombre indicado en <indentificador> y N dimensiones. La cantidad de dimensiones puede ser una o más.. Un arreglo de una dimensión (también conocido como vector) es un tipo de datos estructurado compuesto de un número de elementos finitos.<maxN>)..). Ejemplo: Definir vector. tamaño fijo significa que el tamaño del arreglo debe ser conocido en tiempo de compilación y homogéneo significa que todos sus elementos son del mismo tipo.20]. tamaño fijo y elementos homogéneos que se almacenan bajo un mismo nombre.. Msc.. Los N parámetros indican la cantidad de dimensiones y el valor máximo de cada una de ellas. vector[0] vector[1] vector[2] Ing. Dimension vector[100].. Generalmente los índices de los elementos de los arreglos inician en 0.3.<identM>(<maxM1>. Dimesion <identificador> (<max1>.. que identifica la posición del elemento dentro del conjunto. matriz Como Entero.1. ARREGLO UNIDIMENSIONAL. Finitos indica que hay un último elemento.. y la máxima cantidad de elementos debe ser una expresión numérica positiva. Dimension <ident1> (<max11>..<max1N>). a cada una de las cuales se puede acceder directamente mediante un número entero denominado índice del arreglo.. Jéfferson Beltrán M. separándolos con una coma (.. los índices de elementos válidos van de 0 a 99 (aunque existen lenguajes que inician los índices de los arreglos en 1).<maxMN>). Se pueden definir más de un arreglo en una misma instrucción. es decir. y se diferencian por la posición que tiene cada elemento dentro del arreglo de datos. 13.. indicando sus dimensiones.

3. vector[97] vector[98] vector[99] 13. Definir vector Como Real. Jéfferson Beltrán M. OPERACIONES CON ARREGLOS.1.. a los valores que se almacenan en cada una de las casillas del mismo. valor97 valor98 valor99 Componentes Índice Definición y Dimensionamiento.. es decir. PARTES DE UN ARREGLO. Definir un arreglo llamado vector de 100 elementos de tipo Real. Permiten hacer referencia a los componentes del arreglo en forma individual.3. de qué modo podrán accederse esos componentes. Las operaciones que se pueden realizar con vectores durante el proceso de resolución de un problema son: Ing. Dimension vector[100].2.. Msc. Los índices.. Los componentes.1. 13.1. vector[0] vector[1] vector[2] ………. Hacen referencia a los elementos que forman el arreglo. vector[97] vector[98] vector[99] valoro valor1 valor2 ………. Ejemplo.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador ………. 98 . especifican cuántos elementos tendrá el arreglo y además.

0 Hasta 99 Con Paso 1 Hacer Ing. FinPara Asignación. Lectura. No es posible asignar directamente un valor a todo el arreglo. 99 . //asigna el valor 5 a la posición 1 del arreglo vector vector[10] <.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Lectura/ Escritura. Asignación. El proceso de lectura de un arreglo consiste en leer y asignar un valor a cada uno de sus elementos.vector[1] / 2. Normalmente se realizan con estructuras repetitivas. Búsqueda.5. Usamos los índices para recorrer los elementos del arreglo. //asigna una operación al arreglo vector //Se puede asignar un valor constante a todos los elementos del vector Para i <. Podemos recorrer el arreglo con una estructura repetitiva y asignar un valor a todos los elementos del arreglo. Ejemplo: Para i <. Ejemplo: Para i <. FinPara Escritura. eliminación. Ejemplo: vector[1] <. sólo que en lugar de leer el componente del arreglo. modificación). Jéfferson Beltrán M. lo escribimos. Es similar al caso de lectura. sino que se debe asignar el valor deseado en cada componente.0 Hasta 99 Con Paso 1 Hacer Escribir vector[i]. Ordenación. Actualización (inserción. Msc.0 Hasta 99 Con Paso 1 Hacer Leer vector[i]. Recorrido (acceso secuencial).

siempre que haya espacio en memoria (recordemos que el tamaño de un arreglo es fijo). (Recorrido). FinPara Inicialización. Recorrido del vector es la acción de efectuar una acción general sobre todos los elementos de ese vector.10.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador vector[i] <. Incluye añadir (insertar). Actualización. 100 . promedio Como Entero. salvo que se trata de varias dimensiones y no sólo de una.0 Hasta 99 Con Paso 1 Hacer vector[i] <. i. menor. Ejemplo: Para i <. Siempre es importante inicializar las variables y por lo tanto también los arreglos. Observación. suma. borrar o modificar algunos de los ya existentes. el promedio. Se debe tener en cuenta si el arreglo está o no ordenado. mayor. Se desea ingresar una lista de 10 valores numéricos y calcular la suma. Jéfferson Beltrán M. FinPara Acceso Secuencial. Las partes de un arreglo unidimensional y las operaciones son las mismas que en los arreglos multidimensionales (pueden extenderse). El acceso a los elementos de un vector puede ser para leer en él o para escribir (visualizar su contenido). los números mayor y menor de dicha lista Pseudocódigo: //Ejemplo de arreglos Proceso Algoritmo19 Definir lista. //defino el arreglo y su tamaño Ing. Añadir datos a un vector consiste en agregar un nuevo elemento al final del vector. Msc. Ejemplo19. inicializar con 0 cada elemento del arreglo. Por ejemplo.0.

suma + lista[i].Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Dimension lista[10].lista[0]. Msc.(i+1)." de la lista: ".0.0 Hasta 9 Con Paso 1 Hacer suma <.0 Hasta 9 Con Paso 1 Hacer lista[i] <. FinPara //calculo el promedio promedio <. 101 .suma / 9. FinPara //leo los elementos del arreglo Para i <. //inicializo el arreglo Para i <. //calculo la suma recorriendo el arreglo Para i <.0. menor <. Leer lista[i]. //inicializo variables suma <.0 Hasta 9 Con Paso 1 Hacer Escribir "Ingrese el valor ". FinPara //inicializo los números mayor y menor con el primer //elemento del arreglo mayor <. //calculo los números mayor y menor de la lista Ing.mayor. Jéfferson Beltrán M.

102 . Escribir "Número mayor: ". Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Para i <.1 Hasta 9 Con Paso 1 Hacer Si lista[i] > mayor Entonces mayor <.lista[i]. mayor. suma. Número menor: ". menor. ". Promedio: ". FinProceso Diagrama de flujo: Ing. ". FinSi Si lista[i] < menor Entonces menor <. Msc. FinSi FinPara //presento los resultados Escribir "Suma: ".lista[i]. promedio.

Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ing. 103 . Msc.

Falso. Repetir // leer un nombre y ver que no esté ya en la lista Leer nombre.0 Hasta cant-1 Hacer Ing.j. Dimension lista[200].nombre.cant+1. Definir cant. Msc. cant <. Definir seRepite Como Logico. Escribir "Ingrese un nombre (enter en blanco para terminar):".0. Pseudocódigo: //Ordenamiento de un arreglo Proceso Algoritmo20 Definir nombre. Jéfferson Beltrán M. // leer la lista cant <.aux Como Cadenas.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ejemplo 20. lista[cant] <.posMenor Como Enteros.lista. Ingresar una lista de nombres (la lista termina cuando se ingresa un nombre en blanco). 104 .i. Mientras nombre<>"" Hacer Escribir "Ingrese un nombre: ". seRepite <. no se permite ingresar nombres repetidos y luego ordenar y presentar la lista. //no es "" el nombre no se necesita buscar un repetido Si nombre<>"" Entonces Para i <. Leer nombre.

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

Si nombre=lista[i] Entonces seRepite <- Verdadero; //salgo //repetido y no necesito seguir buscando i <- cant; Escribir "Nombre repetido"; Escribir "Ingrese un nombre: "; FinSi FinPara FinSi Hasta Que ~ seRepite FinMientras // ordenamos la lista Para i <- 0 Hasta cant-2 Hacer // busca el menor entre i y cant posMenor <- i; Para j <- i+1 Hasta cant-1 Hacer Si lista[j] < lista[posMenor] Entonces posMenor <- j; FinSi FinPara // intercambia el que estaba en i con el menor que encontró aux <- lista[i];
Ing. Jéfferson Beltrán M. Msc. 105

del

bucle

pues

es

ya

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

lista[i] <- lista[posMenor]; lista[posMenor] <- aux; FinPara // mostrar como queda la lista Escribir "La lista ordenada en forma ascendente es:"; Para i <- 0 Hasta cant-1 Hacer Escribir " ",lista[i]; FinPara FinProceso

Diagrama de flujo:

Ing. Jéfferson Beltrán M. Msc.

106

Fundamentos de Programación – Algoritmos

Universidad Central del Ecuador

Ing. Jéfferson Beltrán M. Msc.

107

Hasta ahora hemos visto como se puede manipular información con una sola columna o lista de entrada con los llamados vectores. Sin embargo. Internamente en memoria se reservan MxN posiciones consecutivas para almacenar todos los elementos del arreglo. Ejemplo: Definir una arreglo bidimensional de 10 filas y 20 columnas de números enteros llamado matriz. Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 13.n-1] I matriz[i.3.0] 2 matriz[1. J matriz[0. 108 .n-1] matriz[i. en numerosas ocasiones es necesario trabajar con datos que tengan más de una dimensión (se representan por ejemplo como tablas de doble entradas.1] Ejemplo 21. ….). Dimension matriz[10.2.0] matriz[i. …..0] matriz[m-1. Se desea realizar la suma de dos matrices. Pseudocódigo: //Ejemplo de matrices Ing. donde: 1<=I<=M y 1<=J<=N (observe que al igual que en los vectores.n-1] matriz[1. ARREGLO BIDIMENSIONAL. 1 1 matriz[0. Un arreglo bidimensional (matriz o tabla) es un arreglo con dos índices.j] matriz[m-1.. Declaración de una matriz.. Para localizar o almacenar un valor en el arreglo se deben especificar dos posiciones (dos subíndices). cubos.n-1] matriz[m-1.j] N matriz[0..j] matriz[i.1] M matriz[m-1. uno para la fila y otro para la columna. Una matriz se representa como una tabla. Jéfferson Beltrán M. las filas y columnas de las matrices inician en 0). o arreglos de una dimensión.1] ….j] matriz[1. ….1] matriz[1. ….0] 2 matriz[0. etc. ingresar las dimensiones por teclado.20].. Definir matriz Como Entero.

Ing.i+1. Escribir "Ingrese el número de columnas: ".j].n]. Leer matriz1[i.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Proceso Algoritmo21 Definir i.0 Hasta m-1 Con Paso 1 Hacer Para j <. Limpiar Pantalla.".n]. Para i <. j.j+1. Jéfferson Beltrán M. Msc. Escribir "Ingrese el número de filas: ". matriz3 Como Entero. n.j+1. matriz2[m.". //ingreso la segunda matriz Escribir "Ingrese la matriz B:". matriz3[m.n]. Para i <.".0 Hasta m-1 Con Paso 1 Hacer Para j <. //ingreso la primera matriz Escribir "Ingrese la matriz A:". m.0 Hasta n-1 Con Paso 1 Hacer Escribir "Ingrese el valor A[". FinPara FinPara Limpiar Pantalla. Leer m.i+1."]".0 Hasta n-1 Con Paso 1 Hacer Escribir "Ingrese el valor B[". Leer n. matriz2."]". //defino la dimension de las matrices Dimension matriz1[m. matriz1.". 109 .

".j]. Escribir "C[". Para i <."]=". FinPara FinPara FinProceso Diagrama de flujo: Ing.j+1. Jéfferson Beltrán M.i+1.matriz3[i.0 Hasta n-1 Con Paso 1 Hacer matriz3[i. Msc. //sumo las matrices y las presento en pantalla Escribir "La suma de A+B es:"..j]. Limpiar Pantalla.j] <..j]. FinPara FinPara Escribir "Presione enter. 110 .".Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Leer matriz2[i.j] + matriz2[i.". Esperar Tecla.matriz1[i.0 Hasta m-1 Con Paso 1 Hacer Para j <.

Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Ing. Msc. Jéfferson Beltrán M. 111 .

Msc. con las llamadas a los mismos dentro del programa principal. ahorrando en consecuencia tiempo de programación. Un subprograma realiza una tarea concreta que se describe con una serie de instrucciones y que. acepta entradas y produce ciertas salidas. Ventajas de la Programación Modular. en esencia. idealmente. Una estrategia para la resolución de problemas complejos con computadoras es la división o descomposición del problema en otros problemas más pequeños y fáciles de resolver. que permite descomponer un problema complejo en subproblemas hasta que éstos sean concretos y fáciles de resolver. de modo que normalmente un proyecto de programación se compone de un programa principal y un conjunto de subprogramas. Los procedimientos se pueden ejecutar más de una vez en un programa y en diferentes programas. Los subprogramas son una herramienta importante para el desarrollo de algoritmos y programas. se puede utilizar en otros programas eliminando la duplicación innecesaria de código (reutilización de código). ¿Cuándo es útil la modularización? Este enfoque de segmentación o modularización es útil en dos casos: 1. MODULARIDAD. El descomponer un programa en módulos independientes más simples se conoce también como el método de "Divide y vencerás". Cuando existe un grupo de instrucciones o una tarea específica que deba ejecutarse en más de una ocasión. se puede ver como una caja negra (encapsulamiento) que ejecuta una tarea en particular en un programa. Un subprograma.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 14. Estos subproblemas se implementan mediante módulos o subprogramas. Aumenta la facilidad de depuración y búsqueda de errores en un programa ya que éstos se pueden aislar fácilmente depurándose sus errores Ing. 112 . Jéfferson Beltrán M. la solución se divide o segmenta en módulos que ejecutan partes o tareas específicas. Las ventajas más sobresalientes de utilizar subprogramas o módulos son: El uso de subprogramas facilita el diseño descendente y modular. 2. Cuando un problema es complejo o extenso. Una vez que el módulo se ha escrito y comprobado. debería ser independiente de otros subprogramas.

Los subprogramas en programación estructurada se clasifican en procedimientos y funciones. Las funciones normalmente devuelven un sólo valor a la unidad de programa (programa principal u otro subprograma) que los referencia (que los llama o invoca). Jéfferson Beltrán M. El uso de subprogramas facilita la división de tareas de programación entre un equipo de programadores. 14. Las funciones se dividen en estándares y definidas por el usuario. Son funciones proporcionadas por lenguaje de programación. prácticamente. Una de las características importantes y diferenciadoras de los subprogramas es la posibilidad de comunicación entre el programa principal y los subprogramas (o entre dos subprogramas). una variable cuyo valor debe ser o bien proporcionado por el programa principal al subprogramas o ser devuelto desde el Ing. que son unidades de programas diseñados para ejecutar una tarea específica. Son funciones definidas el programador con el propósito de ejecutar alguna función específica. Esta comunicación se realiza a través de una lista de parámetros. ya que éstos no siempre son necesarios. Los procedimientos pueden devolver cero. uno o varios valores. Las funciones y procedimientos están compuestos por un grupo de sentencias a las que se asigna un nombre (identificador) y constituyen una unidad de programa a la que se puede invocar desde el programa principal u otra función o procedimiento. PROCEDIMIENTOS Y FUNCIONES. y que por lo general se usan cuando se trata de hacer algún cálculo que será requerido en varias ocasiones en la parte principal del algoritmo. Un parámetro es.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador individualmente antes de su inclusión en bibliotecas independientes y de ser llamados en el programa principal. 113 . Un parámetro es un medio para pasar información – valores a variables – del programa principal a un subprograma y viceversa. No es obligatorio que un subprograma utilice parámetros. El uso de módulos facilita la proyección y la comprensión de la lógica subyacente para el programador y el usuario. Definidas por el usuario.1. Estándar. Msc.

Dos variables locales pueden tener el mismo nombre siempre que estén declaradas en funciones o procedimientos diferentes. Hay que tener especial precaución al trabajar con variables globales. IMPLEMENTACIÓN DE PROCEDIMIENTOS Y FUNCIONES. Los de entrada son aquellos cuyos valores deben ser proporcionados por el programa principal. las variables globales pueden ser utilizadas en el programa principal y en todos los subprogramas. tienen el mismo nombre.1. además que es muy común para un programador aprender varios lenguajes de programación. Las variables que intervienen en un programa con subprogramas pueden ser de dos tipos: variables locales y variables globales. Las variables también pueden ser declaradas dentro de un bloque o estructura de control. y se comportarán como variables locales únicamente dentro de dicho bloque o estructura. pues en PSeInt no es posible realizarlo (al momento de escribir estas líneas). y su valor se pierde una vez que el subprograma termina. Por consiguiente. Msc. 14. ya que al ser recursos compartidos todos los subprogramas pueden tener acceso simultáneo a ellas y se pueden producir errores lógicos debidos a la concurrencia. Si dos variables. si están muy claros del algoritmo. 114 .Fundamentos de Programación – Algoritmos Universidad Central del Ecuador subprogramas al programa principal. hay dos tipos de parámetros: parámetros de entrada y parámetros de salida. y se dice que es local al subprograma. es una buena práctica evitar el uso de variables globales desde subprogramas a menos que sea estrictamente necesario. una global y una local. La implementación de procedimientos y funciones lo haremos en la herramienta JTraductor. mientras que los de salida son aquellos cuyos valores se calcularán en el subprograma y se deben devolver al programa principal para su proceso posterior. permanecen activas durante toda la ejecución del programa. básicamente es Ing. Visibilidad de las variables. Las variables declaradas en el programa principal se denominan variables globales. la local prevalecerá sobre la global dentro del módulo en que ha sido declarada. A diferencia de las variables locales. Por lo general. Jéfferson Beltrán M. Una variable local es una variable que está declarada dentro de un subprograma.1. Una variable local sólo está disponible durante el funcionamiento del mismo. cuyos valores se pueden utilizar sólo dentro del subprograma en el que están declaradas.

<expr2> . <exprN> . <. … . =. &... <. Jéfferson Beltrán M.. >=. +. <expr2> . / Asignación <variable> <. Operadores >. <acción 2>. -. .0).. <variable> <. *. <var2> .Fundamentos de Programación – Algoritmos Universidad Central del Ecuador cuestión de aprender un nuevo léxico..<expresión> Lectura Leer <var1> . ^ >. <=. /. Fin . Escribir <exprl> . +. FinProceso . . <acción 1>.. <var2> .. <acción n>. <varN> <Tipo variable> <variable> <. PSeInt JTraductor Inicio /Fin del Algoritmo Proceso <NombrePrograma> Proceso Principal <acción 1>. ~.8. . >=.<>..<expresión> . -.<valor> Como [Real/Entero/Logico/Caracter] . <=. Leer <variable> Escritura Escribir <exprl> . Comentarios //esto es un comentario No existe forma de definir comentarios Tipos de Variables Real/Entero/Logico/Caracter Real/Entero/Logico/Cadena Declaración de Variables Definir <var1> . <acción 2>. . *..<varN> . <exprN> Estructura Si-Entonces Si <condición> Entonces <instrucciones> Sino 115 Si <condición> Entonces <instrucciones> Sino Ing. |. <acción n>. . . . &&. =.. ||. . La siguiente tabla muestra un comparativo entre PSeInt (v20120418 ) y JTraductor (v0. sintaxis y semántica y saber las semejanzas y diferencias entre un lenguaje y otro. Msc. !=.

<inicial> <final> (Con Paso <paso>) Hacer Hasta <final> Con Paso <paso> Hacer <instrucciones> <instrucciones> FinPara FinPara Estructura Mientras Mientras <condición> Hacer <instrucciones> FinMientras Estructura Repetir No es soportado la estructura repetir Mientras <condición> Hacer <instrucciones> FinMientras Repetir <instrucciones> Hasta Que <condición> Arreglos Dimension <ident1> No es soportado los arreglos (<max11>..<maxMN>).... Declaración de Funciones. Msc..Fundamentos de Programación – Algoritmos Universidad Central del Ecuador <instrucciones> FinSi <instrucciones> FinSi Estructura Según Segun <variable> Hacer No es soportado la estructura Según <num>: <instrucciones> <num>.<num>: <instrucciones> <..<identM>(<m axM1>.> De Otro Modo: <instrucciones> FinSegun Estructura Para Para <variable> <. Jéfferson Beltrán M...) <instrucciones> Retornar <Variable/Valor> Ing......<max1N>). <TipoVar> <Var2>.. El pseudocódigo para declarar funciones es: Funcion <Tipo Var> <nombreFuncion> (<TipoVar> <Var1>. 116 .<inicial> Hasta Para <Tipo Var> <variable> <.

Ejemplo 21.0. Solución. Realizar una función que acepte dos números como parámetros y devuelva la suma de dichos números. Pseudocódigo: Funcion Real sumarNumeros (Real parametro1. El nombre de la función <nombreFuncion> debe iniciar con un carácter válido. Real parametro2) Real suma suma <.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador FinFuncion Las funciones siempre deben retornar una variable o valor <Variable/Valor> del mismo tipo del que fue declarada la función <Tipo Var> a través de la palabra reservada Retornar. num2 Escribir "Ingrese el primer número" Leer num1 Escribir "Ingrese el segundo número" Leer num2 Ing. 117 . si no se tienen parámetros. Jéfferson Beltrán M.parametro1 + parametro2 Retornar suma FinFuncion Proceso principal Real suma <. Msc. Pueden tener cero o más parámetros (<TipoVar> <VarN>) que deben ser pasados al momento de llamar a la función. Crearemos una función llamada sumarNumeros que será llamada en el programa principal. num1. debe ir el paréntesis vacío.

. A primera vista. suma Fin En este ejemplo vemos la definición (declaración) de una función en pseudocódigo para calcular la suma de dos números reales. Esta función la podemos invocar desde el programa principal u otra función o procedimiento. <TipoVar> <Var2>. Declaración de Procedimientos. Sin embargo. no puede haber dentro del mismo programa dos funciones con la misma firma.num2) Escribir "La suma es: ". Ing. Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador suma <. a diferencia de las funciones no devuelven ningún valor. El pseudocódigo para declarar procedimientos es: Procedimiento <nomProcedimiento> (<TipoVar> <Var1>. Jéfferson Beltrán M. Nótese también que el compilador chequeará previamente que el tipo de dato del parámetro de salida de la función (en este caso un número real) pueda ser asignado a la variable suma según su tipo. Nótese que los nombres de los parámetros en la definición (parametro1 y parametro2) no necesariamente tienen que ser los mismos que los utilizados en la invocación (num1 y num2). los procedimientos parecen dificultar la escritura de un programa. los cuales son pasados al subprograma como parámetros de entrada.. 118 . En general. no sólo no es así..sumarNumeros(num1. sino que la organización de un programa en funciones y/o procedimientos lo hace más fácil de escribir y depurar.) <instrucciones> FinProcedimiento Los procedimientos. Al nombre de la función junto con la lista ordenada de sus parámetros de entrada se lo conoce como firma de la función. La función calcula la suma y la devuelve como un parámetro de salida.

los procedimientos parecen dificultar la escritura de un programa. 119 . no puede haber dentro del mismo programa dos procedimientos con la misma firma.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Pueden tener cero o más parámetros (<TipoVar> <VarN>) que deben ser pasados al momento de llamar al procedimientos. resta. sino que la organización de un programa en funciones y/o procedimientos lo hace más fácil de escribir y depurar. multiplicación y división) de dos números. A primera vista. no sólo no es así. debe ir el paréntesis vacío. Ejemplo 23. Realizar un algoritmo que calcule las operaciones matemáticas básicas (suma. Procedimiento bienvenida (Cadena nombre) Escribir "\n\t Bienvenido: ". Ejemplo 22. nombre FinProcedimiento Proceso principal Cadena nombre Escribir "Ingrese su nombre: " Leer nombre bienvenida(nombre) Fin Al nombre de la función junto con la lista ordenada de sus parámetros de entrada se lo conoce como firma del procedimiento. si no se tienen parámetros. El nombre del procedimiento <nomProcedimiento> debe iniciar con un carácter válido. Jéfferson Beltrán M. Msc. Se desea crear un procedimiento que de la bienvenida al usuario que ingresa al programa. En general. Pseudocódigo: Ing. Sin embargo. Use funciones y procedimientos.

restar(num1. Jéfferson Beltrán M. 120 .num2) FinFuncion Funcion Real dividir (Real num1. Real num2) Retornar (num1 * num2) FinFuncion Funcion Real restar (Real num1. Real num2) Retornar (num1 + num2) FinFuncion Funcion Real multiplicar (Real num1. Real num2) Escribir "El resultado de la suma es: ". Msc. Real num2) Retornar (num1 . Real num2) Retornar (num1 / num2) FinFuncion Procedimiento calculadora (Real num1.num2) Escribir "El resultado de la resta es: ". dividir(num1.num2) Si num2!=0 Entonces Escribir "El resultado de la división es: ".num2) Escribir "El resultado del producto es: ". multiplicar(num1. sumar(num1.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Funcion Real sumar (Real num1.num2) Sino Ing.

armando de esta manera el programa deseado. 14. que es ni más ni menos que el código de máquina generado a partir del código fuente (SIN INCLUIR EL CODIGO DE LAS Ing.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Escribir "El resultado de la división es: Denominador igual a 0" FinSi FinProcedimiento Proceso principal Real num1<-0. En la mayoría de los lenguajes de programación de alto nivel es posible guardar un subprograma o un conjunto de subprogramas como un archivo independiente al cual se denomina genéricamente biblioteca (del inglés library). Las bibliotecas pueden luego ser referenciadas dentro de múltiples programas para que éstos puedan hacer uso de los subprogramas incluidos en aquella. Recordemos que la salida del proceso de compilación de un código fuente se denomina Programa Objeto. 121 .num2) Fin Se puede observar que en programa principal se orquesta (invoca) al resto de funciones o procedimientos.num2<-0 Escribir " \tCALCULADORA\n" Escribir "Ingrese el primer número: " Leer num1 Escribir "Ingrese el segundo número: " Leer num2 calculadora(num1.2. Msc. el procedimiento calculadora imprime en pantalla el resultado de las operaciones matemáticas básicas calculadas con funciones. Jéfferson Beltrán M. BIBLIOTECAS.

hasta que los subproblemas llegan a ser tan simples que se pueden resolver sin realizar más subdivisiones.. Recursividad. un método es recursivo si contiene invocaciones a sí mismo. Una vez que se ha subdividido el problema original. Habrá un caso (o varios) tan simple que pueda resolverse directamente sin necesidad de hacer otra llamada recursiva. la recursividad consiste en: En el cuerpo de sentencias del subalgoritmo se invoca al propio subalgoritmo para resolver ―una versión más pequeña‖ del problema original. 122 . En resumen. <TipoVar> <Var2>. RECURSIVIDAD. Jéfferson Beltrán M. En general el pseudocódigo de un algoritmo recursivo es el siguiente: Funcion <Tipo Var> recursivo (<TipoVar> <Var1>. que se define en función de sí mismo. y la solución general del problema se obtiene juntando todos los componentes resueltos.) <Tipo Var> valor Ing. en problemas matemáticos. La recursión aparece en la vida diaria. Observación.. es el proceso de resolver un problema reduciéndolo a uno o más subproblemas que son idénticos en su estructura al problema original y más simples de resolver. Este proceso se conoce comúnmente como LinkEdición. llamado linker. En otras palabras. es decir. lo asocie con los subprogramas que se encuentran en las bibliotecas referenciadas y produzca el llamado Programa Ejecutable. Es un proceso extremadamente potente. Tanto PSeInt como en JTraductor no es posible el uso de bibliotecas. El Programa Objeto es luego utilizado como entrada para que otro componente de software.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador BIBLIOTECAS UTILIZADAS). se utiliza la misma técnica de descomposición para subdividir cada uno de estos subproblemas en otros que son menos complejos. Es una poderosa herramienta de programación como alternativa a algoritmos iterativos (cuando es ―casi‖ imposible resolver con estructuras iterativas). Msc. en estructuras de datos y en muchos otros problemas. 15.. por lo que hay que saber cuándo y cómo aplicarla. Se dice que un proceso es recursivo si forma parte de sí mismo.

tenemos los casos: Si n = 1 (caso base) Retornar 1 Si n > 1 Retornar n * factorial(n – 1) Sea factorial(n) la función que calcula el factorial de un número entero n.. <Var2>. Ejemplo 24. Recordemos la definición recursiva del factorial: n! = n * (n-1)! . Asegurar que se cubren todos los posibles casos entre el base y los no base.recursivo(<Var1>. conduce a problemas cada vez más pequeños que terminarán en el caso base. Msc. sea n=4. Calcular el factorial de un número entero usando un algoritmo recursivo. en la que no se producen llamadas recursivas (caso base). Jéfferson Beltrán M.. en el caso no base.) <instrucciones> Retornar valor FinFuncion Las condiciones que debe cumplir un algoritmo recursivo son: Asegurar que existe una condición de salida. entonces: factorial (4) = 4 * factorial (3) = 4 * 6 = 24 factorial (3) = 3 * factorial (2) = 3 *2 = 6 factorial (2) = 2 * factorial (1) = 2 * 1 = 2 factorial (1) = 1 Pseudocódigo: Funcion Entero factorial (Entero n) Entero temp Ing. si n > 1 1! = 1 Por lo tanto.. 123 .Fundamentos de Programación – Algoritmos Universidad Central del Ecuador <instrucciones> valor <. Solución. Cada llamada.

1 FinSi Retornar temp FinFuncion Proceso principal Entero n<-0 Escribir "Factorial de un número entero\t\n" Escribir "Ingrese en valor de n: " Leer n Escribir "El factorial de ". podemos encontrar una solución iterativa simple. se tiene que: n! = n * (n-1)!. Jéfferson Beltrán M. (2)! = (2) * (1)! Ing. factorial(n) Fin A veces. 124 . si n > 1 1! = 1 De acuerdo con esta definición. Calcular el factorial de un número entero usando un algoritmo iterativo.n*factorial(n-1) Sino temp <.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Si n>1 Entonces temp <." es ". Msc. Se define el factorial como: n! = n * (n-1)! . si n>1 (n-1)! = (n-1) * (n-2)! (n-2)! = (n-2) * (n-3)! ……. Solución.n. que haga que el algoritmo sea más eficiente. Ejemplo 25.

1 Hasta n Con Paso 1 Hacer fact <. factorial(n) Fin Ventajas. que es la definición iterativa de factorial." es ". sea n=4.n. Msc.fact*i FinPara Retornar fact FinFuncion Proceso principal Entero n<-0 Escribir "Factorial de un número entero\t\n" Escribir "Ingrese en valor de n: " Leer n Escribir "El factorial de ". Sea factorial(n) la función que calcula el factorial de un número entero n.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador De donde: n!=n*(n-1)*(n-2)*…*1. Jéfferson Beltrán M. y facilidad para comprobar y convencerse de que la solución del Ing. favoreciendo la resolución de problemas complejos de manera natural. entonces: factorial (4) = 4*3*2*1 = 24 Pseudocódigo: Funcion Entero factorial (Entero n) Entero fact<-1 Para Entero i <. La principal ventaja es la simplicidad de comprensión y su gran potencia. sencilla y elegante. 125 .

Una simple llamada puede generar un gran número de llamadas recursivas. constantes. Observación. Los comentarios son considerados parte del código fuente por más que sean ignorados en las etapas de compilación y ejecución. El buen estilo de programación es. es decir. 16. sin lugar a dudas. El principal inconveniente es la ineficiencia tanto en tiempo como en memoria. JJ no son identificadores significativos. Las variables. Elección de nombres significativos para variables. existen una serie de reglas que se recomiendan seguir desde el principio del aprendizaje de la programación. Msc. 126 . nombres de subprogramas y nombres de programas deben ser significativos para orientar al usuario o a otros programadores sobre lo que representan: X. situado en el programa e ignorado por el compilador. ESTILO DE PROGRAMACIÓN. que utiliza bucles y pilas para almacenar las variables. Desventajas. ya que ayudan al programador y a otras personas a la comprensión del mismo. puesta a punto y mantenimiento. y tienen importancia primordial en las fases de análisis. Y. Aunque la experiencia proporciona el estilo. que las propias instrucciones.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador problema es correcta. El valor de la recursividad reside en el hecho de que se puede usar para resolver problemas sin fácil solución iterativa. La legibilidad de los programas aumenta considerablemente utilizando comentarios. Los comentarios son una parte fundamental de la documentación de un programa. incluso. Ing. de corregir y de mantener. dado que para permitir su uso es necesario transformar el programa recursivo en otro iterativo. es una práctica habitual realizar una identación (o tabulación) en cada uno de los bloques y unidades de programas fundamentales para mejorar la legibilidad del código fuente. La recursividad se debe usar cuando sea realmente necesaria. Jéfferson Beltrán M. No es raro encontrar programas en los cuales los comentarios ocupan más lugar. una de las características más importantes que debe tener un buen programador. Identación. Comentarios. (factorial(n) genera n llamadas recursivas). Un comentario es un texto explicativo más o menos largo. cuando no exista una solución iterativa simple. funciones y procedimientos. Aunque no suele ser requerido por los compiladores de los lenguajes de alto nivel. Un programa con buen estilo es más fácil de leer.

Editorial Mc Graw Hill Ing. Libro de Problemas Luis Joyanes Aguilar. ―Programación en Pascal‖.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Espacios y Líneas en Blanco. Editorial Mc Graw Hill ―Lógica Simbólica‖. así como también dejar una línea en blanco entre partes importantes o que estén lógicamente separadas. 1996 ―Fundamentos de Programación‖. BIBLIOGRAFÍA. Los programas no pueden considerarse correctos hasta que han sido validados utilizando un rango amplio de datos de prueba para contemplar todas las posibles direcciones que el flujo de control puede tomar en tiempo de ejecución. ―Aprenda Visual C++ Ya‖.E. Chris Pappas y William H. Editorial Mc Graw Hill ―Visual C++ 6. Luis Joyanes Aguilar y Angel Hermoso.S. 17. Editorial Prentice Hall ―Introducción a la Ciencia de las Computadoras‖. Editorial Mc Graw Hill Irving M. Mark Andrews. Copi. ―Fundamentos de Informática‖ Luis A.A. Algoritmos y estructuras de datos. Jéfferson Beltrán M. Ureña y otros. Validación. 127 .C. Rodríguez Baena y Fernández Azuela.0 Manual de Referencia‖. Msc. 1999 Editorial Alfaomega ra-ma ―Fundamentos de Programación‖. Editorial Prentice Hall 1999 ―Cómo programar en C/C++‖ Deitel/Deitel. Con el mismo fin de mejorar le legibilidad y comprensibilidad del programa es recomendado utilizar espacios en blanco antes y después de un operador. 2ª Edición ―Pascal y Turbo Pascal enfoque práctico‖. Murray. 4ª Edición Sanford Leestma y Larry Nyhoff. Luis Joyanes Aguilar 1996. Editorial C.

Msc.net/ Ing. Jéfferson Beltrán M. Algoritmos. Lógica Computacional y Programación‖. 1ª Edición Francisco Javier Ceballos. Ma. 128 .sourceforge. del Rosario Bores Rangel y Román Rosales Becerril.sourceforge. Editorial Mc Graw Hill 1991 ―Metodología de la Programación. Editorial Alfaomega ra-ma 1999 http://pseint. 1a Edición Editorial Alfaomega 1995 ―Enciclopedia del Lenguaje C‖.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador ―Computación.net/ http://jtraductor. Osvaldo Cairó battistutti. Diagramas de Flujo y programas‖ Tomos I y II. 1ª Edición Editorial Mc Graw Hill 1993 ―Programación en C‖. 1ª Edición Byron S. Metodología. Gottfried.

Sign up to vote on this title
UsefulNot useful