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

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 continuacin del otro y ocupan una posicin entera consecutiva a partir de 0. a [7 ] 0 1 2 3 4 5 6 a [6] a [0] a [1]

En las matrices, los datos se guardan en forma de tabla (filas x columnas) donde cada fila es un vector del tamao que indique las columnas y cada columna es un vector del tamao que indique las filas. m[5][4] COLUMNAS 0 1 2 3

F I L A S

0 1 2 3 4

DECLARACIN: Vector: Matriz: Ejemplo de vectores: int a[7]; double b[10]; char c[100]; Ejemplo de matrices: int m[5][4]; double n[10][10]; char x[20][30]; Tipo de dato variable[tamao]; tipo de dato variable[filas][columnas];

// 5 filas, 4 columnas // 10 filas, 10 columnas // 20 cadenas de 30 caracteres cada una

Elaborado por Ing. Julio Vsquez Paragulla

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: Ejemplo: cout<< x[0]; cout<< p[4]; //2 //Argentina Variable [posicion]

Matrices: variable[fila][columna] Ejemplo: cout<< m[0[0]; cout<< m[0[1]; cout<< m[1[0]; RECORRIDO Vectores: // forma ascendente for(int i=0; i<tamao; i++){ .. } Vectores: // forma descendente for(int i=tamao-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; //2 //14 //32

Elaborado por Ing. Julio Vsquez Paragulla

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 tamao 30 y realice lo siguiente. a. Genere nmeros aleatorios de tres cifras y gurdalos en todo el vector. Inmediatamente muestre su contenido. b. Muestre y cuente solo nmeros capicas que se encuentren en el vector. c. Muestre y cuente los nmeros primos que se encuentren en el vector. d. Determine y muestre el promedio, la desviacin estndar y la varianza. e. Ordene el arreglo en forma ascendente y muestre su contenido Implemente funciones en la solucin.

#include "stdafx.h" #include <iostream> #include <time.h> using namespace std; // declara vector de enteros globalmente int a[30]; // prototipos void llenaVector(); void lista(); int aleatorio (int min , void capicuas(); int esCapicua (int n);

int max);

Elaborado por Ing. Julio Vsquez Paragulla

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

void primos(); int esPrimo ( int n); void estadistica(); double promedio(); double desviacionEstandar (); double varianza(); // funcin principal() void main(){ llenaVector(); lista(); capicuas(); primos(); estadistica(); _gettch(); } // desarrollo de prototipos void llenaVector(){ srand(time(NULL)); 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; } int aleatorio (int min , int max){ return (int) (rand( )%(max-min+1) +min); } void capicuas(){ int c =0; cout<<"Numeros capicuas que estan 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 estan en el vector"<<endl; for( int i = 0; i<30; i++){ if (esPrimo(a[i])){ c++; cout<<a[i]<<endl; } } cout<<"hay " <<c<< " numeros primos"<<endl; }
Elaborado por Ing. Julio Vsquez Paragulla

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

int esPrimo( 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 estadistica(){ cout<< "Promedio="<<promedio()<<endl; cout<< "Desviacion estandard= "<< desviacionEstandar()<<endl; cout<< "varianza= "<< varianza()<<endl; } double promedio(){ double s = 0; for ( int i = 0; i<30; i++) s += a[i]; return s/30; } double desviacionEstandar (){ 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; }
Modifique la estructura de la funcin main() para que las opciones se invoquen a travs de un men de opciones.

PROBLEMA 2: Considere una matriz de 10 filas por 10 columnas y a travs de un men de opciones realice los siguientes procesos: [1] genera, genera nmeros 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 continuacin de la matriz.

Elaborado por Ing. Julio Vsquez Paragulla

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA CURSO: MB545 SEMANA07 ARREGLOS: VECTORES Y MATRICES PROPUESTO 1: Considere los arreglos necesarios, de tamao 30, para guardar los nombres y cuatro notas con sus respectivos promedios de cada alumno y a travs 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 ms alto promedio. 5. Ordena y muestra a los alumnos por orden de merito descendente. Nota: El promedio es en base a las 3 notas ms altas

PROPUESTO 2: Dado 2 nmeros enteros, determine la cantidad de veces que se repite cada digito del 0 al nueve en ambos nmeros 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 tamao 20 para guardar nmeros enteros y realice lo siguiente: 1. Llene el primer arreglo con nmeros aleatorios de 2 cifras 2. Pase al segundo arreglo slo los nmeros pares que se encuentren en el primer arreglo 3. Pase al tercer arreglo slo los nmeros 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 travs de un men de opciones realice los siguientes procesos: [1] genera, genera nmeros 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 Elaborado por Ing. Julio Vsquez Paragulla

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE INGENIERIA MECANICA CURSO: MB545 SEMANA07 ARREGLOS: VECTORES Y MATRICES [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 Vsquez Paragulla

Вам также может понравиться