Está en la página 1de 5

INSTITUTO DE EDUCACION SUPERIOR N°10

PROGRAMACIÓN
ACTIVIDAD ARREGLOS
TEC. SUP. EN
DESARROLLO Tema: Arreglos. Operaciones básicas.
DE SOFTWARE
Apellido y Nombre: Fecha: / /

Conceptos Teóricos
Un arreglo es un conjunto de elementos del mismo tipo de dato que comparten un nombre común;
podemos decir que se asemeja a una variable que puede almacenar más de un valor al mismo tiempo. Un
arreglo es un conjunto finito de elementos del mismo tipo cuyo acceso se realiza a través de índices. Desde el
punto de vista del programa un arreglo se define como una zona de almacenamiento contiguo (posiciones de
memoria consecutivas) que contiene una serie de elementos, todos del mismo tipo (enteros, reales, lógicos,
etc.) que pueden ser procesados individualmente o en conjunto.
Los siguientes arreglos, Vector_1 y Vector_2, son unidimensionales, comúnmente denominados
vectores, cuentan con espacio de almacenamiento suficiente para guardar 8 datos del tipo numérico y
alfanumérico respectivamente.
Un vector de tipo numérico con una dimensión de 8 espacios es:
33 18 3 65 94 4 7 12
Vector_1 0 1 2 3 4 5 6 7

Un vector de tipo alfanumérico con una dimensión de 8 espacios es:


‘a’ ‘*1’ ‘hola’ ‘un@’ ‘94’ ‘sol’ ‘abc’ ‘<’
Vector_2
0 1 2 3 4 5 6 7

Índices de Vectores
Los índices permiten referenciar directamente posiciones específicas de un vector. Los índices pueden
ser valores constantes ordinales (por ejemplo, Vector_1[5]), variables ordinales (por ejemplo, Vector_1[i])
o expresiones de tipo ordinal (por ejemplo, Vector_1[i+2])

Rango
El número de elementos de un vector se conoce como Rango del Vector. Este se determina mediante
la siguiente expresión: Rango de Vector=LS – LI +1
Límite inferior (LI): valor mínimo permitido para el índice
Límite superior (LS): el valor máximo permitido para el índice.
Por ejemplo, podría definirse un arreglo cuyos índices estuvieran entre 1 y 50, donde LI=1 y LS=50.
Entonces Rango de Vector=LS – LI +1, Rango de Vector=50 – 1 +1, Rango de Vector=50.
Lectura y Escritura
Para acceder a un elemento específico del arreglo valores, se indica el nombre del arreglo y el índice
que especifica su posición. Por ejemplo, si deseamos saber en el Vector_1, el valor 2, y en el Vector_2, el
valor 5, hacemos lo siguiente:
Escribir Vector_1 [2] //nos mostrará el valor 3
Escribir Vector_2 [i] //con i=5, entonces, nos mostrará el valor ‘sol’
La asignación de valores a los elementos de un vector se realiza indicando el espacio de orden con el
operador asignación  para asignar el valor, de igual manera que con las variables simples. Es posible realizar
la carga de vectores con datos mediante estructuras de control repetitivas.

Ejercicio: si deseamos realizar la carga de valores a un vector, en pseudocódigo y en c++:

Año 2021 Pág. 1 de 7


Programación
TEC. SUP. EN DESARROLLO DE SW

PROGRAMA vectores #include <iostream.h>


CONSTANTES using namespace std;
MAX_ELEMENTOS=10
TIPOS const int Max_Elem=5;
tipo_vector=ARREGLO [1..MAX_ELEMENTOS] de caracter typedef char tipo_vector [Max_Elem];
VARIABLES
num: tipo_vector main ()
i:entero {
INICIO tipo_vector num;
Para i desde 1 hasta Max_Elem hacer int i;
Escribir "Ingrese un caracter"; for(i=0;i<=Max_Elem-1;i++)
Leer num(i); {
Fin Para cout<<"Ingrese un caracter"<<endl;
Para i desde 1 hasta Max_Elem hacer cin>>num[i];
Escribir num(i); }
Fin Para for(i=0;i<=Max_Elem-1;i++)
FIN cout<<num[i]<<endl;
system("pause");
}

Arreglos Bidimensionales o Matrices


Las matrices son estructuras que contienen datos homogéneos, es decir, del mismo tipo. Así como
antes utilizamos un indicador o índice para posicionarnos y almacenar algún valor, en el caso de las matrices,
utilizaremos dos índices que determinarán la posición de fila y columna. Las matrices se representan mediante
tablas con dimensión M x N, en donde M es el número de filas, y N, el número de columnas.

1 2 3 4
Matriz_1 1 2 3 4 Matriz_2 1 A O S O
1 4 7 5 9
2 B M L M
2 3 1 4 2
3 M L V X
3 5 8 3 1
4 G P H C
4 9 4 7 2
5 D C J W
Matriz_1: Una matriz de tipo numérico con una dimensión de 4 x 4.
Matriz_2: Una matriz de tipo caracter con una dimensión de 5 x 4.
Si la matriz tiene igual número de filas que de columnas se dice que se trata de una matriz cuadrada.
En las matrices cuadradas los elementos que ocupan las posiciones donde los índices de fila y columna son
iguales reciben el nombre de diagonal principal. Por ejemplo, en la Matriz_1 los elementos de la diagonal
principal son: 4, 1, 3, 2.

Índices de Matrices
Los índices permiten referenciar directamente posiciones específicas de los elementos de una matriz.
Los índices pueden ser valores constantes ordinales (por ejemplo, Matriz_1[1,1]), variables ordinales (por
ejemplo, Matriz_1[i,j]) o expresiones de tipo ordinal (por ejemplo, Matriz_1[i+2,j])

Rango
El número de elementos de una matriz se conoce como Rango de la Matriz. Este se determina
mediante la siguiente expresión:
Rango de la matriz=(LSF-LIF+1)*(LSC-LIC+1)
LSF: límite superior del índice de filas
LIF: límite inferior del índice de filas
LSC: límite superior del índice de columnas
LIC: límite inferior del índice de columnas

Por ejemplo, el rango para Matriz_1, Rango de Matriz_1 =(LSF-LIF+1)*(LSC-LIC+1), entonces


Rango de Matriz_1 =(4-1+1)*(4-1+1)=16

Año 2021 Pág. 2 de 7


Programación
TEC. SUP. EN DESARROLLO DE SW

Lectura y Escritura
Para acceder a un elemento específico de una matriz, se indica el nombre de la matriz y los índices que
especifican una posición. Por ejemplo, si deseamos saber en Matriz_1, el valor que se encuentra en la fila 2,
columna 3, y en la Matriz_2, el valor que se encuentra en la fila 5, columna 1, hacemos lo siguiente:
Escribir Matriz_1 [2,3] //nos mostrará el valor 4
Escribir Matriz_2 [i,j] //con i=5 y j=1 entonces, nos mostrará el valor ‘D’
La asignación de valores a los elementos de una matriz se realiza indicando el espacio de orden con el
operador asignación  para asignar el valor, de igual manera que con las variables simples. Es posible realizar
la carga de matrices con datos mediante estructuras de control repetitivas.

Ejercicio: si deseamos realizar la carga de valores a la Matriz_1, en pseudocódigo y en c++:


PROGRAMA Matriz_1 #include <iostream.h>
CONSTANTES using namespace std;
FILAS=4
COLUMNAS=4 const int FILAS=4, COLUMNAS=4;
TIPOS typedef char tipo_matriz [FILAS][COLUMNAS];
tipo_matriz=ARREGLO[1..FILAS, 1..COLUMNAS] de entero
VARIABLES main ()
num: tipo_matriz {
i,j:entero tipo_matriz num;
INICIO int i,j;
Para i desde 1 hasta FILAS hacer for(i=0;i<=FILAS-1;i++)
Para j desde 1 hasta COLUMNAS hacer for(j=0;j<=COLUMNAS-1;j++)
Escribir "Ingrese un caracter"; {
Leer num(i,j); cout<<"Ingrese un caracter"<<endl;
Fin Para cin>>num[i][j];
Fin Para }
Para i desde 1 hasta FILAS hacer for(i=0;i<=FILAS-1;i++)
Para j desde 1 hasta COLUMNAS hacer for(j=0;j<=COLUMNAS-1;j++)
Escribir num(i,j); cout<<num[i][j]<<endl;
Fin Para system("pause");
Fin Para }
FIN

Arreglos Multidimensionales
Un arreglo multidimensional, puede definirse de tres, cuatro o hasta N dimensiones. De acuerdo a la
cantidad de dimensiones será necesario especificar la cantidad de índices para acceder a los elementos
individuales del arreglo. Por ejemplo, si el arreglo tiene 3 dimensiones, requiere de 3 índices; si el arreglo tiene
4 dimensiones, requiere de 4 índices; y si el arreglo tiene n dimensiones, entonces
requiere de n índices.
Multi

Índices de Arreglos Multidimensionales


Los índices permiten referenciar directamente posiciones específicas de los
elementos de un arreglo multidimensional.
Considerando un arreglo de 3 dimensiones de tipo entero denominado Multi
de 4x5x30, para acceder al elemento ubicado en la posición 1,3,10 se debe
especificar: Multi[1,3,10].
Los índices pueden ser valores constantes ordinales (por ejemplo,
Multi[1,5,10]), variables ordinales (por ejemplo, Multi[i,j,k]) o expresiones de tipo ordinal (por ejemplo,
Multi[3+2,j-3,5])

Año 2021 Pág. 3 de 7


Programación
TEC. SUP. EN DESARROLLO DE SW

Rango
El número de elementos de arreglo multidimensional se determina mediante la siguiente expresión:
Rango del arreglo multidimensional=(LS1-LI1+1)*(LS2-LI2+1)* …*(LSn-LIn+1)

LS1: límite superior del índice de la dimensión 1.


LI1: límite inferior del índice de la dimensión 1.
LS2: límite superior del índice de la dimensión 2.
LI2: límite inferior del índice de la dimensión 2.

LSn: límite superior del índice de la dimensión n.
LIn: límite inferior del índice de la dimensión n.

Por ejemplo, el rango para Multi, Rango de Multi =(LS1-LI1+1)*(LS2-LI2+1)* (LS3-LI3+1), entonces
Rango de Multi =(4-1+1)*(5-1+1)* (30-1+1)=600
Ejercicio: realizar la carga de valores a Multi, en pseudocódigo y en c++:
PROGRAMA Multidimensional #include <iostream.h>
CONSTANTES using namespace std;
D1=4
D2=5 const int D1=4, D2=5, D3=30;
D3=30 typedef char tipo_multi [D1][D2][D3];
TIPOS
tipo_multi=ARREGLO [1..D1, 1..D2, 1..D3] de entero main ()
VARIABLES {
num: tipo_multi tipo_multi num;
i,j,k:entero int i,j,k;
INICIO for(i=0;i<=D1-1;i++)
Para i desde 1 hasta D1 hacer for(j=0;j<=D2-1;j++)
Para j desde 1 hasta D2 hacer for(k=0;k<=D3-1;k++)
Para k desde 1 hasta D3 hacer {
Escribir "Ingrese un caracter"; cout<<"Ingrese un caracter"<<endl;
Leer num(i,j,k); cin>>num[i][j][k];
Fin Para }
Fin Para for(i=0;i<=D1-1;i++)
Fin Para for(j=0;j<=D2-1;j++)
Para i desde 1 hasta D1 hacer for(k=0;k<=D3-1;k++)
Para j desde 1 hasta D2 hacer {
Para k desde 1 hasta D3 hacer cout<<num[i][j][k]<<endl;
Escribir num(i,j,k); }
Fin Para system("pause");
Fin Para }
Fin Para
FIN

Operaciones sobre Arreglos mediante Modularidad


Sobre los arreglos pueden realizarse las siguientes operaciones:
• Asignación
• Lectura/Escritura
• Recorrido (acceso secuencial)
• Actualización (agregar, insertar y borrar)
• Búsqueda
• Ordenación
Para simplificar la repetición de estos procesos los resolveremos aplicando la programación modular,
realizando procesos más pequeños, mediante procedimientos y funciones. Esto implica que el problema original
será resuelto por medio de varios módulos, cada uno de los cuales se encargará de solucionar alguna parte
determinada.

Año 2021 Pág. 4 de 7


Programación
TEC. SUP. EN DESARROLLO DE SW

Realizar los siguientes Ejercicios


Ejercicio 1: Dado un vector de valores enteros de tamaño 20, diseñe un programa modular (los procedimientos
y funciones necesarios) que permita cargar elementos en el vector y mostrar los valores almacenados.

programa vectores
constantes
MAX =20
tipos
vector=arreglo [1..MAX] de enteros
variables
num:vector
opción, ocupado:entero

procedimento agregar (E/S x:vector,E/S ocup:entero)


var
i:entero
inicio
si ocup=MAX entonces
escribir ‘Vector Completo’
sino
ocup<-ocup+1
escribir ‘Ingrese valor:’
leer x[ocup]
fin_si
fin

procedimiento mostrar (E z:vector, E ocup:entero)


var
i:entero
inicio
para i desde 1 hasta ocup hacer
escribir z[i]
fin_para
fin

inicio
ocupado<-0
repetir
escribir ‘1-cargar vector‘
escribir ‘2-mostrar vector‘
escribir ‘3-salir‘
escribir ‘ingrese opcion:’
leer opcion
según opcion hacer
1: agregar(num,ocupado)
2: mostrar(num,ocupado)
3: escribir ‘fin del programa…’
de otro modo: escribir ‘opcion incorrecta’
fin_segun
hasta_que opcion=3
fin

Ejercicio 2: Considerando una matriz 3X3 (matriz cuadrada) de valores enteros, diseñe un programa (y los
procedimientos y funciones necesarios) que permita cargar la matriz, calcular la suma de su diagonal principal
y mostrar los elementos de la matriz.

Ejercicio 3: Considerando un arreglo 3x2x6 (tridimensional) de caracteres, diseñe un programa (y los


procedimientos y funciones necesarios) que permita cargar el arreglo, contar las veces que aparece una letra
indicada por el usuario y mostrar los elementos del arreglo.

Año 2021 Pág. 5 de 7

También podría gustarte