Curso de C # República Bolivariana de Venezuela Área de Computación

Slides:



Advertisements
Presentaciones similares
Resolución de Problemas Algoritmos y Programación
Advertisements

Metodología de la Programación
Procedimientos y Funciones
Tipos de Datos Abstractos Modularidad
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
1.3 Programación modular. Subprogramas.
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Teoría de lenguajes y compiladores
METODOLOGIA DE LA PROGRAMACION
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
2 Acciones y funciones 2.1 Concepto
Funciones en lenguaje C
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.

Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
TRADUCTOR DE UN PROGRAMA
Fundamentos de Programación
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
Ingeniero Anyelo Quintero
Semana 5 Subprogramas..
PROCEDIMIENTOS FUNCIONES
Clase 10: Estructuras de datos y arreglos.
Descomposición Modular. Funciones
(Organización y Manejo de Archivos)
Fundamentos de Programación
PROGRAMACIÓN PROCEDIMENTAL
Material de apoyo Unidad 4 Estructura de datos
Diseño de Programas.
Tipos de Datos. Entrada-Salida.. La entrada-salida (I/O) le permite a un programa comunicarse con el mundo exterior. Esta comunicación puede realizarse.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
LENGUAJES DE PROGRAMACIÓN
EXPRESIONES Y SENTENCIAS
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Unidad II Introducción a la programación en C++
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Elementos básicos del lenguaje
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Algorit moAlgorit mo An á lisisAn á lisis Argumen toArgumen to Asignación Asociación Cometar ioCometar io Compilación Constan teConstan te Definición.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Metodología de la programación
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Visual Basic FUNCIONES Y PROCEDIMIENTOS
INTRODUCCION A LA PROGRAMACION
Capítulo 2 “Subprogramas/Funciones - Arreglos”
UNIDAD V Bibliotecas de Funciones L.I. & M.S.C. OSCAR RAMÍREZ CORTÉS PROGRAMACIÓN DE SISTEMAS.
Metodología de la programación
Conalep Coacalco Algoritmos Recursivos
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
Introducción a los TADs

¿QUÉ ES EL MODELO ENTIDAD-RELACIÓN?  Como ya he comentado este modelo es solo y exclusivamente un método del que disponemos para diseñar estos esquemas.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
MEMORIA DINÁMICA.
Curso: Fundamentos de Computación
SOFTWARE DE COMPUTADORAS
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Gestión de Memoria – Parte 2
1 Procedimientos y Funciones Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

Curso de C # República Bolivariana de Venezuela Área de Computación Facilitador: Prof. Bassam Asfur

Programación Modular Es un método de resolución de problemas que consiste en resolver de forma independiente los subproblemas que se obtienen de una descomposición del problema general Un módulo debe ofrecer un grupo de servicios diseñados para que el esto del programa pueda interactuar con él Es más fácil resolver un problema complejo cuando se rompe en piezas manejables. ¡Divide y Vencerás!

Programación Modular La base fundamental de este paradigma de programación es el módulo Un módulo en un conjunto de rutinas que prestan un servicio específico. Una rutina, subrutina o subprograma, como idea general, se presenta como un algoritmo separado del algoritmo principal, el cual permite resolver una tarea específica Decimos que algo es modular si es construido de manera tal que se facilite su ensamblaje, acomodamiento flexible y reparación de sus componentes La modularidad da una mejor compresión del problema y reduce el tamaño del código Generalmente se hace la asociación de un módulo como una caja negra. Se sabe que entra y que sale pero no como se procesa

Programación Modular En la programación modular se debe asegurar los siguientes preceptos ● máxima cohesión ● mínimo acoplamiento entre módulos Un módulo debe ofrecer un grupo de servicios que sin lugar a dudas deben ir juntos, por ejemplo: La Clase Math Algunas Ventajas Facilitan la escritura y depuración de un programa Localización rápida de errores La modificación de un módulo no afecta a los demás Un grupo de instrucciones que se repite en varias partes de un programa puede incluirse en un módulo y llamarlo en el programa.

Funciones y Procedimientos Es evidente, que si está metodología, nos lleva a tratar con subproblemas, entonces también tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar módulos, de ahí viene el nombre de programación modular. En los lenguajes de programación disponemos de dos tipos de módulos: los procedimientos y las funciones. Elementos de la declaración de una subrutina Un nombre único en el ámbito: nombre de la función con el que se identifica y se distingue de otras. No podrá haber otra función ni procedimiento con ese nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos). Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolverá al terminar su ejecución. Una lista de parámetros: especificación del conjunto de argumentos (pueden ser cero, uno o más) que la función debe recibir para realizar su tarea.

Funciones y Procedimientos Los procedimientos y funciones son subprogramas que realizan tareas específicas. Para invocarlo, es decir, para hacer que se ejecute, basta con escribir su nombre en el cuerpo de otro procedimiento o en el programa principal. La diferencia entre procedimiento y función está dada por su utilización dentro de nuestro diseño de la solución, un procedimiento realiza una tarea y al finalizar retorna al punto donde fue invocado, no así la función al ejecutarse obtiene un valor el cual es retornado al punto donde fue invocado por ejemplo raíz cuadrada es una función por que retorna un resultado.   Declaración de Funciones y Procedimientos Al igual que los identificadores (Variables), los procedimientos y funciones deben declararse dentro del programa. La declaración de un procedimiento NO indica a la computadora que ejecute las instrucciones dadas, sino que indica a la computadora cuáles son estas instrucciones y dónde están localizadas cuando sea necesario.

Funciones y Procedimientos Una función es una un conjunto de instrucciones, con un nombre asociado, que cumple las siguientes características: Tiene uno o más parámetros de entrada. Tiene un parámetro exclusivamente de salida y de tipo simple (es decir, lo que devuelve). Muchos lenguajes de programación no requieren el hecho de que el parámetro sea simple pero en esta asignatura se considerará la versión más purista. Todos los valores de entrada son necesarios y suficientes para determinar el valor de salida.

Funciones y Procedimientos PARÁMETROS DE UN PROCEDIMIENTO O FUNCIÓN Los parámetros o argumentos de una función o procedimiento son el mecanismo que permite el intercambio de datos entre la función o procedimiento que es llamado y el que realiza la llamada. En el momento de definir una función o procedimiento, es necesario especificar los parámetros, con el tipo asociado. En este momento, los parámetros se denominan formales. Por otra parte, en el momento de hacer la llamada a una función o procedimiento, cuando se utilizan literales o variables como lista de parámetros (que deben emparejarse con los parámetros formales en cuanto al tipo y orden). Estos parámetros se denominan reales.

Funciones y Procedimientos Parámetros de entrada Permiten aportar datos a función o procedimiento por parte del algoritmo que le invoca. Un parámetro real asociado con un parámetro formal de entrada, puede ser un literal, una variable o incluso el valor que se obtendrá como resultado de la evaluación de una expresión. La definición de un parámetro formal de entrada se hace anteponiendo el modificador delante del nombre del parámetro formal. Modificando un parámetro formal de entrada nunca se modifica el correspondiente parámetro real.

Funciones y Procedimientos Parámetros de salida Permiten que la acción pueda devolver resultados de su ejecución al algoritmo que invoca. El parámetro real asociado con un parámetro formal de este tipo debe ser necesariamente una variable en la que almacenar el resultado devuelto por la acción. Esa variable no tiene porque haber sido inicializada con anterioridad. Cualquier acción o modificación realizada sobre el parámetro formal de salida se refleja, de forma inmediata, sobre el correspondiente parámetro real. Para la definición de un parámetro formal de salida se debe anteponer el modificador delante del nombre formal.

Funciones y Procedimientos Parámetros de entrada/salida Los parámetros de entrada/salida permiten aportar datos de entrada en un procedimiento o función, que ésta los modifique y los devuelva como resultado al algoritmo que la invoca. El parámetro real asociado con un parámetro formal declarado de entrada /salida, necesariamente debe ser una variable donde almacenar el valor devuelto por el procedimiento o función invocada y debe haber sido inicializado previamente a la invocación. La declaración de un parámetro de entrada/salida se hará anteponiendo el modificador E/S delante del nombre del parámetro formal en la definición de la función.

Funciones y Procedimientos Descomposición de una tarea en Funciones y Procedimientos La mayor complejidad a la hora de aplicar programación estructurada es saber decidir correctamente cuándo extraer código para colocarlo en un procedimiento o función, y cuándo utilizar una u otra. El proceso de identificación de procedimientos y funciones se basa en el empleo de cuestiones lógicas (experiencia y sentido común), ciertas heurísticas y una regla Básica. Existen procedimientos y funciones que realizan procesos de entrada de datos, otras de salida de datos y otras de procesamiento de datos. Un procedimiento o función no debe combinar los tres tipos de tareas.

Funciones y Procedimientos Entre las heurísticas a tener en cuenta se encuentran las siguientes: 1. Cada vez que se necesita operar con ciertos tipos de datos compuestos (como registros o vectores) suele resultar necesario disponer de procedimientos para la lectura de esos datos, otras para la visualización de los mismos y finalmente otras que implementen las distintas operaciones necesarias. 2. Las operaciones de inicialización de un algoritmo que se ejecutan antes de empezar a funcionar dicho algoritmo (lecturas de ficheros de disco, inicialización de estructuras de datos) se colocan normalmente en un procedimiento (muchas veces llamado iniciar) si bien, de resultar ser este procedimiento demasiado extenso o complejo, se puede subdividir, a su vez, en otros procedimientos. Esto mismo ocurre con las operaciones que se deben ejecutar justo antes de terminar el algoritmo (volcados a disco, etc.). Por otra parte, si las operaciones son muy sencillas, no será probablemente interesante realizar este proceso.

Funciones y Procedimientos 3. Las operaciones de búsqueda y ordenación en cualquier estructura de datos se implementarán normalmente en procedimientos. 4. Cada una de las funcionalidades que un algoritmo proporcionará a un usuario un procedimiento. Tomando el enunciado del problema, muchas veces se pueden identificar los procedimientos (de más alto nivel) a crear prestando atención a los verbos presentes. 5. Un indicativo de que un procedimiento o función es demasiado grande suele ser el número de líneas que ocupa: si contiene más de 25 – 30 líneas (no se Visualizará totalmente en una sola pantalla) es demasiado grande y, por lo tanto, debe ser descompuesta, a su vez, en procedimientos o funciones más pequeños.

Funciones y Procedimientos 6. Cuando en un algoritmo se repita más de una vez la misma tarea con una diferencia pequeña, esta diferencia pequeña se representará en los parámetros de un procedimiento o función que será capaz de adaptarse a todas las circunstancias en las que pueda ser empleado. En todo caso, hablar de diferencia pequeña implica que las instrucciones ejecutadas son las mismas y que, por ejemplo la única diferencia se encuentra en el número de veces que se ejecuta una composición iterativa o cuestiones muy similares que se puedan parametrizar. Un error muy común es emplear un procedimiento para dos acciones totalmente diferentes empleando un parámetro que indique cuál de ellas ejecutar. 7. La interfaz de un procedimiento o función se diseñará para asegurar la máxima reutilización.

Funciones y Procedimientos ÁMBITO DE VARIABLES Las variables sólo se pueden referenciar desde la función o procedimiento en la que están declaradas. Así, es fundamental restringir el uso de variables a las funciones o procedimientos en las que están declaradas para no sufrir errores de programación debida a efectos laterales. El ámbito de una variable local o parámetro formal v declarada dentro de una función o procedimiento M es la propia función o procedimiento, cuyas instrucciones pueden modificarla o consultarla. A veces, esto puede complicarse debido a que ciertos lenguajes de programación, como Pascal, permiten crear funciones (locales) dentro de funciones, de manera que las variables locales y parámetros formales creados para la contenedora sirven para todas las locales. Otros lenguajes, como C++, permiten crear bloques dentro de funciones o procedimientos, de manera que las variables creadas dentro de ellos tienen como ámbito sólo el bloque mencionado, y sin embargo se puede acceder al resto de variables de la función.

Variables Globales y Locales Ámbito de las variables Variables globales: Están declaradas fuera del cuerpo de cualquier función y antes de que sea utilizada por ninguna de ellas (se recomienda declararlas al comienzo del programa antes de las definiciones de las funciones). El ámbito de estas variables es global, es decir, que son visibles por cualquier función y cualquiera de ellas puede modificar su valor. La vida de estas variables va ligada a la del programa, se crean cuando empieza la ejecución del programa y pueden ser utilizadas hasta que se acabe el mismo. Variables locales: Están declaradas dentro de la función, bien dentro del cuerpo o bien como parámetros formales. El ámbito de la variable se reduce al de la función y fuera de esta no tienen presencia, es decir, sólo puede ser utilizada por la función donde esta declarada

Variables Globales y Locales Ámbito de las variables El intercambio de información entre procedimientos y funciones debe producirse siempre a través de los parámetros y nunca a través de variables globales. Cualquier otro dato cuyo uso sólo tenga sentido dentro de una función o procedimiento, se declarará como una variable local a ésta, incluso en el caso de que una variable similar con el mismo identificador y tipo se use en otros procedimientos y funciones. Tal y como se ha comentado con respecto a las variables globales, una variable local de una función o procedimiento oculta a la variable global con el mismo identificador.

Variables Globales y Locales Por su parte, las variables locales pueden ser: Variables automáticas: Son eliminadas cuando se termina la ejecución de la función donde han sido declaradas, es decir, su vida se limita al tiempo que está activa la función. Los parámetros formales son variables automáticas Variables estáticas: A pesar de que sólo pueden ser utilizadas por la función donde han sido declaradas, no son destruidas al terminar ésta. Por lo tanto, mantienen su valor para la próxima vez en que sea llamada la función. Se declaran, precediendo el nombre del tipo por la palabra "static".

Variables Globales y Locales EFECTOS LATERALES Efecto lateral es cualquier modificación de una variable producida en un procedimiento o función en la que la variable no está declarada. Estos efectos deben evitarse pues introducen dependencias indeseables (la función o procedimiento depende entonces de una variable global, por ejemplo), que son causas de errores muy difíciles de detectar. PRECEDENCIA DEL NOMBRE En un algoritmo pueden definirse identificadores de variables idénticos siempre y cuando se definen en procedimientos o funciones distintas.

PROCESO DE INVOCACIÓN DE UN PROCEDIMIENTO O FUNCIÓN Al ejecutar un programa, el sistema operativo asigna cierta cantidad de memoria al mismo. El programa en ejecución (proceso en memoria) organiza el espacio asignado atendiendo al siguiente esquema: TEXT es la zona de la memoria donde se almacenan las instrucciones del programa. Muchas veces, en TEXT se almacenan también las constantes, al ser esta zona de la memoria normalmente de sólo lectura. En DATA se almacenan las variables globales (no las constantes).

PROCESO DE INVOCACIÓN DE UN PROCEDIMIENTO O FUNCIÓN El STACK (o pila de llamadas) permite al sistema operativo seguir el flujo de ejecución del programa. Finalmente, el HEAP es una zona ampliable de la memoria donde se almacenan estructuras de datos que pueden variar de tamaño con el tiempo. Cuando aparece una llamada a una función o procedimiento M, se crea en la pila (stack) un registro de activación o entorno de ejecución, denominado marco o frame de la pila, en donde se alojan las variables locales y parámetros formales declarados en la función o procedimiento, así como, la dirección de retorno a la instrucción posterior a la invocación. Una vez creado el entorno, se cede el control a la primera instrucción de M. Si M llama a otra función o procedimiento M', se creará un nuevo frame en la pila, y se procede a la primera instrucción de M'. De este modo se pueden ir apilando llamadas (de ahí, su nombre) mientras sea necesario.

PASO DE PARAMETROS Mecanismos de paso de parámetros en los lenguajes de programación Los mecanismos descritos anteriormente, de paso de parámetros de entrada, salida y entrada/salida, no suelen encontrarse en los lenguajes de programación, por el contrario, lo más típico es encontrar mecanismos de paso por valor y paso por referencia Paso de parámetros por valor Cuando se realiza la llamada de un procedimiento o función, se efectúa una copia de la evaluación de los parámetros reales, que se almacena en una variable local con el mismo nombre que el parámetro formal, dentro del registro de activación. Esto implica que al finalizar la ejecución, estos parámetros se destruyen, y los parámetros reales no se ven afectados. Es el mecanismo más genérico de los lenguajes de programación y en la mayoría de los cuales no es necesario especificar ningún modificador del parámetro formal. El parámetro real puede ser cualquier expresión.

PASO DE PARAMETROS Paso de parámetros por referencia En el paso de parámetros por referencia, en vez de trabajar con una copia de los parámetros reales almacenada en la pila de ejecución, se trabaja directamente sobre el parámetro real, por lo que cualquier modificación realizada sobre el parámetro formal es repercutida automáticamente en el parámetro real. El compilador hace que los parámetros formales declarados en la función o procedimiento apunten a la misma dirección de memoria que los parámetros reales. Este mecanismo de paso de parámetros se usa para parámetros de salida y entrada/salida, por lo que el parámetro real debe ser una variable. Muchas veces este tipo de paso de parámetros, combinado con restricciones de solo lectura, se emplea en algunos lenguajes de programación para sustituir al ineficiente paso de parámetros por valor en pasos de entrada. Nótese que si se pasara un vector por valor, se estaría copiando todo su contenido.

Funciones Un programa en C no es más que una colección de funciones, entre las cuales siempre ha de estar presente la función principal main. ¿Qué es una función en C? Una función es un módulo independiente de código, diseñado para realizar una tarea especifica y que tiene asignado un nombre como identificador, a través del cual puede ser llamada desde otras funciones, y “lanzar” su ejecución. Definición de funciones Para crear una nueva función hay que definirla. Dentro de la definición fijamos el nombre de la función, el tipo del resultado que devuelve, la lista de argumentos y el cuerpo de la función, siguiendo la siguiente sintaxis: tipo_del_valor_devuelto nombre_de_la_función (lista_de_parámetros) { cuerpo_de_la_función }

Funciones Basándonos en la lamina anterior: · Tipo_del_valor_retornado (tipo de la función) Es el tipo del valor que devuelve la función como resultado, a través de la sentencia return. Si la función no devuelve ningún valor, es decir, sino existe ninguna sentencia return dentro de su cuerpo, el tipo de la función debe de ser void. · Nombre_de_la_función Es el identificador de la función. · Lista_de_parámetros_formales Son una lista de variables precedidas de su tipo y separadas por comas. Estas variables copian los valores de los argumentos que utilizamos cuando llamamos a la función. Cuando la función no tiene argumentos se dejan vacíos los paréntesis, o bien se pone entre ellos la palabra reservada void, para indicar exactamente eso, que la función esta ‘vacía’ de argumentos.

Funciones Llamada a las funciones Para utilizar las funciones que hemos declarado, simplemente hemos de llamar a la función por su nombre, pasándole entre paréntesis tantos valores (argumentos) como parámetros formales hayamos definido. Estos valores que utilizamos en la llamada, se van copiando sobre las variables definidas como parámetros; por lo tanto ha de existir una correspondencia, no sólo entre el número de valores y el número de parámetros, sino también entre sus tipos. La sentencia return Podemos devolver el valor dentro del cuerpo de la función a través de la sentencia return. Además, es una sentencia de salto que provocaba la salida inmediata de la función, independientemente de su posición relativa dentro del cuerpo de la función. Sintaxis: return valor; // Opcionalmente: return (valor);

Actividades de Tutoría Crear un programa que determine si un numero es primo Crear un programa que determine si un numero es Capicúa Crear un programa que indique si un numero es: Perfecto Abundante Deficiente