Você está na página 1de 7

Mtodo

En la programacin orientada a objetos, un mtodo es una subrutina asociada exclusivamente a una clase (llamados mtodos de clase o mtodos estticos) o a un objeto (llamados mtodos de instancia). Anlogamente a los procedimientos en los lenguajes imperativos, un mtodo consiste generalmente de una serie de sentencias para llevar a cabo una accin, un juego de parmetros de entrada que regularn dicha accin y, posiblemente, un valor de salida (o valor de retorno) de algn tipo. Algunos lenguajes de programacin asumen que un mtodo debe de mantener el invariante del objeto al que est asociado asumiendo tambin que ste es vlido cuando el mtodo es invocado. En lenguajes compilados dinmicamente, los mtodos pueden ser objetos de primera clase, y en este caso se puede compilar un mtodo sin asociarse a ninguna clase en particular, y luego asociar el vnculo o contrato entre el objeto y el mtodo en tiempo de ejecucin. En cambio en lenguajes no compilados dinmicamente o tipados estticamente, se acude a precondiciones para regular los parmetros del mtodo y postcondiciones para regular su salida (en caso de tenerla). Si alguna de las precondiciones o postcondiciones es falsa el mtodo genera una excepcin. Si el estado del objeto no satisface la invariante de su clase al comenzar o finalizar un mtodo, se considera que el programa tiene un error de programacin. La diferencia entre un procedimiento (generalmente llamado funcin si devuelve un valor) y un mtodo es que ste ltimo, al estar asociado con un objeto o clase en particular, puede acceder y modificar los datos privados del objeto correspondiente de forma tal que sea consistente con el comportamiento deseado para el mismo. As, es recomendable entender a un mtodo no como una secuencia de instrucciones sino como la forma en que el objeto es til (el mtodo para hacer su trabajo). Por lo tanto, podemos considerar al mtodo como el pedido a un objeto para que realice una tarea determinada o como la va para enviar un mensaje al objeto y que ste reaccione acorde a dicho mensaje.

[editar] Tipos de mtodos


Como ya se mencion, los mtodos de instancia estn relacionados con un objeto en particular, mientras que los mtodos estticos o de clase (tambin denominados mtodos compartidos) estn asociados a una clase en particular. En una implementacin tpica, a los mtodos de instancia se les pasa una referencia oculta al objeto al que pertenecen, comnmente denominada this o self (referencias a s mismo por sus significados en ingls), para que puedan acceder a los datos asociados con el mismo. Un ejemplo tpico de un mtodo de clase sera uno que mantuviera la cuenta de la cantidad de objetos creados dentro de esa clase. Los llamados mtodos obtener y mtodos establecer (en ingls get y set) proveen un mecanismo para leer y modificar (respectivamente) los datos privados que se encuentran almacenados en un objeto o clase. Algunos lenguajes de programacin requieren la definicin de constructores, siendo estos mtodos de instancia especiales llamados automticamente cuando se crea una instancia de alguna clase. En Java y C++ se distinguen por tener el mismo nombre de la

clases a la que estn asociados. Lenguajes como Smalltalk no requieren constructores ni destructores. Los mtodos de acceso son un tipo de mtodo normalmente pequeo y simple que se limita a proveer informacin acerca del estado de un objeto. Aunque introduce una nueva dependencia, la utilizacin de mtodos es preferida a acceder directamente a la informacin para proveer de una nueva capa de abstraccin (programacin orientada a objetos). Por ejemplo, si una clase que modela una cuenta bancaria provee de un mtodo de acceso "obtenerBalance()" en versiones posteriores de la clase se podra cambiar el cdigo de dicho mtodo substancialmente sin que el cdigo dependiente de la clase tuviese que ser modificado (un cambio sera necesario siempre que el tipo de dato devuelto por el mtodo cambie). Los mtodos de acceso que pueden cambiar el estado de un objeto son llamados, frecuentemente, mtodos de actualizacin mtodos de mutacin; a su vez, los objetos que proveen de dichos mtodos son denominados bjetos mutables.

Programacin y Mtodos Numricos Prctica 1: Introduccin al lenguaje C

1. Escribir un programa que le pida al usuario las notas de dos exmenes parciales y que calcule el promedio de las dos notas, mostrando este promedio por pantalla con dos decimales.

1. Escribir un programa que le pida al usuario las notas de dos exmenes parciales y un trabajo prctico y que calcule la nota final de la materia, sabiendo que sta se determina de la siguiente manera: la nota del primer parcial representa el 30% del total, la nota del segundo parcial representa el 20%, y la nota del trabajo prctico representa el 50%.

1. Se leen los coeficientes reales A, B y C correspondientes a una funcin cuadrtica de la forma f(x) = Ax2 + Bx + C que sabemos que tiene dos races reales. Escribir un programa que muestre estas dos races (qu hay que suponer sobre los datos de entrada?).

1. Luego de una carrera, se conocen la hora de largada y de llegada de un participante, expresadas como (horas, minutos). Ambas horas corresponden al mismo da.

1. Escribir un programa que muestre el tiempo que tard el participante en minutos. 2. Escribir un programa que muestre este tiempo en horas y minutos.

1. Conociendo las tres notas obtenidas por un alumno en una materia, decidir y mostrar por pantalla si el alumno est aprobado o desaprobado, sabiendo que debe tener promedio mayor o igual a 6 para aprobar.

1. Cmo se modifica el programa si ahora se pide que todas las notas sean mayores o iguales a 6 para aprobar?

1. Escribir un programa para calcular el importe que se le facturar a un cliente por consumo de electricidad, sabiendo que la compaa cobra una tarifa fija de $20 pesos que incluye los primeros 200 KW consumidos, y los KW excedentes se cobran a $0.50 por KW. Adems, se agregan $7.80 de impuestos. El programa debe tomar como entrada los valores del medidor al comienzo y al fin del perodo.

1. Un ao es bisiesto si es mltiplo de 4 pero no es mltiplo de 100. Como excepcin a esta regla, los aos que son mltiplos de 400 s son bisiestos (por ejemplo, el ao 1900 no fue bisiesto, pero el ao 2000 s lo fue). Escribir un programa que le pida un ao al usuario y que indique si ese ao fue o ser bisiesto.

1. Se leen los coeficientes reales A, B y C correspondientes a una funcin cuadrtica de la forma f(x) = Ax2 + Bx + C. Escribir un programa que determine la cantidad de races reales de la ecuacin, y que muestre las races reales en caso de que existan.

1. Cmo se modifica el programa si ahora se pide calcular todas las races, sin importar si son reales o complejas?
Programacin y Mtodos Numricos Prctica 2: Ciclos y funciones

Primera parte: ciclos 1. Escribir un programa que tome como parmetro un nmero entero positivo n, y que calcule la suma 1 + 2 + 3 + + n.

1. Escribir un programa que le pida al usuario un nmero entero positivo y que calcule el factorial de ese nmero, informndolo por pantalla.

1. Escribir un programa que tome como parmetro un nmero entero positivo, y que calcule la suma de los divisores positivos del nmero ingresado (sin contar el mismo nmero).

1. Un nmero entero es primo si tiene exactamente dos divisores positivos.

1. Escribir un programa que le pida al usuario un nmero entero positivo, y que informe si el nmero ingresado es primo.

1. Repetir el punto anterior, pero ahora suponiendo que el nmero que ingresa el usuario puede ser negativo.

1. Modificar el programa del punto 1 para protestar en caso de que el nmero ingresado por el usuario no sea positivo, impidiendo continuar con las acciones hasta que el usuario ingrese un nmero positivo.

1. Escribir un programa que le permita a dos usuarios jugar a adivinar un nmero. El primer usuario introduce un nmero entre 1 y 100, y a continuacin el segundo usuario debe adivinar el nmero ingresado. Cada vez que el segundo usuario hace un intento, el programa debe informar si el nmero a adivinar es mayor o menor que el intento. El programa debe detenerse con un mensaje de felicitacin cuando el segundo usuario adivina el nmero.

1. Modificar el programa para que al terminar informe la cantidad de intentos que fueron necesarios para adivinar el nmero.

1. Modificar el programa para que, adems del nmero a adivinar, el primer usuario informe tambin el rango de nmeros donde el segundo usuario debe buscar (es decir, en lugar de buscar entre 1 y 100, el segundo usuario deber buscar entre n y m, siendo n y m dos nmeros introducidos por el primer usuario). El programa debe protestar si el segundo usuario introduce un nmero que no est en el rango indicado.

1. Escribir un programa que permita ingresar las notas de los 25 alumnos de una comisin, y que calcule la cantidad de alumnos con nota 10, la cantidad con nota 9, etc., informando estas cantidades al finalizar la carga de notas.

1. Escribir un programa que permita al usuario introducir una cantidad indeterminada de notas de un examen. El programa debe aceptar una nota continuamente mientras no se introduzcan notas invlidas (una nota vlida es una nota entre 1 y 10). Cuando se introduce una nota invlida, el programa debe terminar y mostrar por pantalla el promedio de las notas ingresadas.

1. Un negocio va a realizar un descuento del 25 % en todos sus precios. Escribir un programa que pregunte continuamente los precios de cada artculo, mostrando para cada uno el precio con el descuento. El programa se debe detener cuando se ingresa un artculo con precio igual a cero.

1. Modificar el programa para que al comenzar solicite el porcentaje de descuento que se aplicar a todos los artculos.

1. Modificar el programa para que al ingresar un artculo con precio negativo, se pida al usuario un nuevo porcentaje de descuento.

1. El nmero se puede aproximar por medio de la siguiente serie:

= 2 1/3 + 1/5 1/7 + 1/9 1/11 + 1/13 1/15 + ... 1. Escribir un programa que le pregunte al usuario la cantidad de trminos a sumar de la serie, y que muestre la aproximacin con esa cantidad de trminos.

1. Escribir un programa que le pida al usuario una tolerancia , y que sume todos los trminos que sean mayores que la tolerancia.

Segunda parte: funciones

1. Escribir una funcin que tome como parmetro un nmero entero y que retorne el factorial de ese nmero. Utilizar la funcin en un programa que calcule nmeros combinatorios.

1. Utilizando la funcin del ejercicio anterior, escribir un programa que aproxime el valor del nmero e por medio de la siguiente serie:

1. Escribir una funcin que tome como parmetro un nmero entero y que determine si el nmero es primo o no. Utilizar esta funcin para escribir un programa que calcule la cantidad de nmeros primos entre 1 y 1000.

1. Escribir una funcin que tome como parmetro un nmero real y que calcule el mdulo del nmero ingresado. Utilizar esta funcin para escribir un programa que le pida al usuario tres nmeros y que muestre por pantalla el promedio de los mdulos de estos nmeros. Programacin y Mtodos Numricos Prctica 3 Aritmtica de punto flotante

1. Listar todos los nmeros que se pueden representar en un sistema de punto flotante binario con tres bits de mantisa, un bit de signo y dos bits en el exponente. Graficar estos nmeros en la recta real.

1. Escribir los siguientes nmeros en binario:

1.

1. 2. 3. 4. 5. 6.

x x x x x x

= = = = = =

18 25 0.25 0.625 0.1 0.2

En funcin de estos resultados, qu nmeros pueden ser expresados con un nmero finito de dgitos binarios a la derecha de la coma binaria? 1. Encontrar dos nmeros cuya representacin en punto flotante de simple precisin (23 bits en la mantisa) no sea exacta (es decir, que tengan error de representacin).

1. Encontrar dos nmeros cuya representacin en punto flotante de simple precisin sea exacta, pero cuya suma en esta representacin no sea exacta.

1. Es posible encontrar dos nmeros positivos cuya suma en punto flotante de simple precisin sea menor que el mayor de ambos nmeros?

1. Se deben sumar 10 nmeros reales positivos de distintas magnitudes. Con cul de las siguientes estrategias se obtiene un menor error absoluto?

1. 1. Sumarlos de mayor a menor 2. Sumarlos de menor a mayor 3. Sumarlos en un orden aleatorio

1. Qu significa un error absoluto de 0.5 unidades? Qu significa un error relativo de 0.01? Qu significa un error porcentual de 0.01? Cul de estas medidas de error es preferible en general?

Você também pode gostar