1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN

Documentos relacionados
Estructuras de control

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Estructuras de Control

Diseño Estructurado de Algoritmos

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

La resolución de un problema

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Guía práctica de estudio 05: Diagramas de flujo

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Herramientas de Programación. M.C. Juan Carlos Olivares Rojas

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

Profesor(a): M. A. Zeferino Galarza Hernández

Estructuras Administrativas

FUNDAMENTOS DE INFORMÁTICA

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL

ESTRUCTURAS REPETITIVAS

Fundamentos de Programación. Flujo de Control I: Estructuras selectivas

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.

Tema 2 Introducción a la Programación en C.

Programación Estructurada

Estructuras en LabVIEW.

3. TÉCNICAS DE DISEÑO

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

CRITERIOS EVALUACIÓN MATEMÁTICAS

Estatutos de Control C# Estatutos de Decisión (Selección)

Computadora y Sistema Operativo

TEMA 4. ESTRUCTURAS DE CONTROL

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:

Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

INTRODUCCIÓN A LA PROGRAMACIÓN EXTRUCTURADA

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

1. Computadores y programación

Departamento de Informática Universidad Técnica Federico Santa María. Tema 1: Algoritmos

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Fundamentos de programación

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

CONTENIDOS MÍNIMOS BLOQUE 2. NÚMEROS

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Programación en java. Estructuras algorítmicas

ESTRUCTURAS ALGORITMICAS

Taller de Resolución de Problemas Computacionales

Actividad de Evaluación Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Java para no Programadores

Fundamentos de programación y Bases de Datos

Breve introducción a la Investigación de Operaciones

CONTENIDOS Y CRITERIOS DE EVALUACIÓN MATEMÁTICAS 5º ED. PRIMARIA

Estructuras de Repetición (Repita para)

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

Carrera: Participantes Miembros de la academia de Metal- Mecánica

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS

Diseño arquitectónico 1ª edición (2002)

MATEMÁTICAS 5. º CURSO UNIDAD 1: SISTEMAS DE NUMERACIÓN

Una ecuación puede tener ninguna, una o varias soluciones. Por ejemplo: 5x 9 = 1 es una ecuación con una incógnita con una solución, x = 2

2. SEÑALES Y SISTEMAS DISCRETOS EN EL TIEMPO. Una señal puede ser definida como una portadora física de información. Por ejemplo,

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Herramientas computacionales para la matemática MATLAB: Estructuras de control

Guía práctica de estudio 06: Lenguaje binario

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

LA ECUACIÓN CUADRÁTICA

1. dejar a una lado de la igualdad la expresión que contenga una raíz.

fundamentos de programación (unidad 4) programación estructurada en Java

Los Conjuntos de Números

3.1. Administración de la medición y de la información estratégica:

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Bloque temático I. Planear el proyecto de animación en 2D a partir de los requeriemientos del cliente

Resolución de problemas mediante algoritmos

Potencias de exponente entero I

Escuela de Ingeniería en Informática Empresarial SYLLABUS

Formato para prácticas de laboratorio

ELEMENTOS DE LA MATEMATICA

Exterior del algoritmo. Entorno. Usuario. Procesador. Escribir. v1 v2 v3. Leer. <acción> {; <acción>}

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO

: Algorítmica y Estructura de Datos I

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

Introducción a la programación

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

El Teorema Fundamental del Álgebra

Operadores y Expresiones

Bloque 1. Contenidos comunes. (Total: 3 sesiones)

Introducción a las sentencias de control

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

Tema Contenido Contenidos Mínimos

SILABO DEL CURSO FUNDAMENTOS DE PROGRAMACIÓN

CONTENIDOS Y CRITERIOS DE EVALUACIÓN MATEMÁTICAS 6º ED.

AREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015

Principios de Programación en Java

Transcripción:

1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN Las estructuras de datos bien definidas no son adecuadamente utilizadas si no se realiza una buena programación. La programación estructurada tiene la finalidad de facilitar la comprensión del programa, y además permite, de forma rápida, las ampliaciones y modificaciones que surjan en la fase de explotación del ciclo de vida de la aplicación (programa). La programación estructurada fue desarrollada en sus principios por Edsgar W. Dijkstra, y se basa en el denominado teorema de la estructura desarrollado en 1966 por Böhm y Jacopini, que ratificó con los trabajos de Harlan D. Mills. Todo programa estructurado puede ser leído de principio a fin sin interrupciones en la secuencia normal de lectura. Un programa estructurado es: a. Fácil de leer y comprender. b. Fácil de codificar en una gama de lenguajes y en diferentes sistemas. c. Fácil de mantener. d. Eficiente, aprovechando al máximo los recursos del computador; e. Modularizable. Teorema de la estructura. Todo programa propio, realice el trabajo que realice, tiene siempre al menos un programa propio equivalente que solo utiliza estructuras básicas de la programación, que son: 1) la secuencia, 2) la selección y, 3) la repetición. Figura 1.1 Diagramas Propios. Este teorema dice en otras palabras: diseñando programas con sentencias primitivas (lectura, escritura y asignación) y estructuras básicas, puede realizarse cualquier trabajo, además se consigue mejorar la creación, lectura, comprensión y mantenimiento de los programas. Para un mejor entendimiento del teorema, se presenta la definición de diagrama propio, programa propio y equivalencia de programas que intervienen en el enunciado. Diagrama propio. Es aquel que posee un sólo punto de entrada y uno sólo de salida. Programa propio. Es aquel programa que cumple las siguientes condiciones: 1. Posee un solo inicio y un solo fin. 2. Todo elemento del programa es accesible, es decir, existe al menos un camino desde el

inicio al fin que pasa a través de él. 3. No posee bucles infinitos. 4 Equivalencia. Dos programas son equivalentes si realizan, ante cualquier situación de datos, el mismo trabajo pero de distinta forma. Figura 1.2 Ejemplo de Programa propio. Hay varias formas de pensar un algoritmo y escribir un programa que se ajuste a ese algoritmo; cada una de estas formas se llama paradigma de programación y tiene asociada su metodología que facilitan utilizarlo en diferentes lenguajes de programación. 1.1 Herramientas de la programación estructurada Además de los elementos comunes con otros métodos de programación (objetos, variables auxiliares, operadores, etc.), la programación estructurada utiliza: Figura 1.3 Descomposición TOP-DOWN. - diseño descendente (top-down) - recursos abstractos - estructuras básicas. Diseño descendente. Los programas se diseñan de lo general a lo particular por medio de sucesivas descomposiciones que nos acercan a las instrucciones finales del programa. Utilización de recursos abstractos. En cada descomposición se supone que todas las partes resultantes están resueltas, dejando su realización para una siguiente descomposición y considerando que todas ellas pueden llegar a estar en estructuras disponibles en los lenguajes de programación. Es el concepto de abstracción. Estructuras básicas. Toda acción puede realizarse utilizando tres estructuras básicas de control, la Luis Carlos Torres Soler

Estructuras de Datos estructura secuencial, alternativa y repetitiva. 5 Una acción puede representar: ninguna operación; una operación sencilla: como el movimiento de un valor de un campo a otro; un proceso de cualquier tipo. Figura 1.4 Estructuras Secuenciales. Estructura secuencial. Es una estructura con una entrada y una salida en la cual aparecen una serie de acciones cuya ejecución es en el orden en que aparecen. Estructura alternativa. Es una estructura con una sola entrada y una sola salida en la cual se realiza una acción de entre varias, según una condición, o se realiza una acción según el cumplimiento o no de una determinada condición. Esta condición puede ser simple o compuesta. Las estructuras alternativas pueden ser: de dos salidas, en la que una de ellas puede ser la acción nula; de tres o más salidas, que también se llama múltiple. Figura 1.5 Estructuras alternativas. Estructura repetitiva. Es una estructura con una entrada y una salida en la cual se repiten acciones un número determinado dependiendo del cumplimiento de una condición. Las estructuras repetitivas pueden ser: - PARA (FOR); - MIENTRAS QUE (WHILE); Figura 1.6 Estructuras Alternativas. - HASTA QUE (UNTIL); - ITERAR (LOOP). PARA. Se repite una acción un número fijo de veces. Para el control se utiliza una variable de control, Facultad de Ingeniería

6 V c. Normalmente la variable V c arranca en el valor inicial V i, hasta un valor final V f, con un incremento definido, pero puede tomar otros valores positivos o negativos, nunca debe ser cero. MIENTRAS QUE. Se repite una acción mientras se cumpla la condición que controla el bucle. La condición es evaluada antes de entrar a cada repetición. HASTA. Se repite una acción hasta que se cumpla la condición que controla el bucle, la cual se evalúa después de cada ejecución de la misma. Figura 1.7 Estructura PARA. ITERAR. En esta estructura se repiten alternativamente dos acciones, evaluando la condición de salida entre ambas. Existen diferentes métodos para representación gráfica de programas. Figura 1.8 Estructuras MIENTRAS QUE y HASTA QUE. 1.2. Método de Warnier Este método de leyes de construcción de programas (LCP) apareció en el año de 1954, presentado por Warnier y Flanagan en su libro Logic Programming. Fue diseñado para resolver problemas informáticos de gestión, utilizando una estructura lógica. Se basa en el empleo de llaves de distintos tamaños que relacionan entre si todas las tareas y operaciones. La representación de un algoritmo se basa en los siguientes puntos: Figura 1.9 Estructura ITERAR - Warnier. 1. Un programa se representa por un solo diagrama en el cual se hallan todas las operaciones. Las operaciones se colocan secuencialmente a la derecha de una llave, en cuya parte Luis Carlos Torres Soler

Estructuras de Datos izquierda esta el nombre del proceso, en la parte superior de la llave se halla la palabra INICIO, y en la parte inferior la palabra FIN. 2. Los sucesivos procesos se hacen en forma similar. Cada nivel de descomposición viene definido por el conjunto de procesos que en él se ejecutan. 7 Figura 1.10 Estructura de programa - Warnier. Estructura secuencial. En esta estructura las acciones se sitúan a la derecha de la llave y desde arriba hacia abajo. Estructura alternativa. En esta estructura se ejecutara una acción dependiendo de la condición. Si la acción es nula se representa mediante un guión (-). Estructura repetitiva. Se hallan también las formas PARA, MIENTRAS QUE, HASTA QUE, ITERAR. Figura 1.11 Estructuras secuencial y alternativas - Warnier. Facultad de Ingeniería

1.3 Método de Jackson 8 Este método se basa en la estructura lógica de la programación modular. La representación de los programas se realiza por medio de un árbol que se denomina diagrama arborescente de Jackson. Un diagrama de Jackson consta de: Figura 1.12 Estructuras repetitivas - Warnier. - definición detallada de los datos de entrada y salida incluyendo los archivos lógicos utilizados. - representación del algoritmo. Fiugura 1.13 Estructura de programa - Jackson. Cada árbol se lee: nodo raíz, nodo izquierdo, nodo derecho hermano, nodo derecho hermano. La representación del algoritmo se basa en los siguientes puntos: - todo programa (operaciones) se representa en un solo diagrama. - todo diagrama comienza con un rectángulo en cuyo interior se halla el nombre del programa. - para tener una clara interpretación es necesario realizarlo de la forma más simétrica posible. Estructura secuencial. En esta estructura se realizan las acciones de izquierda a derecha. Luis Carlos Torres Soler

Estructuras de Datos 9 Figura 1.14 Estructuras secuencial y alternativa - Jackson. Estructura alternativa. Se ejecuta una acción entre varias, según la evaluación de una condición. Estructura repetitiva. Se repiten operaciones dependiendo de una condición. Figura 1.15 Estructuras repetitivas - Jackson. 1.4. Método de Tabourier El método de Tabourier es muy similar al método de Jackson en el desglose del programa, variando la representación de las estructuras alternativas y repetitivas. Un diagrama de Tabourier consta de: Figura 1.16 Estructura de programa y secuencial - Tabourier. - definición detallada de los datos de entrada y salida, incluyendo los archivos lógicos utilizados. - representación del algoritmo. La simbología utilizada se basa en el empleo de rectángulos y rombos. La lectura se realiza leyendo la raíz, luego subárbol izquierdo y por último el subárbol derecho. Cada subárbol se recorre igualmente hasta llegar a los nodos terminales del árbol. Facultad de Ingeniería

La representación del algoritmo se basa en los siguientes puntos: - un programa se representa en un solo diagrama que incluye todas las operaciones a realizar. - todo diagrama comienza con un rectángulo, en el que se halla el nombre del programa y/o proceso. 10 Figura 1.17 Estructuras alternativas - Tobourier. Estructura secuencial. Las acciones A, B, C se ejecutan de izquierda a derecha. También de arriba hacia abajo. Estructura alternativa. Se ejecuta una acción entre varias según la evaluación de una condición. Estructura repetitiva. Se repite una acción dependiendo de una condición de terminación. Figura 1.18 Estructura alternativa - Tabourier. 1.5. Método de Chapin (Nassi/Shneiderman) 1 Figura 1.19 Estructura Repetitiva - Tabourier. Este método permite representar un programa como bloqueo estructurado. Es una forma muy concreta y favorece en su medida la modularidad de los programas. Un diagrama de Chapin representa un programa en un bloque compacto, consta de: 1 También se le conoce con el nombre de diagramas en cajas Luis Carlos Torres Soler

Estructuras de Datos 11 - Definición detallada de los datos de entrada y salida, incluyendo los archivos lógicos utilizados. - Representación del algoritmo. Figura 1.20 Estructura de programa - Chapin. La simbología utilizada se basa en el empleo de rectángulos. La lectura se realiza de arriba hacia abajo. La representación del algoritmo se basa en los siguientes puntos: Figura 1.21 Estructura secuencial - Chapin. ejecutan de arriba a abajo. - Un programa se representa en un solo diagrama que incluye todas las operaciones a realizar. - Todo diagrama comienza con un rectángulo en el que en su parte superior y fuera de él se halla el nombre del programa. Existe un rectángulo superior con la palabra INICIO y uno inferior con la palabra FIN. Estructura secuencial. Las acciones A, B, C se Figura 1.22 Estructura alternativa - Chapin. 1.6. Método diagrama para el análisis de problemas Estructura alternativa. Se ejecuta una u otra acción según la evaluación de una condición. Estructura repetitiva. Se repite una acción dependiendo de una condición de terminación. Figura 1.23 Estructura alternativa - Chapin. Facultad de Ingeniería Figura 1.24 Estructuras repetitivas - Chapin.

12 Los diagramas para análisis de problemas (PAD por sus siglas en inglés) que desarrollo la corporación Hitachi, son una representación bidimensional y arborescente de la lógica de programas. Sus componentes son: Figura 1.25 Estructura secuencial - PAD. Bloque de instrucciones. Al igual que en la mayoría de los métodos anteriormente enunciados, este método utiliza rectángulos para colocar operaciones, no es necesario que exista un rectángulo por cada Figura 1.26 Estructura Alternativa - PAD. operación, sino que se pueden colocar varias en uno solo. Estructura alternativa. Las alternativas IF-THEN, IF-THEN-ELSE y CASE OF, se representan por medio de un rectángulo con un recorte triangular; las ejecuciones van al frente de la condición, en el caso de que la sentencia sea un CASE-OF, las líneas se dividen en los diferentes procedimientos. Estructura repetitiva. Estas estructuras se representan como un rectángulo con una pequeña línea en un extremo, los procedimientos van al frente, y si fueran necesarios más, estos continúan hacia abajo. La jerarquía de ejecución es de arriba hacia abajo, y de izquierda a derecha. Figura 1.27 Estructura Repetitiva - PAD. Luis Carlos Torres Soler

Estructuras de Datos Ejemplo. Se lee un conjunto de números enteros positivos, si el número es par hallar la media geométrica, si es impar hallar la media aritmética. 13 Figura 1.28 Ejemplo - Según Warnier. Como práctica se desarrolla el mismo algoritmo en las diferentes metodologías enunciadas para ver la complejidad y diferenciarlas en conjunto. Posiblemente no se vean muy estructurados, pero ayudan a comprender el ejercicio. La metodología Jackson y Tabourier tienen semejanzas, pero también diferencias amplias que facilitan el entendimiento de los diagramas. Figura 1.29 Ejemplo - Según Chapin. Lo importante es darnos cuenta de las diferentes representaciones. Hay que ver que no son lo mismo y, aunque su diferencia sea trivial, no hay lugar a confusión. Un punto a tener en cuenta es que no son programas de computador, son una base para ellos, por ser la Facultad de Ingeniería

comprensión del problema que se desea resolver. 14 Los problemas suelen plantearse de manera vaga o ambigua, entonces antes de empezar a escribir el Figura 1.31 Ejemplo - Según Jackson. programa respectivo, se requiere de una descripción bien precisa del problema, esto quiza se logra con el desarrollo de un diagrama de cualquiera sea la metodología que se emplee. Un problema bien descrito, es un problema resuelto. Cuando el programa se ha escrito en un lenguaje, no quiere decir que el problema esté solucionado. Todavía falta, por ejemplo, asegurar que el programa cumple con todas las posibles variaciones que puede tener el problema en su entorno. Esto se logra: 1) haciendo pruebas para ver que funciona bien para algunos casos (testing) o 2) escribir una demostración matemática que garantice que funciona bien para todos los casos (no es el interés en este texto). También falta ponerlo en ambiente en el que realmente se va a emplear y explicar adecuadamente como las personas lo deben usar para hallar resultados óptimos. Ejercicio. Hallar los primeros 20 números perfectos. Escribir el algoritmo en las diferentes metodologías. Luis Carlos Torres Soler

Estructuras de Datos 15 Figura 1.32 Ejemplo - Según Tabourier. Para recordar, un número perfecto es aquel que es igual a la suma de sus divisores. Ejemplo: 6 es número perfecto porque 6=1+2+3. Se ha estudiando mucho los números perfectos con el fin de hallar una buena aplicación dentro de algunas estructuras matemáticas; tienen gran aplicabilidad; el algoritmo es muy sencillo, aunque el problema muchas veces es la representación de los dígitos que contiene. Los números perfectos conocidos son: Figura 1.33 Ejemplo - Según PAD. Representación Valor Dígitos 2 1 (2 2-1) 2 2 (2 3-1) 6 28 1 2 Facultad de Ingeniería

2 4 (2 5-1) 2 6 (2 5-1) 2 12 (2 13-1) 2 16 (2 17-1) 2 18 (2 19-1) 2 30 (2 31-1) 2 60 (2 61-1) 2 88 (2 89-1) 2 106 (2 107-1) 2 126 (2 127-1) 2 520 (2 521-1) 2 606 (2 607-1) 2 1278 (2 1279-1) 2 2202 (2 2203-1) 2 2280 (2 2281-1) 2 3216 (2 3217-1) 2 4252 (2 4253-1) 2 4422 (2 4423-1) 2 9688 (2 9689-1) 2 9940 (2 9941-1) 2 11212 (2 11213-1) 2 19936 (2 19937-1) 496 8128 33550336 8589869056 137438691328 3 4 8 10 12 19 37 54 65 77 314 366 770 1327 1373 1937 2561 2663 5834 5985 6751 12003 16 Luis Carlos Torres Soler