INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

Tamaño: px
Comenzar la demostración a partir de la página:

Download "INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones"

Transcripción

1 INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL BLACKJACK Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

2 1. Explicación del juego de cartas del Blackjack El Blackjack es un juego de cartas originalmente llamado 21 y que apareció en Francia por el año Los que juegan al Blackjack no compiten entre ellos, sino contra la banca. Las dos partes se turnan para coger cartas de la baraja intentando obtener 21 puntos o un resultado mayor que el oponente, pero sin pasarse de 21. Para el cálculo de la puntuación, el palo de la carta no influye en absoluto. Tampoco influye para el desarrollo del juego. El As vale 1, pero si al cambiarlo por 11 conseguimos una puntuación igual o menor a 21, lo cambiaremos. Las figuras valen 10, y el resto de cartas tienen el valor de su número correspondiente. Para comenzar el juego se debe hacer una apuesta. Después de que se hayan hecho las apuestas, la banca reparte dos cartas a cada jugador y otras 2 a si misma. Los jugadores tienen sus cartas boca arriba y la banca tiene una boca arriba y otra boca abajo. Si un jugador logra Blackjack (21 puntos con las 2 primeras cartas) recibirá de la banca el doble de la cantidad apostada. Si después de coger cartas adicionales logra 21 puntos y gana, esto no se considera como un Blackjack, luego recibirá de la banca la cantidad apostada, no el doble. En caso de que la banca o el jugador hayan acumulado más de 21 puntos se denomina bancarrota. En este caso pierde el que obtuvo más de 21. Si los 2 se pasan de 21 el dinero de la apuesta del jugador será para la banca. Cuando el usuario lo desee puede plantarse y no recibir más cartas. En ese caso la banca deberá seguir jugando y si la banca obtiene más de 21 puntos gana el jugador. Si la banca obtiene menos de 21 puntos, sus puntos se comparan con los del jugador y gana el que tengo un mayor número de puntos en su haber. Por último, en caso de empate gana la banca.

3 2. Explicación de nuestro programa Nuestro programa está hecho en Java y consta de 5 clases, que son las siguientes: 2.1 TextIO.java La clase TextIO es la encargada de realizar las operaciones que van a interactuar con el jugador. Lo único que utilizaremos de esta clase son los métodos put() y putln() para escribir en pantalla y los métodos getlnint() y getlnchar() para recibir del usuario los datos que nos va a ir introduciendo. Esta es una clase de la que ya disponíamos antes de empezar a hacer el programa y que ni siquiera hemos modificado. 2.2 Carta.java La clase Carta es la encargada de definir cada una de las cartas que van a definir la baraja. Con un entero palo y otro entero valor somos capaces de definir una carta de forma inequívoca. También definimos una serie de constantes para definir los posibles palos y los posibles valores de las cartas que nos vamos a encontrar. Como se puede observar, para las cartas comprendidas entre el 2 y el 10 no es necesario definir ninguna constante, ya que el propio número de la carta será su valor. La clase define otra serie de métodos auxiliares utilizados para obtener la propiedad de cada carta. Podemos obtenerla tanto en formato entero, que es como se ha definido como propiedad de la clase; o también tenemos otra pareja de métodos que nos devuelven las propiedades de la carta como si fuera un String. Estos métodos son getpalo(), getvalor(), getpalostring() y getvalorstring().

4 Otro método tostring() nos devuelve un String con la descripción del palo, es decir, As de Diamantes o 4 de Picas, lo cual nos será útil para decirle al jugador las cartas en cuestión. 2.3 Baraja.java La clase Baraja define simplemente una baraja de cartas, que lo simularemos con un array de objetos Carta. Está formada únicamente por 4 métodos, uno de ellos el constructor, encargado de generar toda la baraja de 52 cartas. Con un par de bucles for vamos recorriendo los posibles palos y los posibles valores hasta generar la baraja completa. Definimos otra propiedad restantes para saber cuantas cartas nos quedan en la baraja. El método barajar() se encarga de ordenar la baraja. Para ello utilizaremos el método random de la case Math y una variable auxiliar. Por último, el método restantes() nos dice cuantas cartas quedan en la baraja y el método robar() coge una carta de la baraja, la primera del mazo. Dado que en el constructor no barajamos la baraja, lo haremos en el método de robar en caso de que la baraja esté completa. También nos definimos un array auxiliar llamado vistas, que utilizará la banca para decidir si coge nueva carta o no. Este array tiene tamaño 13 y en cada una de las posiciones tiene el número de cartas, cuyo valor es dicha posición, que se encuentran descubiertas en la mesa o las posee la banca. 2.4 Mano.java Utilizaremos la clase Mano para indicar el número de cartas que va a tener un jugador y la banca en la mano. Para ello utilizaremos un Vector de objetos Carta. No utilizamos un array como en la clase Baraja, porque en este caso no sabemos cual va a ser el número de cartas que va a tener cada participante del juego en su mano.

5 En la clase Mano también tendremos la información sobre el dinero apostado por dicho jugador en esta ronda del juego. Aquí definiremos todas las alternativas que puede tomar el jugador durante la partida cuando tiene un conjunto de cartas en su mano. Vamos a explicar brevemente cada una de ellas. Para empezar, los métodos cogercarta() y dejarcarta() realizan las acciones que sus nombres indican. En el caso de dejarcarta() podemos soltar una carta determinada o la que se encuentre en una posición indicada. El método soltar() suelta todas las cartas que tiene el jugador en la mano. El método contar() cuenta las cartas que tiene el jugador en su mano y el método obtenercarta() devuelve la carta situada en una posición específica. Por último, el método más importante de esta clase es el getblackjackvalor(). Este método se encarga de contar la puntuación de las cartas que tiene el jugador en su mano. Para eso se basará en que las figuras tienen un valor de 10 puntos, las cartas entre el 2 y el 10 tienen el valor especificado en su número y el as tendrá un valor u otro en función de la jugada. Como ya se ha explicado antes, el as valdrá 11 puntos en caso de que la suma con el resto de cartas de la mano sea menor o igual que 21. En caso contrario valdrá 1 punto. 2.5 Blackjack.java La clase Blackjack es la clase principal del programa, ya que en ella se encuentra el método main() que va a llevar el desarrollo del juego. Lo primero que se hace al entrar en el método main() es presentarle al usuario el juego y sus autores, y a continuación preguntar cual va a ser la cantidad inicial de dinero en euros de la que va a disponer cada jugador y el número de jugadores que van a participar en el juego. Una vez hecho esto comienza el juego y el programa entra en un bucle infinito del que solo se saldrá si todos los jugadores desean interrumpir la partida o si se quedan sin dinero.

6 Inmediatamente después se le preguntará a cada jugador cuanto dinero desea jugar y se le presentará un mensaje de error en caso de que intente jugar con más dinero del que tiene o en caso de que introduzca una apuesta negativa. Una vez comprobado que la apuesta es correcta y que todavía quedan jugadores en la partida (no se han arruinado todos o han abandonado) podemos pasar al método jugar(), que es el que va a llevar la partida. Lo primero que haremos en el método jugar() será repartir 2 cartas a cada jugador y otras 2 a la banca. Antes de imprimir por pantalla las cartas del jugador y la carta descubierta de la banca se comprobará si alguno de los jugadores o la banca suma 21 puntos (Blackjack) en cuyo caso se termina el juego y se vuelve a realizar una nueva apuesta. En caso de que no haya Blackjack se muestran las cartas a cada jugador, por orden, y este decide si se planta o si sigue jugando. El jugador introduce un carácter C para pedir nueva carta o un P para plantarse. En caso de que introduzca un carácter incorrecto se le mostrará un mensaje de error. Si el jugador decide plantarse, el turno pasará a la siguiente y si decide coger una nueva carta se le añadirá a su mano y, si no supera los 21 puntos, se le volverá a preguntar C o P. En caso de superar los 21 puntos el jugador habrá perdido. Este proceso se irá repitiendo para todos los jugadores involucrados en la partida. Una vez que todos los jugadores hayan jugado, es el turno de la banca. En los casinos, la banca tiene la norma de en cuanto supere los 16 puntos debe plantarse, pero nosotros hemos hecho un algoritmo más elaborado para dotarle de más inteligencia. Cuando sea el turno de la banca, esta deberá decidir si roba nueva carta o no. Para decidirse comparará 2 posibles situaciones. La primera de ellas será calcular el beneficio que obtendría en la situación actual, teniendo en cuenta su puntuación, la de los demás y los jugadores que ya se han pasado de 21 puntos.

7 Para calcular lo segundo nos basaremos en la probabilidad de obtener una carta u otra al robar del mazo. Para ello, calcularemos la probabilidad de obtener la carta x y el beneficio que obtendríamos con dicha carta. Sumando todas las posibilidades obtendríamos un beneficio hipotético. Beneficio hipotético = probabilidad(carta i) Beneficio(carta i) Por tanto, comparando el beneficio hipotético con el beneficio actual podemos decidir si cogemos una nueva carta o no. Una vez hecho esto deberemos ver quien ha ganado. Todos compiten contra la banca, luego esta comparación deberemos hacerla entre cada uno de los jugadores y la banca. Durante el programa, siempre que algún jugador gana o pierde asignamos un valor a un entero dentro de un array llamado resultados y salimos del bucle. El valor de dicho entero determina quien ha ganado y en qué condiciones. En la siguiente tabla presentamos los posibles valores de dicho entero y lo que significa cada uno: Valor Significado 0 Situación inicial 1 He ganado -1 He perdido 2 He logrado Blackjack NOTA: La práctica la hemos hecho enteramente juntos, por tanto no podemos especificar que parte ha hecho cada uno.

8 3. Código fuente comentado Carta.java /* Clase con la que vamos a representar cada una de las cartas de la baraja */ public class Carta { /* Constantes enteras que definen los palos y las cartas que no tienen valor numerico */ public final static int ESPADAS = 0, CORAZONES = 1, DIAMANTES = 2, PICAS = 3; public final static int AS = 1, JACK = 11, QUEEN = 12, KING = 13; /* Las 2 propiedades de nuestra carta seran valor y palo. Las definimos como privadas y a continuacion definimos los metodos para obtenerlas */ private final int palo; private final int valor; /* Metodo constructor */ public Carta(int val, int pal) { valor = val; palo = pal; /* Metodos que nos devuelven valor y palo como entero y como String */ public int getpalo() { return palo; public int getvalor() { return valor; public String getpalostring() { switch ( palo ) {

9 case ESPADAS: return "Espadas"; case CORAZONES: return "Corazones"; case DIAMANTES: return "Diamantes"; case PICAS: return "Picas"; default: return "??"; public String getvalorstring() { switch ( valor ) { case 1: return "As"; case 2: return "2"; case 3: return "3"; case 4: return "4"; case 5: return "5"; case 6: return "6"; case 7: return "7"; case 8: return "8"; case 9: return "9"; case 10: return "10"; case 11: return "J"; case 12: return "Q"; case 13: return "K"; default: return "??"; public String tostring() { return getvalorstring() + " de " + getpalostring(); Baraja.java /* Clase que representara nuestra baraja de 52 cartas*/ public class Baraja { // La baraja sera un array de Cartas private static Carta[] baraja; // Definimos un array de cartas vistas. En cada posicion del array tendremos el numero de cartas, cuyo // valor es dicha posicion, que hay descubiertas sobre la mesa o tiene la banca public int[] vistas;

10 // Numero de cartas robadas private int robadas; // Metodo constructor. Recorremos todos los valores posibles y todos los palos posibles public Baraja() { baraja = new Carta[52]; vistas = new int[13]; int creadas = 0; for ( int palo = 0; palo <= 3; palo++ ) { for ( int valor = 1; valor <= 13; valor++ ) { baraja[creadas] = new Carta(valor,palo); creadas++; robadas = 0; // Ordenamos la baraja en orden aleatorio public void barajar() { for ( int i = 51; i > 0; i-- ) { int rand = (int)(math.random()*(i+1)); Carta temp = baraja[i]; baraja[i] = baraja[rand]; baraja[rand] = temp; robadas = 0; // Numero de cartas que nos quedan en la baraja public int restantes() { return 52 - robadas; // Cuando robamos una carta cogemos la primera del mazo y actualizamos el array de cartas vistas public Carta robar() { if (robadas == 52) barajar(); robadas++; vistas[((baraja[robadas-1]).getvalor())-1]++; return baraja[robadas - 1];

11 Mano.java /* Con esta clase vamos a representar las cartas que tiene un jugador en cierta jugada y el dinero que ha apostado en esa jugada */ import java.util.vector; public class Mano{ // Se trata de un vector y no un array porque el numero de cartas en la mano es variable private Vector mano; int apuesta; // Constructor public Mano() { mano = new Vector(); // Suelta todas las cartas public void soltar() { mano.removeallelements(); // Añade una carta a su mano public void cogercarta(carta c) { if (c!= null) mano.addelement(c); // Suelta una de sus cartas public void dejarcarta(carta c) { mano.removeelement(c); // Suelta la carta en la posicion marcada por pos public void dejarcarta(int pos) { if (pos >= 0 && pos < mano.size()) mano.removeelementat(pos); // Cuenta las cartas que tiene en la mano

12 public int contar() { return mano.size(); // Nos dice la carta que tiene en la posicion pos public Carta obtenercarta(int pos) { if (pos >= 0 && pos < mano.size()) return (Carta)mano.elementAt(pos); else return null; // Cuenta los puntos que suman las cartas de nuestra mano public int getblackjackvalor() { int val; boolean as; int cartas; val = 0; as = false; cartas = contar(); for ( int i = 0; i < cartas; i++ ) { Carta carta; int cartaval; carta = obtenercarta(i); cartaval = carta.getvalor(); if (cartaval > 10) { cartaval = 10; if (cartaval == 1) { as = true; val = val + cartaval; /* El as en principio vale 1, pero si al cambiar su valor por 11 conseguimos un resultado igual a 21 o menor lo cambiaremos*/ if ( as == true && val + 10 <= 21 ) val = val + 10; return val;

13 Blackjack.java /* Clase principal que llevara el control del juego */ public class Blackjack { // Metodo main public static void main(string[] args) { int saldo; int[] resultados; int[] saldos; int numero,i; Mano manojugador[]; boolean primera=true; boolean bancarrota[]; // Presentacion TextIO.putln("Bienvenido al juego de Blackjack."); TextIO.putln(" AUTORES"); TextIO.putln("Ignacio Ribas Ramos"); TextIO.putln("Miguel Flecha Lozano"); // Preguntamos por número de jugadores y por la cantidad con la que empiezan TextIO.put("Numero de jugadores:"); numero = TextIO.getlnInt(); TextIO.put("Con que cantidad empezara cada jugador (euros)?"); saldo = TextIO.getlnInt(); // Inicializamos los arrays que vamos a utilizar saldos=new int[numero]; manojugador=new Mano[numero]; resultados=new int[numero+1]; bancarrota=new boolean[numero];

14 for(i=0;i<numero;i++){ saldos[i]=saldo; bancarrota[i]=false; // Comienza el bucle... while (true) { // Le preguntamos a cada jugador cuanto dinero desea apostar for(int j=0;j<numero;j++){ // Creamos la mano manojugador[j]= new Mano(); if(saldos[j]<=0) bancarrota[j]=true; TextIO.putln("JUGADOR NUMERO " + (j+1) +". Tiene " + saldos[j] + " euros."); if(!bancarrota[j]){ do { TextIO.putln("Cuantos euros quiere apostar? (0 para salir)"); manojugador[j].apuesta=textio.getlnint(); if (manojugador[j].apuesta < 0 manojugador[j].apuesta > saldos[j]) TextIO.putln("Su apuesta debe estar entre 0 y " + saldos[j] + '.'); utilizamos el mismo array queda sin dinero, para // En caso de que el jugador no desee jugar más // de booleanos que usamos cuando un jugador se // que la siguiente ronda no se le pregunte if (manojugador[j].apuesta == 0){ TextIO.putln("ADIOS jugador "+(j+1)); bancarrota[j]=true; while (manojugador[j].apuesta < 0 manojugador[j].apuesta > saldos[j]);

15 // En caso de que no se hayan arruinado todos los jugadores entramos al metodo jugar if(!queda_alguno(bancarrota,numero)) resultados = jugar(numero,manojugador,bancarrota); else{ TextIO.putln("Todos los jugadores se han quedado sin dinero o no hay mas jugadores"); TextIO.putln("Adioooos"); System.exit(-1); // Al salir del metodo jugar comprobamos las puntuaciones ya actualizamos los saldos for(int j=0;j<numero;j++){ if((resultados[0]==2) (resultados[0]==1)) saldos[j] = saldos[j] - manojugador[j].apuesta; else{ switch (resultados[j+1]){ case -1: saldos[j] = saldos[j] - manojugador[j].apuesta;break; case 1: saldos[j] = saldos[j] + manojugador[j].apuesta;break; case 2: saldos[j] = saldos[j] + 2*manoJugador[j].apuesta;break; default: saldos[j] = saldos[j]-manojugador[j].apuesta; // Metodo jugar que lleva el desarrollo principal de la partida static int[] jugar(int jugadores,mano[] manojugador,boolean[] bancarrota) { Baraja baraja; Mano manobanca; boolean fin=false; int i,j;

16 // En resultados almacenamos lo que ha hecho cada jugador. // 0 en un principio, -1 si se pasa y 1 si gana. // La posicion 0 sera la de la banca y la posicion i la del jugador i // Pondremos un 2 en caso de blackjack. int resultados[]; resultados=new int[jugadores+1]; for (int m=0;m<=jugadores;m++){ resultados[m]=0; baraja = new Baraja(); // Barajamos y repartimos baraja.barajar(); // La banca roba sus cartas manobanca = new Mano(); manobanca.cogercarta( baraja.robar() ); manobanca.cogercarta( baraja.robar() ); for(i=0;i<jugadores;i++){ // Los jugadores van robando manojugador[i].cogercarta( baraja.robar() ); manojugador[i].cogercarta( baraja.robar() ); // En caso de que el usuario consiga Blackjack (21 a la primera) gana el doble de la apuesta // y se acaba la ronda if ((manojugador[i].getblackjackvalor() == 21)&&(!bancarrota[i])) { TextIO.putln("La banca tiene " + manobanca.obtenercarta(0) + " y " + manobanca.obtenercarta(1) + "."); TextIO.putln("El jugador "+(i+1)+" tiene " + manojugador[i].obtenercarta(0) + " y " + manojugador[i].obtenercarta(1) + ".");

17 TextIO.putln("El jugador "+(i+1)+" tiene Blackjack y gana"); resultados[i+1]=2; fin=true; // Si la banca tiene BJ gana y se acaba la partida if (manobanca.getblackjackvalor() == 21) { TextIO.putln("La banca tiene " + manobanca.obtenercarta(0) + " y " + manobanca.obtenercarta(1) + "."); TextIO.putln("La banca tiene Blackjack y gana."); resultados[0]=2; fin=true; if (fin) return resultados; // Si ninguno de los 2 tiene BJ seguimos con el juego // Comienza la iteracion para cada uno de los jugadores for(j=0;j<jugadores;j++){ banca // Mostramos las cartas de los jugadores y una de las cartas de la TextIO.putln(" JUGADOR "+(j+1)+" "); fin=false; while (!bancarrota[j]) { TextIO.putln("Jugador "+(j+1)+".sus cartas son:"); for ( i = 0; i < manojugador[j].contar(); i++ ) TextIO.putln(" " + manojugador[j].obtenercarta(i)); TextIO.putln("Y suman un total de " + manojugador[j].getblackjackvalor()+" puntos."); TextIO.putln("La banca muestra " + manobanca.obtenercarta(0)); // Carta o se planta?

18 TextIO.put("Carta (C) o se Planta (P)? "); char accion; do { accion = Character.toUpperCase( TextIO.getlnChar() ); if (accion!= 'C'&& accion!= 'P') TextIO.put("Por favor responda C o P: "); while (accion!= 'C'&& accion!= 'P'); // Si se planta salimos del bucle if ( accion == 'P') { TextIO.putln("El jugador "+(j+1)+" se planta."); break; // Si no se planta seguimos con una nueva carta else { Carta newcarta = baraja.robar(); manojugador[j].cogercarta(newcarta); TextIO.putln("Usted roba carta."); TextIO.putln("Su carta es " + newcarta); TextIO.putln("Y usted tiene " + manojugador[j].getblackjackvalor()+" puntos"); // Si se pasa de 21 puntos pierde y pone su resultado a -1 if (manojugador[j].getblackjackvalor() > 21) { TextIO.putln("El jugador "+(j+1)+" se ha pasado de 21. Ha perdido"); resultados[j+1]=-1; fin=true; if (fin) break; // Ahora le toca jugar a la banca TextIO.putln("Las cartas de la banca son "); TextIO.putln(" " + manobanca.obtenercarta(0)); TextIO.putln(" " + manobanca.obtenercarta(1));

19 while(true){ float beneficio=0; float beneficio_hip=0; float beneficio_aux=0; float probabilidad=0; // Primero comprobamos el beneficio que obtendriamos en la situacion actual for(i=0;i<jugadores;i++){ if(manobanca.getblackjackvalor()>=manojugador[i].getblackjackvalor()) beneficio=beneficio+manojugador[i].apuesta; else if(resultados[i+1]!=-1) beneficio=beneficiomanojugador[i].apuesta; // Sabiendo las cartas que hay en la mesa calcularemos la esperanza de sacar cada una de las // posibles cartas y en funcion de eso el beneficio hipotetico que obtendriamos. for (j=1;j<14;j++){ Carta aux=new Carta(j,0); manobanca.cogercarta(aux); probabilidad=baraja.vistas[j-1]/baraja.restantes(); for(i=0;i<jugadores;i++){ if(manobanca.getblackjackvalor()>=manojugador[i].getblackjackvalor()) beneficio_aux=beneficio_aux+manojugador[i].apuesta; else if(resultados[i+1]!=-1) beneficio_aux=beneficio_aux-manojugador[i].apuesta; beneficio_hip=beneficio_hip+beneficio_aux*probabilidad; beneficio_aux=0; manobanca.dejarcarta(manobanca.contar()-1); // Si el beneficio hipotetico es mayor que el actual robamos carta if(beneficio_hip>beneficio){ Carta newcarta = baraja.robar();

20 else{ TextIO.putln("La banca roba " + newcarta); manobanca.cogercarta(newcarta); if (manobanca.getblackjackvalor() > 21) { resultados[0]=-1; break; break; carta // Repetimos esto hasta que nos pasemos o decidamos no coger nueva TextIO.putln("El total de la banca es de " + manobanca.getblackjackvalor()+" puntos"); // Vamos a comparar los puntos de cada uno para ver quien ha ganado a quien y lo reflejamos // en el array de resultados for(i=0;i<jugadores;i++){ if((resultados[i+1]==-1) (bancarrota[i])) continue; if(resultados[0]==-1){ resultados[i+1]=1; continue; if(manojugador[i].getblackjackvalor()>manobanca.getblackjackvalor()) resultados[i+1]=1; else resultados[i+1]=-1; // Imprimimos por pantalla quien ha ganado a quien for(i=1;i<=jugadores;i++){ if(!bancarrota[i-1]){ if(resultados[i]>resultados[0]) TextIO.putln("Jugador "+i+" gana a la banca."); else TextIO.putln("La banca gana al jugador "+i+".");

21 return resultados; // Este metodo comprueba si todos los jugadores se han quedado sin dinero static boolean queda_alguno(boolean bancarrota[],int numero){ boolean bancarrota_total=true; for(int p=0;(p<numero)&&bancarrota_total;p++){ if(!bancarrota[p]){ bancarrota_total=false; break; return bancarrota_total;

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Competencias IIC1103 Introducción a la Programación (I/2010) Interrogación 1 13 de Abril de 2010

Más detalles

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1 Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Máquina Expendedora (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Circulo (1.0 pto.)... 3 1.3 Ejercicio

Más detalles

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Práctica 2: Simón dice

Práctica 2: Simón dice Práctica 2: Simón dice Fecha de entrega: 31 de enero de 2016 0.- Descripción del juego (Wikipedia.org) Simon dice es un juego electrónico, creado por Ralph Baer, que consiste en reproducir una secuencia

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones.

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones. Refactorización Definición Refactorización (n) Cambio realizado a la estructura interna del software para hacerlo más fácil de comprender y más fácil de modificar sin cambiar su comportamiento observable.

Más detalles

Un juego de cartas: Las siete y media

Un juego de cartas: Las siete y media Un juego de cartas: Las siete y media Paula Lagares Federico Perea Justo Puerto * MaMaEuSch ** Management Mathematics for European Schools 94342 - CP - 1-2001 - DE - COMENIUS - C21 * Universidad de Sevilla

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Proyecto: USB Blackjack

Proyecto: USB Blackjack Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información CI-2691 Laboratorio de Algoritmos I Trimestre Enero-Marzo del 2007 Proyecto: USB Blackjack El objetivo de este proyecto

Más detalles

Condicionales. (Programando con tarjetas) Meta: Esta clase introduce los condicionales, especialmente bucles y sentencias if. RESUMEN: OBJETIVO:

Condicionales. (Programando con tarjetas) Meta: Esta clase introduce los condicionales, especialmente bucles y sentencias if. RESUMEN: OBJETIVO: 10 NOMBRE DE LA CLASE: Condicionales (Programando con tarjetas) Duración: 45-60 minutos : Preparación: 2 minutos Meta: Esta clase introduce los condicionales, especialmente bucles y sentencias if. RESUMEN:

Más detalles

Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1

Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1 Examen Septiembre Curso 2001-2002 -- Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Convertidor Dec->Hex y Hex->Dec (5.0 ptos.)... 1 1.1.1 Apartado A (4.0 ptos.)... 1 1.1.2 Apartado B (1.0

Más detalles

Tema: Arreglos de Objetos en C++.

Tema: Arreglos de Objetos en C++. Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.

Más detalles

Primer Parcial Septiembre 5 de 2009

Primer Parcial Septiembre 5 de 2009 Primer Parcial Septiembre 5 de 2009 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar

Más detalles

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. Práctica 3 mtp metodoloxía e tecnoloxía da programación Objetivos: Duración: Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. 1 semana 1.- Identificadores Los identificadores

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

RELOJ PRIMIGENIO. Un juego de apuestas, faroleo y press your luck de 3 a 5 jugadores.

RELOJ PRIMIGENIO. Un juego de apuestas, faroleo y press your luck de 3 a 5 jugadores. RELOJ PRIMIGENIO Un juego de apuestas, faroleo y press your luck de 3 a 5 jugadores. - Materiales 1 Baraja Primigenia Estas reglas o una imagen para tener las cartas de referencia con las que se forma

Más detalles

Práctica 1 El juego de los chinos

Práctica 1 El juego de los chinos Práctica 1 El juego de los chinos Fecha de entrega: 6 de diciembre Según una teoría, el conocido como juego de los chinos nació en el año 1787 en un pequeño pueblo de León. Felipe Valdeón Triguero, un

Más detalles

mus REGLAMENTO OBJETIVO DEL JUEGO

mus REGLAMENTO OBJETIVO DEL JUEGO mus REGLAMENTO Para empezar a jugar al Mus se necesita una baraja Española (sin 8s ni 9s),4 jugadores que se sentaran por parejas uno enfrente del otro y un puñado de fichas o garbanzos para llevar el

Más detalles

LOS JUEGOS EN MATEMÁTICAS. Jose Ramón Gregorio Guirles (*) 1. JUEGOS PARA AUTOMATIZAR OPERACIONES SENCILLAS DE SUMAS Y RESTAS

LOS JUEGOS EN MATEMÁTICAS. Jose Ramón Gregorio Guirles (*) 1. JUEGOS PARA AUTOMATIZAR OPERACIONES SENCILLAS DE SUMAS Y RESTAS LOS JUEGOS EN MATEMÁTICAS SIGMA 26 Jose Ramón Gregorio Guirles (*) 1. JUEGOS PARA AUTOMATIZAR OPERACIONES SENCILLAS DE SUMAS Y RESTAS Como ya comentaba en un artículo anterior sobre juegos de numeración,

Más detalles

Multitarea en Java. Rafa Caballero - UCM

Multitarea en Java. Rafa Caballero - UCM Multitarea en Java Rafa Caballero - UCM Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

Tema 3. Test Driven Development

Tema 3. Test Driven Development Tema 3. Test Driven Development Ejercicios Resueltos Ejercicio 01. Desarrolle mediante TDD una implementación del algoritmo de la Criba de Eratóstenes para calcular la lista de los números primos desde

Más detalles

15. Parámetros o argumentos

15. Parámetros o argumentos Programación orientada a objetos con Java 161 15. Parámetros o argumentos Objetivos: a) Profundizar en el concepto de parámetro de una clase e indicar su mecanismo de funcionamiento. b) Interpretar el

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Prof. Elías Cisneros. Lenguaje C++ Contadores y Acumuladores Usted es libre de: * Copiar, distribuir y comunicar públicamente

Más detalles

ANÁLISIS DE UN JUEGO DE CARTAS: LAS SIETE Y MEDIA

ANÁLISIS DE UN JUEGO DE CARTAS: LAS SIETE Y MEDIA ANÁLISIS DE UN JUEGO DE CARTAS: LAS SIETE Y MEDIA MaMaEuSch (Management Mathematics for European School) http://www.mathematik.uni-kl.de/~mamaeusch/ Modelos matemáticos orientados a la educación Clases

Más detalles

POKER REGLAS. El valor de los naipes es el siguiente: As ( A) ( el más alto), Rey ( K), Reina ( Q), Jota ( J ),

POKER REGLAS. El valor de los naipes es el siguiente: As ( A) ( el más alto), Rey ( K), Reina ( Q), Jota ( J ), POKER REGLAS Breve descripción El Poker utiliza un mazo regular de 52 naipes ( algunas variantes de Poker pueden utilizar más o menos naipes, como por ejemplo cuando se utilizan los comodines). El valor

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include #include

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase

Más detalles

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I Vectores y matrices Fundamentos de Programación Fundamentos de Programación I 1 Ejemplo de utilización n de vectores: gráfico de producción En una compañía nos han encargado escribir un programita que

Más detalles

Object 1. Threads en Java

Object 1. Threads en Java Object 1 Threads en Java Introducción En este artículo voy a explicar cómo se usan los threads en Java (también traducidos como "hilos de ejecución"). La intención no es solamente explicar cuáles son las

Más detalles

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Trabajo Práctico N 4: Diseño por Contratos

Trabajo Práctico N 4: Diseño por Contratos 1. Defina los contratos de las siguientes clases: Trabajo Práctico N 4: Diseño por Contratos a. La clase Fecha representa una fecha en el formato dia, mes y año. Especificar los contratos para asegurar

Más detalles

Ejercicios de evaluación de fundamentos de programación en Java

Ejercicios de evaluación de fundamentos de programación en Java Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4

Más detalles

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

El lenguaje de Programación C. Fernando J. Pereda

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

1 Agencia de viajes: enunciado

1 Agencia de viajes: enunciado 1 AGENCIA DE VIAJES: ENUNCIADO 1 1 Agencia de viajes: enunciado Una agencia de viajes mantiene una base de datos con exactamente N clientes y M destinos turísticos. En una situación real, estos valores

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:... Cuadernillo de examen ASIGNATURA Laboratorio de Sistemas Operativos Abiertos (Java) CÓDIGO 321 CONVOCATORIA Extraordinaria de Septiembre de 2003 PLAN DE ESTUDIOS 1996 ESPECIALIDAD Sistemas CURSO 2002/2003

Más detalles

Tema: Clases y Objetos en C++.

Tema: Clases y Objetos en C++. 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C++. Objetivos Específicos Aplicar clases, objetos, propiedades, métodos y mensajes. Poner en práctica

Más detalles

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo

Más detalles

Examen Principios de Programación Febrero 2012

Examen Principios de Programación Febrero 2012 Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO)

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO) EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO) Luis José Sánchez 1. Realiza un programa que sume los 100 números siguientes a un número entero y positivo introducido por teclado. Se debe

Más detalles

Ejercicio 1 (3 puntos).-

Ejercicio 1 (3 puntos).- URJC Ingeniería Técnica de Gestión Abril 2011 Asignatura: SOFTWARE AVANZADO Normas: La prueba consta de 2 ejercicios. La máxima nota del examen es un 8. Siendo la práctica la que añade los 2 puntos que

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

TAREA 2 Diseño de un juego

TAREA 2 Diseño de un juego Pontificia Universidad Católica de Chile Departamento de Ciencia de la Computación IIC3686 Creación de Videojuegos Profesor: Alejandro Woywood Primer Semestre 2006 TAREA 2 Diseño de un juego Nombre: Augusto

Más detalles

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio

Más detalles

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

Tema 5 Sentencias de control de flujo. Fundamentos de Informática Tema 5 Fundamentos de Informática Sentencias de Control Tipos de sentencias de control: Comprobación lógica para bifurcar el flujo de un programa. Sentencias de control condicional o alternativo Comprobación

Más detalles

Documentación: Gestor de una Biblioteca (Eclipse, MySQL, JDK 1.6+) Jose Alberto Benítez Andrades

Documentación: Gestor de una Biblioteca (Eclipse, MySQL, JDK 1.6+) Jose Alberto Benítez Andrades Documentación: Gestor de una Biblioteca (Eclipse, MySQL, JDK 1.6+) Jose Alberto Benítez Andrades 2º Ingeniería Informática, NIF:71454586A PRÓLOGO. ÍNDICE 1. ESPECIFICACIÓN DE LA PRÁCTICA. 1.1.CLASES DE

Más detalles

Ejercicios del tema 7: Clases y objetos

Ejercicios del tema 7: Clases y objetos Metodología y Tecnología de la Programación ESI-UCLM Ejercicios del tema 7: Clases y objetos 1. a) Diseñe e implemente en Java una clase para trabajar con triángulos isósceles. Para ello, defina las variables

Más detalles

Juego Azar O Matemática?

Juego Azar O Matemática? Juego Azar O Matemática? Carlos Aragón Pérez Grado en Ingeniería en telecomunicaciones c.aragon@edu.uah.es Vamos a explicar las técnicas matemáticas que podremos utilizar para poder ganar en los juegos

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan

Más detalles

Cierre y Apertura de ejercicio. Gestión - Contabilidad

Cierre y Apertura de ejercicio. Gestión - Contabilidad Cierre y Apertura de ejercicio. Gestión - Contabilidad Cliente : Cooperativa Madrileña de Ferreteros, soc. coop. Referencia : I-3-PC-02 / 000041 Asunto : Cierre y apertura de ejercicio. Gestión Contabilidad

Más detalles

Estructura de datos tipo vector.

Estructura de datos tipo vector. Estructura de datos tipo vector. Hemos empleado variables de distinto tipo para el almacenamiento de datos (variables int, float, String) En esta sección veremos otros tipos de variables que permiten almacenar

Más detalles

Universidad Nacional del Santa F A C U L T A D D E I N G E N I E R I A E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0

Universidad Nacional del Santa F A C U L T A D D E I N G E N I E R I A E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 Universidad Nacional del Santa F A C U L T A D D E I N G E N I E R I A E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 PROYECTO DE ESTRUCTURA REPETITIVA DO WHILE A c o n t i n u a c i ó n r e

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Comencemos a programar con. Entrega 10. Estructuras de Control II

Comencemos a programar con. Entrega 10. Estructuras de Control II Comencemos a programar con VBA - Access Entrega 10 Estructuras de Control II Eduardo Olaz 10-2 Estructuras de Control, segunda parte Las Instrucciones While - - - Wend La estructura de bucle For Contador

Más detalles

11. Algunas clases estándar de Java (II)

11. Algunas clases estándar de Java (II) 122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación

Más detalles

Poker Texas Hold em. Aprender a jugar

Poker Texas Hold em. Aprender a jugar Poker Texas Hold em Aprender a jugar Este juego, en poco tiempo, se ha convertido en la versión más extendida del Poker. Por lo tanto, también es la variante a la que más se juega en los casinos de todo

Más detalles

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA Introducción Qué es programar? Idear y ordenar las acciones necesarias para realizar un proyecto (R.A.E) En nuestro contexto: Resolver problemas, Automatizar

Más detalles

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com LECCIÓN 6 En esta lección vamos a familiarizarnos con las estructuras de repetición, las cuales nos sirven para realizar una misma instrucción un número determinado de veces o indeterminado dependiendo

Más detalles

Estructuras de repetición

Estructuras de repetición Estructuras de repetición Fundamentos de Programación Fundamentos de Programación I FP-PFI Curso 2005-2006 1 Estructuras iterativos Sentencia for for(inic; cond; increm) sentencia1; sentencia2; Sentencia

Más detalles

USOS INTERESANTES DE JFormattedTextField

USOS INTERESANTES DE JFormattedTextField USOS INTERESANTES DE JFormattedTextField Francesc Rosés i Albiol (08/2002) La versión 1.4 del JDK de Sun nos obsequia con un montón de novedades, todas ellas buenas y algunas, largamente deseadas. En este

Más detalles

APRENDE A CREAR UNA PÁGINA WEB CON HTML

APRENDE A CREAR UNA PÁGINA WEB CON HTML APRENDE A CREAR UNA PÁGINA WEB CON HTML Introducción a PHP INTRODUCCIÓN PHP es una lenguaje de programación del lado del servidor. En este curso, lo usaremos para recibir los datos de un formulario, realizar

Más detalles

Programación estructurada

Programación estructurada 3. Funciones Programación estructurada Cuando un programa crece: Es importante mantenerlo ordenado No repetir código Agrupar el código según su función Dar nombre a las operaciones comunes var cantidad

Más detalles

Examen de Programación II (Ingeniería Informática)

Examen de Programación II (Ingeniería Informática) Examen de Programación II (Ingeniería Informática) Junio 2008 1) Lenguaje C 1.a) (1 punto) Escribir una función C que reciba dos strings como parámetros y retorne un nuevo string formado por los caracteres

Más detalles

Clases y Objetos. Informática II Ingeniería Electrónica

Clases y Objetos. Informática II Ingeniería Electrónica Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),

Más detalles

TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5.

TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5. TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5.3 TRABAJANDO CON EXCEPCIONES: DECLARACIÓN, CONSTRUCCIÓN,

Más detalles

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices Vectores y matrices Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices Algoritmos de ordenación Ordenación por selección Ordenación por inserción Ordenación

Más detalles

Programación. Ejercicios Tema 6 Tipos de Datos Estructurados: Estructuras Definidas por el Usuario

Programación. Ejercicios Tema 6 Tipos de Datos Estructurados: Estructuras Definidas por el Usuario Programación Ejercicios Tema 6 : Estructuras Definidas por el Usuario Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordóñez Morales Juan Gómez Romero José A. Iglesias Martínez José

Más detalles

IIC1103 Introducción a la Programación

IIC1103 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1103 Introducción a la Programación Capítulo 6: Arreglos Resumen teórico Arreglos Hasta ahora

Más detalles

b c b c b b a a c a a c b c c b b c b c d c c c b

b c b c b b a a c a a c b c c b b c b c d c c c b INSTRUCCIONES: El EXAMEN TEÓRICO se divide en dos parciales. El PRIMER PARCIAL corresponde a las unidades 1 a 5. El SEGUNDO PARCIAL corresponde a las unidades 6 a 9. Aquellos alumnos que aprobaron el examen

Más detalles

Programación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García

Programación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Práctica 11 Programación Java San Sebastián, mayo 1999 Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Informática 2: Práctica nº 11 página 1 INDICE

Más detalles

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)... Examen Junio Grupo A Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción.... 1 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1103 Introducción a la Programación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1103 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1103 Introducción a la Programación Capítulo 2: Control de Flujo Resumen teórico If, Else Hasta

Más detalles

Campeonato de Mus Centro Comercial El Ferial 2015 Bases y reglas del Juego. Campeonato de Mus

Campeonato de Mus Centro Comercial El Ferial 2015 Bases y reglas del Juego. Campeonato de Mus Campeonato de Mus Centro Comercial El Ferial 2015 Bases y reglas del Juego. Campeonato de Mus Bases para participar y jugar al campeonato de mus del Centro Comercial El Ferial de Parla. El torneo se desarrollará

Más detalles

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape. CARACTERES EN JAVA Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape. Letra, Dígitos y Otros Estos caracteres

Más detalles

APUNTES JAVA ARRAYS (ARREGLOS) Un arreglo es un grupo de posiciones de memoria contiguas. Todas las cuales tienen el mismo nombre y el mismo tipo.

APUNTES JAVA ARRAYS (ARREGLOS) Un arreglo es un grupo de posiciones de memoria contiguas. Todas las cuales tienen el mismo nombre y el mismo tipo. APUNTES JAVA ARRAYS (ARREGLOS) Los arreglos son estructuras de datos que consisten en elementos de información del mismo tipo relacionados entre sí. Los arreglos son entidades estáticas en cuanto a que

Más detalles

Programación. Ejercicios Tema 4 Estructuras de Control Repetitivas

Programación. Ejercicios Tema 4 Estructuras de Control Repetitivas Ejercicios Tema 4 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero Jose A. Iglesias Martínez Jose Luis Mira SOLUCIONES 1. Escriba un programa en C que

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 8 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante ÍNDICE ÍNDICE... 1 1. INTRODUCCIÓN... 1 1.1 EJERCICIO 1: HERENCIA Y POLIMORFISMO I... 1 1.2 EJERCICIO

Más detalles

Segunda práctica de Programación 2

Segunda práctica de Programación 2 Segunda práctica de Programación 2 La segunda práctica consistirá en el diseño y posterior implementación como proyecto de Netbeans de dos versiones sobre el mismo problema. El tema central de ambas versiones

Más detalles

REGLAS DE POKER HOLD'EM TEXAS

REGLAS DE POKER HOLD'EM TEXAS REGLAS DE POKER HOLD'EM TEXAS BUY-IN 1. Al entrar en un juego, usted debe hacer una completa aceptación. En póker del límite, un total de buy-in es de al menos diez veces la apuesta máxima para el juego

Más detalles

public static void main(string[ ] args) { Numero f1 = new Numero(3); Numero f2 = new Numero(4); Numero f3 = f1; f1.value = f2.value; Numero f4 = null;

public static void main(string[ ] args) { Numero f1 = new Numero(3); Numero f2 = new Numero(4); Numero f3 = f1; f1.value = f2.value; Numero f4 = null; Examen de Programación Convocatoria de Septiembre 2005 Licenciatura de Lingüística y Nuevas Tecnologías Pregunta 1 Tenemos el siguiente programa: public class Numero { int value; public Numero(int i) {

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo

Más detalles

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario

Más detalles

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1 Departamento de Lenguajes y Sistemas Informáticos JavaScript Programación en Internet Curso 2005-2006 Contenidos Introducción El lenguaje Validación de formularios DLSI - Universidad de Alicante 1 Introducción

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011

Más detalles

Índice ÍNDICE...1 1. EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.)...1 2. EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

Índice ÍNDICE...1 1. EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.)...1 2. EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4 Pág.1 Índice ÍNDICE...1 1. EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.)...1 2. EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4 1. Ejercicio 1: Cálculo Financiero (5 ptos.) Desde un banco se le ha encargado

Más detalles