Capitulo 2. Programación Modular

Documentos relacionados
Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación. Test Autoevaluación Tema 3

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

Fundamentos de Programación 2017-I

Funciones en Lenguaje C

Programación MODULAR: Subalgoritmos - funciones y procedimientos

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

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

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

Preliminares. Tipos de variables y Expresiones

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Funciones Tipos de funciones y Recursividad

Tema 13: Apuntadores en C

Elementos de un programa en C

Funciones como Subprogramas en C++

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

MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Programación Estructurada

Lenguaje de programación C. Introducción

Asignatura: Estructuras de Datos. Año Escolar: Grado y Sección: 6to INF A-B Docente: Ing. Yesika Medina

OPERADORES Y EXPRESIONES

Tema: Repaso sobre uso de Funciones, Arreglos y Punteros en C++.

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Lenguajes de programación

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

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

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

Fundamentos de programación

Apuntadores (Punteros)

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Programación En Lenguaje C

Las plantillas permiten definir funciones genéricas.

E/S POR CONSOLA DE C++ Parte I. Elementos Básicos Dr. Oldemar Rodríguez R.

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

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

Introducción al Lenguaje de Programación C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Tema 16: Tipos de datos estructurados en lenguaje C

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Informática Ingeniería en Electrónica y Automática Industrial

Apuntadores en C y C++

USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++

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

funciones printf scanf

El lenguaje C. 1. Identificadores, constantes y variables

INTRODUCCIÓN AL LENGUAJE C

Estructuras de Repetición (Repita para)

INICIACIÓN A LA PROGRAMACIÓN EN C

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

Tema: Clases y Objetos en C#. Parte II.

Fundamentos de Programación 2017-I

Operadores y Expresiones

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

Escuela Politécnica Superior de Elche

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Guía práctica de estudio 11: Funciones

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

Tema 14: Arreglos estáticos en C

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

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

Programación Estructurada

El lenguaje C. if (a>3) { printf("hola"); // bloque printf("%d",a); // de getch(); //código } Partes de un programa en C.

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

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

Funciones. Parámetros por valor

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

Laboratorio 1: Terminal de Linux y primer programa en C

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

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

La resolución de un problema

Sistemas Operativos Practica 1: procesos y concurrencia.

COMO PROGRAMAR EL PUERTO PARALELO

OBJETIVO III. APLICAR A LOS PROGRAMAS EN C LAS ESTRUCTURAS DE SELECCIÓN IF Y SWITCH ACTIVIDAD TEÓRICA.

Principios de Computadoras II

Curso de Programación Avanzada en C

Un módulo de programa tiene dos partes bien diferenciadas: la definición del módulo y la invocación o llamada al módulo.

TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN

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

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

EXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%

Introducción al Dev-C++

TIPOS DE DATOS BASICOS EN LENGUAJE C

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

Programación. Ejercicios Tema 3. Elementos Básicos del Lenguaje C

Instituto Tecnológico de Celaya

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

Tema II: Metodología para la construcción de programas

El lenguaje C. 1. Introducción, Funciones. Principios de Programación Módulos de programa en C Funciones

Transcripción:

Capitulo 2. Programación Modular

Consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver. Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente (Top-Down). En C a los módulos se les llama funciones (FNC s) otros nombres a los módulos son: rutinas, subrutinas. Como ya sabemos las funciones tienen argumentos que se separan por comas.

2.1 Declaración de funciones.

Ejemplo: float b cos(float b ang); Nombre de la función => cos (identificador de la función) Argumento de IN => float ang (lado derecho, tiene tipo_dato e identificador) Argumento de Out => float (lado izquierdo recuerde que SOLO tiene tipo_dato) Funciones vistas: printf(), scanf(), main() Imagine como serían: suma() - Division_entera() area_cuadrado() Recuerde: Solo se puede Trasmitir/Enviar UN valor/dirección (lado izquierdo). Se pueden Recibir varios valores/direcciones con tipo_dato (lado derecho) conservado su orden. Nota: I) Todas las funciones tienen un nombre que las identifica y no deben haber dos funciones con el mismo nombre. II) la declaración de variables se diferencia de la declaración de funciones por los paréntesis que existen en la declaración de funciones. Todo lo que tiene paréntesis y termine en punto y coma; es una función. Int a; // Valor Int *a; // Dirección Int a(void); // Función Int a[3]; // Arreglo

III) Todo programa tiene mínimo una función y es la main( ). La función main es la única que se comunica con S.O. Se dice que un programa termina satisfactoriamente si retorna 0 al SO (main al S.O). El programa inicia con la ejecución del bloque de la función main() y termina cuando se ejecutan las instrucciones de main(). IV) En un programa TODAS las funciones tienen 3 partes: Declaración (Prototipo). Llamada de la función. Definición de la función.

Si la función es propia de C la definición y la declaración están en el archivo de cabecera (.h) correspondiente. En el programa aparece solo su llamada con sus argumentos correspondientes. Cada vez que se utilice una función de C debe incluirse (#include) el archivo de cabecera correspondiente. Si la función es del programador deben aparecer las 3 partes de la función en el programa (prototipo, llamada y definición para cada función).

V) Las funciones se pueden llamar cuantas veces sea necesario en un programa, solo se coloca la llamada de la función con su argumentos de I/O en el lugar que se necesite. (solo se necesita UN prototipo y UNA definición por función, así se realicen varias llamadas de dicha función en el programa)

2.2 Esqueleto de un programa en C. # include<stdio.h> archivos de cabecera (.h) # include<math.h> // prototipos de las funciones del programador int suma (int a, int b); void imprimir (int c); int main (void)..//llamada de fnc.z=suma(a,b); Definición de la función principal int suma(int a, int b) ::::::::::::::::::::::::::::::::: int c; ::::::::::::::::::::::::::::::::: c=a+b; Definición de las funciones del programador Void imprimir(int c) (Debe de existir PROTOTIPO para ellas) ::::::::::::::::::::::::::::::::: printf( el ); :::::::::::::::::::::::::::::::::

2.3 Funciones del programador Declaración de la función (PROTOTIPO) arriba e igual a la declaración de la función: Se realiza igual que la declaración de función. Se ubica entre los archivos de cabecera y la función main(). Sirve para ayudarle al compilador a verificar coincidencia de tipo_datos. Definición de la función: Abajo, sin punto y coma y termina con bloque: Se realiza igual que la declaración de función, pero sin punto y coma y siempre termina en bloque. Se ubica después de la función main(), si existen varias funciones no importa el orden. Sirve para indicarle al compilador que hace la función (mediante instrucciones de IN/OUT, declaración de más variables, instrucciones de asignación y llamadas a funciones de C y del programador).

2.4 Transferencia de valores y direcciones entre funciones Existen tres formas básicas: a. Paso por valor (envía valor de la variable). Lado Derecho b. Paso por referencia (envía la dirección de variable). c. Retorno de valor/dirección. Lado Izquierdo a. Paso por valor: Es el valor, lo que se envía de la función invocante a la función receptora, lo que implica que si se cambia el valor de la variable en la función receptora NO se ve reflejada en la función invocante. En la declaración de función, del lado derecho se colocan (con tipo de dato) las variables que se quieren tratar por valor. En la llamada de la función, dentro del paréntesis sin tipo de dato se colocan las variables tratadas por valor (si 3 + 1 separados por coma) En la definición de la función se utiliza la variable tratada por valor.

Valor de a int main(void) int a =3; imprimir(a); // llamado a la fnc printf( a en main %d \n, a); return 0; Función invocante void imprimir(int a) a++; printf( a en imprimir %d\n, a); Función receptora En pantalla: a en imprimir 4 a en main 3

#include <stdio.h> int main(void) int a =3; imprimir(a); // llamado a la fnc printf( a en main %d \n, a); return 0; void imprimir(int a) a++; printf( a en imprimir %d\n, a);

b. Paso por dirección: es la dirección de la variable lo que se envía de la función invocante (la que realiza la llamada) a la función receptora, lo que implica que si se cambia el valor en la función receptora SI se cambia en la invocante. En la declaración de la función, del lado derecho se colocan (con tipo dato) las variables que se quieren tratar por dirección, precedido de * c/u. En llamada de la función dentro del paréntesis sin tipo dato se colocan las variables tratadas por dirección (si hay más de 1separadas por coma), precedidas cada una por &. En la definición de la función cada vez que se utiliza 1 variable tratada por referencia o dirección se preceden por * (en todas partes).

Dirección de a int main(void) int a =3; imprimir(&a); // llamado a la fnc printf( a en main %d \n, a); return 0; Función invocante void imprimir(int *a) (*a)++; printf( a en imprimir %d\n, *a); Función receptora En pantalla: a en imprimir 4 a en main 4

c. retorno de valor o dirección: es el valor/dirección lo que se envía (Tx o retorno) de la función receptora a la invocante. Si hay retorno de valor del lado izquierdo debe ser diferente del tipo-dato void (definición y en la declaración). En la llamada de la función del lado izquierdo debe haber 1 variable donde se almacena lo que la función receptora envió (Tx retorno). Es obvio que hay en la llamada el símbolo de =. En la definición dentro del bloque debe de haber como mínimo 1 instrucción return. La instrucción return retorna inmediatamente/ a la función invocante, lo que significa que hay instrucciones o llamadas a funciones debajo del return nunca se ejecutan (return apagado tv) por lo general el return es la ultima instrucción de la función. Sintaxis: return constante; ejemplo: return 0; return variable; ejemplo: return a; Programación con funciones: calcula el área y el perímetro del rectángulo dada la base y la altura.