Arreglos o arrays multidimensionales en pseudocódigo

Hola a todos, hoy os mostrare como definir y utilizar arreglos o arrays multidimensionales en pseudocódigo.

Los arreglos o arrays multidimensionales son varios arrays unidimensionales unidos. Para imaginártelo mejor, piensa que son como tablas, donde los valores son el contenido de la tabla.

Veamos como se definen:

Proceso Prueba

	definir num como entero;

	dimension num[3,3];

FinProceso

Lo único que cambia es que añadimos es otro numero, el primero hace referencia a las filas (como en los unidimensionales) y el segundo es el numero de columna. Es decir, que sería como una tabla de 3×3.

Vams a ver como podemos recorrerlo:

Proceso Prueba

	definir num, columna, fila como entero;
	dimension num[3,3];

	num[1,1]=1;
	num[1,2]=2;
	num[1,3]=3;
	num[2,1]=4;
	num[2,2]=5;
	num[2,3]=6;
	num[3,1]=7;
	num[3,2]=8;
	num[3,3]=9;

	Para columna<-1 Hasta 3 Con Paso 1 Hacer
		Para fila<-1 Hasta 3 Con Paso 1 Hacer
			escribir num[columna,fila];
		FinPara
	FinPara
FinProceso

Como vemos, usamos un bucle dentro de otro bucle, necesitaremos un bucle por cada array unidimensional. Para entenderlo mejor veamos este ejemplo para ver la combinación de indices:

Proceso Prueba

	definir num, columna, fila como entero;
	dimension num[3,3];

	num[1,1]=1;
	num[1,2]=2;
	num[1,3]=3;
	num[2,1]=4;
	num[2,2]=5;
	num[2,3]=6;
	num[3,1]=7;
	num[3,2]=8;
	num[3,3]=9;

	Para columna<-1 Hasta 3 Con Paso 1 Hacer
		Para fila<-1 Hasta 3 Con Paso 1 Hacer
			escribir "En la columna ",columna," y fila ",fila," es ",num[columna,fila];
		FinPara
	FinPara
FinProceso

¿Pero que pasa si, para un concreto caso, queremos ver una columna en concreto sin tener que recorrer todas las columnas? Podemos hacerlo con un simple bucle. Veamos un ejemplo:

Proceso Prueba

	definir num, columna, fila como entero;
	dimension num[3,3];

	num[1,1]=1;
	num[1,2]=2;
	num[1,3]=3;
	num[2,1]=4;
	num[2,2]=5;
	num[2,3]=6;
	num[3,1]=7;
	num[3,2]=8;
	num[3,3]=9;

	Para fila<-1 Hasta 3 Con Paso 1 Hacer
		Escribir num[2, fila];
	FinPara
FinProceso

En el ejemplo anterior, vemos que mostramos solo la columna dos.

También podemos hacer como en los arrays unidimensionales, introducir nosotros los datos. Aquí lo vemos:

Proceso Prueba

	definir num, columna, fila como entero;
	dimension num[3,3];

	Para columna<-1 Hasta 3 Con Paso 1 Hacer
		Para fila<-1 Hasta 3 Con Paso 1 Hacer
			escribir "Introduce el valor de la columna ",columna," y ",fila;
                        leer num[columna,fila];
		FinPara
	FinPara

	Para columna<-1 Hasta 3 Con Paso 1 Hacer
		Para fila<-1 Hasta 3 Con Paso 1 Hacer
			escribir "En la columna ",columna," y fila ",fila," es ",num[columna,fila];
		FinPara
	FinPara
FinProceso

Por último, haremos igual que en los arrays unidimensionales,  que es definir una constante para que en caso de cambiar el tamaño de un array solo lo hagamos en un lugar. Veamos un ejemplo:

Proceso Prueba

	definir num, columna, fila,TAMANIO_COLUMNA, TAMANIO_FILA como entero;
	TAMANIO_COLUMNA=3;
	TAMANIO_FILA=3;

	dimension num[TAMANIO_COLUMNA,TAMANIO_FILA];
	Para columna<-1 Hasta TAMANIO_COLUMNA Con Paso 1 Hacer
		Para fila<-1 Hasta TAMANIO_FILA Con Paso 1 Hacer
			escribir "Introduce el valor de la columna ",columna," y ",fila;
			leer num[columna,fila];
		FinPara
	FinPara

	Para columna<-1 Hasta TAMANIO_COLUMNA Con Paso 1 Hacer
		Para fila<-1 Hasta TAMANIO_FILA Con Paso 1 Hacer
			escribir "En la columna ",columna," y fila ",fila," es ",num[columna,fila];
		FinPara
	FinPara
FinProceso

Espero que os sea de ayuda. Si teneis dudas, preguntad. Estamos para ayudarte.

Compartir

10 comentarios

  1. Eyleen Rodríguez

    Hola, tengo un problema para resolver con PseInt, una empresa desea controlar las ausencias de sus empleados por semana y por departamentos. Me piden que los datos de entrada sean una matriz de [5,6], me piden que inverta la matriz , que conserve los datos ingresados en la matriz original, además calcule la cantidad de ausencias de por departamento por semana, que calcule el promedio, el % de ausencias por departamento respecto al promedio. Además debo indicar el día de menos ausencias y el día de más ausencias, SI me pudieran ayudar por favor!!!

  2. Luan Gauna

    Hola amigo, necesito una mano con esto de los arrays, me dieron este problema para realizar y no logro resultados: Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido.

    Proceso Ejercicio7
    Dimension Clientes[5,2]

    Clientes[1,1]=Juan
    Clientes[1,2]=’REGISTRA DEUDA’
    Clientes[2,1]=Jose
    Clientes[2,2]=’NO REGISTRA DEUDA’
    Clientes[3,1]=Javier
    Clientes[3,2]=’REGISTRA DEUDA’
    Clientes[4,1]=Jonathan
    Clientes[4,2]=’NO REGISTRA DEUDA’
    Clientes[5,1]=Jesús
    Clientes[5,2]=’REGISTRA DEUDA’

    Escribir «—–Bienvenido a Luan`s Factory.—–»
    Esperar tecla
    Limpiar Pantalla
    Escribir «Para hacer un pedido debe ingresar su nombre de cliente por favor.»
    Escribir «Si usted registra una deuda con nosotros el pedido no será aceptado.»
    Esperar tecla
    Limpiar Pantalla

    Escribir «Ingrese nombre del cliente»
    Para fila=1 hasta 5 con paso 1
    Leer nombre
    Si nombre=Clientes[fila,1] entonces
    Mostrar Clientes[fila,2]
    FinSi
    FinPara
    FinProceso

  3. sharon

    podrian ayudarme con unos ejercicios de arreglos por favor…
    aca se los dejo y se los agradeceria muchisimo

    Caso 1:
    Realizar un algoritmo que permita llenar un arreglo de largo N (validar que el valor mínimo de N sea 3) que contenga las temperaturas de la ciudad de Valdivia en grados Celcius. El arreglo se debe llenar en forma aleatoria en un rango entre -20° y 40°, y además se solicita mostrar el promedio de temperaturas sobre 0°. Si no hubo temperaturas sobre 0° mostrar el mensaje adecuado.

    Caso 2
    Realizar un algoritmo que permita llenar un arreglo de largo N con números enteros positivos y validar que el valor de N y los elementos sean positivos. Luego modificar los elementos del arreglo de la siguiente forma:
    Si el elemento se encuentra en posición índice impar y tiene 2 dígitos, es aumentar el valor de la decena de este. Mostrar el valor modificado. (WTF)
    -Después no dijo nada más de este caso-

    Caso 3:
    Un frigorífico de carnes de cordero ubicado en el centro de la ciudad de Punta Arenas necesita computarizar las medidas de los corderos almacenados allí. Por cada cordero se deben almacenar las siguientes variables:
    – Número de serie: Cadena de caracteres
    – Edad: Aleatoria en un rango entre 1 y 10
    – Sexo: Si es macho (M) o hembra (H)
    – Peso: En kilos
    El frigorífico tiene una capacidad para recibir como máximo 100 corderos. Debe realizar un algoritmo que permita ingresar dicha información en arreglos paralelos y validar la información.
    Almacenar en un nuevo arreglo los números de series de todos los corderos hembras obesas (peso>40kg) y mostrar el arreglo con los números de serie. En caso que no tuviera hembras obesas mostrar el mensaje correspondiente.

  4. michu

    Necesito ayuda con estos ejercicios por favor
    Realizar un algoritmo que permita llenar un arreglo de largo N (validar que el valor mínimo de N sea 3) que contenga las temperaturas de la ciudad de Valdivia en grados Celcius. El arreglo se debe llenar en forma aleatoria en un rango entre -20° y 40°, y además se solicita mostrar el promedio de temperaturas sobre 0°. Si no hubo temperaturas sobre 0° mostrar el mensaje adecuado.Un frigorífico de carnes de cordero ubicado en el centro de la ciudad de Punta Arenas necesita computarizar las medidas de los corderos almacenados allí. Por cada cordero se deben almacenar las siguientes variables:
    – Número de serie: Cadena de caracteres
    – Edad: Aleatoria en un rango entre 1 y 10
    – Sexo: Si es macho (M) o hembra (H)
    – Peso: En kilos

    El frigorífico tiene una capacidad para recibir como máximo 100 corderos. Debe realizar un algoritmo que permita ingresar dicha información en arreglos paralelos y validar la información.
    Almacenar en un nuevo arreglo los números de series de todos los corderos hembras obesas (peso>40kg) y mostrar el arreglo con los números de serie. En caso que no tuviera hembras obesas mostrar el mensaje correspondiente.

  5. aldres

    hola a todos.
    necesito un favor, como creo un arreglo de 4 dimensiones en pse int para un problema de ventas?

  6. Keyner

    Repetir con 1 desde 1 hasta 5
    Repetir con J desde 1 hasta 12
    Escribir A [I,J,2]
    Observe que para este caso se asigna la constante 2 al tercer índice –el de los años- y se hace variar a los otros dos índices. De esta manera se escribirán las producciones mensuales.

  7. Matias Reyes

    Necesito ayuda con mi taller de fundamentos de programación porfavor.
    El taller consiste en
    desarrollar un programa para la venta de pasajes
    En un menú deberá tener las siguientes opciones
    1.- Venta Pasajes - Se piden los datos para llenar las matrices cada vez que venda
    2.- Lista de Pasajeros se recorre cada Matriz y se muestra todos los datos almacenados
    3.- Cálculo Ventas sumar todos los montos y mostrar total de venta por OFICINA
    4.- Salir

    1.- Para la venta de Pasajes deberá solicitar el Ingreso de nombre – Apellido – dirección – oficina
    Estos datos alfabéticos (carácter) en una matriz llamada PASAJERO
    En una segunda Matriz llamada PASAJERO2 y debe contener datos numéricos que son N° de Asiento – Valor pasaje
    Deberá de cuidar el que no se repita el asiento cuando esté vendiendo, para eso debe recorrer la segunda matriz donde están los n° de asientos.
    El Bus solo tendrá 10 asientos
    OFICINA se refiere donde fue vendido el pasaje puede ser LA SERENA – COQUIMBO – OVALLE
    Deberá de relacionar ambas matrices
    PASAJERO
    JUAN DIAZ LAS ROJAS 34 LA SERENA
    PEDRO FLORES BAQUEDANO 567 COQUIMBO

    PASAJERO2
    10 12000
    01 10000

    Sabremos que la primera fila de la matriz PASAJERO se relaciona con los datos de la primera fila de la matriz PASAJERO2
    2.- Lista de Pasajeros es mostrar todos los pasajeros con sus datos ingresados
    3.- Cálculo de Ventas es sumar todos los montos ingresados y mostrar el total vendido por cada una de las oficinas

  8. Emilio

    Nesecito ayuda con un pseudocodigo para Pseint.

    En el arreglo tridimensional LLU se almacenan las lluvias mensuales registradas en milímetros, en las 24 provincias de Argentina, durante los últimos 10 años. resolver lo siguiente:
    a) La provincia que tuvo el mayor registro de precipitación pluvial durante los últimos 10 años.
    b) La provincia que tuvo el menor registro de lluvias en el último año.
    c) El mes que tuvo el mayor registro de lluvias en la provincia 18 en el quinto año.
    Nota: En todos los casos se debe escribir además el registro de lluvias correspondiente.
    Dato: LLU[24][12][10] (arreglo tridimensional de tipo real que almacena las lluvias mensuales en las 24 provincias durante los últimos 10 años).

Deja una respuesta

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