Código de Vala - Vala: Desordenar un vector numérico

<<>>
Imágen de perfil
Val: 20
Ha mantenido su posición en Vala (en relación al último mes)
Gráfica de Vala

Vala: Desordenar un vector numéricográfica de visualizaciones


Vala

Publicado el 3 de Marzo del 2020 por Octulio (23 códigos)
223 visualizaciones desde el 3 de Marzo del 2020
Programa fuente en lenguaje Vala del algoritmo desordenar un vector numérico mediante la técnica "Mezcla de naipes Fisher-Yates".
Compilar y ejecutar en Linux, por ejemplo, en CentOS 7.
Pasos:

* valac -v --Xcc=-lm VectorNum.vala
* ./VectorNum

En el 1º paso, compila el programa VectorNum.vala produciendo el programa ejecutable.
La opción -lm es pasada al compilador de lenguaje C/C++ para que enlace la biblioteca de funciones matemáticas junto con nuestro programa ejecutable.

img02

En el 2º paso, se invoca al programa ejecutable VectorNum mostrando en pantalla el vector ordenado y luego el vector desordenado.
img01

La utilidad práctica que podría Usted darle a este algoritmo es en videojuegos: por ejemplo el juego del 15. Visite Google Play y busque el juego del 15 para celular.
Entonces contando con esta idea de juego puede Usted crear un juego para Linux.

Más info. en: Programación en Vala - WikiLibros
https://es.wikibooks.org/wiki/Programación_en_Vala

Requerimientos

Puede Usted compilar este programa en cualquier distro Linux que posea el compilador Vala.
Por ejemplo: CentOS 7/8, Debian, MX-Linux y otros tantos que existen.

1.0

Publicado el 3 de Marzo del 2020gráfica de visualizaciones de la versión: 1.0
224 visualizaciones desde el 3 de Marzo del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Copie y pegue en un editor de texto el siguiente código fuente y guarde todo en un archivo: VectorNum.vala
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
// Programa   : VectorNum.vala
// Autor      : Octulio Biletán - Marzo de 2020.
// Propósito  : Desordenar/mezclar los datos de un vector numérico
//                      mediante el uso del algoritmo "Mezcla de naipes Fisher-Yates".
// Compilar   : valac -v --Xcc=-lm VectorNum.vala
// Referencias: https://bost.ocks.org/mike/shuffle/
//
 
public class VectorNum
{
    // Desordena el vector numérico comenzando desde atrás hacia adelante
    void barajar(int[] vnum)
    {
      int m = vnum.length;	// último elemento del vector
      int t;			// var. temporaria
      int i;			// posición del elemento elegido al azar
 
      // Mientras queden elementos a barajar...
      while(m > 0)
      {
	// Elige un elemento al azar...
	i = (int)Math.floor(Random.next_double() * m--);
 
	// Y lo intercambia con el elemento actual.
	t       = vnum[m];
	vnum[m] = vnum[i];
	vnum[i] = t;
      }
    }
 
    // Muestra el vector numérico en pantalla
    void mostrar(int[] vnum)
    {
	for(int i = 0; i < vnum.length; i++)
	{
	    stdout.printf("%d, ", vnum[i]);
	}
    }
 
    static int main(string[] args)
    {
	// Vector entrada: sus datos están ordenados.
	int ventrada[] = {-1,0,1,2,3,4,5,6,7,8,9,10};
 
	VectorNum vector = new VectorNum();
 
	stdout.printf("Vector ordenado:\n");
	vector.mostrar(ventrada);
	stdout.printf("\n");
 
	// 1º llamado
	vector.barajar(ventrada);
 
	// 2º llamado
	vector.barajar(ventrada);
 
	stdout.printf("\nVector desordenado: con dos mezclas\n");
	vector.mostrar(ventrada);
	stdout.printf("\n");
 
	return 0;
    }
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5990