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:
[code]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
[/code]Este seria el resultado:

También lo podemos hacer en subproceso:
[code] //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
[/code]
Así lo adaptaríamos:
[code] 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
[/code]
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