[ Foro de Pseudocódigo ]

EJERCICIOS DE FUNCIONES

25-Nov-2013 00:35
Mauricio Hernandez
5 Respuestas

RESOLUCIÓN DE PROBLEMAS DE EN PSEINT


25-Nov-2013 00:52
Nacho Cabanes (+84)

¿Y la duda es...?


25-Nov-2013 13:23
Mauricio Hernandez

Si lo siento la duda es como resolver un problema en pseint.
DICE REALIZAR UNA ORDENACION TIPO CUBETA CON UN ARREGLO UNIDIMENSIONAL.


25-Nov-2013 14:30
Nacho Cabanes (+84)

Supongo que con "ordenación tipo cubeta" te refieres a "binsort", que se suele plantear así:


PROCEDURE Cubetas(VAR a:vector); 
  VAR i:CARDINAL; 
BEGIN 
  FOR i:=1 TO n DO 
    WHILE a[i]<>i DO
      Intercambia(a,i,a[i]) 
    END 
  END 
END Cubetas; 


(Pero este algoritmo tiene ciertos requisitos: los n números del vector son todos distintos, y coinciden con los enteros naturales de 1 a n).

Confírmame si es así, y lo convertimos a la sintaxis de PseInt.


02-Dec-2013 14:50
Mauricio Hernandez

si esta bien porfavor dame la sintaxis en pseint te lo agradesco mucho.


05-Dec-2013 09:35
Nacho Cabanes (+84)

Si tienes la idea clara en "pseudocódigo en inglés", pasarlo a PseInt es fácil: "for" se convierte en "Para", "while" se convierte en "Mientras" y el intercambio se hace con una variable auxiliar.

Si a eso le añades un "cuerpo de programa" que prepare datos y muestre resultados, ya está todo completo:


Proceso OrdenarBinSort
	
	Dimension matriz[5]
	
	matriz[1] <- 3;
	matriz[2] <- 5;
	matriz[3] <- 2;
	matriz[4] <- 1;
	matriz[5] <- 4;
	
	BinSort(matriz, 5)
	
	Para i <- 1 Hasta 5 Hacer
        Escribir matriz[i]
	FinPara
	
FinProceso


SubProceso  BinSort(datos, tamanyo)
	Para i <- 1 Hasta tamanyo Hacer
		Mientras datos[i] <> i Hacer
			// Intercambia(a,i,a[i]) 			
			temporal <- datos[i]
			datos[i] <- i
			i <- temporal
		FinMientras 
	FinPara
FinSubProceso








(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)