Você está na página 1de 6

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERIA MECANICA


CURSO: MB545
SEMANA07
ARREGLOS: VECTORES Y MATRICES

Permite administrar un conjunto de datos de un mismo tipo con una sola variable.
En los vectores, los datos se guardan uno a continuación del otro y ocupan una posición entera
consecutiva a partir de 0.

a [7 ]

0 a [0]
1 a [1]
2
3
4
5
6 a [6]

En las matrices, los datos se guardan en forma de tabla (filas x columnas) donde cada fila es un
vector del tamaño que indique las columnas y cada columna es un vector del tamaño que indique las
filas.

m[5][4]

COLUMNAS

0 1 2 3

F 0
I
1
L 2
A
S 3

DECLARACIÓN:

Vector: Tipo de dato variable[tamaño];


Matriz: tipo de dato variable[filas][columnas];

Ejemplo de vectores:
int a[7];
double b[10];
char c[100];

Ejemplo de matrices:
int m[5][4]; // 5 filas, 4 columnas
double n[10][10]; // 10 filas, 10 columnas
char x[20][30]; // 20 cadenas de 30 caracteres cada una

Elaborado por Ing. Julio Vásquez Paragulla 1


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA07
ARREGLOS: VECTORES Y MATRICES
INICIALIZAR:

Vectores:

int x [ ] = {2,70,18,15}

char * p[ ] = {“Perú”, “Chile”, “Bolivia”, “Brasil”, “Argentina”};

Matrices:

int m[ ][ ] ={2,14,23,13; 32,54,3,43; 6,45,4,65};

ACCESO DE DATOS:

Vectores: Variable [posicion]

Ejemplo:

cout<< x[0]; //2

cout<< p[4]; //Argentina

Matrices: variable[fila][columna]

Ejemplo:

cout<< m[0[0]; //2


cout<< m[0[1]; //14
cout<< m[1[0]; //32

RECORRIDO

Vectores: // forma ascendente

for(int i=0; i<tamaño; i++){


……..
}

Vectores: // forma descendente

for(int i=tamaño-1; i>=0; i--){


……..
}

Ejemplo:

// forma ascendente
for (int i = 0; i<4; i++)
cout<< x[i]<<endl;

// forma descendente
for( int i = 4; i>= 0; i--)
cout<<p[i]<<endl;

Elaborado por Ing. Julio Vásquez Paragulla 2


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA07
ARREGLOS: VECTORES Y MATRICES
Matrices: // por cada fila

for(int i=0; i<filas; i++){


for(int j=0; j<columnas; j++){

}
}

Matrices: // por cada columna

for(int j=0; j<columnas; j++){


for(int i=0; i<filas; i++){

}
}

Ejemplo:

// por cada fila


for (int i = 0; i<5; i++){
for( int j = 0; j<4; j++){
cout<<m[i][j]<<”\t”;
}
cout<<endl;
}

// por cada columna


for (int j = 0; j<4; j++){
for( int i = 0; i<4; i++){
cout<<m[i][j]<<”\t”;
}
cout<<endl;
}

PROBLEMA 1:

Considere un vector de enteros de tamaño 30 y realice lo siguiente.


a. Genere números aleatorios de tres cifras y guárdalos en todo el vector. Inmediatamente
muestre su contenido.
b. Muestre y cuente solo números capicúas que se encuentren en el vector.
c. Muestre y cuente los números primos que se encuentren en el vector.
d. Determine y muestre el promedio, la desviación estándar y la varianza.
e. Ordene el arreglo en forma ascendente y muestre su contenido

// declara vector

int a[30];

// funciones

void llenaVector(){
for(int i=0 ; i<30; i++)
a[i]= aleatorio (100,999);
}

void lista(){
for( int i=0 ; i<30; i++)
cout<<“a[”<< i << “]=”<<a[i]<<endl;

Elaborado por Ing. Julio Vásquez Paragulla 3


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA07
ARREGLOS: VECTORES Y MATRICES
int aleatorio (int min , int max){
return (int) (rand( )%(max-min) +min);
}

void capicuas(){
int c =0;
cout<<”Numeros capicuas que están en el vector”<<endl;
for ( int i = 0; i<30; i++){
if ( escapicua (a[i])){
c++;
cout<<a[I]<<endl;
}
}
cout<<“hay ”<<c<< “ numeros capicuas”<<endl;
}

int escapicua (int n) {


if (n/100= =n%10)
return 1;
else
return 0;
}

void primos(){
int c=0;
cout<<”Numeros primos que están en el vector”<<endl;
for( int i = 0; i<30; i++){
if (primo (a[i])){
c++;
cout<<a[i]<<endl;
}
}
cout<<“hay ” <<c<< “ números primos”<<endl;
}

int primo ( int n) {


int c = 0;
for( int i = 1; i<=n; i++){
if( n% i= = 0)
c++;
}
if( c= =2)

return 1;

else

return 0;
}

void estadística(){
cout<< “Promedio=”<<promedio ()<<endl;
cout<< “des. estandard= ”<< destandar ()<<endl;
cout<< “varianza= ”<< varianza ()<<endl;
}

double promedio(){
double s = 0;
for ( int i = 0; i<30; i++)
s+= (a[i]);
return s/30;
}

Elaborado por Ing. Julio Vásquez Paragulla 4


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA07
ARREGLOS: VECTORES Y MATRICES
double destándar (){
return sqrt(varianza());
}

double varianza(){
double p= promedio(); suma=0;
for( int i = 0; i<30; i++)
suma+= pow(a[i]-p, 2);
return suma/30;
}

// función principal()
void main(){
llenaVector();
lista();
capicúas();
primos();
estadística();
}

Desarrolle e invoque a la función que ordena en forma ascendente. Luego, modifique la estructura de la
función main() para que las opciones se invoquen a través de un menú de opciones.

PROBLEMA 2:

Considere una matriz de 10 filas por 10 columnas y a través de un menú de opciones realice los
siguientes procesos:

[1] genera, genera números aleatorios de 2 cifras y los guarda en la matriz

[2] muestra por filas, muestra el contenido de la matriz en forma de tabla

[3] mayor valor, encuentra y muestra el mayor valor y las posiciones (fila,columa) donde se
encuentra.

[4] promedio por fila, determina el promedio de cada fila y lo muestra junto a la matriz

[5] promedio por columna, determina el promedio de cada columna y lo muestra a continuación
de la matriz.

PROPUESTO 1:

Considere los arreglos necesarios, de tamaño 30, para guardar los nombres y cuatro notas con sus
respectivos promedios de cada alumno y a través de un menú de opciones realice lo siguiente:
1. Ingresar , ingresa y guardar los datos de un alumno e inmediatamente muestra en forma
de tabla los datos guardados.
2. Promedios inferiores, cuenta y muestra a los alumnos cuyo promedio sea inferior al
promedio general.
3. Promedios superiores, cuenta y muestra aquellos alumnos cuyo promedio sea igual o
superior al promedio general.
4. Promedio mayor, cuenta y muestra a los alumnos que tengan el más alto promedio.
5. Ordena y muestra a los alumnos por orden de merito descendente.

Nota: El promedio es en base a las 3 notas más altas

Elaborado por Ing. Julio Vásquez Paragulla 5


UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA MECANICA
CURSO: MB545
SEMANA07
ARREGLOS: VECTORES Y MATRICES
PROPUESTO 2:

Dado 2 números enteros, determine la cantidad de veces que se repite cada digito del 0 al nueve en
ambos números ingresados y dibuje un histograma.

Por ejm. para n1= 34533452, n2=543423, el histograma seria:

2: **

3: *****

4: ****

5: ***

PROPUESTO 3:

Considere 3 arreglos de tamaño 20 para guardar números enteros y realice lo siguiente:


1. Llene el primer arreglo con números aleatorios de 2 cifras
2. Pase al segundo arreglo sólo los números pares que se encuentren en el primer arreglo
3. Pase al tercer arreglo sólo los números impares que se encuentren en el primer arreglo
4. Muestre el contenido de los 3 arreglos.

PROPUESTO 4:

Considere una matriz de 10 filas por 10 columnas y a través de un menú de opciones realice los
siguientes procesos:

[1] genera, genera números aleatorios de 2 cifras y los guarda en la matriz

[2] muestra por filas, muestra el contenido de la matriz en forma de tabla

[3] muestra por columnas, muestra el contenido de la matriz en forma de tabla

[4] suma filas, suma y muestra la suma de cada fila

[5] suma columnas, suma y muestra la suma de cada columna

[6] ordena filas, ordena cada fila y muestra su contenido de la matriz

[7] ordena columnas, ordena cada columna y muestra su contenido de la matriz

[8] ordena todo por filas, ordena toda la matriz por filas y muestra su contenido

[9] ordena todo por columnas, ordena toda la matriz por columnas y muestra su contenido

[10] desplaza una columna por derecha, la última columna va a la primera y el resto se desplaza
hacia la derecha

[11] desplaza una columna por izquierda, la primera columna va a la ultima y el resto se desplaza
hacia la izquierda

Elaborado por Ing. Julio Vásquez Paragulla 6

Você também pode gostar