Foros del Web » Programando para Internet » Python »

Quiero optimizar un codigo en pseint

Estas en el tema de Quiero optimizar un codigo en pseint en el foro de Python en Foros del Web. Buenas , tengo este código en PSEINT Código: Proceso EXAMEN2 Limpiar Pantalla; Definir M1,M2,M5,M10,B20,B50,B100,B200,B500,C Como Entero; Definir D, B Como Caracter; D = "S"; Mientras ...
  #1 (permalink)  
Antiguo 20/05/2015, 11:31
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
Exclamación Quiero optimizar un codigo en pseint

Buenas , tengo este código en PSEINT
Código:
Proceso EXAMEN2
	Limpiar Pantalla;
	Definir M1,M2,M5,M10,B20,B50,B100,B200,B500,C Como Entero; 
	Definir D, B Como Caracter;
	D = "S";
	Mientras D="S" Hacer
			C = azar (10000) + 1;
			Escribir "La cantidad generada es " C; 
			B500 = (C-C MOD 500)/500; //ESTA OPERACION DEFINE LA CANTIDAD DE BILLETES NECESARIOS PARA GENERAR LA CANTIDAD GENERA
			C = C MOD 500;
			B200 = (C-C MOD 200)/200;
			C = C MOD 200;
			B100 = (C-C MOD 100)/100;
			C = C MOD 100;
			B50 = (C-C MOD 50)/50;
			C = C MOD 50;
			B20 = (C-C MOD 20)/20;
			C = C MOD 20;
			M10 = (C-C MOD 10)/10;
			C = C MOD 10;
			M5 = (C-C MOD 5)/5;
			C = C MOD 5;
			M2 = (C-C MOD 2)/2;
			M1 = C MOD 2;
		Si B500 >=1 Entonces
			Si B500 >=2 Entonces
				B = "Billetes";
				Escribir B500 " " B " de 500";
			Sino 
				Escribir B500 " Billete de 500";
			Fin Si
		FinSi
		Si B200 >=1 Entonces
			Si B200 >=2 Entonces
				B = "Billetes";
				Escribir B200 " " B " de 200";
			Sino 
				Escribir B200 " Billete de 200";
			Fin Si
		Fin si
		Si B100 >=1 Entonces
			Si B100 >=2 Entonces
				B = "Billetes";
				Escribir B100 " " B " de 100";
			Sino 
				Escribir B100 " Billete de 100";
			Fin Si
		Fin si
		Si B50 >=1 Entonces
			Si B50 >=2 Entonces
				B = "Billetes";
				Escribir B50 " " B " de 50";
			Sino 
				Escribir B50 " Billete de 50";
			Fin Si
		Fin si
		Si B20 >=1 Entonces
			Si B20 >=2 Entonces
				B = "Billetes";
				Escribir B20 " " B " de 20";
			Sino 
				Escribir B20 " Billete de 20";
			Fin Si
		Fin si
		Si M10 >=1 Entonces
			Si M10 >=2 Entonces
				B = "Monedas";
				Escribir M10 " " B " de 10";
			Sino 
				Escribir M10 " Moneda de 10";
			Fin Si
		Fin si
		Si M5 >=1 Entonces
			Si M5 >=2 Entonces
				B = "Monedas";
				Escribir M5 " " B " de 5";
			Sino 
				Escribir M5 " Moneda de 5";
			Fin Si
		Fin si
		Si M2 >=1 Entonces
			Si M2 >=2 Entonces
				B = "Monedas";
				Escribir M2 " " B " de 2";
			Sino 
				Escribir M2 " Moneda de 2";
			Fin Si
		Fin si
		Si M1 >=1 Entonces
			Si M1 >=2 Entonces
				B = "Monedas";
				Escribir M1 " " B " de 1";
			Sino 
				Escribir M1 " Moneda de 1";
			Fin Si
		Fin si
			Escribir "¿Deseas realizar otra conversion (S/N)?";
			Leer D;
			Limpiar Pantalla;
		Escribir "Gracias por usar el programa";
	Fin Mientras
FinProceso
Se ejecuta y hace esto:

Gracias por usar el programa
La cantidad generada es 6084
12 Billetes de 500
1 Billete de 50
1 Billete de 20
1 Moneda de 10
2 Monedas de 2
¿Deseas realizar otra conversion (S/N)?
>

No tengo errores en el codigo y todo funciona de maravilla, solo quisiera ver si alguien puede optimizar mas el codigo. saludos y agradezco su apoyo

Última edición por razpeitia; 21/05/2015 a las 08:21
  #2 (permalink)  
Antiguo 21/05/2015, 08:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Quiero optimizar un codigo en pseint

Siempre cada cierto llegan con el mismo problema.

Ejemplos:
2010

2012

2014

Y ahora este post en 2015.

Y siempre es el mismo programa (En python).

Código Python:
Ver original
  1. # Introducir datos a la variable.
  2. N = int(raw_input('Ingresar Capital: '))
  3.  
  4. # Variables Billetes.
  5. denominaciones = [500, 200, 100, 50, 20, 10, 5, 2, 1]
  6.  
  7. for denominacion in denominaciones:
  8.     print "%d Billetes de %d" % ((N // denominacion), denominacion)
  9.     N = N % denominacion

Creo que no te refieres tanto a optimizar el programa si no a refactorizarlo para que que no sean tantas lineas.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:23.