[ 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 (+32)

¿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 (+32)

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 (+32)

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.)