Вы находитесь на странице: 1из 30

UNIVERSIDAD NACIONAL DE

CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE
INGIENERA DE MINAS
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

PRCTICA N 05. ARREGLOS: Vectores y Matrices

Realizar El A) Procedimiento Y B) Programacin En C# Para Cada Uno De Los Siguientes


Ejercicios.
Arreglos unidimensionales:
1. Calcule la media armnica de un conjunto de datos.

Desarrollo
A) Procedimiento
Iniciar acumulador
Leer vector
Calcular la media armnica
Escribir la media armnica

B) Pseudocdigo

Incio
Real a, b, c, d, f,suma=0;
vector [5] <-Real
Leer a, b, c, d, f
Desde i = 0 hasta i < 5 incremento i++)
suma = suma +( 1/ vector[i]);
Fin Desde
Escribir "la media armnica es: " ,+ 5 / suma
Fin

2
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

3
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

2. Determine la cantidad de veces que aparece cada elemento de un array.


Desarrollo

A) Procedimiento

Iniciar acumulador
Leer vector
Ingresar los elementos
Seleccionar el elemento que se repite
Escribir el elemento que se repite

B) Pseudocdigo

Inicio
Vector [10]<-Entero
Entero t = 0
Si (t < 10) Entonces
Entero a
Leer a
vector[t] = a;
t++;
Caso contrario
Escribir ("El tamao maximo de vector es 10")
Fin Si
Escribir Elementos: ";
Desde i = 0 hasta i < t; incremento i++)
Escriibir vector[i].ToString()+", "

Entero eleb;

4
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

Leer a
Entero aux = 0;
Desde i = 0; hasta i < 10; incremento i++)

Si (vector[i]==a)Entonces
aux++;
Fin Si
Fin Desde
Escribir "El elemnto " a " se repite: " aux
Fin

5
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

3. Lea dos arreglos unidimensionales A y B y diga que elementos de A no estn en B.

Desarrollo

A) Procedimiento
Iniciar acumulador
Iniciar cadena
Leer vector
Ingresar elementos en A y B
Analizar elementos de ambos arreglos unidimensionales
Escribir que elementos de A no estn en B.

B) Pseudocdigo

Inicio
Cadena a, b, c, d, f, g, h, k, l, m,
Leer a, b, c, d, f, g, h, k, l, m,
Entero n =0
Desde j = 0;hasta j < 5;incremento j++
Si (A[i] == B[j])Entonces
C[n] = A[i];
n++
Fin Si
Fin Desde

6
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

Escribir los elementos de A que no estn en B: "


Desde i = 0; hasta i < n; incremento i++
Escribir C[i].ToString()+" "
Fin Desde
Fin

7
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

8
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

4. Suponga que tiene n elementos en un arreglo ordenado ascendentemente. Inserte


un elemento en la posicin que corresponda para mantener el arreglo ordenado.
Desarrollo

A) Procedimiento

Iniciar acumulador
Leer vector
Ingresar elementos
Insertar elemento a ordenar
Escribir el arreglo ordenado ascendentemente

B) Pseudocdigo

Inicio
Vector[5]<-Entero
Entero t =0
Si (t < 5)Entonces
Entero a
Aux= Analisar(caja de texto1.ToString())
vector[t] = a;
t++
Escribir "Elementos del vector(5): "
Desde i = 0 hasta i < t incremento i++
Escribir vector[i].ToString()+", "
Fin Desde
Caso Contrario
button1.Enabled = false;
caja te texto1.Enabled = false;
button2.Enabled = true;
caja de texto2.Enabled = true;
Array.Sort(vector);
Escribir "Elementos del vector(5): "
Desde i = 0 hasta i < cont incremento i++
Escribir vector[i].ToString() +
Fin Desde
Fin Si
Entero num = convetir (caja de texto2.ToString());
int[] b = new int[6];
res[5] = num;
for(int i = 0; i < 5; i++)
b[i] = vector[i]
Array.Sort(b);
Escribir "Vector reultado: "
Desde i = 0 hasta i < 6 incremento i++
Escribir b[i].ToString() + ", "
Fin Desde

9
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

Fin

10
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

5. La moda de un conjunto de datos es el elemento que ms se repite. Encuentre la moda de


elementos almacenados en un arreglo.

Desarrollo
A) Procedimiento

Iniciar acumulador
Leer vector
Ingresar elementos
Calcular la moda
Escribir la moda

B) Pseudocdigo

Inicio
Vector[5]<-Entero
Entero a, b, c, d, f,
Leer a, b, c, d, f,
Entero mvrv = 0;
Entero moda = 0;
Desde i = 0 hasta i < vector.Length incremento i++
Entero vqr = 0;
Desde j = 0 hsata j < vector.Length incremento j++
if (vector[i] == vector[j])

11
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

vqr++
Fin Desde
Si (vqr > mvrv)Entonces
moda = vector[i];
mvrv = vqr;
Fin Si
Fin Desde
Escribir La moda es " + moda + " y se repiti " + mvrv + " veces."
Fin

12
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

6. Realizar la bsqueda de un determinado elemento dentro de un arreglo, indicando su posicin


en el vector, de caso contrario se mostrar un mensaje Elemento no encontrado.
Desarrollo

A) Procedimiento

Iniciar acumulador
Leer vector
Ingresar elementos
Ingresar elemento a buscar
Indicar posicin del elemento dentro del vector
Escribir el elemento buscado y su posicin

13
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

B) Pseudocdigo

Inicio
Entero h
Leer h
Vector[5]<-Entero
Entero g = 10;
Entero a, b, c, d, f;
Leer a, b, c, d, f;
Desde i = 0 hasta i < 5 incremento i++
Si(h == vector[i])Entonces
pos = i+1;
Fin Si
Fin Desde
Si (g == 10)Entonces
Escribir "no se encontro el elemento"
Caso contrario
Escribir"El elemenot esta ubicado en la posicion: "+g.ToString();
Fin Si
Fin

14
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

7. Elimine los elementos repetidos de un arreglo.


Desarrollo

A) Procedimiento

Iniciar acumulador
Leer vector
Ingresar elementos al arreglo
Eliminar elementos repetidos del arreglo
Escribir arreglo sin elementos repetidos

B) Pseudocdigo

15
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

Inicio

Vector [5]<-Entero
Entero a, b, c, d, f;
Leer a, b, c, d, f;
Escribir= "vector: ";
int[] res = vector.Distinct().ToArray();
Desde int i = 0 hasta i < res.Length incremento i++
Escribir res[i].ToString()+" "
Fin Desde
Fin

8. Ordene un conjunto de datos de menor a mayor por cualquiera de los mtodos presentados.
Arreglos bidimensionales:

Desarrollo

A) Procedimiento

Iniciar acumulador
Leer Matriz

16
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

Ingresar datos a la matriz


Ordenar los datos de menor a mayor
Escribir los datos ordenados de menor a mayor

B) Pseudocdigo

Inicio

Matriz[1x1]<-Enteros

Enteros a, b, c, d, f;
Leer a, b, c, d, f;
Entero a = 0;
Desde (bool ordenado = false; !ordenado;)
Desde i = 0 hasta i < vector.Length 1 incremento i++
Si (vector[i] > vector[i + 1])Entonces
int variableauxiliar = vector[i];
vector[i] = vector[i + 1];
vector[i + 1] = variableauxiliar;
a++;
Fin si
Si (a == 0)Entonces
ordenado = true;
a = 0;
Escribir"vector: ";
int[] res = vector.Distinct().ToArray();
Desde int i = 0 hasta i < res.Length incremento i++
Escribir res[i].ToString() + " "
Fin

17
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

18
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

9. Escribir un programa que lea una matriz, y a continuacin encuentre el mayor y el


menor elemento de la matriz y sus posiciones.

Desarrollo

A) Procedimiento

Iniciar acumulador
Leer Matriz
Ingresar datos a la matriz
Encontrar el mayor y el menor elemento de la matriz y sus posiciones
Escribir el mayor y el menor elemento de la matriz y sus posiciones

B) Pseudocdigo

Inicio
Matriz [3x3]<-Entero
Entero may, men;
Cadena p1, p2;
may = men = matriz[0, 0];
p1 = p2 = "1,1";
Desde int i = 0 hasta i < 3 incremento i++)
Desde j = 0 hasta j < 3 incremento j++
Si(may < matriz[i, j])Entonces
may = matriz[i, j];
p1 = (i + 1).ToString()+"," + (j + 1).ToString();
Fin si
Si (men > matriz[i, j])Entonces
men = matriz[i, j];
p2 = (i + 1).ToString() + "," + (j + 1).ToString();
Escribir may.ToString() + " y su posicion es: " + p1
Escribir men.ToString() + " y su posicion es: " + p2
Fin

19
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

20
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

10. Elaborar un programa que calcule la matriz inversa, de una matriz dada, cuyas
dimensiones son ingresadas por teclado.
Desarrollo
A) Procedimiento
Iniciar acumulador
Leer Matriz
Ingresar la matriz con dimensiones dadas por el teclado
Calcular la matriz inversa de la matriz ingrasada
Escribir la matriz inversa

B) Pseudocdigo

Inicio
Leer matriz
Entero a, b
Entero[,] fMatriz;
a = int.Parse(caja de texto1.Value.ToString())
b = int.Parse(caja de texto1.Value.ToString())
matriz = new TextBox[f,c]
Desde i=0 hasta i< f incremento i++
Desde j=0 hastaj< c incremento j++)
matriz[i, j] = new TextBox()
matriz[i,j].Size=new Size(50,10)
matriz[i,j].Location = new Point(10+(i*50),10+(j*20));
panel1.Controls.Add(matriz[i, j])
button1.Enabled = false
fMatriz = new int[f, c]
Desde i = 0 hasta i < f incremento i++
Desde j = 0 hasta j < c incremento j++
nmatriz[i, j] = convertir (matriz[i, j].Text.ToString())
int[,] inversa = new int[c, f];
inversa = calinver(fMatriz, f, c)
Escribir ""
Desde i = 0 hasta i < c incremento i++
Desde j = 0 hasta j < f incremento j++
Escribir inversa[i, j] + " "
Escribir "\f";
private int[,] calinver(int[,] m,int f, int c)
int[,] resultado = new int[c,f
Desde i = 0 hasta i < f incremento i++
Desde j = 0 hasta j < c incremento j++
resultado[i, j] = m[i, j]
return resultad
Fin

21
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

22
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

11. El dueo de un restaurante entrevista a cinco clientes de su negocio y les pide que califiquen
del 1 a 10 los siguientes aspectos: (1 es psimo y 10 es excelente)
a. Atencin de los empleados
b. Calidad de la comida
c. Justicia del precio
d. Ambiente

Elabore un programa que pida las calificaciones de N clientes en cada uno de los aspectos
mencionados, y luego escriba el promedio obtenido en cada uno de ellos. La lista debe aparecer
ordenada del aspecto mejor calificado al peor calificado.

Desarrollo

A) Procedimiento
Iniciar acumulador
Leer la matriz
Ingresar nmero de clientes
Ingresar calificaciones correspondientes
Calcular promedio de cada uno de ellos
Escribir el promedio de cada uno de ellos

B) Pseudocdigo

Inicio

Leer medida de la matriz


Entero a, b
Entero[,] aMatriz
double[] totales = new double[f];
nmatriz = new int[f, c];

23
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

Desde i = 0 hasta i < f incremento i++


Desde j = 0 hasta j < c incremento j++
aMatriz[i, j] = convertir(matriz[i, j].Text.ToString())
Desde i = 0 hasta i < f incremento i++
Entero total = 0;
Desde j = 0 hasta j < c incremento j++
total += aMatriz[i,j]
totales[i] = ( total/4);
Array.Sort(totales);
Escribir "Promedos redondeados: "
Desde i = 0 hasta i < f incremento i++)
Escribir totales[i] + " "
Fin

24
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

13. Los resultados de las ltimas elecciones a alcalde en una provincia X han sido las siguientes:
Distrito\Candidato Candidato Candidato B Candidato C Candidato D
A
Distrito 1 114 157 133 164
Distrito 2 79 196 49 174
Distrito 3 32 23 164 181
Distrito 4 194 80 124 45
Distrito 5 164 172 181 125

a) Imprimir la matriz con los resultados, incluyendo las cabeceras.


b) Calcular e imprimir el total de votos recibidos por cada candidato y mostrar el candidato
ms votado.
c) Si algn candidato recibe ms del 50 % de los votos, el programa imprimir un mensaje
de Ganador, de caso contrario mostrar el nombre de los dos candidatos ms votados,
quienes sern los que pasen a la segunda ronda de elecciones.

Desarrollo
A) Procedimiento

Iniciar acumulador
Leer la matriz

25
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

Ingrasar datos con resultados


Calcular el total de votos recibidos por cada candidato y mostrar el candidato ms
votado.
Escribir, si algn candidato recibe ms del 50 % de los votos, el programa imprimir un
mensaje de Ganador, de caso contrario mostrar el nombre de los dos candidatos ms
votados, quienes sern los que pasen a la segunda ronda de elecciones.

B) Pseudocdigo
Inicio
Matriz [5,4]<-Entero
Desde i = 0 hasta i < 4 incremento i++
Desde i = 0 i < 5 incremento i++
label15.Text += b[i];
Desde j = 0 hasta j < 4 incremento j++
Desde i = 0 hasta i < 4 incremento i++
Emterp f=0;
Desde j = 0 hasta j < 5 incremento j++
total += matriz[j, i];
totales[i] = total;
label15.Text += a[i] + " "
Entero y = 0
Desde i = 0 hasta i < 4 incremento i++)
Si (y < a[i])
y = a[i];
Cadena amasvotado = "El candidato mas votado tiene: "+y+"votos y es: \n"
Cadena masvotado = ""
Si (y == to[0])
masvotado += "Candidato A \n"
Si (y == to[1])
masvotado += "Candidato B \n"
Si (y == to[2])
masvotado += "Candidato C \n"
Si (y == to[3])
masvotado += "Candidato D \n"
Escribir masvotado
Entero tovotos = 0
string ganador = ""
Desde i = 0 hasta i < 4 incremento i++
totalvotos += totales[i]
Si (y >= (tovotos / 2))
ganador = "El ganador es: "+masvotado
Caso contrario
string svuelta = calcular(totales,y);
ganador = "Debe haber segunda vuelta con los candidatos:
\n"+masvotado+svuelta
Escribir ganador
private string calcular(int[] totales,int y)
string resultado=""
int aux2 = 0

26
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

Desde int i = 0 hasta i < totales.Length incremento i++


Si (to[i] == h)
Caso contrario
Si (h < to[i])
h = to[i]
Si (h == to[0])
resultado += "Candidato A \n"
Si (h == to[1])
resultado += "Candidato B \n"
Si (h == to[2])
resultado += "Candidato C \n"
Si (h == to[3])
resultado += "Candidato D \n"
regresar a resultado

Fin

27
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

28
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

29
UNIVERSIDAD NACIONAL DE CAJAMARCA
FACULTAD DE INGIENERA
ESCUELA ACADMICO PROFESIONAL DE INGIENERA DE MINAS

30