Return to Snippet

Revision: 32663
at October 1, 2010 09:14 by Physlet


Updated Code
//Importación de la API java.io para usar BufferedReader
import java.io.*;

class Container{
	//Cantidad total de monos introducida por el usuario
	private int monos;

	//Método asignar
	public void set(int totalMonos){
		monos = totalMonos;
	}

	//Obtener cantidad de contenedores
	public int getCont(int maxCant){
		if(monos%maxCant == 0)
			return monos/maxCant;
		else
			return monos/maxCant+1;
	}

	//Obtener cantidad de barriles, jaulas o cocos
	public int getCant(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 1;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad por contenedor
				if(total > maxCont)
					return maxCont;
				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return total;
			}
		}
	}

	//Obtener cantidad de residuo de monos
	public int getDif(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 0;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad permitida por contenedor
				if(total > maxCont)
					return (total-maxCont)*maxCant+monosDif%maxCant;

				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return 0;
			}
		}
	}

	//Método que trae los monos al programa principal
	public int getMonos(){
		return monos;
	}
}

public class Monos{
	public static void main(String[] x) throws IOException, InterruptedException{
	//CONSTANTES => Cantidad de monos por contenedores, barriles, jaulas o cocos
		final int MAX_CONT = 245, MAX_BAR = 11, MAX_JAU = 7, MAX_COCO = 1;
	//CONSTANTES => Cantidad de barriles, jaulas o cocos por contenedor
		final int CANT_BAR = 10, CANT_JAU = 5, CANT_COCO = 100;
	//Variables a utilizar
		int barril=0, jaula=0, coco=0, contenedor, monos, read, total;
	//Monos por barriles, jaulas, cocos
		int mbar=0, mjau=0, mco=0;

	//Declaración del objeto gestion instanciando a la clase Container
		Container gestion = new Container();

	//Declaración del objeto tipo BufferedReader y asignación de espacio de memoria
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	//Mensaje de bienvenida
		System.out.println("\t\t\t¡Es la hora de ordenar monitos!\n"+
						   "En esta aplicación deberás introducir un total de monos"+
						   "que desees ordenar en contenedores. Esta aplicación te dirá"+
						   "cuántos contenedores deberás usar para ordenar tus monos"+
						   "recordando que cada contenedor permite 10 barriles, 5 jaulas"+
						   "100 cocos. Y que cada barril permite 11 monos, cada jaula 7 monos"+
						   "y cada coco 1 mono.\n");

	//Petición al usuario para iniciar la operación
		System.out.print("¿Listo para comenzar? S/N: ");
		read = Character.toUpperCase(br.read());
		br.skip(1);

		if(read == 'N'){
			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}

		else
		{
			do{
				//Lectura de la cantidad de monos totales
				System.out.print("\n\n-----------------------\n"+
						     	 "Introduzca la cantidad de monos: ");
				read = Integer.parseInt(br.readLine());

				//Llamado al método asignar y enviar la variable read con la cantidad de monos
				gestion.set(read);

				//Asignación de la cantidad de monos
				monos = gestion.getMonos();

				//Cantidad de contenedores
				contenedor = gestion.getCont(MAX_CONT);

				//Hacer un breve delay para que se vea bonito el programa
				System.out.println("\n\n-----------------------\n"+
								   "Procesando información... Por favor espere..");
				Thread.sleep(2000);

				while(monos != 0){
					//Acumula cantidad de barriles
					mbar += monos;
					barril += gestion.getCant(monos, MAX_BAR, CANT_BAR);

					//Asigna a monos la cantidad del residuo luego de depositarlos en barriles
					monos = gestion.getDif(monos, MAX_BAR, CANT_BAR);
					mbar -= monos;

					//Acumula cantidad de jaulas
					mjau += monos;
					jaula += gestion.getCant(monos, MAX_JAU, CANT_JAU);

					//Asigna a monos la cantidad del residuo luego de depositarlos en jaulas
					monos = gestion.getDif(monos, MAX_JAU, CANT_JAU);
					mjau -= monos;

					//Acumula cantidad de cocos
					mco += monos;
					coco += gestion.getCant(monos, MAX_COCO, CANT_COCO);

					//Asigna a monos la cantidad del residuo luego de depositarlos en cocos
					monos = gestion.getDif(monos, MAX_COCO, CANT_COCO);
					mco -= monos;
				}

				total = mbar + mjau + mco;

				System.out.println("\n\n-----------------------\n"+
							   	   "Cantidad de contenedores: "+contenedor+"\n\n"+
							   	   "Cantidad de barriles: "+barril+"\n\tMonos por barriles: "+mbar+"\n\n"+
							   	   "Cantidad de jaulas: "+jaula+"\n\tMonos por jaulas: "+mjau+"\n\n"+
							   	   "Cantidad de cocos: "+coco+"\n\tMonos por cocos: "+mco+"\n\n"+
							   	   "Total de monos: "+total);

				System.out.println("\n\n-----------------------\n"+
							   	   "¿Desea probar otra vez? S/N: ");
				read = Character.toUpperCase(br.read());
				br.skip(1);

			}while(read == 'S');

			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}
	}
}

Revision: 32662
at October 1, 2010 09:13 by Physlet


Updated Code
//Importación de la API java.io para usar BufferedReader
import java.io.*;

class Container{
	//Cantidad total de monos introducida por el usuario
	private int monos;

	//Método asignar
	public void set(int totalMonos){
		monos = totalMonos;
	}

	//Obtener cantidad de contenedores
	public int getCont(int maxCant){
		if(monos%maxCant == 0)
			return monos/maxCant;
		else
			return monos/maxCant+1;
	}

	//Obtener cantidad de barriles, jaulas o cocos
	public int getCant(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 1;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad por contenedor
				if(total > maxCont)
					return maxCont;
				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return total;
			}
		}
	}

	//Obtener cantidad de residuo de monos
	public int getDif(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 0;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad permitida por contenedor
				if(total > maxCont)
					return (total-maxCont)*maxCant+monosDif%maxCant;

				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return 0;
			}
		}
	}

	//Método que trae los monos al programa principal
	public int getMonos(){
		return monos;
	}
}

public class Monos{
	public static void main(String[] x) throws IOException, InterruptedException{
	//CONSTANTES => Cantidad de monos por contenedores, barriles, jaulas o cocos
		final int MAX_CONT = 245, MAX_BAR = 11, MAX_JAU = 7, MAX_COCO = 1;
	//CONSTANTES => Cantidad de barriles, jaulas o cocos por contenedor
		final int CANT_BAR = 10, CANT_JAU = 5, CANT_COCO = 100;
	//Variables a utilizar
		int barril=0, jaula=0, coco=0, contenedor, monos, read, total;
	//Monos por barriles, jaulas, cocos
		int mbar=0, mjau=0, mco=0;

	//Declaración del objeto gestion instanciando a la clase Container
		Container gestion = new Container();

	//Declaración del objeto tipo BufferedReader y asignación de espacio de memoria
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	//Mensaje de bienvenida
		System.out.println("\t\t\t¡Es la hora de ordenar monitos!\n"+
						   "En esta aplicación deberás introducir un total de monos"+
						   "que desees ordenar en contenedores. Esta aplicación te dirá"+
						   "cuántos contenedores deberás usar para ordenar tus monos"+
						   "recordando que cada contenedor permite 10 barriles, 5 jaulas"+
						   "100 cocos. Y que cada barril permite 11 monos, cada jaula 7 monos"+
						   "y cada coco 1 mono.\n");

	//Petición al usuario para iniciar la operación
		System.out.print("¿Listo para comenzar? S/N: ");
		read = Character.toUpperCase(br.read());
		br.skip(1);

		if(read == 'N'){
			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}

		else
		{
			do{
				//Lectura de la cantidad de monos totales
				System.out.print("\n\n-----------------------\n"+
						     	 "Introduzca la cantidad de monos: ");
				read = Integer.parseInt(br.readLine());

				//Llamado al método asignar y enviar la variable read con la cantidad de monos
				gestion.set(read);

				//Asignación de la cantidad de monos
				monos = gestion.getMonos();

				//Cantidad de contenedores
				contenedor = gestion.getCont(MAX_CONT);

				//Hacer un breve delay para que se vea bonito el programa
				System.out.println("\n\n-----------------------\n"+
								   "Procesando información... Por favor espere..");
				Thread.sleep(2000);

				while(monos != 0){
					//Acumula cantidad de barriles
					mbar += monos;
					barril += gestion.getCant(monos, MAX_BAR, CANT_BAR);

					//Asigna a monos la cantidad del residuo luego de depositarlos en barriles
					monos = gestion.getDif(monos, MAX_BAR, CANT_BAR);
					mbar -= monos;

					//Acumula cantidad de jaulas
					mjau += monos;
					jaula += gestion.getCant(monos, MAX_JAU, CANT_JAU);

					//Asigna a monos la cantidad del residuo luego de depositarlos en jaulas
					monos = gestion.getDif(monos, MAX_JAU, CANT_JAU);
					mjau -= monos;

					//Acumula cantidad de cocos
					mco += monos;
					coco += gestion.getCant(monos, MAX_COCO, CANT_COCO);

					//Asigna a monos la cantidad del residuo luego de depositarlos en cocos
					monos = gestion.getDif(monos, MAX_COCO, CANT_COCO);
					mco -= monos;
				}

				total = mbar + mjau + mco;

				System.out.println("\n\n-----------------------\n"+
							   	   "Cantidad de contenedores: "+contenedor+"\n\n"+
							   	   "Cantidad de barriles: "+barril+"\n\tMonos por barriles: "+mbar+"\n\n"+
							   	   "Cantidad de jaulas: "+jaula+"\n\tMonos por jaulas: "+mjau+"\n\n"+
							   	   "Cantidad de cocos: "+coco+"\n\tMonos por cocos: "+mco+"\n\n"+
							   	   "Total de monos: "+total);

				System.out.println("\n\n-----------------------\n"+
							   	   "¿Desea probar otra vez? S/N: ");
				read = Character.toUpperCase(br.read());
				br.skip(1);

			}while(read == 'S');

			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}
	}
}

Revision: 32661
at October 1, 2010 09:11 by Physlet


Updated Code
//Importación de la API java.io para usar BufferedReader
import java.io.*;

class Container{
	//Cantidad total de monos introducida por el usuario
	private int monos;

	//Método asignar
	public void set(int totalMonos){
		monos = totalMonos;
	}

	//Obtener cantidad de contenedores
	public int getCont(int maxCant){
		if(monos%maxCant == 0)
			return monos/maxCant;
		else
			return monos/maxCant+1;
	}

	//Obtener cantidad de barriles, jaulas o cocos
	public int getCant(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 1;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad por contenedor
				if(total > maxCont)
					return maxCont;
				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return total;
			}
		}
	}

	//Obtener cantidad de residuo de monos
	public int getDif(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 0;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad permitida por contenedor
				if(total > maxCont)
					return (total-maxCont)*maxCant+monosDif%maxCant;

				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return 0;
			}
		}
	}

	//Método que trae los monos al programa principal
	public int getMonos(){
		return monos;
	}
}

public class Monos{
	public static void main(String[] x) throws IOException, InterruptedException{
	//CONSTANTES => Cantidad de monos por contenedores, barriles, jaulas o cocos
		final int MAX_CONT = 245, MAX_BAR = 11, MAX_JAU = 7, MAX_COCO = 1;
	//CONSTANTES => Cantidad de barriles, jaulas o cocos por contenedor
		final int CANT_BAR = 10, CANT_JAU = 5, CANT_COCO = 100;
	//Variables a utilizar
		int barril=0, jaula=0, coco=0, contenedor, monos, read, total;
	//Monos por barriles, jaulas, cocos
		int mbar=0, mjau=0, mco=0;

	//Declaración del objeto gestion instanciando a la clase Container
		Container gestion = new Container();

	//Declaración del objeto tipo BufferedReader y asignación de espacio de memoria
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	//Mensaje de bienvenida
		System.out.println("\t\t\t¡Es la hora de ordenar monitos!\n"+
						   "En esta aplicación deberás introducir un total de monos"+
						   "que desees ordenar en contenedores. Esta aplicación te dirá"+
						   "cuántos contenedores deberás usar para ordenar tus monos"+
						   "recordando que cada contenedor permite 10 barriles, 5 jaulas"+
						   "100 cocos. Y que cada barril permite 11 monos, cada jaula 7 monos"+
						   "y cada coco 1 mono.\n");

	//Petición al usuario para iniciar la operación
		System.out.print("¿Listo para comenzar? S/N: ");
		read = Character.toUpperCase(br.read());
		br.skip(1);

		if(read == 'N'){
			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}

		else
		{
			do{
				//Lectura de la cantidad de monos totales
				System.out.print("\n\n-----------------------\n"+
						     	 "Introduzca la cantidad de monos: ");
				read = Integer.parseInt(br.readLine());

				//Llamado al método asignar y enviar la variable read con la cantidad de monos
				gestion.set(read);

				//Asignación de la cantidad de monos
				monos = gestion.getMonos();

				//Cantidad de contenedores
				contenedor = gestion.getCont(MAX_CONT);

				//Hacer un breve delay para que se vea bonito el programa
				System.out.println("\n\n-----------------------\n"+
								   "Procesando información... Por favor espere..");
				Thread.sleep(2000);

				while(monos != 0){
					//Acumula cantidad de barriles
					mbar += monos;
					barril += gestion.getCant(monos, MAX_BAR, CANT_BAR);

					//Asigna a monos la cantidad del residuo luego de depositarlos en barriles
					monos = gestion.getDif(monos, MAX_BAR, CANT_BAR);
					mbar -= monos;

					//Acumula cantidad de jaulas
					mjau += monos;
					jaula += gestion.getCant(monos, MAX_JAU, CANT_JAU);

					//Asigna a monos la cantidad del residuo luego de depositarlos en jaulas
					monos = gestion.getDif(monos, MAX_JAU, CANT_JAU);
					mjau -= monos;

					//Acumula cantidad de cocos
					mco += monos;
					coco += gestion.getCant(monos, MAX_COCO, CANT_COCO);

					//Asigna a monos la cantidad del residuo luego de depositarlos en cocos
					monos = gestion.getDif(monos, MAX_COCO, CANT_COCO);
					mco -= monos;
				}

				total = mbar + mjau + mco;

				System.out.println("\n\n-----------------------\n"+
							   	   "Cantidad de contenedores: "+contenedor+"\n\n"+
							   	   "Cantidad de barriles: "+barril+"\n\tMonos por barriles: "+mbar+"\n\n"+
							   	   "Cantidad de jaulas: "+jaula+"\n\tMonos por jaulas: "+mjau+"\n\n"+
							   	   "Cantidad de cocos: "+coco+"\n\tMonos por cocos: "+mco+"\n\n"+
							   	   "Total de monos: "+total);

				System.out.println("\n\n-----------------------\n"+
							   	   "¿Desea probar otra vez? S/N: ");
				read = Character.toUpperCase(br.read());
				br.skip(1);

			}while(read == 'S');

			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}
	}
}

Revision: 32660
at October 1, 2010 09:10 by Physlet


Updated Code
//Importación de la API java.io para usar BufferedReader
import java.io.*;

class Container{
	//Cantidad total de monos introducida por el usuario
	private int monos;

	//Método asignar
	public void set(int totalMonos){
		monos = totalMonos;
	}

	//Obtener cantidad de contenedores
	public int getCont(int maxCant){
		if(monos%maxCant == 0)
			return monos/maxCant;
		else
			return monos/maxCant+1;
	}

	//Obtener cantidad de barriles, jaulas o cocos
	public int getCant(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 1;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad por contenedor
				if(total > maxCont)
					return maxCont;
				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return total;
			}
		}
	}

	//Obtener cantidad de residuo de monos
	public int getDif(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 0;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad permitida por contenedor
				if(total > maxCont)
					return (total-maxCont)*maxCant+monosDif%maxCant;

				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return 0;
			}
		}
	}

	//Método que trae los monos al programa principal
	public int getMonos(){
		return monos;
	}
}

public class Monos{
	public static void main(String[] x) throws IOException, InterruptedException{
	//CONSTANTES => Cantidad de monos por contenedores, barriles, jaulas o cocos
		final int MAX_CONT = 245, MAX_BAR = 11, MAX_JAU = 7, MAX_COCO = 1;
	//CONSTANTES => Cantidad de barriles, jaulas o cocos por contenedor
		final int CANT_BAR = 10, CANT_JAU = 5, CANT_COCO = 100;
	//Variables a utilizar
		int barril=0, jaula=0, coco=0, contenedor, monos, read, total;
	//Monos por barriles, jaulas, cocos
		int mbar=0, mjau=0, mco=0;

	//Declaración del objeto gestion instanciando a la clase Container
		Container gestion = new Container();

	//Declaración del objeto tipo BufferedReader y asignación de espacio de memoria
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	//Mensaje de bienvenida
		System.out.println("\t\t\t¡Es la hora de ordenar monitos!\n"+
						   "En esta aplicación deberás introducir un total de monos"+
						   "que desees ordenar en contenedores. Esta aplicación te dirá"+
						   "cuántos contenedores deberás usar para ordenar tus monos"+
						   "recordando que cada contenedor permite 10 barriles, 5 jaulas"+
						   "100 cocos. Y que cada barril permite 11 monos, cada jaula 7 monos"+
						   "y cada coco 1 mono.\n");

	//Petición al usuario para iniciar la operación
		System.out.print("¿Listo para comenzar? S/N: ");
		read = Character.toUpperCase(br.read());
		br.skip(1);

		if(read == 'N'){
			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}

		else
		{
			do{
				//Lectura de la cantidad de monos totales
				System.out.print("\n\n-----------------------\n"+
						     	 "Introduzca la cantidad de monos: ");
				read = Integer.parseInt(br.readLine());

				//Llamado al método asignar y enviar la variable read con la cantidad de monos
				gestion.set(read);

				//Asignación de la cantidad de monos
				monos = gestion.getMonos();

				//Cantidad de contenedores
				contenedor = gestion.getCont(MAX_CONT);

				//Hacer un breve delay para que se vea bonito el programa
				System.out.println("\n\n-----------------------\n"+
								   "Procesando información... Por favor espere..");
				Thread.sleep(2000);

				while(monos != 0){
					//Acumula cantidad de barriles
					mbar += monos;
					barril += gestion.getCant(monos, MAX_BAR, CANT_BAR);

					//Asigna a monos la cantidad del residuo luego de depositarlos en barriles
					monos = gestion.getDif(monos, MAX_BAR, CANT_BAR);
					mbar -= monos;

					//Acumula cantidad de jaulas
					mjau += monos;
					jaula += gestion.getCant(monos, MAX_JAU, CANT_JAU);

					//Asigna a monos la cantidad del residuo luego de depositarlos en jaulas
					monos = gestion.getDif(monos, MAX_JAU, CANT_JAU);
					mjau -= monos;

					//Acumula cantidad de cocos
					mco += monos;
					coco += gestion.getCant(monos, MAX_COCO, CANT_COCO);

					//Asigna a monos la cantidad del residuo luego de depositarlos en cocos
					monos = gestion.getDif(monos, MAX_COCO, CANT_COCO);
					mco -= monos;
				}

				total = mbar + mjau + mco;

				System.out.println("\n\n-----------------------\n"+
							   	   "Cantidad de contenedores: "+contenedor+"\n\n"+
							   	   "Cantidad de barriles: "+barril+"\n\tMonos por barriles: "+mbar+"\n\n"+
							   	   "Cantidad de jaulas: "+jaula+"\n\tMonos por jaulas: "+mjau+"\n\n"+
							   	   "Cantidad de cocos: "+coco+"\n\tMonos por cocos: "+mco+"\n\n"+
							   	   "Total de monos: "+total);

				System.out.println("\n\n-----------------------\n"+
							   	   "¿Desea probar otra vez? S/N: ");
				read = Character.toUpperCase(br.read());
				br.skip(1);

			}while(read == 'S');

			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}
	}
}

Revision: 32659
at October 1, 2010 09:09 by Physlet


Initial Code
//Importación de la API java.io para usar BufferedReader
import java.io.*;

class Container{
	//Cantidad total de monos introducida por el usuario
	private int monos;

	//Método asignar
	public void set(int totalMonos){
		monos = totalMonos;
	}

	//Obtener cantidad de contenedores
	public int getCont(int maxCant){
		if(monos%maxCant == 0)
			return monos/maxCant;
		else
			return monos/maxCant+1;
	}

	//Obtener cantidad de barriles, jaulas o cocos
	public int getCant(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 1;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad por contenedor
				if(total > maxCont)
					return maxCont;
				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return total;
			}
		}
	}

	//Obtener cantidad de residuo de monos
	public int getDif(int monosDif, int maxCant, int maxCont){
		int total;

		//Si la diferencia de monos es igual a 0
		if(monosDif == 0)
			return 0;
		else
		{
			//Si la cantidad de monos es menor o igual a la cantidad total
			if(monosDif <= maxCant)
				return 0;
			//Si la cantidad de monos es mayor que la cantidad total
			else
			{
				//Cantidad de contenedores, barriles, jaulas o cocos sin tomar en cuenta el residuo
				total = monosDif/maxCant;

				//Si la cantidad total es mayor que la cantidad permitida por contenedor
				if(total > maxCont)
					return (total-maxCont)*maxCant+monosDif%maxCant;

				//Si la cantidad total es menor o igual que la cantidad por contenedor
				else
					return 0;
			}
		}
	}

	//Método que trae los monos al programa principal
	public int getMonos(){
		return monos;
	}
}

public class Monos{
	public static void main(String[] x) throws IOException, InterruptedException{
	//CONSTANTES => Cantidad de monos por contenedores, barriles, jaulas o cocos
		final int MAX_CONT = 245, MAX_BAR = 11, MAX_JAU = 7, MAX_COCO = 1;
	//CONSTANTES => Cantidad de barriles, jaulas o cocos por contenedor
		final int CANT_BAR = 10, CANT_JAU = 5, CANT_COCO = 100;
	//Variables a utilizar
		int barril=0, jaula=0, coco=0, contenedor, monos, read, total;
	//Monos por barriles, jaulas, cocos
		int mbar=0, mjau=0, mco=0;

	//Declaración del objeto gestion instanciando a la clase Container
		Container gestion = new Container();

	//Declaración del objeto tipo BufferedReader y asignación de espacio de memoria
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	//Mensaje de bienvenida
		System.out.println("\t\t\t¡Es la hora de ordenar monitos!\n"+
						   "En esta aplicación deberás introducir un total de monos"+
						   "que desees ordenar en contenedores. Esta aplicación te dirá"+
						   "cuántos contenedores deberás usar para ordenar tus monos"+
						   "recordando que cada contenedor permite 10 barriles, 5 jaulas"+
						   "100 cocos. Y que cada barril permite 11 monos, cada jaula 7 monos"+
						   "y cada coco 1 mono.\n");

	//Petición al usuario para iniciar la operación
		System.out.print("¿Listo para comenzar? S/N: ");
		read = Character.toUpperCase(br.read());
		br.skip(1);

		if(read == 'N'){
			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}

		else
		{
			do{
				//Lectura de la cantidad de monos totales
				System.out.print("\n\n-----------------------\n"+
						     	 "Introduzca la cantidad de monos: ");
				read = Integer.parseInt(br.readLine());

				//Llamado al método asignar y enviar la variable read con la cantidad de monos
				gestion.set(read);

				//Asignación de la cantidad de monos
				monos = gestion.getMonos();

				//Cantidad de contenedores
				contenedor = gestion.getCont(MAX_CONT);

				//Hacer un breve delay para que se vea bonito el programa
				System.out.println("\n\n-----------------------\n"+
								   "Procesando información... Por favor espere..");
				Thread.sleep(2000);

				while(monos != 0){
					//Acumula cantidad de barriles
					mbar += monos;
					barril += gestion.getCant(monos, MAX_BAR, CANT_BAR);

					//Asigna a monos la cantidad del residuo luego de depositarlos en barriles
					monos = gestion.getDif(monos, MAX_BAR, CANT_BAR);
					mbar -= monos;

					//Acumula cantidad de jaulas
					mjau += monos;
					jaula += gestion.getCant(monos, MAX_JAU, CANT_JAU);

					//Asigna a monos la cantidad del residuo luego de depositarlos en jaulas
					monos = gestion.getDif(monos, MAX_JAU, CANT_JAU);
					mjau -= monos;

					//Acumula cantidad de cocos
					mco += monos;
					coco += gestion.getCant(monos, MAX_COCO, CANT_COCO);

					//Asigna a monos la cantidad del residuo luego de depositarlos en cocos
					monos = gestion.getDif(monos, MAX_COCO, CANT_COCO);
					mco -= monos;
				}

				total = mbar + mjau + mco;

				System.out.println("\n\n-----------------------\n"+
							   	   "Cantidad de contenedores: "+contenedor+"\n\n"+
							   	   "Cantidad de barriles: "+barril+"\n\tMonos por barriles: "+mbar+"\n\n"+
							   	   "Cantidad de jaulas: "+jaula+"\n\tMonos por jaulas: "+mjau+"\n\n"+
							   	   "Cantidad de cocos: "+coco+"\n\tMonos por cocos: "+mco+"\n\n"+
							   	   "Total de monos: "+total);

				System.out.println("\n\n-----------------------\n"+
							   	   "¿Desea probar otra vez? S/N: ");
				read = Character.toUpperCase(br.read());
				br.skip(1);

			}while(read == 'S');

			System.out.println("\n\n-----------------------\n"+
							   "¡Hasta la próxima!");
			System.exit(0);
		}
	}
}

Initial URL


Initial Description
Un barril contendrá 11 monos, una jaula contendrá 7 monos y un coco contendrá 1 mono.  Pida de entrada al usuario  una cantidad de monos, y luego distribuya a los monos  con el fin  de minimizar el número de contenedores usados. En un contenedor pueden ir 10 barriles, 5 jaulas y 100 cocos.

Initial Title
Monos en contenedores

Initial Tags


Initial Language
Java