Anda di halaman 1dari 6

Universidad de San Carlos Facultad de Ingeniera Escuela de Ciencias y Sistemas Introduccin a la Programacin y Computacin 1 Seccin C Ing.

Walter Mnchez Tutores acadmicos: Selvin Naz, Ever Lux

Prctic 1
Objetivos
Que el estudiante aplique los conocimientos adquiridos en la clase y en laboratorio. Comprender la implementacin en cdigo a partir de un diagrama de flujo. Que el estudiante aprenda y cree su propio criterio en base a las ventajas y desventajas que proporcionan la recursividad respecto a las estructuras cclicas. Que el estudiante desarrolle una aplicacin sencilla para que se familiarice con el lenguaje Java y las estructuras de control condicionales, cclicas y rutinas.

Descripcin
Se le solicita que realice un programa en Java, implementando todos los temas vistos en clase y laboratorio. Para ello se le solicita que desarrolle una calculadora que realice distintas operaciones aritmticas y analticas. El programa debe realizar las siguientes operaciones:

1) Operaciones bsicas (suma, resta, multiplicacin y divisin).

Para las cuatro operaciones bsicas el usuario puede ingresar la cantidad de valores numricos que desee, adems de combinar cualquier operacin. Por ejemplo puede realizar lo siguiente:

Tome de ejemplo las operaciones que realiza una calculadora estndar (por ejemplo la calculadora estndar de Microsoft Windows) en donde usted ingresa valor por valor y se va mostrando el resultado cada vez que presiona un smbolo operacional (+, -, / *) o el signo igual (=) para finalizar la operacin.

Para el ejemplo anterior, la operacin se realizara de la siguiente forma: El usuario ingresa el valor 2 3 5 8 10 2 2 10 El usuario presiona + + * / * = El programa muestra en pantalla: 2 5 10 80 70 35 70 60

Adems debe mostrar en una etiqueta de texto los valores que se van operando, por ejemplo:

2) Operaciones cientficas

Calcular las siguientes operaciones: Seno Coseno Tangente Logaritmo Logaritmo natural Raz cuadrada Raz cbica

El usuario puede ingresar un valor numrico y elegir cualquiera de las opciones, posteriormente el programa le mostrar el resultado redondeando el resultado a un mximo de 10 decimales. Estas operaciones pueden ser combinadas para su respectiva operacin con la suma, resta, multiplicacin y divisin, del inciso 1).

3) Factorial de un nmero

Calcular el factorial de un nmero entero n 0. Se denota como n! y se define como: El programa debe recibir un nmero ingresado por el usuario y debe mostrar en pantalla el proceso realizado para calcularlo y finalmente el resultado obtenido.

4) Mximo comn divisor

Calcular el mximo comn divisor de dos nmeros enteros ingresados por el usuario. Para realizar este clculo puede utilizar el algoritmo de Euclides, que consiste en ir restando el ms pequeo del ms grande hasta que queden dos nmeros iguales, que sern el mximo comn divisor de los dos nmeros dados. El algoritmo de Euclides funciona de la siguiente forma: El usuario ingresa los valores 412 y 596, el algoritmo se aplicara de la siguiente forma 412 412 228 44 596 184 184 184 Finalmente el resultado es 4. 44 140 44 96 44 52 44 8 36 8 28 8 20 8 12 8 8 4 4 4

Debe mostrar en pantalla los valores generados en cada paso por el algoritmo y la respuesta final.

5) Exponenciacin

Calcular el resultado dada la base y su exponente como nmeros enteros. El usuario podr ingresar la base y su exponente y el programa calcular el resultado mostrando el proceso realizado y finalmente el resultado obtenido.

6) Calcular la tercera de un nmero

Calcular si un nmero tiene tercera exacta. Este proceso es sencillo cuando el nmero a evaluar es pequeo, por ejemplo calcular si 27 tiene tercera es sencillo; sin embargo cuando el nmero es de

mayor valor, predecir si tiene tercera exacta puede resultar ms complicado. Para ello existe un mtodo que consiste en lo siguiente: 1. Dado un nmero entero positivo, sumar todos los dgitos del nmero. 2. Normalmente el valor obtenido es ms pequeo, por lo que es ms sencillo evaluar si el nuevo nmero tiene tercera. Por ejemplo, dado el nmero 621. Se sabe que la suma de sus dgitos es 6+2+1=9, y a simple vista se sabe que 9 s tiene tercera exacta. Implementar este mtodo en su programa, pero este no deber retornar nicamente la suma de los dgitos, sino que deber indicar si el valor ingresado tiene o no tercera exacta.

7) Combinatoria de n elementos

La combinacin es un tema estadstico y matemtico que establece el nmero de formas que se pueden formar o combinar grupos sin importar el orden. Por ejemplo si se tienen 10 objetos y se desean formar grupos o subconjuntos no ordenados de 3 en 3, el resultado ser 220. La frmula de la combinacin es: ( ( ) )

Donde n y r son los valores ingresados por el usuario. Por ejemplo el usuario puede solicitar la combinacin de 5 (n) elementos en grupos de 2 (r) no ordenados y el programa le devolver el resultado 15.

8) Factorizar un valor numrico

Descomponer en factores el valor numrico dado por el usuario. Por ejemplo: Valor ingresado: 330 Operar: 330 165 55 11 1 2 3 5 11
Mitad Tercera Quinta onceava unidad

Mostrar en pantalla, el listado de nmeros que son factores del nmero: 2 * 3 * 5 * 11 = 330 Nota: si un valor numrico se repite, NO es necesario agruparlo con exponente, simplemente debe mostrar la lista de valores. Es decir si el resultado es 2*2*2*2*3, debe mostrarse de la misma forma sin importar el agrupamiento 24 * 3.

9) Descomposicin en factores de adicin

Descomponer en factores el valor numrico dado, de tal forma que los valores que describan la descomposicin al ser sumados den el valor numrico original, estos valores deben ser menores a l. Pueden haber varios casos, los cuales deben ser mostrados en el resultado. Por ejemplo: Si el valor ingresado es 3, tendr dos posibles respuestas 3 = 1+1+1 3 = 2+1

Si el valor ingresado es 4, tendr cuatro posibles respuestas 4 = 1+1+1+1 4 = 2+1+1 4 = 2+2 4 = 3+1

Mostrar en pantalla, el listado de todas las posibles soluciones que son factores del nmero.

10) Algoritmo chino de multiplicacin

El algoritmo chino de multiplicacin establece que: ( ) ( ) ) ( )

) ( )

{ (

Implemente en su programa dicho mtodo, en donde el usuario pueda ingresar los dos valores numricos solicitados y muestre el resultado indicando a cul de los dos casos pertenece. Nota: debe realizar la operacin como el mtodo lo indica, de lo contrario no tendr validez.

Entregables
Cdigo fuente y el ejecutable (Archivo .jar) y documentacin (manual de usuario y tcnico en formato pdf). Todo esto deber ir comprimido en un archivo .rar o .zip. La entrega se deber realizar en el rea de tareas de la universidad virtual y debern enviarla al correo del laboratorio ipc1c.lab@gmail.com. Tomen en cuenta que deben enviarla por los dos medios (UV y correo). El asunto del correo es Practica1_carnet. La fecha lmite de entrega es el viernes 15/03/2013 antes de las 22:00 horas

Restricciones
Los problemas 3, 4, 5, 6, 7, 8 y 9 deben ser resueltos utilizando funciones recursivas, de lo contrario no tendrn validez. En el manual tcnico se debe incluir la descripcin de la solucin de cada problema as como su respectivo diagrama de flujo. La prctica se debe realizar sobre lenguaje Java. El IDE de programacin queda libre. Tomar en cuenta que si su prctica no funciona (no se ejecuta) no hay forma de calificarla. La interfaz grfica de la aplicacin queda a criterio del estudiante, pudiendo utilizar componentes awt y/o swing o si lo desea nicamente por consola, pero que cumpla con todas las indicaciones. La prctica es individual. En la calificacin se realizarn 3 preguntas que estarn incluidas en el punteo total de la prctica. Est totalmente prohibido copiar cdigo de internet, si es as la nota ser totalmente afectada con un valor de 0 puntos. Esto se solicita porque para efectos de calificacin debern de modificar su cdigo en el momento. Toda copia detectada tendr 0 (cero) de nota y ser sancionada segn el reglamento de la escuela de ciencias y sistemas. No se aceptar ni calificar ninguna prctica enviada despus de la hora indicada.