You are on page 1of 13

FUNCIONES Y PROCEDIMIENTOS

La resolucin de problemas, se los realiza utilizando el diseo descendente (topdown), con el mtodo divide y vencers, dividiendo el programa principal en subproblemas, para que la resolucin se haga ms sencilla.
PROGRAMA O ALGORITMO PRINCIPAL

Sub-problemas

Sub-algoritmos o funciones

Hay una diferencia primordial entre funciones y procedimientos: Funcin: Una funcin es una operacin que toma uno o ms valores llamados argumentos y genera un nico resultado. Hay dos tipos de funciones: Funciones intrnsecas o internas: Son las funciones que vienen incorporadas al sistema Funciones externas o definidas por el usuario: Estas funciones son las que se crean para uso propio. Es un bloque de enunciados o un subprograma que se escribe para realixar una tarea especfica requerida por el programador. Caractersticas de la funcin Eliminan la necesidad de duplicar enunciados dentro del programa Mejoran la claridad y legibilidad de la lista del programa Permiten solucionar problemas complejos y muy largos

Formato de declaracin de una funcin


int cubo(int x)
Valor de retorno de la funcin Valor de retorno de la funcin

Parmetros de la funcin

Las funciones siempre llevan un valor return para poder devolver el valor que genera la funcin.
FORMATO PARA FUNCIN DEFINIDA POR EL USUARIO // Funcin encabezado //Empieza bloque de enunciados de la funcin //Variables y constantes locales //Enunciados de la funcin o cuerpo Enunciado 1 Enunciado 2 .. return <<valor de regreso //Final

Procedimiento: Es una construccin que permite dar nombre a un conjunto de sentencias y declaraciones que se usan para resolver un subproblema dado. Un procedimiento realiza una tarea especfica pero no devuelve ningn valor Declaracin de un procedimiento

Procedimiento nombre (lista de parmetros formales) <acciones>

Diferencias entre funciones y procedimientos


Una funcin devuelve un solo valor; mientras que los procedimientos no devuelven ningn valor

Un procedimiento se declara igual que una funcin pero su nombre no est asociado a ninguno de los resultados que se obtienen.
PROCEDIMIENTOS Y FUNCIONES Parmetros -Entrada -Salida

Ejemplos: a) Algoritmo que calcula la sumatoria de los cubos de nmeros impares Utilizando funciones 1. Inicio 2. Suma=0, impar=1, N 3. Leer N 4. Int funcin_cubo(int impar) 5. Inicio 6. Devolver (impar*impar*impar) 7. Fin funcin 8. Para (i=1; hasta N; i++) 9. Impar=impar+2 10. Fin para 11. Suma=suma+funci_cubo 12. Fin procedimiento b) Generar la sumatoria de los factoriales y potencias: S= Utilizando programacin modular 1. Inicio 2. S=0 3. Leer N 4. Para (i=1, hasta N, i++) 5. Fact=1 6. Para (j=1, hasta i, j++) 7. Fact=fact*j 8. Fin para 9. Pot=1 10. Para (k=1, hasta i, k++) 11. Pot=pot*i

12. Fin para 13. Numerador =fact 14. Denominador=pot 15. S=S+ 16. Fin para 17. Presentar S 18. Fin proceso

Utilizando funciones 1. 2. 3. 4. 5. Inicio S=0 Leer N Para(i=1 hasta N, i++) S=S+

6. Fin para 7. Presentar S 8. Fin proceso Funcin fact(i) 1. Inicio 2. Fact=1 3. Para (j=1, hasta i, j++) 4. Fact=fact*j 5. Fin para 6. Devolver fact 7. Fin subproceso Funcin potencia (b, e) 1. Inicio 2. Pot=1 3. Para(j=1, hasta e, j++) 4. Pot=pot*b 5. Fin para 6. Devolver pot 7. Fin subproceso

EJECUCIN DEL ALGORITMO EN MEMORIA


i j S factorial potencia i i e

mbito de variables El mbito es la parte del programa en donde se definen una variable, por ello se pueden distinguir dos clases de variables. Variable Global: Esta variable, como su nombre lo indica est declarada de una manera global al programa o algoritmo principal, de ella dependen y pueden acceder todos los subprogramas. El uso de variables globales no es aconsejable a pesar de que aparentemente nos parezca muy til, esto se debe a varias razones fundamentales: Legibilidad menor. Nos condiciona en muchos casos que el programa slo sirva para un conjunto de casos determinados. El uso indiscriminado de variables globales produce efectos colaterales. Esto sucede cuando existe una alteracin no deseada del contenido de una variable global dentro de una funcin, bien por invocacin, bien por olvidar definir en la funcin una variable local o un parmetro formal con ese nombre. La correccin de dichos errores puede ser muy ardua. Atenta contra uno de los principios de la programacin, la modularidad. El bajo acoplamiento supone no compartir espacios de memoria con otras funciones, y potenciar el paso de informacin (llamadas) para que la funcin trate la informacin localmente. Variables locales: Una variable local es aquella cuyo mbito se restringe a la funcin que la ha declarado se dice entonces que la variable es local a esa funcin. Esto implica que esa variable slo va a poder ser manipulada en dicha seccin, y no se podr hacer referencia fuera de dicha seccin. Cualquier variable que se defina dentro de las llaves del cuerpo de una funcin se interpreta como una variable local a esa funcin. Paso de parmetros Cuando el programa principal llama al subprograma la informacin se comunica a travs de una lista de parmetros y se establece una correspondencia automtica

entre parmetros formales y actuales. Los parmetros formales son sustituidos por los parmetros actuales.
Programa Subprograma

Entradas Valores del programa que llama

Salidas Resultados del subprograma

Mtodos para realizar el paso de parmetros


Paso de parmetros Comunicacin de datos Programa llamador

funcin

Paso por valor: Se produce una analoga con los argumentos de la funcin.
PROGRAMA LLAMADOR Argumentos reales o parmetros actuales FUNCIN O SUBPROGRAMA LLAMADO Parmetros formales

Copia

Paso por referencia o direccin variable: Un parmetro de referencia proporciona una comunicacin de ida y vuelta de datos, entre el programa llamador y la funcin.
PROGRAMA LLAMADOR Argumentos reales o parmetros actuales Direccin SUBPROGRAMA LLAMADO Parmetros formales

ARRAYS
Los arreglos son usados extensamente por los programadores para contener listas de datos en la memoria. Es un conjunto de datos del mismo tipo, es decir homogneos ordenados en forman lineal uno despus de otro. Los componentes de un arreglo se han de referenciar por medio del nombre del arreglo y un ndice de desplazamiento para indicar el componente deseado. Un array es una secuencia de posiciones de memoria central a la que se puede acceder directamente, que contiene datos del mismo tipo y pueden ser seleccionados individualmente mediante el uso de subndices. Los arrays pueden ser unidimensionales, bidimensionales o multidimensionales. DECLARACIN DE UN ARREGLO tipo identificador [tamao] = { lista de inicializacin }

Arrays unidimensionales o vector


5 elementos Vector A= X X X

tipo ms simple de array.

0 V[0]V[4] Para mostrar vector: cout<< V[0] ---- Lmite de inicio V[1] V[2] V[3] V[4] ---- Lmite final

Traduccin de direcciones en memoria

Asignar espacios en memoria S. O. Gestor de memoria Compilador

Memoria principal

Objeto

Para la creacin de vectores y matrices se deben usar ciclos de repeticin for (i=0; i<5; i++) { cout<<A[i]; } EL CICLO FOR REALIZA INCREMENTOS EN VALORES REALES int i=0; while (i<5) { cout<<A[i]; i++; } EL CICLO WHILE HACE INCREMENTOS DE TIPO LGICO

Por ejemplo: PROCEDIMIENTO DE CREACIN DE UN VECTOR PROCEDIMIENTO void llamar_vector() { for (int i=0; i<lmite; i++) { cout<<ingrese dato; cin>> V[i] } } V = 0 1 2 3 4 10 20 10 20 15
FUNCIONAMIENTO INTERNO EN LA EJECUCIN

Ingrese dato 0 10 Ingrese dato 1 20 Ingrese dato 2 10 Ingrese dato 3 20 Ingrese dato 4 15

Arrays bidimensionales o matrices: Dos dimensiones


Y

En este tipo de array es necesario fijar lmite.


i 0 1 2 j 0 1 2 i=0 0, 1, 2 i=1 0, 1, 2 i=2 0, 1, 2 i=3 0, 1, 2 i 0 1 2 j 0, 1, 2 0, 1, 2 0, 1, 2

Para generar una matriz tambin utilizamos el ciclo for para las filas y columnas
for (i=0; i<3; i++) { for (j=0; j<3; j++) //genera columnas { cout<<A[i][j]; //presenta matriz } } //genera filas

Archivos o ficheros
Archivos Estructura de datos Ordenados Almacenan informacin
El programa lee datos Flujo de salida Flujo de entrada

PROGRAMA PROGRAMA

FICHERO FICHERO

Ejemplo:

Estructuras dato Informacin PAISAJE concepto Significado Cadena de caracteres

Los archivos ficheros son una coleccin de informacin (datos relacionados entre s), localizada o almacenada como una unidad en alguna parte de la computadora. Los archivos son el conjunto organizado de informaciones del mismo tipo, que pueden utilizarse en un mismo tratamiento; como soporte material de la informacin. programa
Flujo Buffer

dispositivo

CARACTERSTICAS DE LOS ARCHIVOS Las principales caractersticas de esta estructura son: Independencia de las informaciones respecto de los programas La informacin almacenada es permanente Un archivo puede ser accedido por distintos programas en distintos momentos Gran capacidad de almacenamiento

ACCESO A LOS ARCHIVOS Se refiere al mtodo utilizado para acceder a los registros de un archivo prescindiendo de su organizacin. Existen distintas formas de acceder a los datos: Secuenciales; los registros se leen desde el principio hasta el final del archivo, de tal forma que para leer un registro se leen todos los que preceden. Directo; cada registro puede leerse/escribirse de forma directa solo con expresar su direccin en el fichero por l numero relativo del registro o por transformaciones de la clave de registro en l numero relativo del registro a acceder. Por ndice; se accede indirectamente a los registros por su clave, mediante consulta secuenciales a una tabla que contiene la clave y la direccin relativa de cada registro, y posterior acceso directo al registro. Dinmico; es cuando se accede a los archivos en cualquier de los modos anteriormente citados. La eleccin del mtodo est directamente relacionada con la estructura de los registros del archivo y del soporte utilizado.

ESTRUCTURA JERRQUICA EN LA CONSTITUCIN DE UN ARCHIVO


Base de datos

Archivo 1

Archivo 2

Archivo 3

Archivo 4

Registro 1

Registro 2

Registro 3

Campo 1

Campo 2

Sub campo 1

Sub campo 2

Carcter

Carcter

Carcter

TIPOS DE ARCHIVOS SEGN SU CONTENIDO: Fuente Objeto Ejecutable Texto Datos Comprimido Documento Imagen Hipertexto Base de datos Hoja de clculo (.cpp) (.obj) (.exe) (.txt) (.dat) (.zip) (.tex , .doc) (.png , .jpg , .bmp) (.html , .asp) (.db , .dbf , .mdb) (.xls , .csv)

MODOS DE ABRIR UN FICHERO MODO r w a r+ w+ a+ DESCRIPCIN Abrir un fichero para leer Abrir un fichero para escribir Abrir un fichero para aadir informacin Abrir un fichero para leer y escribir Abrir un fichero para escribir y leer Abrir un fichero para aadir y leer