Como copiar arreglos en Pseint

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:

Rellenar un arreglo con números aleatorios en PseInt

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:

copiar arreglos pseint 1 copiar arreglos pseint 2

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.

Curso iniciación pseudocodigo con Pseint

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *