Algoritmia - ejercicio algoritmia en SLE

   
Vista:

ejercicio algoritmia en SLE

Publicado por Paulina (5 intervenciones) el 08/09/2012 00:26:40
Agradecería sus comentarios y propuestas de desarrollo a este ejercicio


Se considera una cola frente a una ventanilla en la cual al llegar a la misma no puede ser atendido, se le reintegra a la cola a la posición Nº 10, si hay más de 10 personas o al final de la misma, en caso contrario. Diseñar un procedimiento de ATENCION (lo que debe suceder cuando un cliente es atendido). REINGRESO (vuelta a la cola) y otro de INGRESO (inicial) en la cola.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ejercicio algoritmia en SLE

Publicado por Alfonso (1 intervención) el 04/05/2013 23:20:58
te ayudaron Paulina pudiste resolver todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ejercicio algoritmia en SLE

Publicado por HELENE (1 intervención) el 26/09/2013 20:02:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/**
 * Procesa una cola de manera que al llegar un elemento a la posición 0 se comprueba si puede ser
 * atendido en ese momento (a través de un método aleatorio que devuelve True o False). Si puede ser
 * atendido se le saca de la cola. Si no puede ser atendido en ese momento, se le pasa a la posición 
 * 10 de la cola,  
 *
 */
public class Cola {
	private java.util.ArrayList<String> cola = null;
	private java.util.Random alea = new java.util.Random();
	private boolean isDebug = true;
 
	public Cola(){
		cola = new java.util.ArrayList<String>();
		this.runProccess();
	}
 
	private boolean isAccepted(){
		return ((int) alea.nextInt(2)) == 0;
	}
 
	private void muestraCola(){
		if(isDebug) System.out.println("-------------------------------------------");
		System.out.print("[");
		String sep = "";
		for(String c : cola){
			System.out.print(sep + c);
			sep = ", ";
		}
		System.out.print("]\n");
		if(isDebug) System.out.println("-------------------------------------------");
	}
 
	private void runProccess(){
		int pos = 0;
		int final_size = cola.size();
		while(pos < final_size){
			if(isDebug) System.out.println(String.format("Atendiendo posición %d[%s]",pos, cola.get(pos)));
			if(this.isAccepted()){
				cola.remove(pos);
				if(isDebug) System.out.println("Aceptado, se le atiende y se saca de la cola");
			} else {
				if(isDebug) System.out.println("No se puede atender en estos momentos");
				if(cola.size() > 10){
					for(int nJ = pos; nJ < final_size; nJ++){
						if(cola.size() > (10+nJ)){
							if(isDebug) System.out.println(String.format("Se mueve a %s de la posición %d a la posición %d en la que está %s", cola.get(pos),pos,(10+nJ),cola.get(10+nJ)));
							java.util.Collections.swap(cola, pos, 10+nJ);
						}else{
							cola.add(cola.get(pos));
							cola.remove(pos);
							break;
						}
						if(isDebug) System.out.println("La cola queda así:");
						if(isDebug) muestraCola();
					}
 
				} else {
					java.util.Collections.swap(cola, pos, cola.size()-1);
					if(isDebug) System.out.println("Se mueve al final");
				}
			}
			final_size = cola.size();
			if(isDebug) System.out.println("La cola queda así:");
			muestraCola();
		}
	}
 
	public void setAllItems(String[] items){
		this.cola = new java.util.ArrayList<String>(java.util.Arrays.asList(items));
	}
 
	public void addItem(String nuevo){
		this.cola.add(nuevo);
	}
 
	public java.util.ArrayList<String> getCola(){
		return this.cola;
	}
 
	public static void main(String[] args){
		Cola c = new Cola();
		c.setAllItems(new String[] {"enero[1]","febrero[2]","marzo[3]","abril[4]","mayo[5]","junio[6]",
									"julio[7]","agosto[8]","septiembre[9]","octubre[10]","noviembre[11]","diciembre[12]"});
 
		System.out.println("La cola comienza así:");
		c.muestraCola();
		c.runProccess();
		System.out.println("La cola termina así:");
		c.muestraCola();
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar