Bloque 4. La descomposición funcional y el diseño descendente



Documentos relacionados
Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Titulo: Suma de N primeros números

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Introducción al Dev-C++

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

LENGUAJE. Tema 1 - Introducción

Estructura de Computadores

Esquema de un programa en C: bloques básicos

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

#include <stdio.h> /* Factorial de un número - versión 1- */

8. Sentencia return y métodos

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Programación I: Funciones y módulos

Tema 6: Generación de código (parte 2)

Estructuración del programa en partes más pequeñas y sencillas

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso Notas. Ejemplo. La herramienta make. 1 Diseño modular.

Se guardan en archivos con extencion c y los cabezales con extension h

Capítulo 6. Introducción a la POO

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Unidad III El lenguaje de programación C

Diseño de algoritmos.

Presentación. Programación I. Conceptos Avanzados de Programación. :: Prof. Yeniffer Peña

Estructuras de Repetición Repita Mientras

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

El lenguaje de Programación C. Fernando J. Pereda

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

Metodología de la programación y desarrollo de software. Marta Zorrilla Universidad de Cantabria

Contenido. Capítulo 1. Introducción a lenguaje C 1

Creación de Funciones de Conducción

Modularización en lenguaje C. Funciones

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato

Tema: Arreglos de Objetos en C++.

Programación 1 Tema 5. Instrucciones simples y estructuradas

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Java Inicial (20 horas)

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C.

Actividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras.

8.1 Un primer bucle FOR Varias formas de utilizar el bucle FOR Calcular el factorial de un número mediante un bucle FOR...

1. Contenido. 2. Cómo hacer una consulta. 3. Calendario

1. Funciones genéricas 2. Clases genéricas

TRABAJO PRÁCTICO N 6 Ejercicios 4

Preliminares. Tipos de variables y Expresiones

Programa completo de resolución de ecuaciones de 2º grado

NÚMEROS NATURALES Y NÚMEROS ENTEROS

LABORATORIO 1 OPERACIONES DE ENTRADA Y SALIDA

1. Manejo de memoria estática 2. Manejo de memoria dinámica

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN

Fundamentos de Programción (I)

Funciones. Diseño de funciones. Uso de instrucción jal y retorno de subrutina.

Tema: Patrones de Diseño.

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

INSTITUTO TECNOLOGICO de la laguna Programación Orientada a Objetos en C++

Funciones Tipos de funciones y Recursividad

Programación Orientada a Objetos en Java

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

Índice general de materias LECCIÓN 7 74

Tema: Sobrecarga de Operadores.

11. Algunas clases estándar de Java (II)

Tema 2: La clase string

Clases y Objetos. Informática II Ingeniería Electrónica

Sistema de Gestión Académica TESEO. Revisión 1.0. Servicio de Informática Área de Gestión (GESTIÓN DE RESÚMENES DE TESIS DOCTORALES)

SISTEMAS OPERATIVOS AVANZADOS

Tema 2 Límites de Funciones

Prof. Dr. Paul Bustamante

Modulo 1 El lenguaje Java

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

CLASE # 5 TÉCNICAS DE CAJA BLANCA

Ejercicio 1 (3 puntos).-

Examen escrito de Programación 1

Educación e inclusión social. Leonardo Garnier

SOLUCION EXAMEN junio 2006

Programación: QBASIC

2ª Convocatoria 2008/2009 (15-IX-2009) 4º Ing. Informática. CPS. Universidad de Zaragoza Tiempo de realización: 3 horas

Inter American Accreditation Cooperation. Grupo de prácticas de auditoría de acreditación Directriz sobre:

Curso de Java POO: Programación orientada a objetos

7.- Seleccionando funciones friend o funciones miembro para sobrecarga de operadores.

Programación 1 Tema 7. Desarrollo modular y descendente de programas

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Lenguaje C Bucles, Condicionales, operadores y Algoritmos.

Introducción a la Programación Orientada a Objetos

Prof. Dr. Paul Bustamante

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Modelos de Software. Ingeniería en Sistemas de Información 2015

3.8 Construcción de una ALU básica

32 - CÓMO PROGRAM A R AC T I V I D A D E S E N

Tema 2. Software. Informática (1º Ingeniería Civil)

Programación 1 Tema 5. Instrucciones simples y estructuradas

Ficheros Electrónicos

Interpolación polinómica

Funciones en lenguaje C

Sistemas Operativos Práctica 4

FUNDAMENTOS DE INFORMÁTICA

Transcripción:

Bloque 4 La descomposición funcional y el diseño descendente

Cómo afrontar un problema complejo Dividir cada una de las dificultades que se examinen en tantos fragmentos como sea posible y que se requieran para mejorar la solución Descartes: El Discurso del Método Las cosas grandes se pueden reducir a cosas pequeñas, y las pequeñas a la nada Proverbio chino

Facilidad de lectura Para comprender un programa de una sola pieza, un ser humano necesita normalmente un tiempo que aumenta exponencialmente con la longitud del programa Dijkstra Otras técnicas: Introducir comentarios Tabular el código Utilizar estructuras de control (no GOTO, etc.)

Ventajas de la división en subprogramas Mayor facilidad para encontrar la solución Mayor facilidad para leer el código Mayor facilidad para repartir el trabajo entre diferentes programadores Mayor facilidad para reutilizar el código en otros problemas

Funciones en C A partir de unos parámetros de entrada, la función realiza unas operaciones y devuelve un valor A B C FUNCIÓ f Valor retornat

Ejemplo: función factorial Tipo del valor retornado Nombre de la función long int factorial(int n) Variables locales int i; long int f=1; for (i=n;i>=2;i--) f=f*i; Nombre y tipo del parámetro Cabecera de la función Cuerpo de la función (instrucciones) return f; Valor que retorna la función

Ejemplo: llamada a la función factorial main() int x=5; long int res; res=factorial(x); printf("%d\n",res); Llamada a la función factorial

#include <stdio.h> long int factorial(int n) int i; long int f=1; for (i=n;i>=2;i--) f=f*i; return f; main() int x=5; long int res; res=factorial(x); printf("%d\n",res);

Parámetros Diferencia entre: Parámetro formal: n Parámetro real (o parámetro de llamada): x Paso de parámetro por valor Se hace una copia del valor del parámetro real al parámetro formal

Ejemplo con más de un int major(int a, int b) if (a>=b) return 1; else return 0; main() int a=5,b=3,c; c=major(b,a);... parámetro

Visibilidad En la función factorial: i, f son variables locales Sólo pueden ser accedidas (son visibles) dentro de la función factorial En main: x también es una variable local No es visible desde la función factorial En realidad main también es una función, la que se llama cuando se ejecuta el programa NOTA: en otros lenguajes puede haber funciones locales (internas a una función y sólo accesibles desde ella), pero en C no

#include <stdio.h> long int factorial(int n); Prototipo de una función main() int x=5; long int res; res=factorial(x); printf("%d\n",res); long int factorial(int n) int i; long int f=1; for (i=n;i>=2;i--) f=f*i; return f;

Ejemplo Calcular m n = m! n!( m n)! Dos funciones: factorial combinatori

long int factorial(int n) int i; long int f=1; for (i=n;i>=2;i--) f=f*i; return f;

long int factorial(int n) int i; long int f=1; for (i=n;i>=2;i--) f=f*i; return f; long int combinatori(int m, int n) return factorial(m)/(factorial(n)*factorial(m-n));

#include <stdio.h> long int factorial(int n) int i; long int f=1; for (i=n;i>=2;i--) f=f*i; return f; main() int m,n; printf("calcul DEL COMBINATORI m sobre n\n"); printf("introdueix m: "); scanf("%d",&m); printf("introdueix n: "); scanf("%d",&n); printf("%d\n",combinatori(m,n)); long int combinatori(int m, int n) return factorial(m)/(factorial(n)*factorial(m-n));

... void escriu_resultat(int m, int n, int c) printf("%d sobre %d val %d\n",m,n,c); El tipo void main() int m,n,c; printf("calcul DEL COMBINATORI m sobre n\n"); printf("introdueix m: "); scanf("%d",&m); printf("introdueix n: "); scanf("%d",&n); c=combinatori(m,n); escriu_resultat(m,n,c);

#include <stdio.h> void f1(int a,int b) b=a-1; void f2(int b, int a) a=a+b; void main() int a=3,b=5; f1(b,a); f2(a,b); printf( %d %d,a,b); Ejercicio Qué escribe este programa?

Ejercicio Calcular e x según la siguiente fórmula (desarrollo de Taylor), sin utilizar los operadores * ni / e x x n = n! n=0