Empecemos
Lo primero que hay que hacer, como bien ya deben saber, es ejecutar la aplicación "Aistarter" ya instalada, luego crear un nuevo proyecto y ponerle el nombre que desees.
Cuando ya estés en la zona de diseñador, en el área de paleta/sección disposición arrastrar una disposiciónhorizontal y cambiar en las propiedades el ancho por "ajustar al contenedor", hay que agregarle dos botones y cambiarle los nombres para que sea más sencillo identificarlos a la hora de programar, uno se llamara Ordenar mientras que el otro se llamara Desordenar.
Luego, deben poner otra disposicionhorizontal y añadirle de la sección paleta/interfaz de usuario un VisorDeLista, cambiarle el nombre por "lista" y en propiedades, en "ElementosDesdeCadena" deben ingresar los datos que deseen y en cualquier orden, yo ocupe "C,a,b,m,3,z,2,40,l,5,S,t,hola,si".
Por ultimo, arrastrar otro VisorDeLista y ponerlo fuera de la disposicionhorizontal, cambiar el nombre a "Lista_abc" , esta ultima en la parte de propiedades deben dejarla oculta, pero encima del screen1 deben seleccionar donde dice "mostrar en el visor los componentes ocultos"
Así debería quedarles
A programar!
Deben crear tres variables, se llamaran "abc" , "lista" y "temporal" , las dos primeras empezaran en "crear una lista vacía" mientras que la última en un cuadro vació que encontraran en el área de "texto"
La variable lista es donde se mostrara lo que va ocurriendo cuando apretemos los botones, la variable abc se ocupa para introducir el abecedario y los números/es donde estará el orden que uno espera que sigan los elementos, por eso se oculta, nada más se ocupa como un lugar donde están estos elementos y ya
Cuando iniciemos nuestra pantalla, lo primero que debe pasar esque estén ya los elementos de la lista, así que debemos cargarlos, los pasos son los siguientes:
*Cuando screen1 inicializar, ejecutar
*Poner la "lista_abc . ElementosDesdeCadena, como", aquí deben agregarle el bloque de texto donde uno puede escribir e ingresar el orden que quieren que su lista tenga, en este caso ingrese el abecedario, con mayúscula y minúscula "A,a,B,b,C,c ...." luego, los números
*Poner "lista . ElementosDeCadena, como", deben agregar los elementos que ingresaron en propiedades al inicio
*Poner "global abc a lista_abc . elementos"
Recuerda ir guardando tu proyecto
Ahora programaremos el botón ordenar, la idea esque se recorra toda la lista y luego se vaya ordenando según la secuencia ingresada anteriormente, debe recorrer la lista dos veces.
la secuencia es la siguiente:
* Cuando Botón ordenar clic , ejecutar
* Poner global lista a lista.elementos
* Por cada "p" desde 1 hasta "longitud de la lista menos 1" en incrementos de 1 ejecuta
Con esto recorrerá toda la lista, de un punto hasta el otro por cada elemento
Así debería ir quedando
Como dijimos anteriormente, debe recorrer dos veces la lista, así que el bloque anterior se duplica, se encaja en el que usamos para duplicar y se le cambia el elemento "p" por "i" .. Así nos estamos refiriendo a la lista ya ordenada una vez
Ahora hay que comprobar si el primer carácter de la lista es inferior o mayor al siguiente, y para eso la secuencia que hay que seguir es la siguiente:
* Mientras comprobar, ejecutar
* Insertar bloque de mayor que se encontrara en el área de matemática
* Insertar en el primer espacio del bloque anterior el indice de la lista 1
Queremos escoger el primer carácter de la lista, así que nuestro bloque a utilizar sera:
* Segmento de texto, en donde estará Seleccionar elementos de la lista "global lista" y el indice "i"
* Tendrá un inicio de 1 y longitud 1
* En lista colocar la variable "abc"
Con esto lo que hará esque cuando lea un carácter y lo compare tendrá como referencia la Lista_abc, que es donde en un principio ingresamos el orden que queríamos que tuviera y designara el lugar que ocupara ese carácter
Nos falta lo que va al otro lado del mayor >
Como queremos que vaya comparando de a dos elementos de la lista, ya tiene el primero, entonces, para escoger el segundo elemento el bloque es el mismo que el anterior , pero, envés de ocupar el indice "i", se ocupa el indice "i + 1"
Así debería quedarles
A medida que vaya comparando los elementos deberá ir guardándolos en alguna parte, para eso es la variable temporal, la secuencia que permitirá esto, es la siguiente:
* Ejecutar la variable temporal
* Insertar los elementos de la lista con el indice i + 1
Ahora, lo que debe hacer es sustituir en la lista, la nueva posición de los caracteres, la secuencia es la siguiente:
* Sustituye elemento de la lista "tomar global lista" con el índice "tomar i + 1" por el sustituto "seleccionar elementos de la lista, tomar lista" y el índice "i"
Así debería ir quedando
* Insertar otro bloque de sustituir, esta vez tomara "i" y el sustituto sera la variable "temporal"
Por ultimo, al final de los procesos debemos insertar la lista con los caracteres ya ordenados.
Resultado final
Recuerden ir guardando y probando su proyecto, con esto el botón de ordenar deberia estar funcionando !
Ahora a programar el botón desordenar !
Lo primero que hay que hacer es crear 2 variables, a una la llamaremos "ListaDesordenada" y la inicializaremos como crear una lista vacía, mientras que a la otra la llamaremos "azar" y la inicializaremos en 0
A diferencia del botón ordenar, ahora buscamos que se busque un carácter al azar de la lista y la añada a la ListaDesordenada eliminándolo de la lista inicial , la secuencia para esto es la siguiente:
* Cuando botón desordenar clic, ejecutar
* Poner la ListaDesordenada a crear una lista vacía
* Mientras comprobar, ejecutar
* Debe comprobar que la longitud de la lista sea mayor a 0
* Luego ejecutar la variable azar a tomar un elemento al azar de la variable lista
* Ahora debe añadirlo a la variable ListaDesordenada y en el ítem colocar la variable azar
* Aquí debe eliminarlo de la variable Lista y en el indice colocar "indice en la lista tomar variable azar" y en lista "tomar variable lista"
* Por último, al final del proceso debemos insertar esta nueva ListaDesordenada a la variable Lista
Resultado final
No olvides guardar y descargar tu proyecto final :D
Aquí un vídeo de como debe quedarles su proyecto
Espero que les guste !
No hay comentarios:
Publicar un comentario