Tema 03: Programación estructurada

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

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

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

1. Computadores y programación

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

Introducción a la programación

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

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

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Computadora y Sistema Operativo

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

P L A N I F I C A C I O N

La resolución de un problema

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

Estructuras de control

I.S.F.T. Nº 38 Programación I página 1

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Estructuras de Control

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

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

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

Diseño Estructurado de Algoritmos

Java para no Programadores

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

Fundamentos de Programación Visual Basic

Programación. Carrera: MAE 0527

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

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

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

Técnicas de Programación

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

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

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

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

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

Diseño Estructurado de Algoritmos

Manual de turbo pascal

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

Lenguajes de programación Última modificación 2008/10

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

PLANIFICACION DE ALGORITMOS Y PROGRAMACION

Programación MODULAR: Subalgoritmos - funciones y procedimientos

INTRODUCCIÓN A LA PROGRAMACIÓN EXTRUCTURADA

Algoritmos y Programas

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

Introducción al Lenguaje de Programación C

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.

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

Estructuras en LabVIEW.

Universidad Autónoma del Estado de México Licenciatura en Ingeniería en Sistemas Energéticos Sustentables

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

Introducción a la Informática Estructuras de control. Secuencial y selectiva

Principios de Programación en Java

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

TEMA 3: El proceso de compilación, del código fuente al código máquina

TEMA 2: Estructuras de Control: Condicionales

Algoritmos y programas. Algoritmos y Estructuras de Datos I

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

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

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

Algoritmos y Diagramas de flujo

BLOQUE I: HOJA DE CÁLCULO

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

: Algorítmica y Estructura de Datos I

Programación Estructurada

Taller de Resolución de Problemas Computacionales

Introducción a la programación

Fundamentos de programación. Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java

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

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.

Unidad II: Análisis semántico

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

Tema V Generación de Código

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

Guía práctica de estudio 03: Algoritmos

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

Metodología para la solución de problemas programables

TEMA 4. ESTRUCTURAS DE CONTROL

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

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

C# para no Programadores

Computación II. Introducción a Visual Basic

Ejemplo básico de descripción VHDL

LÓGICA DE PROGRAMACIÓN

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Tema III: Introducción al lenguaje de programación

MODULO SOBRE PROGRAMACION MATLAB

PSEUDOCÓDIGO. En este documento se recopilan los elementos conceptuales esenciales acerca PSEUDOCÓDIGO en la programación.

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

PROGRAMACIÓN UNIDADES

FUNCIONAMIENTO DEL ORDENADOR

LABORATORIO TIC 2 Primer Parcial Etapas 1 y 2.

Tema 7. Generación de código

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:

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

Complejidad computacional (Análisis de Algoritmos)

Transcripción:

Tema 03: Programación estructurada M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1

Contenido Qué es programación? Qué es el código fuente? Qué es un programa computacional? Lenguaje de programación Primeras programaciones Paradigma de programación Programación estructurada Paradigma de la programación estructurada Teorema de la programación estructurada Lenguajes de programación estructurada Pseudocódigo y la Programación Estructurada Ejemplo 01 2

Qué es programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. 3

Qué es el código fuente? El código fuente de un programa computacional (o software) es un conjunto de líneas de texto que son las instrucciones que debe seguir la computadora, escritas en un lenguaje de programación para ejecutar dicho programa. Por tanto, en el código fuente de un programa está descrito por completo su funcionamiento. 4

El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. 5

El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. 6

Qué es un programa computacional? Un programa computacional es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Al conjunto general de programas, se le denomina software, que se refiere al equipamiento lógico o soporte lógico de una computadora digital. 7

Lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por un equipo computacional. Un lenguaje de programación se usa para crear programas que controlen el comportamiento físico y lógico de una máquina, esto permite crear soluciones a problemas reales e interacciones humano-maquina. https://en.wikipedia.org/wiki/list_of_programming_languages 8 http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2016

Un lenguaje de programación está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Sintáctica (reglas que gobiernan la combinatoria de los símbolos y la formación de unidades superiores a estos) Semántica (aspectos del significado, sentido o interpretación del significado de un determinado elemento, símbolo, palabra, expresión o representación formal) Sintaxis Lenguaje 9 Semántica

Primeras programaciones En los inicios de la programación de computadoras (segunda mitad de la década de 1950), el nacimiento de los primeros lenguajes de alto nivel como Fortran y Cobol apoyaban en la codificación de soluciones a problemas computacionales, pero la gran mayoría de las veces el diseño y la implementación de la solución quedaba determinados según criterios personales y de cada programador. 10

Paradigma de programación Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que unívocamente trata de resolver uno o varios problemas claramente delimitados. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. Es decir un paradigma de programación establece como programar la solución a un problema de cierta manera en un código fuente bajo un lenguaje de programación. 11

La programación puede seguir muchos enfoques, o paradigmas, es decir, diversas maneras de formular la resolución de un problema dado. Algunos de los principales paradigmas de la programación son: Programación imperativa Programación funcional Programación declarativa Programación estructurada (A style of imperative programming with more logical program structure and structured program theorem of the 1966) Programación modular (Derived from structured programming, based on the concept of modular programming or the procedure call.) Programación orientada a objetos Programación orientada a aspectos 12

Programación estructurada Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini,1 y una famosa carta, «La sentencia goto, considerada perjudicial», de Edsger Dijkstra en 1968 y fue reforzado teóricamente por el teorema del programa estructurado. Es una forma de escribir programas de computadora (paradigma de programación). Los principios que rigen este paradigma de programación son el uso de únicamente tres estructuras de control: secuencia, selección e iteración 13

Paradigma de la programación estructurada El paradigma del la programación estructurada es un resultado en la teoría de lenguajes de programación. Establece a grandes rasgos que toda función computable puede ser implementada en un lenguaje de programación que combine subrutinas en únicamente tres formas. Esas tres formas (también llamadas estructuras de control) son: 1. Ejecutar una subrutina y luego otra subrutina (secuencia) 2. Ejecutar una de dos subrutinas, dependiendo del valor de una variable booleana (selección) 3. Ejecutar una subrutina mientras una variable booleana sea 'verdadera' (iteración, ciclo o bucle) Los científicos de la computación usualmente acreditan el teorema a un artículo de 1966 escrito por Corrado Böhm y Giuseppe Jacopini. Sin embargo, David Harel rastreó sus orígenes hasta la descripción de 1946 de la arquitectura de von Neumann y el teorema de la forma normal de Kleene. 14

Objetivo de la Programación Estructurada La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras de control: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. 15

Código Espagueti El código espagueti es un término peyorativo para los programas de computación que tienen una estructura de control de flujo compleja e incomprensible. Su nombre deriva del hecho que este tipo de código parece asemejarse a un plato de espaguetis, es decir, un montón de hilos intrincados y anudados. Tradicionalmente suele asociarse este estilo de programación con lenguajes básicos y antiguos, donde el flujo se controlaba mediante sentencias de control muy primitivas como goto y utilizando números de línea, así como programas que contienen muchos puntos de ruptura o salidas. 16

17

Teorema de la programación estructurada En 1966 los matemáticos Corrado Böhm y Giuseppe Jacopini demostraron que: "Un programa propio puede ser escrito utilizando solamente 3 tipos de estructuras de control (Secuenciales, selectivas e iterativas)". A su vez un programa propio: Posee un solo punto de entrada y uno de salida o fin. Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por todas partes del programa. Todas las instrucciones son ejecutables (sin código muerto) y no existen lazos o bucles infinitos (sin fin). 18

Lenguajes de programación estructurada Un lenguaje de programación estructurada es aquel que establece una sintaxis y semántica propia para expresar computaciones, y se basa en el teorema de la "programación estructurada", ofreciendo instrucciones para expresar las tres estructuras de control del teorema. SECUENCIA Indica que las instrucciones de un programa se ejecutan una después de la otra, en el mismo orden en el cual aparecen en el programa. Se representa gráficamente como una caja después de otra, ambas con una sola entrada y una única salida SELECCIÓN También conocida como la estructura SI-CIERTO-FALSO, plantea la selección entre dos alternativas con base en el resultado de la evaluación de una condición o predicado; equivale a la instrucción IF de todos los lenguajes de programación. ITERACIÓN También llamada la estructura HACER-MIENTRAS-QUE, corresponde a la ejecución repetida de una instrucción mientras que se cumple una determinada condición. 19

Pascal Pascal es un lenguaje creado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo. Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipado. Esto implica que: El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado. 20