Capítulo 2 “Subprogramas/Funciones - Arreglos”

Slides:



Advertisements
Presentaciones similares
2. Manejo de memoria Manejo de memoria estática
Advertisements

Métodos y parámetros.
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
Lenguaje de programación Java
Programación II Recursividad
Funciones y recursividad
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Procedimientos y Funciones
Introducción a la Programación
FUNCIONES EN C.
Informática II Prof. Dr. Gustavo Patiño MJ
Tratamiento de listas en Java
1.3 Programación modular. Subprogramas.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Algoritmo y Estructura de Datos I
Estructuras de Datos Memoria y Variables. Conceptos Computador: CPU + Memoria + Dispositivos E/S La memoria se encarga de almacenar los datos y los programas.
Facultad de Ingeniería y Arquitectura Introducción a la Computación 2006 – II (7ma Semana) Lunes 18 de Setiembre del 2006 Juan José Montero Román.
Método en Java.
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
2 Acciones y funciones 2.1 Concepto
Funciones en lenguaje C
Funciones y procedimientos
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
FUNCIONES Y PROCEDIMIENTOS
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
Modificadores.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
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.
SCJP Sun Certified Programmer for Java 6
Semana 5 Subprogramas..
Clase Teórica No. 4 Programación IV
PROCEDIMIENTOS FUNCIONES
Funciones1 PROGRAMACIÓN ESTRUCTURADA EN PSEUDÓCODIGO Profr. Miguel Rodríguez Hernández PROGRAMACIÓN MODULAR O FUNCIONAL.

Capítulo 1 “Elementos de Programación”
Descomposición Modular. Funciones
Computación II Repaso de java Karina Figueroa Mora.
Fundamentos de Programación
Material de apoyo Unidad 4 Estructura de datos
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Unidad II Introducción a la programación en C++
Estructuras de Control.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Elementos básicos del lenguaje
Java.
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
ING.CIP.IVAN PETRLIK AZABACHE. SEMANA 02 Control de flujo  Condicional Simple if( condicion) { //sentencia 1 // sentencia 2. }
Definición de subprogramas en C
COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables
ESMERALDA LIMÓN ESCUTIA AURORA MENDOZA PASTRANA RUTH LÓPEZ muñoz I.S.C
ING.CIP.IVAN PETRLIK AZABACHE. SEMANA 03 ESTRUCTURAS REPETITIVAS.
INTRODUCCION A LA PROGRAMACION
SCITMina | by Microsoft Bienvenidos Eduardo Daniel Tenorio Mayo Microsoft Student Partner Taller de Programación Orientada a Objetos Con C# Edgar Edel.
 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.
Funciones Copyright © 2005 Unidad 1. Copyright © 2005 Objetivos del Aprendizaje Explicar la naturaleza y usos de las funciones. Describir algunas funciones.
MEMORIA DINÁMICA.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
1 Métodos. 2 Un método es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante.
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
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.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Transcripción de la presentación:

Capítulo 2 “Subprogramas/Funciones - Arreglos”

Programas extensos y complejos Un programa puede volverse complejo, esta complejidad puede ser abordada en tareas más simples, pequeñas y por lo tanto más manejables Enfocándonos en nuestro objetivo, procedemos a dividir nuestro problema en tarea más simples llamados subprogramas/funciones. “Divide et impera” - Divide y Conquista (Julio César)

Subprogramas/Funciones Un elemento clave para diseñar programas es la creación de subprogramas/funciones Permiten: Organizar de mejor manera el código Reducir la cantidad de código redundante en un programa. Reutilizar código Solucionar problemas grandes de una forma más fácil Sentencias que se ejecutan muchas veces y que no están contenidas en un ciclo, por lo general se definen como un subprograma/función

Subprogramas/funciones en Java Uno de los mecanismos de Java para implementar funciones o subprogramas es a través de los “métodos estáticos”:

Propiedades de los métodos estáticos Parámetros: Se pueden usar en cualquier lugar del código del cuerpo de la función de la misma forma que se usan las variables locales. La diferencia es que los parámetros se inicializan con el valor de los argumentos provistos por la llamada. Alcance: El conjunto de sentencias que se pueden referir al nombre de las variables. El alcance de las variables en un método estático está limitado para el cuerpo del método (variables locales). Por lo tanto, no se puede referir a una variable en un método estático que esta declarado en otro.

Propiedades de los métodos estáticos Múltiples métodos. Se pueden definir todos los métodos estáticos que se necesiten. Estos métodos son independientes, excepto aquellos que pueden interactuar a través de llamadas. Llamando a otros métodos estáticos: Los métodos estáticos definidos en un archivo .java pueden llamar a algún otro método estático en el mismo archivo o algún método estático en la biblioteca Java como Math. Múltiples parámetros: Como las funciones matemáticas, un método estático en Java puede tomar más de un argumento (o parámetros). Por ejemplo para calcular la hipotenusa de un triángulo con lados a y b; public static double calcularHipotenusa(double a, double b) { double auxiliar=Math.sqrt(a * a + b * b); return auxiliar; }

Usando y definiendo métodos estáticos Ya se ha utilizado la Java Math library, que contiene métodos estáticos fáciles de entender. Por ejemplo, cuando escribimos Math.abs(a-b) en un programa, el efecto es como si se reemplazara el código por el valor computado por el método Java Math.abs() cuando se presenta con el valor a-b. Para crear este “efecto”, lo que se realiza es cambiar el flujo de control del programa.

Llamado de métodos

Ejemplo Implemente un programa que utilice un procedimiento que despliega un menú por pantalla Entrada: Opción del menú escogida Salida : Mostrar por pantalla la opción que se escogió

Ámbito de las variables Las variables definidas en los programas se clasifican en: Variables Locales Declaradas y definidas dentro de un método Es visible solamente dentro de el método donde fue definida Es distinta de otras con el mismo nombre Puede ser declarada en cualquier parte del programa Variables Globales Es aquella que esta declarada en el programa principal fuera de todo método y con la palabra static para poder utilizarla desde el main. Es visible en todo el programa Si se declara una variable local con el mismo nombre, la variable local oculta a la global

Ejemplo public class Hipotenusa { //z: variable global static double z; //a b: parametros public static double calcularHipotenusa(double a, double b) { // auxiliar: variable local double auxiliar=Math.sqrt(a * a + b * b); return auxiliar; } public static void main(String[] args) { // x y: variables locales double x,y; StdOut.println("Ingrese cateto X"); x=StdIn.readDouble(); StdOut.println("Ingrese cateto Y"); y=StdIn.readDouble(); z=calcularHipotenusa(x,y); StdOut.println("La hipotenusa vale:" + z);

Ámbito de las variables Se aconseja programar en base a variables locales Hace a los métodos independientes Es más fácil la reutilización de código La comunicación entre métodos y programa principal, se realiza en base a los parámetros Para utilizar un método solo se debe saber lo que este hace, no se debe uno preocupar de cómo este fue diseñado

Parámetros Una lista de parámetros, o datos de entrada, puede ser incluida como parte del método. Esta lista de parámetros permite que ciertos datos sean transferidos al método desde el sub-programa que lo llama (mensaje).

Implemente un programa que calcule el i-esimo número de Fibonacci Ejemplo Implemente un programa que calcule el i-esimo número de Fibonacci Entrada: El valor de i Salida: Mostrar por pantalla el i-esimo número de Fibonacci

Ejemplo Fibonacci public class FiboFunction { public static int fibo(int posicion) { int aux = 0, x1 = 1, x2 = 1; if (posicion == 1 || posicion == 2) return 1; else for (int i = 3; i <= posicion; i++) { aux = x2 + x1; x1 = x2; x2 = aux; } return aux; public static void main(String[] args) { StdOut.println(fibo(6)); Todo método termina su ejecución cuando encuentra un return, el cual debe devolver el tipo de dato acorde a lo declarado.

Los métodos pueden recibir datos de entrada de dos formas Paso de parámetros Los métodos pueden recibir datos de entrada de dos formas Con Variables Globales, lo que no es recomendable pero se puede realizar Para un mayor control del flujo del programa y el valor de las variables se recomienta utilizar el Paso de parámetros

Existen dos formas de pasar parámetros a un método Paso de parámetros Existen dos formas de pasar parámetros a un método Paso de parámetros por valor Para las variables de tipo primitivos Paso de parámetros por referencia Para objetos* (como los arreglos).

Es lo que hemos visto hasta ahora Por valor Es lo que hemos visto hasta ahora El método trabaja con una copia de la variable o valor original El valor de la variable original que es pasada como parámetro no se altera dentro del método El método puede modificar la copia, pero no altera a la variable original

Paso por referencia Una manera para que los métodos trabajen con la variable original, en vez de utilizar una copia de estas, se le llama paso paso por referencia Para pasar un parámetro por referencia se debe utilizar objetos* (como los arreglos). *objetos se profundizan en C3

Paso por referencia Se crea un enlace entre el variable pasada como parámetro y la variable recibida en el método Toda modificación que se haga a la variable dentro del método se refleja en la variable original pasada como parámetro

Tenemos 0 Ejemplo por Valor public class Valor{ public static void llenarEntero(int i) { i=100; } public static void main(String[] args) { int numero=0; llenarEntero(numero); StdOut.println("Tenemos :" + numero);

Tenemos: 100 Ejemplo Referencia public class Referencia { public static void llenarEntero(int i[]) { i[0]=100; } public static void main(String[] args) { int[] numero=new int[1]; numero[0]=0; llenarEntero(numero); StdOut.println("Tenemos :" + numero[0]);

Una función retorna al método que lo llamo cuando: Retorno de una Función Una función retorna al método que lo llamo cuando: Se encuentra la llave que cierra la función O cuando la sentencia de return es ejecutada Puede ser usada con o sin un valor asociado Si el método fue declarado como aquella que retorna un valor de un cierto tipo, entonces debe retornar un valor. Solo funciones declaradas con tipo void pueden no usar el return

Fin Todavía es tiempo …