Hola a todos, hoy os voy a explicar como podemos copiar arreglos en PseInt.
A veces, necesitamos tener una copia de un arreglo para nuestros procesos.
Vamos a tener dos arreglos donde uno de ellos lo rellenaremos con números aleatorios y otro arreglo donde copiaremos los valores.
Os dejo un tutorial para rellenar un arreglo con números aleatorios:
Veamos como seria el código:
Proceso testCopiaArreglos Dimension arregloOriginal(5); Dimension arregloCopia(5); definir i, longitudArreglo, minimo, maximo, arregloOriginal, arregloCopia como numero; longitudArreglo <- 5; minimo <- 10; maximo <- 20; rellenarArrayAleatorios(arregloOriginal, longitudArreglo, minimo, maximo); // Copio el array Para i<-0 Hasta longitudArreglos-1 Con Paso 1 Hacer arregloCopia(i) <- arregloOriginal(i); FinPara Escribir "Arreglo original"; Para i<-0 Hasta longitudArreglo-1 Con Paso 1 Hacer Escribir "Valor de ", i, " => ", arregloOriginal(i); FinPara Escribir "Arreglo copia"; Para i<-0 Hasta longitudArreglo-1 Con Paso 1 Hacer Escribir "Valor de ", i, " => ", arregloCopia(i); FinPara FinProceso //Genera un numero aleatorio entre el minimo y máximo incluidos SubProceso numeroAzar <- numeroAleatorioEntre(minimo, maximo) definir numeroAzar como numero; numeroAzar <- 0; Repetir numeroAzar <- AZAR(maximo+1); Hasta Que numeroAzar >= minimo Y numeroAzar<=maximo FinSubProceso //Rellena un arreglo de numeros aleatorios entre un mínimo y un máximo, números mínimo y máximo incluidos. SubProceso rellenarArrayAleatorios(arreglo, longitudArreglo, minimo, maximo) definir numeroAzar,i como numero; numeroAzar <- 0; Para i<-0 Hasta longitudArreglo-1 Con Paso 1 Hacer numeroAzar <- numeroAleatorioEntre(minimo, maximo); arreglo(i) <- numeroAzar; FinPara FinSubProceso
Este seria el resultado:
También lo podemos hacer en subproceso:
//Arreglo1 = arreglo original //Arreglo2 = arreglo donde se copiaran los datos del arreglo original //longitudArreglos = La longitud de ambos arreglos, deben ser iguales SubProceso copiaArreglos (arreglo1, arreglo2, longitudArreglos) definir i como numero; Para i<-0 Hasta longitudArreglos-1 Con Paso 1 Hacer arreglo2(i) <- arreglo1(i); FinPara FinSubProceso
Así lo adaptaríamos:
Proceso testCopiaArreglos Dimension arregloOriginal(5); Dimension arregloCopia(5); definir i, longitudArreglo, minimo, maximo, arregloOriginal, arregloCopia como numero; longitudArreglo <- 5; minimo <- 10; maximo <- 20; rellenarArrayAleatorios(arregloOriginal, longitudArreglo, minimo, maximo); // Copio el array copiaArreglos(arregloOriginal, arregloCopia, longitudArreglo); Escribir "Arreglo original"; Para i<-0 Hasta longitudArreglo-1 Con Paso 1 Hacer Escribir "Valor de ", i, " => ", arregloOriginal(i); FinPara Escribir "Arreglo copia"; Para i<-0 Hasta longitudArreglo-1 Con Paso 1 Hacer Escribir "Valor de ", i, " => ", arregloCopia(i); FinPara FinProceso //Genera un numero aleatorio entre el minimo y máximo incluidos SubProceso numeroAzar <- numeroAleatorioEntre(minimo, maximo) definir numeroAzar como numero; numeroAzar <- 0; Repetir numeroAzar <- AZAR(maximo+1); Hasta Que numeroAzar >= minimo Y numeroAzar<=maximo FinSubProceso //Rellena un arreglo de numeros aleatorios entre un mínimo y un máximo, números mínimo y máximo incluidos. SubProceso rellenarArrayAleatorios(arreglo, longitudArreglo, minimo, maximo) definir numeroAzar,i como numero; numeroAzar <- 0; Para i<-0 Hasta longitudArreglo-1 Con Paso 1 Hacer numeroAzar <- numeroAleatorioEntre(minimo, maximo); arreglo(i) <- numeroAzar; FinPara FinSubProceso //Arreglo1 = arreglo original //Arreglo2 = arreglo donde se copiaran los datos del arreglo original //longitudArreglos = La longitud de ambos arreglos, deben ser iguales SubProceso copiaArreglos (arreglo1, arreglo2, longitudArreglos) definir i como numero; Para i<-0 Hasta longitudArreglos-1 Con Paso 1 Hacer arreglo2(i) <- arreglo1(i); FinPara FinSubProceso
Recordar que tenemos más subprocesos útiles en nuestra biblioteca en github.
Y no te olvides que tenemos un curso en udemy de PseInt.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta