Estructurado
-
Upload
stephany-bradbury -
Category
Documents
-
view
216 -
download
2
description
Transcript of Estructurado
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Programacion estructuradaProgramacion estructurada y lenguaje estructurado
Oscar Alvarado Nava
Departamento de ElectronicaDivision de Ciencias Basicas e Ingeniera
Universidad Autonoma Metropolitana, Unidad Azcapotzalco
13O, septiembre de 2013
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 1/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Contenido
1 Programacion estructuradaDefinicionesEstructuras
2 Lenguaje estructurado CLenguaje de alto nivelANSI CLenguaje estructurado
3 Ejemplos de estructurasEjemplos de estructuras
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 2/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Definiciones
Paradigma de programacion
Reglas u organizacion incuestionables que son adoptadas poruna comunidad de programadores para implementaralgortimos como soluciones a problemas utilizando sistemas decomputo
Son delimitados en el tiempo en cuanto a aceptacion y usoNuevos paradigmas pueden aportan nuevas o mejoressoluciones, sustituyendo parcial o totalmente al anterior
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 3/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Definiciones
Paradigmas de programacion y lenguajes
Paradigma Lenguajes
Estructurado C, Fortran
Funcional Haskell
Logico Prolog
Orientado a objetosC++,C#,JavaPerl,Python,PHP
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 4/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Definiciones
Programacion estructurada
El teorema del programa estructurado es un resultado en lateora de lenguajes de programacion (1966. Corrado Bohm,Giuseppe Jacopini y Stephen Kleene)
El teorema establece que toda funcion computable puede serimplementada en un lenguaje de programacion que combinesolo tres estructuras (tambien llamadas estructuras decontrol)
Secuencia:ejecucion de una sentencias tras otraSeleccion:seleccion de conjuntos de sentencias de acuerdo aun criterioIteracion:repeticion de conjuntos de sentencias mientras secumpla un criterio
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 5/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Definiciones
Implementacion en lenguajes programacion
Si bien los lenguajes de programacion tienen un mayorrepertorio de estructuras de control, estas pueden serconstruidas mediante las tres basicas citadas.
Siendo innecesario el uso de la sentencia de transferenciaincondicional goto
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 6/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Secuencia
La estructura de programa es secuencial si las sentencias seejecutan una tras otra
No se bifurca el flujo del programa
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 7/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Diagrama de flujo de una secuencia
bloquedesentencias
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 8/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Seleccion
La estructura selectiva permite que el flujo de ejecucion delprograma se bifurque
Seleccionando una sentencia (o conjunto de sentencias) uotra/s, segun un criterio o condicion logica establecidaSolamente uno de los flujos sera seleccionado para ejecutarse
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 9/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Diagrama de flujo de una seleccion
expresin
verdadero
falso
sentenciao
bloquedesentencias
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 10/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Diagrama de flujo de una seleccion (2)
expresinverdadero falso
sentenciao
bloquedesentencias
sentenciao
bloquedesentencias
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 11/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Iteraccion
Una iteracion es la repeticion de la ejecucion de una sentenciao bloque de sentencias
La iteracion se llevara a cabo mientras se cumpla una condicionLas condiciones se cumplen con resultados verdaderos deexpresiones relacionales
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 12/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Diagrama de flujo de una iteracion, condicion inicial
expresin
verdadero
falso
sentenciao
bloquedesentencias
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 13/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Diagrama de flujo de una iteracion, condicion posterior
expresinverdadero
falso
sentenciao
bloquedesentencias
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 14/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Estructuras
Anidamiento
El cuerpo de cualquier estructura puede ser
Una sentencias o un conjunto de sentenciasOtra estructura
Cuando una estructura contiene otra estructura, se le llamaanidamiento (nesting)
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 15/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje de alto nivel
El lenguaje C
Creado en 1972 por Dennis M. Ritchie en los LaboratoriosBell como evolucion del lenguaje B, basado en BCPL (1967)
Uno de sus objetivos iniciales fue la implementacion delsistema operativo UNIX, desarrollado Ken Thompson
Las primeras versiones de UNIX fueron desarrolladas enlenguaje ensamblador de una computadora GE-645 de GeneralElectric (1969)
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 16/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje de alto nivel
GE-645 de General Electric 1969
Mainframe con palabras de 36 bits y 18 bits dedireccionamiento
Podia direccionar maximo 256k palabras
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 17/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje de alto nivel
Desarrollo de software
C es el lenguaje de programacion mas popular para desarrollarsoftware de sistemas
Editores, ensambladores, compiladores, enlazadores, sistemasoperativos, controladores y drivers de dispositivosPrincipalmente por que es considerado un lenguaje de medianonivel
Tambien se utiliza para crear aplicaciones de usuario y juegos,de no muy grande complejidad
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 18/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje de alto nivel
Alto o mediano nivel?
El lenguaje C cuenta con estructuras tpicas de los lenguajesde alto nivel
Estructuras condicionales (if, switch, etc.), estructurasrepetitivas (for, while, etc.), secuencias de sentencias, etc.
C tambien dispone de construcciones que permiten un controla bajo nivel
Para la manipulacion de direcciones de memoria, registros,bytes y bits
Los compiladores modernos suelen ofrecer extensiones allenguaje que posibilitan mezclar codigo en ensamblador concodigo C
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 19/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje de alto nivel
Lenguaje C y lenguaje ensamblador para x86
1 /* Copyright (C) 1992, 1998 Linus Torvalds , Ingo Molnar2 * This file contains the lowest level x86 -specific interrupt ...3 * Fragmento del archivo: linux -3.2.2/ arch/x86/kernel/irq_32.c4 */5 #include 6 #include 7 #include 8 ...9 /* Debugging check for stack overflow: is there less than 1KB free? */
10 static int check_stack_overflow(void)11 {12 long sp;13 __asm__ __volatile__("andl % %esp , %0" :14 "=r" (sp) : "0" (THREAD_SIZE - 1));15 return sp < (sizeof(struct thread_info) + STACK_WARN);16 }17 ...18 static void call_on_stack(void *func , void *stack)19 {20 asm volatile("xchgl % %ebx, % %esp \n"21 "call * % %edi \n"22 "movl % %ebx, % %esp \n"23 : "=b" (stack)24 : "0" (stack),25 "D"(func)26 : "memory", "cc", "edx", "ecx", "eax");27 }28 ...
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 20/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje de alto nivel
Entornos de desarrollo
Muchas companias ofrecieran un IDE (IntegratedDevelopment Environment) de desarrollo
Editor, compilador, ensamblador, enlazador, depurador,conjunto de bibliotecas
Cada compania agregaba algunas caractersticas que hacanque las aplicaciones fueran incompatibles
Compilador especficoFunciones de bibliotecaTipos de datos, estructuras, pragmas, etc.
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 21/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje de alto nivel
IDE Turbo C, 1987
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 22/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
ANSI C
Estandarizacion
Para lograr la portabilidad de codigo fuente, fue necesaria unaestandarizacion
En 1989, la American National Standards Institute (ANSI),ratifico la ANSI X3.159-1989 Programming Language C,tambien conocido como C89
Cualquier programa que cumpla con el estandar ANSI C, sindependencia alguna del hardware, se compila de formacorrecta en cualquier plataforma
http://flash-gordon.me.uk/ansi.c.txt
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 23/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
ANSI C
El rgido ANSI C
Muchos implementaciones modernas del lenguaje C y suscompiladores, han adoptado algunas caractersticas de otroslenguajes que estan fuera del estandar ANSI
El estandar ANSI C muestra en su seccion 3.1.9, como debenser los comentarios
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 24/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje estructurado
Lenguaje estructurado
Una caracterstica importante de los lenguajes estructuradoses la compartimentacion de codigo y datos
Es la habilidad del lenguaje de seccionar el programa enbloques o modulos de sentenciasCada bloque de sentencias lleva a cabo una tarea especficaLos bloques son utilizados y escondidos del resto delprograma cuando es necesario
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 25/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje estructurado
Programa estruturado
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 26/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje estructurado
El lenguaje estructurado C
El lenguaje C logra la compartimentacion de codigo y datospor medio de de uso de funciones, las cuales son compuestaspor un conjunto de sentencias y utilizan variables temporalesque no afectan a las variables de otros bloques del programa
Esta caracterstica permite compartir o reutilizar facilmentesecciones de codigo de un programa
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 27/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Lenguaje estructurado
Funciones en C
Las funciones son bloques en donde se lleva a cabo toda laactividad del programa
Las funciones permiten al programador definir tareasespecficas, permitiendo que el programa sea modular
Crear un programa en modulos (funciones) tiene grandesventajas
Enfocarse en el desarrollo de tareas especficasLa verificacion de un modulo no afecta a todo el programaVarios programadores puden participar en el desarrollo
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 28/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Ejemplos de estructuras
Comentario no estadarizado, estandarANSI.c
1 /* Programacion estructurada 13O,2 Oscar Alvarado Nava , Ing. Electronica3 Comentarios bajo el estandar ANSI4 */5 #include 6 int main()7 {8 // formato de comentario fuera del estandar de ANSI9 int x=15;
10 int y=9;11 int z=0;1213 z = x + y;1415 /* funcion de biblioteca */16 printf("La suma fue: %d\n",z);1718 return 0;19 }
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 29/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Ejemplos de estructuras
Directorio y edicion
< tss-1-01@ce >< /users/tss/1/tss-1-01 >$ mkdir p4 progEstructurada
< tss-1-01@ce >< /users/tss/1/tss-1-01 >$ cd p4 progEstructurada
< tss-1-01@ce >< /users/tss/1/tss-1-01/p4 progEstructurada >$ pico estandarANSI.c
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 30/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Ejemplos de estructuras
Compilacion y error
< tss-1-01@ce >< /users/tss/1/tss-1-01/p4 progEstructurada >$ gcc -ansi estandarANSI.c -o estandarANSIestandarANSI.c:In function main:
estandarANSI.c:8: error: expected expression before / token
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 31/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Ejemplos de estructuras
Secuencia de sentencias, secuencia.c
1 /* Programacion estructurada , 13O2 Oscar Alvarado Nava , Ing. Electronica3 Intercambio de valores entre 2 variables4 */5 #include 6 int main()7 {8 float var1 , var2 , aux;9
10 // asignacion de valores11 var1 = 1.1;12 var2 = 2.2;13 printf("var1: %f, var2: %f\n",var1 ,var2);1415 // intercambio16 aux = var1;17 var1 = var2;18 var2 = aux;19 printf("var1: %f, var2: %f\n",var1 ,var2);2021 return 0;22 }
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 32/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Ejemplos de estructuras
Seleccion de sentencias, seleccion.c
1 /* Programacion estructurada , 13O2 Oscar Alvarado Nava , Ing Electronica3 Bajo una condicion , se ejecuta una de dos sentencias4 */5 #include 6 int main()7 {8 int var1 , var2;9
10 // asignacion de valores11 var1 = 1;12 var2 = 2;1314 // prueba y seleccion15 if( var1 > var2 )16 printf(" %d es mayor que %d\n",var1 ,var2);17 else18 printf(" %d es menor que %d\n",var1 ,var2);192021 return 0;22 }
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 33/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Ejemplos de estructuras
Iteracion de sentencias, iteracion.c
1 /* Programacion estructurada , 13O2 Oscar Alvarado Nava , Ing Electronica3 Repite el bloque mientras la condicion sea verdadera4 */5 #include 6 int main()7 {8 int var1 , var2;9
10 // asignacion de valores11 var1 = 0;12 var2 = 10;1314 // iteracion15 while( var1 < var2 )16 {17 printf("hola! numero %d\n",var1);18 var1 = var1 + 1;19 }20 printf("Fin de programa\n");2122 return 0;23 }
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 34/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Ejemplos de estructuras
Anidamiento de sentencias, anidamiento.c
1 /* Programacion estructurada , 13O, incluir toda la informacion */2 #include 3 int main()4 {5 int var1 , var2 , aux;6 // solicita valores7 printf("Valor entero para var1: ");8 scanf(" %d" ,&var1);9 printf("Valor entero para var2: ");
10 scanf(" %d" ,&var2);11 printf("var1: %d var2: %d\n",var1 ,var2);12 if( var1 > var2 )13 {14 aux = var1;15 var1 = var2;16 var2 = aux;17 }18 printf("var1: %d var2: %d\n",var1 ,var2);19 while( var1 < var2 )20 {21 printf("hola! numero %d\n",var1);22 var1 = var1 + 1;23 if(var1 >= 10)24 break;25 }26 printf("Fin de programa\n");27 return 0;28 }
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 35/36
-
Programacion estructurada Lenguaje estructurado C Ejemplos de estructuras
Ejemplos de estructuras
Funciones funciones.c
1 #include 2 // Declaracion de las funciones3 void funcionInicio ();4 void funcionFin ();5 // Definicion de las funciones6 void funcionInicio ()7 {8 printf("Programacion estructurada\n");9 printf("Oscar Alvarado Nava\n");
10 }11 void funcionFin(int var)12 {13 printf("Resultado %d\n",var);14 printf("Fin del programa\n");15 }16 int main()17 {18 int x=15, y=9, z=0;1920 // llamada a la funcion21 funcionInicio ();22 z = x + y;23 // llamada a la funcion24 funcionFin( z );2526 return 0;27 }
Oscar Alvarado Nava UAM Azcapotzalco Programacion estructurada y lenguaje estructurado 36/36
Programacin estructuradaDefinicionesEstructuras
Lenguaje estructurado CLenguaje de alto nivelANSI CLenguaje estructurado
Ejemplos de estructurasEjemplos de estructuras