P. 1
Fundamentos de Programación - Algoritmos JB

Fundamentos de Programación - Algoritmos JB

|Views: 2.700|Likes:

More info:

Published by: Gabriela Cabrera Herrera on Apr 27, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/05/2013

pdf

text

original

Sections

  • 1. EL ORDENADOR
  • 2. EL SOFTWARE
  • 3.2.1. TRANSFORMACIÓN DE BINARIO A DECIMAL (ENTEROS)
  • 3.2.2. TRANSFORMACIÓN DE DECIMAL (ENTEROS) A BINARIO
  • 3.2.3. OPERACIONES BÁSICAS Y LÓGICAS
  • 3.3. REPRESENTACIÓN BINARIA DE DATOS
  • 4.1. CARACTERÍSTICAS DE LOS ALGORITMOS
  • 4.2.1. TIPOS DE DATOS
  • 4.2.2. CONSTANTES Y VARIABLES
  • 4.2.3. SENTENCIAS O INSTRUCCIONES
  • 4.2.4. OPERADORES Y EXPRESIONES
  • 4.2.5. ESTRUCTURAS DE CONTROL
  • 4.3. PASOS PARA CREAR UN ALGORITMO
  • 5.1.1. CARACTERÍSTICAS DEL PROGRAMA
  • 5.2. APLICACIÓN INFORMÁTICA
  • 5.3. SISTEMA INFORMÁTICO
  • 5.4. DATOS
  • 5.5. INFORMACIÓN
  • 5.6.1. ACTIVIDADES DEL PROCESAMIENTO DE DATOS
  • 6.1.2. DISEÑO DEL ALGORITMO SOLUCIÓN
  • 6.1.3. CODIFICACIÓN DEL PROGRAMA
  • 6.1.4. COMPILACIÓN Y EJECUCIÓN
  • 6.1.5. PRUEBAS - VERIFICACIÓN
  • 6.1.6. DEPURACIÓN
  • 6.1.7. DOCUMENTACIÓN DE PROGRAMA
  • 6.1.8. MANTENIMIENTO DEL PROGRAMA
  • 7.1. PROGRAMACIÓN ESTRUCTURADA
  • 7.2. PROGRAMACIÓN MODULAR
  • 7.3. PROGRAMACIÓN FUNCIONAL
  • 7.4. PROGRAMACIÓN ORIENTADA A OBJETOS (POO)
  • 7.5. PROGRAMACIÓN DIRIGIDA POR EVENTOS
  • 7.6. PROGRAMACIÓN DE SCRIPTS
  • 7.7. PROGRAMACIÓN CONCURRENTE Y PARALELA
  • 7.8. PROGRAMACIÓN LÓGICA
  • 7.9. PROGRAMACIÓN DISTRIBUIDA
  • 7.10. PROGRAMACIÓN WEB
  • 8.1. LENGUAJES DE MAQUINA
  • 8.2. LENGUAJES DE BAJO NIVEL
  • 8.3. LENGUAJES DE ALTO NIVEL
  • 8.4.1. COMPILADOR E INTÉRPRETE
  • 9. LA LÓGICA COMO ASPECTO FUNDAMENTAL DE LA PROGRAMACIÓN
  • 10.2. PSEUDOCÓDIGO
  • 10.3. DIAGRAMAS DE FLUJO O FLUJOGRAMAS
  • 10.4. INTRODUCCIÒN A UML (Unified Modeling Language)
  • 11. ENTORNO DE PROGRAMACIÓN INTEGRADO (IDE)
  • 12.1. ESTRUCTURA SECUENCIAL
  • 12.2.1. ESTRUCTURA SELECTIVA “SI-ENTONCES” (“IF-THEN”)
  • 12.2.2. EXPRESIONES LÓGICAS
  • 12.2.3. ESTRUCTURAS ANIDADAS
  • 12.2.4. ESTRUCTURA DE SELECCIÓN MÚLTIPLE “SEGÚN” (“CASE”)
  • 12.3.1.1. CONTADOR
  • 12.3.1.2. ACUMULADOR O TOTALIZADOR
  • 12.3.2.1. CENTINELAS
  • 12.3.2.2. BANDERAS
  • 12.3.3. ESTRUCTURA ITERATIVA “REPETIR” (“REPEAT”)
  • 13.2. ESTRUCTURA DE DATOS
  • 13.3.1.1. PARTES DE UN ARREGLO
  • 13.3.1.2. OPERACIONES CON ARREGLOS
  • 13.3.2. ARREGLO BIDIMENSIONAL
  • 14.1.1. IMPLEMENTACIÓN DE PROCEDIMIENTOS Y FUNCIONES
  • 14.2. BIBLIOTECAS
  • 15. RECURSIVIDAD
  • 16. ESTILO DE PROGRAMACIÓN
  • 17. BIBLIOGRAFÍA

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

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

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

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

TRANSFORMACIÓN DE BINARIO A DECIMAL (ENTEROS). 3. apuntando los restos.2. y realizar la suma de las operaciones.2. Ing. El último resto obtenido es el bit más significativo (MSB) y el primero es el bit menos significativo (LSB). Consiste en multiplicar cada uno de los términos por potencias crecientes de 2 a partir de la coma decimal y hacia la izquierda. Msc. Ejemplo: convertir a decimal 101011102 3.1. 7 . Jéfferson Beltrán M.2. TRANSFORMACIÓN DE DECIMAL (ENTEROS) A BINARIO. Se va dividiendo la cantidad decimal por 2.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. hasta obtener cociente cero.

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

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

Ing. Cuando se introducen textos en un ordenador a través del periférico que corresponda. 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. 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. Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Cualquier información escrita. etc. pitido (BEL). cualquier texto se puede representar por medio de caracteres. Si utilizamos n bits para codificar m símbolos. se podrían codificar 4 símbolos distintos (m=4). 10 . Caracteres especiales: símbolos ortográficos y matemáticos no incluidos en los grupos anteriores. es decir. sincronización de una transmisión (SYN). Los elementos del conjunto de caracteres. comienzo de línea (CR). los caracteres se codifican con un código de entrada/salida. como salto de línea (NL). 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. Jéfferson Beltrán M. 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. así como su número m. asociando a cada carácter una determinada combinación de n bits.

etc. 11 . Es un conjunto de reglas para resolver determinado problema describiendo de forma lógica su solución. que es el lenguaje de programación. 16 concretamente. ñ. y así sucesivamente. videos. o A cada carácter se le asigna un único código. o Cubre la mayoría de los lenguajes actuales.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Con 3 bits (n=3) serían 2^3=8 combinaciones. Ing. ALGORITMOS Y ELEMENTOS QUE LO CONFORMAN. Todos los símbolos se representan con un número fijo de bits. o Cada carácter está formado por una cadena de 16 bits. japonesa. El código ASCII extendido usa 8 bits por carácter por lo que se tienen 256 caracteres diferentes. coreana. Con n bits se podrían codificar m=2^n símbolos distintos. 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. 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. Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos. 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. para codificar m símbolos distintos se necesitan n bits. Jéfferson Beltrán M. etc.. símbolos como ä. Dicho de otra forma. El problema es que los símbolos codificados son insuficientes para representar caracteres especiales de idiomas de diversas culturas como china. Las características principales son: o Está reconocido como estándar ISO/IEC 10646. imágenes. Se puede también representar también sonidos. y cualquier información que se almacene en un computador. 4. o Incluye caracteres combinados. 8 símbolos (m=8). o No contempla la codificación de caracteres de control. pudiendo codificarse en total 216 = 65356 símbolos diferentes. o No determina la forma o imagen concreta de cada carácter (fuente). etc. definidos y finitos. Msc.

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

3. 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). las sentencias se clasifican en ejecutables (especifican. Las variables y constantes se pueden procesar utilizando operaciones y funciones adecuadas para sus tipos. Jéfferson Beltrán M.2. SENTENCIAS O INSTRUCCIONES. Msc. 13 . Ing. OPERADORES Y EXPRESIONES.2. 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. la cual se utiliza para almacenar un valor en una variable. Las sentencias describen acciones algorítmicas que pueden ser ejecutadas. según su tipo y número. Se denomina expresión a un conjunto de variables y / o constantes unidas por operadores. Otros ejemplos de sentencias simples son las de entrada/salida. Existen tantos tipos de variables como tipos de datos diferentes. en: Sentencias Simples: Son sentencias que no contiene ninguna otra sentencia. donde cada una de las cuales tiene un número y contiene un valor. por ejemplo. El ejemplo más típico de sentencia simple es la sentencia de asignación. una posición de memoria con nombre (Nombre de la Variable). condicionalmente o repetidamente. 4. La operación de asignación se suele representar en pseudocódigo con el símbolo ‗‘.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador realidad. 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. y que contiene un valor (Valor de la Variable). 4. En general. Las variables se asemejan a cajas o buzones. Las sentencias se clasifican. Sentencias estructuradas: Son sentencias compuestas de otras sentencias que se ejecutan en secuencia. sino que ayudan a su legibilidad) como la declaración de variables.

La operación and (y) combina dos condiciones simples y produce un resultado verdadero sólo si los dos operandos son verdaderos. Su resultado en es valor de verdad. ESTRUCTURAS DE CONTROL. Por este motivo es que se suelen utilizar los paréntesis para establecer la prioridad de aplicación de los operandos. Ejemplos de operadores aritméticos son ― + ‖. Ejemplos de operadores relacionales son ― < ‖ (Menor que). Existen otros operadores lógicos además de los mencionados. existen métodos que Ing. Su resultado es un valor de verdad. c<>d. Estos operadores trabajan con operandos que son expresiones lógicas. ― * ‖ y ― / ‖. etc. Msc. Su resultado es un número. Los operadores aritméticos y los relacionales se utilizan de la siguiente forma: variable o constante operador variable o constante. etc. 14 . ― .. ― = ‖ (Igual a) y ― <> ‖ (Distinto a). ― >‖ (Mayor que). La operación not (no) actúa sobre una sola condición simple u operando y simplemente niega (o invierte) su valor. Existen diversos tipos de operadores.‖. Ejemplo de expresión: Cos (2*pi * X) + 7.5.69 * X 4. Por ejemplo: a + b.2. la resta. por ejemplo: Aritméticos: Son apropiados únicamente para tipos numéricos. De relación: Los operadores de relación (o relacionales) se utilizan para expresar condiciones y describen una relación entre dos valores. 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.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. etc. Aunque un flujo normal de un programa estructurado es lineal. la multiplicación y la división de dos datos respectivamente. Jéfferson Beltrán M. c/d. a<b. La operación or (o) es verdadera si uno de los dos operandos es verdadero. los cuales permiten obtener el resultado de la suma. 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.

fundamentales en los lenguajes de programación y en los diseños de los algoritmos. los algoritmos reciben datos de entrada. A partir de los datos de entrada se consigue la salida. Ing. PASOS PARA CREAR UN ALGORITMO. De Repetición o Iteración: Repetición de una operación mientras se cumple una condición. 15 . se debe comprenderlo completamente. por consiguiente. En general. El proceso se refiere a los cálculos que se deben hacer para obtener la salida deseada. los procesa y genera la salida.3. De Selección/Condicionales: Bifurcación condicional de una o más operaciones.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. Las estructuras de control son: Secuencia: Sucesión simple de dos o más operaciones (una tras otra). Diseño del algoritmo. 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. 4. 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. Estas estructuras son. Prueba del algoritmo. Es mejor solucionar problemas pequeños. Para resolver cualquier problema. Se describen los pasos para resolver el problema. Se realiza las pruebas manuales necesarias para comprobar que el algoritmo arroje los resultados deseados. Los pasos para crear un algoritmo son: Análisis del problema. Msc. Jéfferson Beltrán M.

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

un algoritmo es un método para resolver un problema mediante una serie de pasos (instrucciones) precisos. definidos y Ing. Las dos primeras fases conducen a un diseño detallado escrito en forma de algoritmo. 17 . Aunque el proceso de diseñar programas es.6. y a su ejecución en la misma. RESOLUCIÓN DE PROBLEMAS CON COMPUTADORA . Jéfferson Beltrán M. etc) Administración de la salida resultante. 5. 6. Como habíamos mencionado. un proceso creativo. esencialmente. Consiste en la recolección de datos de entrada que son evaluados y ordenados para ser colocados de manera que produzcan información útil.1. 5. Msc. Captura de datos de entrada Manejo de los datos (incluye clasificación. ordenación. cálculos. transformació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. El proceso de resolución de un problema con una computadora conduce a la escritura de un programa. PROCESAMIENTO DE DATOS.6. se pueden considerar una serie de fases o pasos comunes que generalmente deben seguir todos los programadores. ACTIVIDADES DEL PROCESAMIENTO DE DATOS.DESARROLLO DE SOFTWARE.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.

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

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

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

21 . Esto se hace a través de capacitaciones y revisión de la documentación del manual de usuario. método de entrada y salida de datos. 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. recuperación de errores. Es por ello. corridas.8. A los operadores por si se presentan mensajes de error. sepan cómo responder a ellos. etc. descripción de los ficheros de cada módulo y todo lo que sea de importancia para un programador. También se documenta técnicamente mediante diagramas UML (Unified Modeling Language). Jéfferson Beltrán M. 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. A los usuarios se les elabora un manual de referencia o de usuario para que aprendan a utilizar el programa. mensajes de error. 6. ¿Para quiénes es la documentación? Los documentos que deben elaborarse son: Manual de Usuario y Manual Técnico. Es el paso final del desarrollo del software. menús de opciones. descripción de variables que se emplean en cada módulo. 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. cuáles son comunes a diferentes módulos y cuáles locales. Msc. También se debe documentar el programa para que sea más entendible. El propósito del Ing. Además que se encargan de darle soporte técnico al programa. recomendaciones de uso.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. instrucciones necesarias para su instalación puesta en marcha y funcionamiento.1. MANTENIMIENTO DEL PROGRAMA. listados del programa. A los analistas de sistemas que son las personas que deberán proporcionar toda la información al programador. Alrededor del 75% del costo total del ciclo de vida de un programa se destina al mantenimiento. 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.

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

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

7. que será el que haga que la película se muestre por pantalla. En la programación estructurada solo se escriben funciones que procesan datos. estas intervenciones ocurrirán cuando el programador lo haya determinado. para que sea interpretado comando por comando cada vez que se ejecuta por un intérprete o un shell.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. 24 . primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos. Cuando alguno de los eventos esperados por el programa tenga lugar. y en segundo lugar en las estructuras de datos que esos procedimientos manejan. al ejecutarse el programa esperará hasta que se produzca algún evento.5. si el evento consiste en que el usuario ha hecho click en el botón de play de un reproductor de películas. Aunque en la programación secuencial puede haber intervención de un agente externo al 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. 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. en cambio. Jéfferson Beltrán M. PROGRAMACIÓN DE SCRIPTS. el programa pasará a ejecutar el código del correspondiente administrador de evento. Los programadores que emplean POO. Por ejemplo.6. y no en cualquier momento como puede ser en el caso de la programación dirigida por eventos. definidos por el usuario o que ellos mismos provoquen. 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. 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. lo que se conoce como el administrador de evento. 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. Ing. En la programación dirigida por eventos. Msc. PROGRAMACIÓN DIRIGIDA POR EVENTOS. 7.

8. PROGRAMACIÓN LÓGICA. La computación paralela emplea elementos de procesamiento múltiple simultáneamente para resolver un problema. Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultánea. Se trata de una programación más lenta y laboriosa. Ing. hardware especializado o una combinación de los anteriores. abiertos. 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"). etc). Msc. La programación paralela es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente. Este paradigma es el resultado natural del uso de las computadoras y las redes. escalables. La programación distribuida es un paradigma de programación enfocado en desarrollar sistemas distribuidos. operaciones matemáticas simples. PROGRAMACIÓN DISTRIBUIDA. Los elementos de procesamiento pueden ser diversos e incluir recursos tales como un único ordenador con muchos procesadores.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Un script es básicamente un programa que llama a otros programas.7. principalmente en juegos y en sistemas expertos. 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. varios ordenadores en red. 7. Se suele utilizar en la inteligencia artificial.9. 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. transparentes y tolerantes a fallos. 7. 7. considerando una buena cantidad de tiempo y código. Casi cualquier lenguaje de programación que tenga acceso al máximo al hardware del sistema puede manejar la programación distribuida. Jéfferson Beltrán M. con la posibilidad de hacer algún tipo de procesamiento propio (como control de flujo. 25 . PROGRAMACIÓN CONCURRENTE Y PARALELA. pueda dar soluciones inteligentes).

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

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

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

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

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

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

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

Ubicarse en un asiento 10. Llegar a la Universidad 9. Cepillarse los dientes 6. que indican el orden en que los pasos deben ser ejecutados. Para su elaboración se sigue las siguientes reglas: Ing. Salir de casa 7. con los pasos del algoritmo escritos en el símbolo adecuado y los símbolos unidos con flechas. Msc. 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. Es una técnica para diseño de programas que permite definir las estructuras de datos. Jéfferson Beltrán M.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 3.2. pero que respeta las directrices y los elementos de los lenguajes de programación. Buscar el aula 10. Son la representación gráfica de la solución algorítmica de un problema. Ejemplo: Escribir un algoritmo que imprima en pantalla ―Hola Mundo‖. 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. PSEUDOCÓDIGO. Utilizan unos símbolos normalizados. Pseudo = falso. las operaciones que se aplicarán a los datos y la lógica que tendrá el programa de computadora para solucionar un determinado problema. DIAGRAMAS DE FLUJO O FLUJOGRAMAS. denominadas líneas de flujo. 33 . Desayunar 5.3. FinProceso 10. Vestirse 4. Tomar el autobús 8. Utiliza un pseudolenguaje muy parecido a nuestro idioma. Para diseñarlos se utilizan determinados símbolos o figuras que representan una acción dentro del procedimiento. Proceso HolaMundo Escribir "Hola Mundo‖.

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

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

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

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

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

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

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

Dimesion <identificador> (<max1>.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Para utilizar un arreglo. Dimensionamiento.<max1N>). primero es obligatorio su dimensionamiento. Ejemplo: Definir vector.. Jéfferson Beltrán M.. matriz[10. definirlo declarando los rangos de sus subíndices. 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. Se pueden definir más de un arreglo en una misma instrucción. 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. Los N parámetros indican la cantidad de dimensiones y el valor máximo de cada una de ellas. lo cual determina cuantos elementos se almacenarán y como se accederá a los mismos.. y la máxima cantidad de elementos debe ser una expresión numérica positiva. Operadores y Funciones... Dimension <ident1> (<max11>. indicando sus dimensiones..). es decir.. Es importante notar que es necesario definir un arreglo antes de utilizarlo.<identM>(<maxM1>.<maxMN>).. matriz Como Entero.. . Dimension vector[100].. separándolos con una coma (.<maxN>).20]. Esta instrucción define un arreglo con el nombre indicado en <indentificador> y N dimensiones. Msc.. La cantidad de dimensiones puede ser una o más. La instrucción Dimension permite definir un arreglo...

Msc. Ing. (7>4) & (2=1) //falso Disyunción (o / or). 42 . (1=1 | 2=1) //verdadero Negación (no / not). 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. usando un número limitado de estructuras de control (básicas) y sus combinaciones que pueden servir para resolver dicho problema 12. ESTRUCTURA SECUENCIAL. ~(2<5) //falso Suma Multiplicación División Potenciación La jerarquía de los operadores matemáticos es igual a la del álgebra. un problema se puede dividir en acciones elementales o instrucciones. Jéfferson Beltrán M.1. 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).

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

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

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

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

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

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

49 . Msc. Datos adicionales: Un alumno aprueba si la calificación es mayor o igual que 7. 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. Si la expresión toma el valor falso (false). 2. 3. Solución. escriba "Aprobado" en caso que esa calificación fuese mayor o igual que 7. Salidas: Mensaje de aprobado si se cumple la condición. Se evalúa la expresión lógica. en ese caso. entonces sólo se ejecutará la sentencia B y el control pasa de nuevo inmediatamente a la siguiente sentencia del programa. Ejemplo 3. se ejecutará la sentencia A y el control pasará a la sentencia inmediatamente siguiente. La cláusula sino (else) es optativa. Si la expresión toma el valor verdadero (true). Jéfferson Beltrán M. . 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. Entradas: Calificación. Variables: Ing.

Leer cal. Msc. FinSi FinProceso. Si cal>=7 Entonces Escribir "Aprobado". 50 . Jéfferson Beltrán M. Diagrama de flujo: Ing.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: ".

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

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

nuevoSueldo. FinSi Escribir "El nuevo sueldo es: ". FinProceso Diagrama de flujo: Ing. Sino NuevoSueldo <. Jéfferson Beltrán M. Msc.sueldo*1.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.15.sueldo*1. nuevoSueldo Como Real. Si sueldo<1000 Entonces NuevoSueldo <.12. 53 . //declaro la variable Escribir "Ingrese el sueldo del trabajador: ". Leer sueldo.

El aspirante que obtenga calificaciones mayores o iguales que 7 en ambos exámenes es aceptado. Ing. EXPRESIONES LÓGICAS. por lo que cada uno de ellos obtiene dos calificaciones denotadas como calif1 y calif2.2. Las simples son las que usan operadores relacionales y las complejas las que usan operadores lógicos. en caso contrario es rechazado. 54 . 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. Ejemplo 6: Operador lógico Y (―&‖): Una escuela aplica dos exámenes a sus aspirantes. Se pueden clasificar en simples y complejas.2. es decir. Jéfferson Beltrán M. Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 12.

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

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

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

58 . nos estaría indicando una instrucción XOR que es un tipo de OR pero exclusivo. Jéfferson Beltrán M. Es decir. solo en uno de 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. Si la instrucción nos dijera que obtenga una nota en cualquiera de los exámenes pero no en ambos. Msc. Ing.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.

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

//las 8 se pagan al doble y el resto al triple phe <. //variable de horas trabajadas Definir ph. //variables para pago Escribir "Ingrese las horas trabajadas: ". ht Como Entero. Escribir "Ingrese el valor por hora normal: ". phe. het. Sino //se pagan al doble phe <. 60 .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.he . Msc. Leer ht.8.ph * 2 * 8 + ph * 3 * het.ph * 2 * he. Si he > 8 entonces //determinamos las horas a pagar al triple het <.ht . FinSi //pago horas normales más horas extras Ing. pt Como Real. Si ht > 40 entonces //determinamos las horas extras he <.40. Leer ph. Jéfferson Beltrán M.

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

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

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

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

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

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

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

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

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

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

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

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

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

<nombre del acumulador> + <valor variable>. el acumulador va aumentando en una cantidad variable. //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. Se desea resolver el problema usando estructura Para.suma + i*i. Para i<-1 Hasta 100 Con Paso 1 Hacer suma <. Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado. Jéfferson Beltrán M. FinPara Escribir "La suma de los 100 primeros enteros es: ". 74 . Msc.suma Como Entero.suma. FinProceso Diagrama de flujo: Ing. Representación: <Nombre del acumulador> <. Ejemplo 12.0. La diferencia entre un contador y un acumulador es que mientras el primero va aumentando un valor constante. Pseudocódigo: Proceso Algoritmo12 //Ejemplo estructura Para Definir i.

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

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

Msc. Jéfferson Beltrán M. 77 . ESTRUCTURA ITERATIVA “MIENTRAS” (“WHILE”).3. El diagrama de flujo y pseudocódigo de la estructura iterativa mientras son: Ing. 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. Por esta razón.2.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 12. se lo conoce como bucle condicional.

si cambia de verdadera a falsa la sentencia mientras finaliza. cero o más veces. Después de cada iteración la expresión lógica se evalúa y se verifica de nuevo. 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 nunca cambia de valor. lo primero que sucede es la evaluación de la expresión lógica <condición>. Mientras que la condición sea verdadera el bucle se ejecutará. entonces el bucle no termina nunca y se denomina bucle o loop infinito (en general. entonces se ejecuta el cuerpo del bucle y se evalúa de nuevo la expresión lógica <condición>. 78 . 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>. de modo que sea falsa en algún momento y así finalice la ejecución del ciclo. Este proceso se repite mientras la expresión lógica sea verdadera. Si la expresión lógica se evalúa como verdadera. ninguna acción se realiza y el programa sigue en la siguiente sentencia después del bucle.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. Si se evalúa como falsa. Jéfferson Beltrán M. a fin de evitarlo. se puede ejecutar el bucle. Msc. esta situación no es deseable). es decir. Ing.

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

80 .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. Msc. Jéfferson Beltrán M.

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

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

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

i <. Definir serie Como Real. FinSi i <. Ing. Escribir "Ingrese el valor de N: ".0. num Como Entero.1/N.Verdadero. Sino serie <. bandera <.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 . Jéfferson Beltrán M. serie <.i+1.1/2+ 1/3 . Pseudocódigo: //Ejemplo de banderas Proceso Algoritmo16 Definir bandera Como Logico.Verdadero.serie . bandera <. //inicializamos la bandera bandera <. 84 . Mientras i <= num Hacer Si bandera = Verdadero Entonces serie <...1/i. +/.1/4+.Falso. Leer num.serie + 1/i.1. Msc. Definir i..

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

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

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

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

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

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

para ello se utiliza un índice que especifique la posición relativa en el arreglo. Jéfferson Beltrán M. 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.. Todos los elementos del arreglo deben ser del mismo tipo. un arreglo es una colección finita. Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. es decir.... Así se tienen los arreglos: Unidimensionales (vectores). Finita. homogénea y ordenada de elementos. el tercero. el segundo. Msc. Ing. Dicho de otra forma. Bidimensionales (tablas o matrices). 94 . Homogénea. y el n-ésimo elemento. Multidimensionales (tres o más dimensiones).Fundamentos de Programación – Algoritmos Universidad Central del Ecuador una empresa). debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo. En resumen. Todo arreglo tiene un límite. Ordenada: Se puede determinar cuál es el primer elemento.

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

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

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

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

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

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

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

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

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

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

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

las filas y columnas de las matrices inician en 0). Hasta ahora hemos visto como se puede manipular información con una sola columna o lista de entrada con los llamados vectores.2. Sin embargo. Definir matriz Como Entero.).j] N matriz[0. donde: 1<=I<=M y 1<=J<=N (observe que al igual que en los vectores.1] Ejemplo 21. ….. 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.j] matriz[i.j] matriz[m-1. ARREGLO BIDIMENSIONAL.n-1] I matriz[i.n-1] matriz[m-1.1] ….0] 2 matriz[1. Msc. uno para la fila y otro para la columna.3.0] matriz[i.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador 13. …. cubos..n-1] matriz[1. 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.20].1] M matriz[m-1. o arreglos de una dimensión. Declaración de una matriz. 108 . Se desea realizar la suma de dos matrices. Un arreglo bidimensional (matriz o tabla) es un arreglo con dos índices. ….. Dimension matriz[10.0] matriz[m-1.0] 2 matriz[0.1] matriz[1. Jéfferson Beltrán M.j] matriz[1.. Una matriz se representa como una tabla. Para localizar o almacenar un valor en el arreglo se deben especificar dos posiciones (dos subíndices). etc. Pseudocódigo: //Ejemplo de matrices Ing. J matriz[0. 1 1 matriz[0. ingresar las dimensiones por teclado. ….n-1] matriz[i..

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

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

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

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

Jéfferson Beltrán M. 113 . 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). Un parámetro es. Los subprogramas en programación estructurada se clasifican en procedimientos y funciones. uno o varios valores. que son unidades de programas diseñados para ejecutar una tarea específica. ya que éstos no siempre son necesarios. 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). 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. El uso de subprogramas facilita la división de tareas de programación entre un equipo de programadores. Los procedimientos pueden devolver cero. Las funciones se dividen en estándares y definidas por el usuario. Son funciones proporcionadas por lenguaje de programación. 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. una variable cuyo valor debe ser o bien proporcionado por el programa principal al subprogramas o ser devuelto desde el Ing. Estándar.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.1. PROCEDIMIENTOS Y FUNCIONES. 14. 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. prácticamente. Definidas por el usuario. Msc. El uso de módulos facilita la proyección y la comprensión de la lógica subyacente para el programador y el usuario. 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.

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

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

Jéfferson Beltrán M.<maxMN>).<identM>(<m axM1>. 116 .<inicial> Hasta Para <Tipo Var> <variable> <.. Msc.<max1N>)...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>..) <instrucciones> Retornar <Variable/Valor> Ing.. <TipoVar> <Var2>.. Declaración de Funciones.. El pseudocódigo para declarar funciones es: Funcion <Tipo Var> <nombreFuncion> (<TipoVar> <Var1>...<num>: <instrucciones> <.<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>...> De Otro Modo: <instrucciones> FinSegun Estructura Para Para <variable> <....

Real parametro2) Real suma suma <. debe ir el paréntesis vacío.parametro1 + parametro2 Retornar suma FinFuncion Proceso principal Real suma <. 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. Jéfferson Beltrán M. Solución. num1. Pseudocódigo: Funcion Real sumarNumeros (Real parametro1. Msc.0. Realizar una función que acepte dos números como parámetros y devuelva la suma de dichos números. Ejemplo 21. si no se tienen parámetros.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. El nombre de la función <nombreFuncion> debe iniciar con un carácter válido. 117 . num2 Escribir "Ingrese el primer número" Leer num1 Escribir "Ingrese el segundo número" Leer num2 Ing.

los procedimientos parecen dificultar la escritura de un programa.. Jéfferson Beltrán M. los cuales son pasados al subprograma como parámetros de entrada. sino que la organización de un programa en funciones y/o procedimientos lo hace más fácil de escribir y depurar.. 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).num2) Escribir "La suma es: ". El pseudocódigo para declarar procedimientos es: Procedimiento <nomProcedimiento> (<TipoVar> <Var1>.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador suma <. 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. 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. En general. Sin embargo. A primera vista. 118 . 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. no sólo no es así.) <instrucciones> FinProcedimiento Los procedimientos. La función calcula la suma y la devuelve como un parámetro de salida. Ing. Declaración de Procedimientos. <TipoVar> <Var2>. a diferencia de las funciones no devuelven ningún valor.sumarNumeros(num1. Esta función la podemos invocar desde el programa principal u otra función o procedimiento. Msc.. no puede haber dentro del mismo programa dos funciones con la misma firma.

Procedimiento bienvenida (Cadena nombre) Escribir "\n\t Bienvenido: ".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. no sólo no es así. El nombre del procedimiento <nomProcedimiento> debe iniciar con un carácter válido. Pseudocódigo: Ing. multiplicación y división) de dos números. Realizar un algoritmo que calcule las operaciones matemáticas básicas (suma. los procedimientos parecen dificultar la escritura de un programa. Ejemplo 23. 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. no puede haber dentro del mismo programa dos procedimientos con la misma firma. resta. Use funciones y procedimientos. 119 . Jéfferson Beltrán M. Ejemplo 22. Sin embargo. si no se tienen parámetros. En general. debe ir el paréntesis vacío. sino que la organización de un programa en funciones y/o procedimientos lo hace más fácil de escribir y depurar. A primera vista. Se desea crear un procedimiento que de la bienvenida al usuario que ingresa al programa. Msc.

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

num2) Fin Se puede observar que en programa principal se orquesta (invoca) al resto de funciones o procedimientos. 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).num2<-0 Escribir " \tCALCULADORA\n" Escribir "Ingrese el primer número: " Leer num1 Escribir "Ingrese el segundo número: " Leer num2 calculadora(num1. Recordemos que la salida del proceso de compilación de un código fuente se denomina Programa Objeto. 14.2.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. armando de esta manera el programa deseado. Las bibliotecas pueden luego ser referenciadas dentro de múltiples programas para que éstos puedan hacer uso de los subprogramas incluidos en aquella. 121 . 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. el procedimiento calculadora imprime en pantalla el resultado de las operaciones matemáticas básicas calculadas con funciones. Msc. Jéfferson Beltrán M. BIBLIOTECAS.

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

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

Se define el factorial como: n! = n * (n-1)! . Calcular el factorial de un número entero usando un algoritmo iterativo.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 ". Msc. Jéfferson Beltrán M. se tiene que: n! = n * (n-1)!. podemos encontrar una solución iterativa simple.n*factorial(n-1) Sino temp <." es ".n.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Si n>1 Entonces temp <. si n > 1 1! = 1 De acuerdo con esta definición. Solución. 124 . (2)! = (2) * (1)! Ing. si n>1 (n-1)! = (n-1) * (n-2)! (n-2)! = (n-2) * (n-3)! ……. que haga que el algoritmo sea más eficiente. Ejemplo 25. factorial(n) Fin A veces.

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

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

Murray. Editorial Mc Graw Hill Ing. Chris Pappas y William H. Editorial Mc Graw Hill ―Lógica Simbólica‖.C. Editorial Prentice Hall ―Introducción a la Ciencia de las Computadoras‖. 4ª Edición Sanford Leestma y Larry Nyhoff.S. Editorial Mc Graw Hill ―Visual C++ 6. 1996 ―Fundamentos de Programación‖. BIBLIOGRAFÍA. Mark Andrews. Luis Joyanes Aguilar y Angel Hermoso.0 Manual de Referencia‖. Copi. Libro de Problemas Luis Joyanes Aguilar. Msc.Fundamentos de Programación – Algoritmos Universidad Central del Ecuador Espacios y Líneas en Blanco. Ureña y otros. Rodríguez Baena y Fernández Azuela. ―Fundamentos de Informática‖ Luis A. Luis Joyanes Aguilar 1996. Algoritmos y estructuras de datos. ―Programación en Pascal‖.E. 17. así como también dejar una línea en blanco entre partes importantes o que estén lógicamente separadas.A. 127 . 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. Editorial C. ―Aprenda Visual C++ Ya‖. Jéfferson Beltrán M. 2ª Edición ―Pascal y Turbo Pascal enfoque práctico‖. Validación. 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. Editorial Mc Graw Hill Irving M. Editorial Prentice Hall 1999 ―Cómo programar en C/C++‖ Deitel/Deitel. 1999 Editorial Alfaomega ra-ma ―Fundamentos de Programación‖.

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->