You are on page 1of 10

Lima-PERU Prof.

Ulises ROMAN C

www.ulisesroman.blogspot.com

Tema: Arreglos Págs.:1


Lima-PERU Prof. Ulises ROMAN C
Practica No 04
Tema: Arreglos

- RESUMEN -
Según Joyanes AGUILAR “un arreglo es una serie de datos del mismo tipo – estos datos se denominan
elementos del arreglo” – podemos decir que también que es una estructura de datos DINAMICOS que
guardan la misma relación con los elementos que posee. Algunas de las características: Conserva los
valores para su posterior utilización, Facilita obtener datos de la memoria, Facilita el acceso eficiente a
ellos, Se usa para procesar una lista de datos mas de una vez, Se puede representar de manera
vertical y horizontal. Los arreglos pueden ser: UNIDIMENSIONALES (Vectores),
BIDIMENSIONALES (Tablas/Matrices) y MULTIDIMENSIONALES (Poliedros). Los arreglos se
pueden declarar o inicializar, veamos la estructura básica: <tipo _ datos> <nombre _
arreglo> <tamaño _ arreglo>. Las estructuras de datos permiten combinar elementos
de diferentes tipos de datos como Arreglos, punteros y registros, etc. Para almacenar elementos del
mismo tipo de datos y de esta manera se puede usar en problemas como:
ο Simulación de matrices
ο Tableros de juego ( ajedrez o dama, michi, buscaminas,aetc.)
ο Tratamiento de cadenas
ο Trabajos en 3D
ο Tratamiento para Video Juegos

Las Operaciones que puede realizar en los vectores son:


1. Lectura/ escritura : El proceso de lectura de un arreglo consiste en leer y asignar un valor a cada
uno de sus elementos.
LEER(N)
PARA (i <-- 1 a N)
LEER(Vector[i])
FIN_PARA

PARA (i <-- 1 a N)
ESCRIBIR(Vector[i])
FIN_PARA

2. Asignación: se debe asignar el valor deseado en cada


componente:
Vector[i] =Vector [j]/4
Vector[i] =10
Matriz[i] [j] =0

3.Actualización (inserción, eliminación, modificación): Incluye añadir (insertar), borrar o modificar


algunos de los ya existentes
4. Recorrido (acceso secuencial)
5. Ordenación y Búsqueda.

Tema: Arreglos Págs.:2


Lima-PERU Prof. Ulises ROMAN C

VECTORES:
PV-01: Crear un Vector de tamaño N
PV-02: Determinar el promedio de 3 notas, indicando aprobado o desaprobado
PV-03: Ordenar un vector en forma ascendente ( para n datos)
PV-04: Determinar números de alumnos y alumnas aprobados, cantidad de datos a procesar N.
(código, nombre,sexo,nota1,nota2)
PV-05 Promedio de Notas de clase y la mayor nota de n alumnos
PV-06: Promedio de N notas ingresando por teclado
PV-07: Insertar un dato en el arreglo
PV-08: Intercalar dos vectores A y B en C
PV-09: Imprimir un vector en orden invertido
PV-10: Hacer las operaciones sobre un vector usando funciones: Leer _ vector, Buscar_valor,
Insertar_Valor,Eliminar_valor, Imprimir _ valor
PV-11: Escriba un programa que lea N notas de los alumnos de un determinado curso y luego
determine el promedio de las mismas.
PV-12: Escribe un programa que genere los N primeros números primos
PV-13: Escriba un programa que genere los N primeros números perfectos
PV-14: Se tiene un arreglo A con N enteros, construir un programa que ordene en forma ascendente
y los asigne a B, el programa debe mostrar el arreglo A con los elementos desordenados y B
con los datos ordenados.
PV-15: Se tiene dos vectores A y B construir un programa que calcule la suma de A y B y lo guarde en
C.
PV-16: Escribe un programa que genere los N primeros números múltiplos de 3 y 5.
PV-17: Se tiene un vector A con N notas correspondientes a las notas de los alumnos, se requiere
pasara todas las notas>= 14 al vector A14, las notas>11 y notas<14 al vector A11 y el resto de
notas al vector A01.
PV-18: Se tiene los vectores paralelos A, y C, A contienen los código de ( 3 cifras) de los alumnos, B
contiene las edades de los alumnos y C contienen el sexo de cada una de ellos. Construir un
programa que determine el promedio de edades por sexo, determinar el mayor y el menor
para lo cual bebe mostrar el código, su edad y el sexo.
PV-19: Dado un vector de tamaño N ordenado en forma ascendente: Insertar y eliminar un valor en el
vector, de tal manera que el vector continúe ordenado.
PV-20: Escribir una función recursiva para calcular la suma de los contenidos de un arreglo numérico.
PV-21: Dado un vector de tamaño N ordenado en forma ascendente: Insertar y eliminar un valor en el
vector, de tal manera que el vector continúe ordenado.
PV-22: Dados 50 números enteros, obtener el promedio de ellos. Mostrar por pantalla dicho
promedio y los números ingresados que sean mayores que el mismo.
PV-23: Dados n números, obtener e imprimir la suma de todos ellos. A continuación mostrar por
pantalla todos los sumandos.
PV-24: Se tienen dos arreglos (Vectores paralelos). El primero contiene nombres de personas y el
segundo contiene los sexos de las personas del primer arreglo, codificados como ´f´femenino
y ´m´ masculino. Obtener a partir de estos otros dos arreglos, el primero de los cuales debe

Tema: Arreglos Págs.:3


Lima-PERU Prof. Ulises ROMAN C
contener todos los nombres de los varones y el segundo, el nombre de todas las mujeres dos n
números, obtener e imprimir la suma de todos ellos. A continuación mostrar por pantalla todos
los sumandos.
PV-25: Se pide realizar un algoritmo y el programa que calcule el centro de masas de un sistemas Se
pide realizar un programa que calcule el centro de masas de un sistema de n masas puntuales.
Para ello el programa pedirá conjuntos de tres números reales: la coordenada x del punto, la
coordenada y y su masa m. El número n de masas se lee de antemano. El programa imprimirá
por pantalla como resultado las coordenadas xg e yg del centro de masas del conjunto de
puntos que se han introducido. Las fórmulas que dan la posición del centro de gravedad son las
siguientes:

PV-26: Se tienen dos arreglos (Vectores paralelos). El primero contiene nombres de personas y el
segundo contiene los sexos de las personas del primer arreglo, codificados como ´f´femenino
y ´m´ masculino. Obtener a partir de estos otros dos arreglos, el primero de los cuales debe
contener todos los nombres de los varones y el segundo, el nombre de todas las mujeres dos n
números, obtener e imprimir la suma de todos ellos. A continuación mostrar por pantalla todos
los sumandos.
PV-27: Diseñar un Algoritmo y/o Codigo UBICACIÓN DEL CABALLO en un Juego de AJEDREZ.
Diseñe un algoritmo que tome como entradas X, Y que viene a ser la
ubicación actual de un caballo dentro de un tablero de ajedrez.
Calcular las nuevas posiciones a las que puede desplazarse el
caballo.
Ejemplo: Entrada X =4 , Y = 5 (Posición actual del caballo)

Salida (La nuevas posiciones posibles son)


(2,4), (2,6), (3,3), (3,7), (5,7), (5,3), (6,6), (6,4)

PV-28: Realice el programa para determinar las siguientes operaciones: (uso de función y Vectores
para estadísticas)
1. Preguntar al usuario con cuántos números desea trabajar.
2. Leer y almacenar los números convenientemente.
3. Hallar su media aritmética utilizando para ello una función a la que llamarás media( ).
4. Hallar el máximo y el mínimo llamando a sendas funciones maximo( ) y minimo( )
5. Hallar la semisuma de los valores máximo y mínimo mediante la función semisuma( ).
6. Mostrar por pantalla los valores obtenidos: media, máximo, mínimo y semisuma

Tema: Arreglos Págs.:4


Lima-PERU Prof. Ulises ROMAN C

PV-28: Realice el programa para hacer las operaciones con vectores: Suma, Resta, Producto escalar
y producto vectorial (debe usar switch)

MATRICES:

PM-01: Crear una Matriz de NxM elementos


PM-02: Se tienen las matrices A, B y C de NxM elementos, determinar la SUMA, RESTA,
MULTIPLICACIÓN y la DIVISIÓN. El programa debe tener las rutinas de leer matrices, la
rutina de operación, la rutina de visualización, asi como las consistencias del caso.
PM-03: Determinar la suma de los elementos de la DIAGONAL de una Matriz
PM-04: Calcular la Matriz Elemental
PM-05: Dado una matriz cuadrada, calcular la suma de todos los elementos que no pertenecen a la
diagonal
PM-06: Mostrar la transpuesta de una matriz, dado número de filas, numero de columnas y
elementos respectivos.
PM-07: Determinar la suma mayor de fila y columna y valor mayor y menor de una matriz
PM-08: Escriba un programa para inicializar con CEROS excepto la diagonal principal que debe
asignarse de UNOS a una matriz cuadrada de orden N. El programa debe constar de
rutinas de asignación y de visualización de la matriz.
PM-09: Se tiene una matriz de 21x25 de enteros. Escriba un programa a) Que obtenga el mayor
de cada fila y lo ponga en un arreglo AG b) Intercambie la filas 5 y 15
PM-10: Sea B[N] y A[M,N] dos arreglos de una y dos dimensiones, construya un programa que
asigne valores a la matriz A a partir de B teniendo en cuenta los siguientes criterios: A[i,
j] = B[i], si i <= j, A[i, j]=0, i>j
PM-11: Se tiene una tabla A[F,C] con los datos de los alumnos y las notas de un determinado
numero de cursos. Construir un programa que determine el promedio por alumnos, el
promedio por curso, promedio por alumno y el promedio general.
PM-12: Sea la matriz a [][] de 3 x 3 sigue:
5 1 1
 
12 7 9
10 3 2
 

a) Escriba un fragmento del programa para calcular la suma de los elementos de la diagonal
principal (empezando en la esquina superior izquierdo y terminando en la esquina inferior
derecha).

b) Escriba un fragmento del programa para calcular la suma de los elementos de la otra diagonal.
El fragmento debe hacerse para una matriz N x N. ejemplo: suma de elementos de la diagonal
oral: 18 = 10+7+1.

Tema: Arreglos Págs.:5


Lima-PERU Prof. Ulises ROMAN C
PM-13: Se define la operación "rotar anillo" para una matriz cuadrada de dimensión N (con N par),
Se define la operación "rotar anillo" para una matriz cuadrada de dimensión N (con N par),
como la actividad de desplazar una posición todos los elementos ubicados a una cierta
distancia desde los bordes de la matriz. Por ejemplo la siguiente matriz posee 3 "anillos"
numerados del 1 al 3 comenzando desde el más externo:

En este ejemplo el anillo 1 posee 20 elementos; el anillo 2, 12 elementos; el anillo 3, 4 elementos. La


operación "rotar anillo" desplaza los elementos de un anillo una posición en el
sentido indicado por la flecha. De esta forma, al rotar el 1er anillo se obtiene la
matriz ordenada de la
siguiente forma:

Se pide construir un algoritmo que, dada una matriz llena de valores


(previamente ingresada), permita rotar un anillo específico indicado por el usuario
(suponga que el usuario proporciona un valor de anillo válido).

PM-14: Se desea ordenar ascendentemente una matriz de NxM, de izquierda a derecha y de arriba
abajo. por ejemplo, la matriz de 3x3 debe quedar:

(Interesante ejercicio es trabajar sobre la estructura matricial, sin traspasar los datos de
la matriz a un arreglo, ordenar esta último y luego devolver los valores a la matriz).

PM-15: Desarrollar los siguientes ejercicios del Libro Joyanes Aguilar Edicion No.2:
1. Pag. 303: Ejercicio No. 7.12
2. Pag. 304: Ejercicio No. 7.7

Tema: Arreglos Págs.:6


Lima-PERU Prof. Ulises ROMAN C
3. Pag. 305: Ejercicio No. 7.9
4. Pag. 307: Ejercicio No. 7.3 y 7.6

ORDENACION Y BUSQUEDA

La Ordenación ( sorting, en ingles) es un procedimiento según el cual se ponen en cierto orden los
elementos de una lista y la búsqueda(searching, en ingles). La ordenación se puede aplicar en
cualquier lista de datos sobre los cuales se puede definir una operación de orden total. La
ordenación es muy importante en informática, ya que muchas aplicaciones requieren ordenar datos,
veamos algunos ejemplos: Aplicaciones que procesan datos no ordenados y que necesitan
mantener internamente los datos ordenados(ejem: Vuelos en el aeropuerto, examen admisión
puntajes de meritos, etc), aplicaciones que necesitan visualizar los datos de manera
ordenada(vuelos panel, mensajes por fecha,ect) y aplicaciones que necesitan los datos de
entrada ordenados (ejem:buscar palabra en diccionarios cuyas entradas están ordenados
alfabéticamente). Existen varios métodos de ordenación mencionamos tres que son básicos
(ordenación por selección, por inserción y método burbuja,ect)

Conceptos básicos de ordenación: En Matemáticas, una relación de comparación ≤


define un
orden total o lineal en un conjunto de elementos X si es posible comparar cualquier
par de elementos, es decir cualquier a y b, a≤b o b≤a. La comparación de dos
puntos P1(X1,Y1) y P2(X2,Y2) en el plano 2D talque P1≤p2 si y solo si X1≤X2 y
Y1≤Y2 no define un orden total en el conjunto de los puntos del plano 2D. Ya que
los puntos P1(1,0) y P2(0,1) no son comparables. Conjunto con orden total cadena
de caracteres cad1, cad2 cad1≤cad2 según orden alfabético existe una función de
biblioteca como strcmp(cad1,cad2) devuelve: -1 si cad1<cad2, 0 si cad1=cad2, 1 si
cad1>cad2.

Tema: Arreglos Págs.:7


Lima-PERU Prof. Ulises ROMAN C

CASOS DE ANÁLISIS:
CA-01: Analizar y leer el siguiente programa y escribir el resultado que genera; sabiendo que pedido
toma el valor de 5.
Inicio
Entero P[6] , C[6], K, Pedido, R[6]
K← 1
Mientras (K <= 6) Hacer
P[K] ← K*100
C[K] ← K*1000
K ← K+1
Fin_mientras
Leer pedido
K← 1
J ← 6
Mientras (K <= 6) Hacer
R [k] ← P[j] * Pedido
C[k] ← C[K] – R[K]
K ← K+1
Fin_mientras
K ← 1
Mientras ( K <= 6) Hacer
Escritura R[K], C[K]
K← K+1
Fin_mientras

Fin Inicio

Antes de 1 2 3 4 5 6
pedido
P
C

deespués del 1 2 3 4 5 6
pedido
R
C

CA-02: Supongamos que el arreglo B contiene los números:


Indice

Tema: Arreglos Págs.:8


Lima-PERU Prof. Ulises ROMAN C

14 26 18 25 40 32 12 6 49

a) Cuál será el contenido de tal arreglo después de la ejecución del siguiente ciclo de for?
for(i=1; i<=7; i++)
{
for(i=1;i<=7;i++)
{
if(B [i] > B[i+1])
{
temp= B [i+2];
B [i+2]= B [i+1];
B [i+1]=temp;
}
}
}

b) ¿Cuál será la salida del siguiente fragmento?

Para i = 1 a 4
Suma ← 0
Para j = 1 a 3
Suma ← Suma + 10
Si (i > j)

Entonces

B[i,j] ← 4
Sino
B[i,j] ← suma + i
F_si
F_para
F_para

CA-03: ¿Cuál es el resultado del siguiente fragmento?

for(indice=0; indice<5; indice++)


{
cout<<C[indice]<<endl;
}
indice
Char[5];

0 1 2 3 4
LIMA CALLAO PTE.PIEDRA ANCON ATE

Tema: Arreglos Págs.:9


Lima-PERU Prof. Ulises ROMAN C

CA-04: ¿Cuál es el resultado del siguiente fragmento?

int A[5][7]
indice1 indice2
↓ 

0 1 2 3 4 5 6 7
1
2
3
4
5

for(indice1=0; indice1<5; indice1++)


{
For(indice2=0; indice2<5; indice2++)
{
cout<<”Ingrese datos en A[”<<indice1<<indice2<<”]”;
cin>>A[indice1][indice2];
}

Tema: Arreglos Págs.:10

You might also like