Sunteți pe pagina 1din 22

UNIDAD IV

ARREGLOS UNIDIMENSIONALES Y BIDIMENSIONALES

(ARRAYS VECTORES MATRICES)

ESTRUCTURAS DE DATOS
Hasta ahora se han usado datos que representan valores de tipo simple como un número
entero, real ó carácter.

Sin embargo, en muchas situaciones se necesita procesar un conjunto de valores que están
relacionados entre sí por algún método, por ejemplo, una lista de calificaciones, una serie
de temperaturas.

En este caso, el procesamiento con datos simples se hace muy difícil, por lo que la
mayoría de los lenguajes de programación incluyen características de estructuras de
datos.

En computación, una estructura de datos es una manera de


almacenar información (datos) en un ordenador de manera que puedan ser usados de una
manera eficiente.

Una selección cuidadosa de la estructura permitirá usar un algoritmo más eficiente. Una
estructura bien diseñada permitirá efectuar una variedad de operaciones, usando un
mínimo de tiempo de ejecución y espacio de memoria.

Los tipos de datos más utilizados son:

 Entero
 Real
Datos SIMPLES
 Carácter
 Lógico
 Arreglos
Datos ESTRUCTURADOS  Registros
 Archivos

Las estructuras de datos estáticas son aquellas en las que el tamaño ocupado en memoria
se define antes de que el programa se ejecute y no puede modificarse dicho tamaño
durante la ejecución del programa.

Las estructuras dinámicas pueden ser definidas en tiempo de ejecución y la limitación


seria el tamaño de la memoria disponible.
ARREGLOS UNIDIMENSIONALES - BDIMENSIONALES.

ARREGLO (ARRAY o VECTOR). - Un arreglo es una secuencia de posiciones


consecutivas de memoria que almacenan datos del mismo tipo. Estos datos comparten un
nombre común.

DIMENSIÓN. - Es el tamaño del arreglo que separa en memoria para almacenar datos
del mismo tipo.

En cuanto a su dimensión, los arreglos se pueden clasificar como:

 UNIDIMENSIONALES:

Vector, lista, matriz de una dimensión.

VECTOR.- Un vector, en programación, es un arreglo, generalmente asociados a los


arreglos unidimensionales. Es una zona de almacenamiento contiguo, que contiene
una serie de elementos del mismo tipo y se distinguen entre sí por un identificador.

Ej : Un vector denominado ventas, de 10 elementos, se puede representar como :

ventas[1] ventas[2] ventas[3] ……… ventas[10]

El identificador de cada elemento designa su posición en la ordenación del vector.


Se observa que todos los elementos comparten el nombre y que cada elemento se
referencia por su identificador o sea su posición relativa en el vector.

Características de un elemento del Vector

Nombre del Vector [Dimensión del Vector]

X[ 8 ]
Elemento de un Vector Identificador o Posición del Vector

Declaración de un arreglo Unidimensional:

Nombre del Vector [Dimensión]

Ej : La instrucción entero X[8] declara un arreglo unidimensional de nombre X, de


8 elementos de tipo entero.

Algoritmo sin_titulo
Definir X como (Tipo de Dato);
Dimension X[8];
Instrucciones…..
FinAlgoritmo
 BIDIMENSIONALES (TABLA, MATRIZ):

Se pueden considerar como un vector de vectores. En este caso se necesita especificar


dos identificadores para identificar cada elemento del arreglo: El primer identificador
se refiere a las filas ( i ) y el segundo a las columnas ( j ) .

MATRIZ.- Una Matriz, en programación, es un arreglo de dos dimensiones,


generalmente asociados a los arreglos bidimensionales. Es una zona de
almacenamiento contiguo, que contiene una serie de elementos del mismo tipo y se
distinguen entre sí por dos identificadores una para las filas y una para las columnas.

Características de un elemento de una Matriz

Nombre de la Matriz [Dimensión de la Matriz]

A [ 8,8 ]
Elemento de la Matriz Identificador o Posición de la Matriz
[Filas, Columnas]

Declaración de un arreglo Bidimensional:

Nombre de la Matriz [Dimensión Filas, Dimensión Columnas]

Ej : La instrucción entero M[8,8] declara un arreglo bidimensional de nombre M, de


8 filas y 8 columnas de tipo entero.

Algoritmo sin_titulo
Definir A como (Tipo de Dato);
Dimension A[8,8];
Instrucciones…..
FinAlgoritmo

ALMACENAMIENTO DE ARREGLOS EN MEMORIA

Arreglos de Una y dos dimensiones se representan como se muestra:

A[1] A[2] A[3] A[4] ... A[n]


A[1,1] A[1,2] A[1,3] A[1,4] ... A[1,n]
A[2,1] A[2,2] A[2,3] A[2,4] ... A[2,n]
A[3,1] A[3,2] A[3,3] A[3,4] ... A[3,n]
: : : : : :
A[m,1] A[m,2] A[m,3] A[m,4] A[m,n]

La memoria de la computadora es unidimensional, por lo que el almacenamiento de


los arreglos de más de una dimensión requiere que la posición de los elementos del
arreglo sea "linealizada".

La forma más común de almacenamiento de vectores de dos dimensiones es por filas,


así un vector A[3,4] se almacenaría de la manera siguiente:

1 2 3 4 5 6 7 8 9
A[1,1] A[1,2] A[1,3] A[1,4] A[2,1] A[2,2] A[2,3] A[2,4] A[3,1] ……

La posición de un elemento A[i,j] del arreglo A[3,4] de dimensiones [m,n] con


relación al primer elemento es: Posición = n*(i -1) + j

Así la posición dentro del arreglo del elemento A[2,3] del ejemplo anterior sería:
m = 3, n = 4, i = 2, j = 3 Posición = 4 * (2 - 1) + 3 = 7

OPERACIONES SOBRE ARREGLOS

Las operaciones que se pueden realizar con arreglos durante el proceso de resolución de
un problema son:
 Asignación
 Lectura / Escritura
 Recorrido
 Búsqueda
 Ordenamiento.

 ASIGNACIÓN:

La asignación de valores a un elemento de un arreglo se representa con la


instrucción:

A[10] = 3 asigna el valor 3 al elemento 10 del vector A, en pseint el signo


igual para asignación se lo reemplazaría por el símbolo <-

Ventas [2,2] = 1500 asigna el valor 1500 al elemento 2,2 de la Matriz Ventas

Si se desea asignar valores a todos los elementos de un vector, se debe usar


estructuras de repetición.
 Caso Unidimensional: Asignar el valor 6 a todos los elementos de un vector

Algoritmo sin_titulo
Definir A,i como entero;
Dimension A[5];

Para i<-1 Hasta 5 Con Paso 1 Hacer


A[i]<-6; Asignación
Fin Para
FinAlgoritmo

 Caso Bidimensional: Inicializar un vector B[2,3] con el valor cero.

Algoritmo sin_titulo
Definir M,i,j como entero;
Dimension M[5,5];

Para i<-1 Hasta 2 Con Paso 1 Hacer


Para j<-1 Hasta 3 Con Paso 1 Hacer
M[i,j]<-0; Asignación
Fin Para
Fin Para
FinAlgoritmo

 LECTURA / ESCRITURA :

La lectura/escritura de datos en arreglos u operaciones de entrada/salida,


normalmente se realizan con estructuras repetitivas o selectivas.

Las instrucciones simples de lectura/escritura se representan como:

Leer(Nombre_del_arreglo [Indentificador])

Escribir(Nombre_del_arreglo [Indentificador])

Ej :
Leer(X[3]) Lee el elemento 3 del vector X

Leer(M[1,1]) Lee el elemento 1,1 de la matriz M

Escribir(X[3]) Escribe el elemento 3 del vector X

Escribir (M[1,1]) Escribe el elemento 1,1 de la matriz M

 RECORRIDO:
A la operación de efectuar alguna acción sobre todos los elementos del vector se le
llama recorrido. Estas operaciones se realizan usando estructuras de repetición,
cuyas variables de control se usan como indentificador del vector. Se puede realizar
esta operación para introducir datos al vector (leer) o para ver su contenido (escribir).

 Caso Unidimensional:

Ejemplo: Lectura de los 10 valores de un vector P.

Algoritmo sin_titulo
Definir P,i como entero;
Dimension P[10];

Para i<-1 Hasta 10 Con Paso 1 Hacer


Leer P[i];
FinPara

FinAlgoritmo

 Caso Bidimensional:

Ejemplo: Leer una matriz de dos dimensiones A[5,4].

Dado que es una matriz de dos dimensiones, se necesitan dos bucles anidados
para recorrer todos sus elementos.

Algoritmo sin_titulo
Definir A,i como entero;
Dimension A[10,10];

Para i<-1 Hasta 5 Con Paso 1 Hacer


Para j<-1 Hasta 4 Con Paso 1 Hacer
Leer A[i,j];
FinPara
FinPara

FinAlgoritmo

 BÚSQUEDA:

La operación de búsqueda es una de las tareas más comunes en computación y


básicamente consiste en encontrar la posición de un elemento específico en un
conjunto de elementos dados.

Búsqueda secuencial:

Suponemos una lista (vector o matriz) de elementos, donde no hay elementos


repetidos; la forma más sencilla de buscar un elemento específico es recorriendo la
lista y verificando si existe alguna coincidencia entre los elementos de la lista y el
elemento buscado.

Ejemplo: Suponemos se desea buscar un nombre en una lista de n elementos. El


algoritmo debe mostrar los mensajes:

- nombre encontrado, si el nombre está en la lista.


- nombre no existe, si no se encuentra el nombre.

Se supone que no hay elementos repetidos.

Análisis: Se requiere leer el número de elementos ( n ) y el elemento a buscar. Se


debe recorrer todo el vector o matriz y preguntar si cada elemento de la lista es el que
estamos buscando, para lo cual se requiere un ciclo con contador (i - desde 1 hasta n)
y una estructura de decisión para confirmar la condición del elemento buscado.

Se usa además una variable tipo interruptor (sw), la cual se inicializa en cero antes
de comenzar el ciclo de búsqueda y se cambia a uno cuando se encuentra el nombre
buscado.

 Caso Unidimensional:

Algoritmo sin_titulo
Definir i,sw,n como entero;
Definir V,buscar como cadena;
Dimension V[10];

Escribir “Ingrese el número de elementos del vector:”;


Leer n;

// Lectura de Datos del vector


Para i<-1 Hasta n Con Paso 1 Hacer
Leer V[i];
FinPara

Escribir “Ingrese el número a buscar en el vector:”;


Leer buscar;
sw<-0;

// Buscar elemento en el Vector


Para i<-1 Hasta n Con Paso 1 Hacer
Si V[i]=buscar Entonces
sw<-1;
FinSi
FinPara

// Imprimir resultado
Si sw=1 Entonces
Escribir “Nombre Encontrado”;
Sino
Escribir “Nombre no existe”;
FinSi
FinAlgoritmo
 Caso Bidimensional:

Algoritmo sin_titulo
Definir i,j,sw,n como entero;
Definir M,buscar como cadena;
Dimension M[10,10];

Escribir “Ingrese el número de elementos de la matriz:”;


Leer n;

// Lectura de Datos de la Matriz


Para i<-1 Hasta n Con Paso 1 Hacer
Para j<-1 Hasta n Con Paso 1 Hacer
Leer M[i,j];
FinPara
FinPara

Escribir “Ingrese el número a buscar en la matriz:”;


Leer buscar;
sw<-0;

// Buscar elemento en la Matriz


Para i<-1 Hasta n Con Paso 1 Hacer
Para j<-1 Hasta n Con Paso 1 Hacer
Si M[i,j]=buscar Entonces
sw<-1;
FinSi
FinPara
FinPara

// Imprimir resultado
Si sw=1 Entonces
Escribir “Nombre Encontrado”;
Sino
Escribir “Nombre no existe”;
FinSi
FinAlgoritmo

 ORDENAMIENTO

El ordenamiento es una labor común que realizamos continuamente y es algo tan


corriente en nuestras vidas que no nos detenemos a pensar en ello. Ordenar es
simplemente organizar información de una manera especificada (criterio de
ordenamiento).

El ordenamiento puede ser:


Interno: La operación se realiza en memoria central. (Arreglos)
Externo: La operación se realiza sobre un soporte externo (Archivos).
En la computación el ordenamiento de datos también cumple un rol muy importante,
ya sea como un fin en sí o como parte de otros procedimientos más complejos. Se han
desarrollado muchas técnicas en este ámbito, cada una con características específicas,
y con ventajas y desventajas sobre las demás.

 Método de Intercambio o de burbuja:

El algoritmo se basa en el principio de comparar pares de elementos e


intercambiarlos entre sí hasta que estén todos ordenados.

Para intercambiar dos elementos A[i] y A[i+1], es necesario considerar una


variable auxiliar, usando el siguiente procedimiento:

aux = A[i]
A[i] = A[i+1]
A[i+1] = aux

o Caso Unidimensional:

Algoritmo sin_titulo
Definir i,j,n como entero;
Definir V, aux como cadena;
Dimension V[10];

Escribir “Ingrese el número de elementos del vector:”;


Leer n;

// Lectura de Datos del vector


Para i<-1 Hasta n Con Paso 1 Hacer
Leer V[i];
FinPara

// Ordena elementos en el Vector


Para i<-1 Hasta n Con Paso 1 Hacer
Para j<-i+1 Hasta n Con Paso 1 Hacer
Si V[i] > V[j] Entonces
aux <-V[i];
V[i] <- V[j];
V[j] <- aux;
FinSi
FinPara
FinPara

// Imprimir elementos del Vector


Para i<-1 Hasta n Con Paso 1 Hacer
Escribir sinsaltar “[ ”,V[i],“ ]”;
FinPara
FinAlgoritmo

o Caso Bidimensional:

Algoritmo sin_titulo
Definir i,j,k,n como entero;
Definir M, aux como cadena;
Dimension M[10,10];

Escribir “Ingrese el número de elementos de la matriz:”;


Leer n;

// Lectura de Datos de la matriz


Para i<-1 Hasta n Con Paso 1 Hacer
Para j<-1 Hasta n Con Paso 1 Hacer
Leer M[i,j];
FinPara
FinPara

// Ordena elementos de la matriz


Para i<-1 Hasta n Con Paso 1 Hacer
Para j<-1 Hasta n Con Paso 1 Hacer
Para k<-j+1 Hasta n Con Paso 1 Hacer
Si M[i,j] > M[i,k] Entonces
aux <-M[i,j];
M[i,j] <- M[i,k];
M[i,k] <- aux;
FinSi
FinPara
FinPara
FinPara

// Imprimir elementos de la Matriz


Para i<-1 Hasta n Con Paso 1 Hacer
Escribir Sin Saltar "| ";
Para j<-1 Hasta n Con Paso 1 Hacer
Escribir sinsaltar M[i,j],“ |”;
FinPara
Escribir “ ”;
FinPara
FinAlgoritmo
TALLER EN CLASE

Los arreglos o arrays en PseInt son estructuras que almacenan valores del mismo tipo
como números o cadenas. Tiene una longitud determinada. Lo primero es declarar su
dimensión, indicando el nombre del arreglo o array y su longitud dentro de [ ].

Realizar el siguiente ejemplo:

1. Algoritmo Prueba
2. Definir num como entero;
3. Dimension num[5];
4. FinAlgoritmo

Debemos definir num con el tipo de dato que queramos que sea, en este caso numérico,
ya que si no al recorrer nos saltará un error.

En los arrays o arreglos empiezan desde 1 y acaban en la longitud que hayamos definido.

Veamos cómo se asignan valores al array:

1. Algoritmo Prueba
2. Definir num como entero;
3. Dimension num[5];
4. num[1]=5;
5. num[2]=10;
6. num[3]=15;
7. num[4]=20;
8. num[5]=25;
9. FinAlgoritmo

Como vemos, simplemente debemos indicar el nombre del array, el indice y su valor.

Deben estar dentro de la longitud creada, es decir, que en este caso no podríamos asignar
un valor al indice 6.

Para recorrer un array, deberemos usar una estructura repetitiva, lo más recomendable es
un Para o Desde donde la variable que declaremos, se insertara en el índice haciendo que
en cada repetición varié.

Veamos un ejemplo:

1. Algoritmo Prueba
2. Definir num como entero;
3. Dimension num[5];
4. num[1]=5;
5. num[2]=10;
6. num[3]=15;
7. num[4]=20;
8. num[5]=25;
9. Para i<-1 Hasta 5 Con Paso 1 Hacer
10. escribir num[i];
11. FinPara
12. Fin Algoritmo

Comprobar la salida del ejemplo anterior: 5 10 15 20 25

Además de mostrar los valores, también podemos introducirlos por teclado con leer
nombre_array [indice] si queremos introducir valores en todos los índices, para ello
usaremos un bucle.

Veamos un ejemplo:

1. Algoritmo Prueba
2. Definir num como entero;
3. Dimension num[5];
4. num[1]=5;
5. num[2]=10;
6. num[3]=15;
7. num[4]=20;
8. num[5]=25;
9. Para i<-1 Hasta 5 Con Paso 1 Hacer
10. leer num[i];
11. FinPara
12. Para i<-1 Hasta 5 Con Paso 1 Hacer
13. escribir num[i];
14. FinPara
15. FinAlgoritmo

Recuerda que podemos hacer lo que queramos con lo valores del array o arreglo, como
sumar sus valores, hacer una media, etc.

Por último, si has probado otros lenguajes de programación sabrás que se puede saber el
tamaño de un array o arreglo, con un método. En pseudocódigo esto no existe, pero si
podemos hacer para ello, podemos usar una constante para indicar el tamaño. La mayor
ventaja es que si cambiamos el tamaño de un array o arreglo, solo deberemos cambiar en
un lugar y no en todos.

Veamos un ejemplo:

1. Algoritmo Prueba
2. Definir num como entero;
3. TAMANIO=5;
4. Dimension num[TAMANIO];
5. num[1]=5;
6. num[2]=10;
7. num[3]=15;
8. num[4]=20;
9. num[5]=25;
10. Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
11. Escribir "Escribe un valor para el indice ",i;
12. leer num[i];
13. FinPara
14. Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
15. escribir num[i];
16. FinPara
17. FinAlgoritmo
TALLER GRUPAL

A continuación, se propone el enunciado de una serie de ejercicios que el alumno tiene


que realizar antes de asistir a la sesión de prácticas, con el fin de presentar las dudas que
hayan aparecido en la realización de los mismos durante la sesión de prácticas.

1. Escribir un programa que lea un vector de 10 elementos. Deberá imprimir el


mismo vector por pantalla, pero invertido.
Ejemplo:
Dado el vector 1 2 3 4 5 6 7 8 9 10 el programa debería imprimir 10 9 8 7 6 5 4 3
2 1.

2. Escribir un programa que lea una matriz de 3 filas y 3 columnas de valores enteros.
A continuación, el programa debe pedir el número de una fila. El programa deberá
devolver el máximo de esa fila.

3. Escribir un programa que lea un matriz de enteros de 2 filas y 4 columnas y


muestre por pantalla la traspuesta a dicha matriz.
Ejemplo:
Entrada: 2345 Salida 2 7
7654 36
45
54

4. Escribir un programa que lea una matriz de números enteros y que devuelva la
suma de los elementos positivos de la matriz y la suma de los elementos negativos.

5. Escribir un programa que lea una matriz de enteros de 4 filas y 4 columnas y a


continuación intercambie la fila i con la fila j, siendo i y j dos valores introducidos
por teclado.

6. Escribir un programa que lea una matriz de 4 filas y 3 columnas, la visualice por
pantalla y a continuación encuentre el mayor y el menor elemento de la matriz y
sus posiciones.
TALLER PARA REALIZAR EN CASA

EJERCICIOS PROPUESTOS

1. Realizar el ingreso ordenado de los elementos de un vector (de forma tanto


ascendente como descendente).
2. Ingresar un vector de números enteros positivos y negativos. Agrupar en las
primeras posiciones del vector los números positivos y en las siguientes
posiciones agrupar los números negativos.
3. Dado el vector T de tamaño n. Si el tamaño es par, invertir los elementos de la
mitad de los elementos Ejemplo:
v=[1][2][3][4][5][6] v(invertido)=[3][2][1][6][5][4]

4. Ingresar una palabra y determinar si es palíndromo.


5. Crear una matriz que sea llenada aleatoriamente por valores enteros comprendidos
entre 0 y 4. Pedir 3 posiciones de la matriz y sacar como resultado la suma de los
números situados en esas posiciones.
6. Ingresar una matriz cuadrada e imprimir la suma de sus dos diagonales.
7. Dadas dos matrices A y B intercambiar los mínimos de A con los máximos de B.
Ejemplo:

Matriz A:
[02][02][07][09]
[06][17][26][15]
[10][10][14][03]

Mínimo de A = 02, en las posiciones (1,1) y (1,2)

Matriz B:
[10][20][13][04]
[02][03][20][17]
[10][10][20][01]

Máximo de B = 20, en las posiciones (1,2), (2,3) y (3,3)

Asignar el mínimo de A en las posiciones de B en las que se encuentre el máximo


de B, y asignar el máximo de B en las posiciones de A en las que se encuentre el
mínimo de A.

Las matrices resultantes:

Matriz A:

[20][20][07][09]
[06][17][26][15]
[10][10][14][03]
Matriz B:
[10][02][13][04]
[02][03][02][17]
[10][10][02][01]

8. Dada una matriz cuadrada invertir su diagonal principal.

Matriz A:
[02][02][07][09]
[06][17][26][15]
[10][10][14][03]
[07][10][09][01]

Matriz con diagonal invertida:

[01][02][07][09]
[06][14][26][15]
[10][10][17][03]
[07][10][09][02]

Dada una matriz cuadrada invertir su diagonal secundaria.

Matriz A:
[02][02][07][09]
[06][17][26][15]
[10][10][14][03]
[07][10][09][01]

Matriz con diagonal invertida:

[01][02][07][07]
[06][14][10][15]
[10][26][17][03]
[09][10][09][02]

9. Generar una matriz cuadrada de números pares, dicha generación debe ser de
forma espiral en el sentido de las manecillas del reloj.
10. Generar una matriz cuadrada de número impares, dicha generación debe ser de
forma espiral en el sentido contrario al de las manecillas del reloj.
11. Determinar los números primos hasta el N, según la Criba de Eratóstenes, que
consiste en poner todos los números del 2 al N en una tabla (matriz) e ir tachando
los múltiplos de cada número.
12. Ingresar una matriz cuadrada de caracteres, controlando que los elementos de la
diagonal principal sean solo vocales y los elementos de la diagonal secundaria
sean solo consonantes, excepto el elemento central (en el caso de las matrices con
dimensión impar), el cual podrá ser cualquier letra.
13. Ingresar una matriz de m x n y almacenar los elementos de sus bordes en un vector.
14. Generar una matriz binaria (0s y 1s), de n filas y 8 columnas, donde los elementos
de las 7 primeras columnas se generen aleatoriamente y los elementos de la octava
columna se asignen de la siguiente manera: si en la fila existe un número par de
1s el octavo elemento será 0, caso contrario será 1. (matriz con paridad).
15. Ingresar una vocal y dibujar la vocal en mayúscula con unos, en una matriz
cuadrada de dimensión 5x5.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1 1 1 1 1 1 1

16. Simular el funcionamiento de un reloj digital.


17. Generar el triángulo de Pascal, indicando el número de filas que se quieren
generar.
18. Ingresar dos vectores de números enteros ordenados de forma ascendente, y crear
un tercer vector ordenado como resultado de la unión de los dos primeros. Por
ejemplo, si se tiene el vector A = 1,2,5,6,8,9 y el vector B = 2,5,7,9 el vector
resultante de la unión de los anteriores es C = 1,2,2,5,5,6,7,8,9,9.
19. Se dice que una matriz tiene un punto de silla si alguna posición de la matriz es el
menor valor de su fila y a la vez el mayor de su columna. Escribir un programa
que tenga como entrada una matriz de números enteros de dimensiones m x n, y
calcule la posición de un punto de silla (si es que existe).
20. Generar una matriz cuadrada de 3 x 3 con números aleatorios entre 1 y 9, los
cuales no deben repetirse. Determinar si la matriz generada es una matriz mágica.
Una matriz mágica es aquella en la que la suma de sus filas, columnas y diagonales
es igual.
21. Generar una matriz de dimensiones m x n con números aleatorios, de tal manera
que los elementos que se vayan insertando en las celdas de la matriz, sean
múltiplos de la columna a la que pertenecen; excepto los elementos que
pertenezcan a las cuatro esquinas de la matriz, las cuales deberán ser llenadas con
el número 0.
22. Generar un vector de dimensión 16, de números enteros aleatorios, comprendidos
entre 10 y 50. En la generación se deberá controlar que solo existan 4 números
entre 10 y 20, 4 números entre 21 y 30, 4 números entre 31 y 40, y 4 números
entre 41 y 50.
EVALUACIÓN DE VECTORES Y MATRICES
VECTORES

1. Crear un vector y almacene n cantidad de notas e imprímame lo siguiente:

a) Las notas
b) La nota mayor,
c) La nota menor
d) El promedio de las notas,
e) El número de notas que superaron el promedio son,
f) La cantidad de alumnos aprobados son,
g) La cantidad de alumnos reprobados son,

2. Dados
A: 3568478531 y B: 3468912309

realice un algoritmo para calcular las siguientes operaciones

a) A[3] mod B[2] /2=


b) B[A[1]]-A[10] =
c) A[1] + A[1+2] =
d) A[5] + B[5] =
e) A[3] div B[2] /2=
f) B[A[10]]+B[1] =

3. Crear un arreglo de N longitud y registrar los números en el arreglo, el sistema


deberá buscar un numero en el arreglo e imprimirlo y decir en que posición se
encuentra el número.

4. Realizar un programa que cree un vector de longitud n y que el usuario llene el


vector, y que imprima el número mayor y menor, y los números pares e impares
que haya en el vector.

MATRICES

5. Realizar un programa que cree una matriz de 3×3 que me pida los números, que
sume la fila y la columna del medio y que al final sume el resultado de estos.

6. Realizar un programa que cree una matriz de longitud n y que el usuario llene la
matriz, además que ingrese un numero para restar los datos la diagonal1 por el
numero ingresado.

7. Realizar un programa que cree una matriz de longitud n y que el usuario llene la
matriz, además que ingrese un numero para multiplicar las columnas impares por
el numero ingresado.

8. Realizar un programa que cree una matriz de longitud n y que el usuario llene la
matriz, además que la matriz sume todos sus datos ingresados por el usuario y que
imprima el resultado.
9. Realizar un programa que cree una matriz de longitud n y que el usuario llene la
matriz, y por último que multiplique por el mismo número los datos de la primera
fila.

10. Dada una matriz Z almacenar en un vector A la suma por sus columnas y en un
vector B la suma por sus filas.

Matriz Z:
[02][02][07][09] = 20
[06][17][26][15] = 64
[10][10][14][03] = 37
= = = =
18 29 47 27

Vector A: [20][64][37]

Vector B: [18][29][47][27]
BIBLIOGRAFIA

Angeles, C. (2017). Arreglos Unidimensionales. At:


http://hdl.handle.net/20.500.11799/34548

Pablo Turmero, M. (2017). Diseño de Algotirmos mediante Arreglos -


Monografias.com. At:http://www.monografias.com/trabajos100/diseno-algotirmos-
arreglos/diseno-algotirmos-arreglos.shtml#ixzz4m7jSYUnk

Maricela, Q. (2017). Arreglos y Registros. At: http://hdl.handle.net/20.500.11799/63503