Introducción a la programación estructurada

Download Report

Transcript Introducción a la programación estructurada

Introducción al curso de programación estructurada.
Introducción a la programación estructurada
1
Presentación.
 Daniel Alejandro García López
 Estudios de Licenciatura:
 Tecnológico de Villahermosa
 Ingeniería en sistemas computacionales, especialidad en
redes y sistemas distribuidos.
 Estudios de Maestría:
 Universidad Veracruzana
 Maestría en Inteligencia Artificial.
 [email protected]
Introducción a la programación estructurada
2
Información del curso
 Horario(L.8.10, M.5.7, M.8.10)
 Temario y Recursos Web
 http://www.unistmo.edu.mx/~daniel.garcia/
 Forma de evaluación(mínimo 85% asistencia).
 80 % curso



50% examen
10 % tareas, exposiciones, participación.
20 % proyecto.
 20% taller de programación(J.8.10, V.8.10).
Introducción a la programación estructurada
3
Bibliografía recomendada
 Fundamentos de programación, Algoritmos y Estructura de datos y





Objetos, Joyanes, Luis, Editorial McGraw Hill, 2003.
Metodología de la programación estructurada, Joyanes, Luis, Editorial
McGraw Hill, 1993.
El lenguaje de programación C, Kernighan y Ritchie, Editorial Prentice
Hall, 1991.
Como programar en C/C++ , H.M. Deitel and P.J. Deitel, Ed. Prentice
Hall, 1994, 2da. edición
Algorítmica [en línea]. Universidad de las Palmas de Gran
Canaria[fecha de consulta: 30 de septiembre del 2009]. Disponible en
<http://www.ulpgc.es/otros/tutoriales/mtutor/indice.html>.
Dr. Roberto Gómez Cárdenas. Curso Básico de Lenguaje C [en línea].
Instituto Tecnológico y de Estudios Superiores de Monterrey. [fecha de
consulta: 30 de septiembre del 2009]. Disponible en <
http://homepage.cem.itesm.mx/rogomez/Tutorial-LengC/ >.
Introducción a la programación estructurada
4
Tema 1
 1. EL LENGUAJE DE PROGRAMACIÓN ANSI C.
 1.1. Introducción a la programación estructurada.
 1.2. Estructura de un programa.
 1.3. Tipos de datos.
 1.4. Operadores.
 1.5. Ejemplos de instrucciones de entrada y salida.
Introducción a la programación estructurada
5
Ada Lovelace
Tomada de: http://www.agnesscott.edu/lriddle/women/ada3.jpg
Introducción a la programación estructurada
6
Entorno de Desarrollo Integrado:
Devcpp
 http://www.bloodshed.net/devcpp.html
Tomada de: http://www.bloodshed.net/
Introducción a la programación estructurada
7
Diseño Descendente vs Diseño
Ascendente
Tomado de : http://www.mailxmail.com/cursointroduccion-lenguaje-pascal/programaciondescendente-top-down
http://www.metrasupport.com/images/int
egracion-boton%20copy.jpg
Introducción a la programación estructurada
8
Tema 2
 2. ESTRUCTURAS DE CONTROL.
 2.1. Secuencial.
 2.2. Selectivas.
 2.3. Iterativas.
Introducción a la programación estructurada
9
Introducción a la programación estructurada
10
Tema 3
 3. FUNCIONES.
 3.1 Definición de funciones.
 3.2 Funciones con paso de parámetros por valor.
 3.3 Funciones con paso de parámetros por referencia.
 3.4 Funciones recursivas.
Introducción a la programación estructurada
11
Introducción a la programación estructurada
12
Tema 4.
 4. ARREGLOS.
 4.1 Arreglos unidimensionales.
 4.2 Arreglos bidimensionales.
 4.3 Arreglos multidimensionales.
 4.4 Arreglos como parámetros.
Introducción a la programación estructurada
13
Introducción a la programación estructurada
14
Tema 5
 5. APUNTADORES.
 5.1 Apuntadores.
 5.2 Aritmética de apuntadores.
 5.3 Memoria estática y dinámica.
 5.4 Arreglos dinámicos de una y dos dimensiones.
 5.5 Funciones como parámetros.
Introducción a la programación estructurada
15
Tema 6
 6. TIPOS DE DATOS DEFINIDOS POR EL
PROGRAMADOR.
 6.1 Introducción al tipo de dato abstracto.
 6.2 Implementación de un tipo de dato abstracto.
 6.3 Tipos de datos abstractos como parámetros.
 6.4 Arreglos de tipos de datos abstractos.
Introducción a la programación estructurada
16
Tema 7
 7. ARCHIVOS.
 7.1 Operaciones básicas.
 7.2 Texto y binarios.
 7.3 Acceso secuencial y directo.
Introducción a la programación estructurada
17
Tarea
 Realizar la lectura y entregar un ensayo individual(no
resumen) con un mínimo de 1000 palabras del primer
ejercicio que se encuentra en la página del curso(Fecha
de entrega Viernes 9 de Octubre del 2009, antes de las
18:00 hrs).
 Lecturas para ensayo sobre Ada Lovelace y Biografía(
Inglés)
Introducción a la programación estructurada
18
Conceptos
 Metodología: Conjunto de procedimientos, técnicas,
herramientas y un soporte documental que ayuda a los
desarrolladores a realizar nuevo software.
 Estructura: Es la descomposición ordenada de las
partes de un todo. Conjunto de elementos
interrelacionados que forman un todo.
 Programación estructurada: Consiste en el diseño,
escritura y prueba de un programa, construido con
estructura.
Introducción a la programación estructurada
19
Metodología de la
programación
 Es la técnica que permite que la programación sea lo
más eficaz posible en cuanto al desarrollo y
mantenimiento.
 Conjunto de principios generales que un programador
ha de seguir para desarrollar un programa
Introducción a la programación estructurada
20
Metodologías de programación
 Programación convencional
 Programación Estructurada
 Programación Modular
 Programación orientada a objetos.
Introducción a la programación estructurada
21
Programación orientada a
objetos.
 Un Modelo de Objetos es un conjunto de entidades
(denominadas objetos) que colaboran entre ellos para
desempeñar una serie de servicios. Esos servicios se
solicitan por medio del intercambio de mensajes.
Todos los objetos del modelo pertenecen a algún tipo
(Clase).
 El principio fundamental es que un Objeto es la
representación de un concepto. Como tal, tendrá unas
características (atributos) y un comportamiento,
plasmado en una serie de operaciones.
Introducción a la programación estructurada
22
Desventajas de la Programación
convencional
 Los programas suelen ser excesivamente rígidos.
 Los programadores gastan la mayoría de su tiempo
corrigiendo sus errores.
 Los programadores prefieren escribir sus módulos.
 Cada programador tiene sus propios programas
 Elevado coste de actualización.
 Deficiencias en la documentación.
Introducción a la programación estructurada
23
Previsiones futuras en los
programas.
 Prever el aumento de datos y estructuras
 Cambios en la organización de la información.
 Cambios debido preferentemente a la modernización
de los documentos y sus formatos.
 Sustitución, ampliación o reducción en el sistema de
procesos de datos.
Introducción a la programación estructurada
24
Consideraciones al diseñar
programas
 Correcto/fiel. Producir resultados requeridos.
 Legible. Debe ser entendido por cualquier
programador.
 Modificable. Su estructura debe permitir
modificaciones.
 Depurable. Debe ser fácil la localización y corrección
de errores.
Introducción a la programación estructurada
25
Concepto de Módulo
 Esta constituido por una o varias instrucciones
físicamente contiguas lógicamente encadenadas, las
cuales se pueden referenciar mediante un nombre y
pueden ser llamadas desde diferentes puntos de un
programa.
 Un modulo puede ser un programa, una función, una
subrutina(procedimiento).
Introducción a la programación estructurada
26
Programación modular
 Descomponer un programa en un número pequeño de
abstracciones coherentes que pertenecen al dominio
del problema y enmascaran la complejidad interna.
 Método de diseño que tiende a dividir el problema, de
forma lógica, en partes perfectamente diferenciadas
que pueden ser analizadas, programadas y puesta a
punto independientemente.
Introducción a la programación estructurada
27
Ventajas de la programación
modular
 Es más fácil de escribir y depurar.
 Fácil mantener y modificar.
 Fácil control de la programación.
 Posibilita el uso repetitivo de las rutinas en el mismo o
en diferentes programas.
Introducción a la programación estructurada
28
Programación estructurada
 Técnica de construcción de programas que utilizan al
máximo los recursos del lenguaje, limita el conjunto de
estructuras aplicables a leer y presenta una serie de
reglas que coordinan adecuadamente el desarrollo de
las diferentes fases de la programación.
 Estructuras básicas de control.
 Recursos abstractos
 Diseño descendente
Introducción a la programación estructurada
29
Estructuras básicas de control
 El teorema de la estructura(Bohm y Jacopini 1966)
establece que un programa propio puede ser escrito
utilizando solamente las siguientes estructuras lógicas
de control: secuencia, selección e iteración.
 Un programa se define como propio si cumple con los
dos requerimientos siguientes:
 Tiene exactamente una entrada y una salida para control
del programa.
 Existen caminos seguibles desde la entrada hasta la
salida que conducen por cada parte del programa, es
decir, no existen lazos infinitos ni instrucciones que no
se ejecutan Introducción a la programación estructurada
30
Recursos abstractos
 Diseñar o concebir un problema en términos
abstractos consiste en no tener en cuenta la máquina
que lo va a resolver así como el lenguaje de
programación que se va a utilizar.
 Ejemplo : El concepto de variable implica una
abstracción cuando se da un nombre a una operación
determinada, y se utiliza considerando lo que hace
pero sin preocuparnos de cómo lo hace.
Introducción a la programación estructurada
31
Metodología descendente
 Consiste en establecer una serie de niveles de menor o
mayor complejidad que den solución al problema.
 Un programa estructurado tiene una representación
en forma de árbol.
 El diseño se basa en la realización de diferentes
niveles.
Introducción a la programación estructurada
32
Diseño de programas
estructurados.
 La realización del diseño estructurado de un programa
se basa en la aplicación de los siguientes conceptos:
 Ir de lo general a lo particular, descendiendo en la




estructura del programa y en su nivel de detalle.
De la definición inicial del problema se pasa a un
esquema de algoritmo descrito en pseudocódigo.
Independencia inicial del lenguaje.
Diseño por niveles. Verificar en cada nivel el esquema
correcto.
Finalizar con un trabajo de recomposición del algoritmo
completo.
Introducción a la programación estructurada
33
Ejemplo de programa con
GOTO
 10
 20
 30
 40
 50
 60
 70
 80
 90
 100
CLS
A=10
INPUT B
IF B=A THEN GOTO 50 ELSE GOTO 70
PRINT “A Y B SON IGUALES”
GOTO 100
IF A>B THEN GOTO 80 ELSE GOTO 90
B=B+1; GOTO 40
B=B-1; GOTO 40
END
Introducción a la programación estructurada
34
Ejemplo de programa sin GOTO
 PROGRAM NUMEROSIGUALES
 BEGIN
 CLEARSCREEN;
 A:=10;
 INPUT B;
 REPEAT

IF B=A THEN PRINT “A Y B SON IGUALES”
 ELSE REDUCEDIFERENCIA(A,B);
 UNTIL B=A;
 END;
Introducción a la programación estructurada
35
 PROCEDURE REDUCEDIFERENCIA(A,B);
 BEGIN
 IF A>B THEN B:= B+1

ELSE B:= B-1
 END
Introducción a la programación estructurada
36
Ventajas de la programación
estructurada.
 Los programas son más fáciles de entender
 Reducción del esfuerzo en las pruebas.
 Reducción de los costos de mantenimiento.
 Programas más sencillos y más rápidos
 Aumento de la productividad del programador
 Los programas quedan mejor documentados
internamente.
Introducción a la programación estructurada
37
RELACIÓN HISTÓRICA DE LAS
PRINCIPALES METODOLOGÍAS
 1968 Conceptos sobre la programación estructurada de
DIJKSTRA
 1974 Técnicas de programación estructurada de
WARNIER y JACKSON
 1975 Primeros conceptos sobre diseño estructurado de
MYERS y YOURDON
 1978 Análisis estructurado: DEMARCO y WEINBERG
 1985 Análisis y Diseño estructurado para sistemas de
tiempo real de WARD y MELLOR
 1987 Análisis y Diseño estructurado para sistemas de
tiempo real HATLEY
y PIRKBAY
Introducción a la programación
estructurada
38
Referencias
 Metodología de la programación estructurada, Joyanes,
Luis, Editorial McGraw Hill, 1993.
 Colaboradores de Wikipedia. Programación estructurada
[en línea]. Wikipedia, La enciclopedia libre, 2009 [fecha de
consulta: 30 de septiembre del 2009]. Disponible en
<http://es.wikipedia.org/w/index.php?title=Programaci%C
3%B3n_estructurada&oldid=30205148>.
 Colaboradores de Wikipedia. Vector (informática) [en
línea]. Wikipedia, La enciclopedia libre, 2009 [fecha de
consulta: 2 de octubre del 2009]. Disponible en
<http://es.wikipedia.org/w/index.php?title=Vector_(infor
m%C3%A1tica)&oldid=30249361>.
Introducción a la programación estructurada
39