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

Imágen de perfil
Val: 26
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 (28 códigos)
359 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
360 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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5990