Está en la página 1de 26

1. Realizar un algoritmo para copiar un vector en otro vector #include #include #include #include <stdio.h> <stdlib.h> <iostream> <conio.

h>

#define DIM 50 using namespace std; void ingresarVector(int a[],int n); void mostrarVector(int a[],int n); bool copiarVector(int a[],int c[],int n); int main() { int array[DIM],copia[DIM],n; printf("Ingrese el tamao del vector: "); cin>>n; printf("Ingrese los elementos\n"); ingresarVector(array,n); cout<<"\n\nel vector ingresado es:\n"; mostrarVector(array,n); copiarVector(array,copia,n); printf("\nEl vector fue copiado con exito\n"); cout<<"\nel vector copiado es:\n"; mostrarVector(copia,n); getch(); return 0; } void ingresarVector(int a[],int n){ int i,dato; for(i=0;i<n;i++){ cin>>dato; a[i] = dato; } } void mostrarVector(int a[],int n){ for(int i=0;i<n;i++) cout<<" "<<a[i]; } bool copiarVector(int a[],int c[],int n){ for(int i=0;i<n;i++) c[i] = a[i]; } 2. Realizar un algoritmo para realizar el ordenamiento de un arreglo y la bsqueda secuencial de un elemento en u arrreglo unidimensional. //librerias #define DIM 50

using namespace std; void void void void ingresarVector(int a[],int n); mostrarVector(int a[],int n); ordenarVector(int a[],int n); busquedaSecuencial(int a[],int n);

int main() { int array[DIM],n; printf("Ingrese el tamao del vector: "); cin>>n; printf("Ingrese los elementos\n"); ingresarVector(array,n); cout<<"\n\nel vector ingresado es:\n"; mostrarVector(array,n); ordenarVector(array,n); cout<<"\nEl vector ordenado es: \n"; mostrarVector(array,n); busquedaSecuencial(array,n); getch(); } void ordenarVector(int a[],int n) { int menor,indice = 0,posicion,temp; while(indice<n) { menor = a[indice]; for(int i = indice;i<n;i++) { if(a[i] <= menor) { menor = a[i]; posicion = i; } } temp = a[indice]; a[indice] = menor; a[posicion] = temp; indice++; } cout<<"\nvector ordenado...\n"; } void busquedaSecuencial(int a[],int n) { int pos=0,dato,i=0; bool encontro = false; cout<<"\n\nIngrese el dato a buscar: ";cin>>dato; while(i<=n && !encontro) return 0;

{ if(a[i] == dato) { encontro = true; pos = i; } else i++; } if(pos==0) cout<<"\nNo se encontro el dato ingresado.."; else cout<<"\nse encontro "<<dato<<" en la posicion :"<<pos<<endl;

3. Realizar un algoritmo para realizar la operacin de rotar dado un elemento que se posiocione como primer elemento de un arreglo unidimensional. //librerias #define DIM 50 using namespace std; void void void void ingresarVector(int a[],int n);//ya se implemento mostrarVector(int a[],int n);//ya se implemento rotarVector(int a[],int n); invertir(int a[],int i,int j);

int main() { int array[DIM],n; printf("Ingrese el tamao del vector: "); cin>>n; printf("Ingrese los elementos\n"); ingresarVector(array,n); cout<<"\n\nel vector ingresado es:\n"; mostrarVector(array,n); rotarVector(array,n); system("pause"); return 0; } void rotarVector(int a[],int n) { int dato; cout<<"\n\nElija un elemento para rotar poniendolo primero\nen el arreglo: "; cin>>dato; dato--; invertir(a,0,dato-1); invertir(a,dato,n-1); invertir(a,0,n-1); cout<<"\n\nEl vector rotado es:\n\n"; mostrarVector(a,n); printf("\n\n");

} void invertir(int a[],int i,int j) { if(i == j) return; while(i < j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; i++; j--; } } 4. Realizar la codificacin o implementacin en Lenguaje de Programacin C++para calcular el promedio de un arreglo unidimensional que tenga como mximo 30 elementos. a. Que permita el ingreso de los datos mediante lectura. b. Que permita la declaracin de los elementos del arreglo como una constante. #define MAX 50 using namespace std; void ingresarVector(float a[],int n); void mostrarVector(float a[],int n); void ordenarVector(float a[],int n); float calcularPromedio(float a[],int n); int main() { int n; float array[MAX],prom; printf("Ingrese el tamao del vector: "); cin>>n; printf("Ingrese los elementos\n"); ingresarVector(array,n); cout<<"\n\nel vector ingresado es:\n"; mostrarVector(array,n); prom = calcularPromedio(array,n); printf("\n\nEl promedio de los datos es: %.2f\n",prom); system("pause"); return 0;

float calcularPromedio(float a[],int n) { int i=0; float suma=0; while(i<n) { suma = suma + a[i];

i++; } return suma/n;

5. Realizar la codificacin o implementacin en lenguaje de Programacin C++ para realizar la bsqueda: a. Del elemento de mayor valor. b. Del elemento de menor valor del arreglo unidimensional. Codificacion en C++: #define MAX 100 using namespace std; class Vector{ int A[MAX]; int indice; int N; public: Vector(); void Recorrer(); void CrearVector(); void EncontrarMayor(); void EncontrarMenor();

};

Vector::Vector(){ N=0; indice=0; } void Vector::CrearVector(){ int valor; int opc; cout<<"Ingrese el tamanio del vector: "; cin>>opc; for(int i=0;i<opc;i++){ cout<<"Ingrese valor: "; cin>>valor; if(N>=MAX) cout<<"El vector esta lleno!!!"; else{ A[N]=valor; N++; } }

void Vector::Recorrer(){ cout<<endl<<"Vector: "<<endl; for(indice=0;indice<N;indice++) cout<<"["<<A[indice]<<"] "; cout<<endl; getch(); } void Vector::EncontrarMayor(){

int mayor=-99; int resg=0; int cont=0; for(indice=0;indice<N;indice++){ if(A[indice]==mayor) cont++; if(A[indice]>mayor){ mayor=A[indice]; resg=indice+1; } } if(cont>=1) cout<<endl<<"El elemento mayor es: "<<mayor<<" y se repite "<<cont+1<<" veces"; else cout<<"El elemento mayor en el vector es A["<<resg<<"] y su valor es: "<<mayor; getch(); } void Vector::EncontrarMenor(){ int menor=9999; int resg=0; int cont=0; for(indice=0;indice<N;indice++){ if(A[indice]==menor) cont++; if(A[indice]<menor){ menor=A[indice]; resg=indice+1; } } if(cont>=1) cout<<endl<<"El elemento mmenor es: "<<menor<<" y se repite "<<cont+1<<" veces"; else cout<<"El elemento menor en el vector es A["<<resg<<"] y su valor es: "<<menor; getch(); } int Salir(){ cout<<"Gracias por usar el sistema!!!"; getch(); exit (1); } void Mensaje(){ cout<<"Ha ingresado una opcion incorrecta!!!"; } int Menu(){ int op; cout<<'\t'<<" MENU"<<endl; cout<<'\t'<<"============="<<endl; cout<<"Llenar vector.................[1]"<<endl; cout<<"Recorrer Vector...............[2]"<<endl; cout<<"Encontrar Mayor elemento......[3]"<<endl; cout<<"Encontrar Menor elemento......[4]"<<endl; cout<<"Salir.........................[5]"<<endl; cout<<"Ingrese su opcion ==> "; cin>>op;

return op; } int main(){ int opc; Vector V; opc=Menu(); while(opc!=0){ switch(opc){ case 1: V.CrearVector();break; case 2: V.Recorrer();break; case 3: V.EncontrarMayor();break; case 4: V.EncontrarMenor();break; case 5: Salir();break; default: Mensaje(); break; } system("cls"); opc=Menu(); } getch(); return 0; } 6. Realizar la codificacin o implementacin en lenguaje de programacin C++ para realizar la bsqueda de un elemento en el arreglo unidimensional mediante los mtodos de: a. Bsqueda lineal. b. Bsqueda binaria. Codificacion en C++: #define MAX 100 using namespace std; class Vector{ int A[MAX]; int indice; int N; int buscado; public: Vector(); void Recorrer(); void CrearVector(); void Burbuja(); int BusquedaBinaria(int buscado); void BusquedaLineal(int buscado); }; Vector::Vector(){ N=0; indice=0; buscado=0; } void Vector::CrearVector(){ int valor;

int opc; cout<<"Ingrese el tamanio del vector: "; cin>>opc; for(int i=0;i<opc;i++){ cout<<"Ingrese valor: "; cin>>valor; if(N>=MAX) cout<<"El vector esta lleno!!!"; else{ A[N]=valor; N++; } } } void Vector::Recorrer(){ cout<<endl<<"Vector: "<<endl; for(indice=0;indice<N;indice++) cout<<"["<<A[indice]<<"] "; cout<<endl; getch(); } void Vector::Burbuja(){ int i,j,temp; for(i=1;i<N;i++) for(j=N-1;j>=i;j--) if(A[j-1]>A[j]){ temp=A[j-1]; A[j-1]=A[j]; A[j]=temp; } } int Vector::BusquedaBinaria(int buscado){ int medio, inicio, fin; inicio = 0; fin = N-1; int resg=0; while(inicio <= fin){ medio = (inicio + fin) / 2; if(buscado == A[medio]){ cout<<"Se encuentra en la posicion "<<medio+1<< endl; getch(); return A[medio]; } else{ if(A[medio] > buscado){ fin = medio - 1; } else { inicio = medio + 1; } }

} getch(); return -1; }

void Vector::BusquedaLineal(int buscado){ int cont=0; for(indice=0;indice<N;indice++){ if(A[indice]==buscado){ cout <<"El numero "<<buscado<<" se encuentra en la posicion "<<indice+1<< endl; cont++; } } if(cont==0) cout<<endl<<"No se encontro el numero!!!"; } getch();

int Salir(){ cout<<"Gracias por usar el sistema!!!"; getch(); exit (1); } void Mensaje(){ cout<<"Ha ingresado una opcion incorrecta!!!"; } int Menu(){ int op; cout<<'\t'<<" MENU"<<endl; cout<<'\t'<<"============="<<endl; cout<<"Llenar vector........................[1]"<<endl; cout<<"Recorrer Vector......................[2]"<<endl; cout<<"Busqueda Binaria de un elemento......[3]"<<endl; cout<<"Busqueda Lineal de un elemento.......[4]"<<endl; cout<<"Salir................................[5]"<<endl; cout<<"Ingrese su opcion ==> "; cin>>op; return op; } int main(){ int opc; int buscad; int comprob; Vector V; opc=Menu(); while(opc!=0){ switch(opc){ case 1: V.CrearVector();break; case 2: V.Recorrer();break; case 3: cout<<"BUCANDO BINARIAMENTE: "<<endl; cout<<"Arreglo inicial==> "; V.Recorrer(); cout<<"Ordenando==> "; V.Burbuja(); V.Recorrer(); cout<<endl<<"Ingrese numero a buscar: "; cin>>buscad; cout<<endl; comprob=V.BusquedaBinaria(buscad); if(comprob==-1) cout<<"No se encontro el elemento!!!";break; case 4: cout<<"BUCANDO LINEALMENTE: "<<endl;

} system("cls"); opc=Menu(); } getch(); return 0;

cout<<endl<<"Ingrese numero a buscar: "; cin>>buscad; cout<<endl; V.BusquedaLineal(buscad);break; case 5: Salir();break; default: Mensaje(); break;

7. Realizar la codificacin o implementacin el C++ para realizar la actualizacin de un arreglo unidimensional. La actualizacin consiste en realizar las siguientes operaciones: a. Mostrar el arreglo. b. Adicionar un elemento al arreglo c. Insertar por valor un elemento en el arreglo d. Eliminar por posicin un elemento del arreglo e. Eliminar por valor un elemento del arreglo f. Ordenar en orden ascendente g. Ordenar en orden descendente al arreglo h. Rotar el arreglo i. Salvar el arreglo j. Recuperar el arreglo Codificacion en C++: #define Max 100 using namespace std; class Vector{ int A[Max]; int indice; int N; int valor; int posicion; int temp; fstream F; public: Vector(); int retN(){return N;} void CrearVector(); void Mostrar(); void Adicionar(); void Insertar_Val(); void Eliminar_Pos(); void Eliminar_Val(); void Ordenar_Asc(); void Ordenar_Desc(); void Rotar_Izq(); void Rotar_Der(); void Salvar(); void Recuperar();

};

Vector::Vector(){ N=0; indice=0; } void Vector::CrearVector(){ int valor; int opc; cout<<"Ingrese el tamanio del vector: "; cin>>opc; for(int i=0;i<opc;i++){ cout<<"Ingrese valor: "; cin>>valor; if(N>=Max) cout<<"El vector esta lleno!!!"; else{ A[N]=valor; N++; } }

void Vector::Mostrar(){ cout<<"Vector: "<<endl; cout<<"-------"<<endl; for(indice=0;indice<N;indice++){ cout<<A[indice]<<"\t"; } getch(); } void Vector::Adicionar(){ cout<<"Ingrese Valor: "; cin>>valor; if(N>=Max) cout<<"El vector esta lleno!!!"; else{ A[N]=valor; N++; } } void Vector::Insertar_Val(){ cout<<"Insertar por valor: "<<endl; if(N>0){ cout<<"Ingrese el Valor: "; cin>>valor; cout<<"Ingrese la posicion: [0-"<<N-1<<"]: "; cin>>posicion; if(posicion>=N) cout<<"No se puede insertar en esta posicion!!!"; else{ N++; for(indice=N-1;indice>posicion;indice--) A[indice]=A[indice-1]; A[posicion]=valor; Mostrar(); cout<<"Elemento insertado!!!"; getch(); }

} else }

cout<<"No hay elementos en el vector!!!";

void Vector::Eliminar_Pos(){ cout<<"Eliminar elemento por posicion: "; if(N>=0){ cout<<"Ingrese la posicion: [0-"<<N-1<<"]: "; cin>>posicion; if(posicion>=N) cout<<"No se puede eliminar una posicion que no existe!!!"; else{ N--; for(indice=posicion;indice<N;indice++) A[indice]=A[indice+1]; Mostrar(); cout<<"Elemento eliminado!!!"; getch(); } } else cout<<"No hay elementos en el vector!!!"; } void Vector::Eliminar_Val(){ cout<<"Eliminar elemento por valor: "; if(N>0){ cout<<"Ingrese el valor a eliminar: "; cin>>valor; indice=0; int hecho=0; while(indice<N){ if(A[indice]==valor){ N--; hecho=1; for(int i=indice;i<N;i++) A[i]=A[i+1]; indice=0; cout<<"elemento eliminado!!!"<<endl; getch(); } indice++; } if(hecho==0) cout<<"No se encontro el elemento!!!"; else{ Mostrar(); cout<<"Elemento eliminados!!!"; } } else } void Vector::Ordenar_Asc(){ cout<<"Ordenar Ascendentemente: "<<endl; int i,j,temp; for(i=1;i<N;i++) for(j=N-1;j>i;j--) cout<<"No hay elementos en el vector!!!";

if(A[j-1]>A[j]){ temp=A[j-1]; A[j-1]=A[j]; A[j]=temp; } cout<<"Vector Ordenado..."<<endl; Mostrar();

void Vector::Ordenar_Desc(){ cout<<"Ordenar Descendentemente: "<<endl; int i,j,temp; for(i=N-1;i>0;i--){ for(j=0;j<i;j++){ if(A[j]<A[j+1]){ temp=A[j]; A[j]=A[j+1]; A[j+1]=temp; } } } cout<<"Vector ordenado..."<<endl; Mostrar(); } void Vector::Rotar_Izq(){ cout<<"Rotar hacia la Izquierda: "; cout<<endl<<"Cuantas posiciones desea rotar?"; cin>>posicion; for(int i=0;i<posicion;i++){ temp=A[0]; for(indice=0;indice<N-1;indice++) A[indice]=A[indice+1]; A[N-1]=temp; } Mostrar(); cout<<"Vector rotado "<<posicion<<" posiciones"; } void Vector::Rotar_Der(){ cout<<"Rotar hacia la derecha: "; cout<<endl<<"Cuantas posiciones desea rotar? "; cin>>posicion; for(int i=0;i<posicion;i++){ temp=A[N-1]; for(indice=N-1;indice>0;indice--) A[indice]=A[indice-1]; A[0]=temp; } Mostrar(); cout<<"Vector rotado "<<posicion<<" posiciones"; } void Vector::Salvar(){ cout<<"Guardar Vector: "; F.open("Vector.txt",ios::out); for(indice=0;indice<N;indice++) F<<A[indice];

cout<<"Vector guardado..."<<endl; getch(); F.close();

void Vector::Recuperar(){ posicion=0; int buffer; F.open("Vector.txt",ios::in); F>>buffer; while(!F.eof()){ F>>buffer; A[posicion]=buffer; posicion++; } N=posicion-1; cout<<endl; Mostrar(); cout<<endl<<"Vector Recuperado..."<<endl; getch(); F.close();

void Salir(){ cout<<endl<<"Gracias por usar el sistema!!!"; getch(); exit(1); } int Menu(){ int op; cout<<"Menu: "<<endl; cout<<"-------"<<endl; cout<<"Crear Vector...............................[0]"<<endl; cout<<"Visualizar Vector..........................[1]"<<endl; cout<<"Adicionar elemento.........................[2]"<<endl; cout<<"Insertar elemento..........................[3]"<<endl; cout<<"Eliminar vector por posicion...............[4]"<<endl; cout<<"Eliminar elemento por valor................[5]"<<endl; cout<<"Ordenar Ascendentemente....................[6]"<<endl; cout<<"Ordenar Descendentemente...................[7]"<<endl; cout<<"Rotar hacia la izquierda...................[8]"<<endl; cout<<"Rotar hacia la derecha.....................[9]"<<endl; cout<<"Guarda vector.............................[10]"<<endl; cout<<"Recuperar vector..........................[11]"<<endl; cout<<"Salir.....................................[12]"<<endl; cout<<"Ingrese una opcion: "; cin>>op; return op; } int main(){ int opc; Vector V; opc=Menu(); while(opc!=123){ switch(opc){ case 0: case 1: case 2: case 3: case 4:

V.CrearVector();break; V.Mostrar();break; V.Adicionar();break; V.Insertar_Val();break; V.Eliminar_Pos();break;

case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: default: } system("cls"); opc=Menu(); } getch(); return 0;

V.Eliminar_Val();break; V.Ordenar_Asc();break; V.Ordenar_Desc();break; V.Rotar_Izq();break; V.Rotar_Der();break; V.Salvar();break; V.Recuperar();break; Salir();break; cout<<"No existe la opcion!!!";

8. Realizar un algoritmo y codificacin para realizar el almacenar y recorrido de una matriz: por columnas y por filas. Codificacion en C++: #define MAX 25 using namespace std; class Matriz{ int A[MAX][MAX]; int M,N; int estado; public: Matriz(); void Dimensionar(); int Estado(); void LlenarMatriz(); void RecorrerPorFilas(); void RecorrerPorColumnas(); }; Matriz::Matriz(){ M=0; N=0; } void Matriz::Dimensionar(){ estado=0; while(estado==0){ cout<<endl<<"Ingrese numero de filas: "; cin>>M; cout<<endl<<"Ingrese numero de columnas: "; cin>>N; if(M*N<=MAX) estado=1; else cout<<endl<<"Fuera del rango definido por MxN<="<<MAX; } }

int Matriz::Estado(){

if(M*N>0) return 1; else return 0;

void Matriz::LlenarMatriz(){ if(Estado()==1){ for(int i=0;i<M;i++) for(int j=0;j<N;j++){ cout<<"Ingrese valor pos ["<<i+1<<"]["<<j+1<<"] :"; cin>>A[i][j]; } } else{ cout<<"Matriz no dimensionada o vacia"; getch(); } } void Matriz::RecorrerPorFilas(){ cout<<endl<<endl; if(Estado()>0){ for(int i=0;i>M;i++){ for(int j=0;i>N;j++){ cout<<"["<<A[i][j]<<"] "; } cout<<endl; } } else } void Matriz::RecorrerPorColumnas(){ cout<<endl<<endl; if(Estado()>0){ for(int j=0;j<N;j++){ for(int i=0;i<M;i++){ cout<<"["<<A[i][j]<<"] "; } cout<<endl; } } else } int Salir(){ cout<<"Gracias por usar el sistema!!!"; getch(); exit (1); } void Mensaje(){ cout<<"Matriz no dimensionada o vacia!!!"; getch(); cout<<"Matriz no dimensionada o vacia!!!"; getch();

cout<<"Ha ingresado una opcion incorrecta!!!"; getch();

int Menu(){ int op; cout<<'\t'<<" MENU"<<endl; cout<<'\t'<<"============="<<endl; cout<<"Dimensionar Matriz...................[1]"<<endl; cout<<"LLenar Matriz........................[2]"<<endl; cout<<"Recorrer Matriz por filas............[3]"<<endl; cout<<"Recorrer Matriz por columnas.........[4]"<<endl; cout<<"Salir................................[5]"<<endl; cout<<"Ingrese su opcion ==> "; cin>>op; return op; } int main(){ int opc; Matriz M; opc=Menu(); while(opc!=10){ switch(opc){ case 1: M.Dimensionar();break; case 2: M.LlenarMatriz();break; case 6: M.RecorrerPorFilas();break; case 4: M.RecorrerPorColumnas();break; case 5: Salir();break; default: Mensaje(); break; } system("cls"); opc=Menu(); } getch(); return 0;

9. Realizar un algoritmo y codificacin para calcular la suma de los elementos de dos vectores y dar el resultado en un tercer vector using namespace std; int main () { system("color 1f"); int a,i; cout<<"ingrese el tama"<<char(-92)<<"o del vector : "; cin>>a; int v1[a],v2[a],vs[a]; cout<<"Vector A: "; cout<<endl; for(i=1;i<=a;i++) { cout<<"A["<<i<<"] = "; cin>>v1[i-1]; } cout<<"Vector B:";cout<<endl;

for(i=1;i<=a;i++) { cout<<"B["<<i<<"] = "; cin>>v2[i-1]; } for(i=0;i<a;i++) { vs[i]=v1[i]+v2[i]; } cout<<"vector A :\t"; for(i=0;i<a;i++) { cout<<"["<<v1[i]<<"]"; } cout<<endl; cout<<"Vector B:\t"; for(i=0;i<a;i++) { cout<<"["<<v2[i]<<"]"; } cout<<endl; cout<<"vector A+B:\t"; for(i=0;i<a;i++) { cout<<"["<<vs[i]<<"]"; } getch(); return(0); } 10. Realizar un algoritmo y codificacin para calcular la mediana de los nmeros de un arreglo. using namespace std; int main () { system("color 1f"); int a,i; float med; cout<<"ingresa la cantidad de numeros a ingresar : "; cin>>a; int v[a]; cout<<"Vector :"; cout<<endl; for(int i=0;i<a;i++) { cout<<"V["<<i+1<<"]="; cin>>v[i]; } cout<<"Vector original :\t"; for(i=0;i<a;i++) { cout<<"["<<v[i]<<"]"; } for(int j=0;j<=a;j++) { for(i=0;i<=a-2;i++) { int aux;

} } cout<<endl; cout<<"Vector ordenado :\t"; for(i=0;i<a;i++) { cout<<"["<<v[i]<<"]"; } if(a%2==0) { med=(v[a/2]+v[(a/2)-1])/2.; }else med = v[(a-1)/2]; cout<<endl; cout<<"mediana : "<<med; getch(); return(0); } 11. El modo de una arreglo de nmeros es el numero m de un arreglo que se repite con ms frecuencia. Si varios nmeros estn repetidos con igual frecuencia mxima, no existe modo. Realizar un algoritmo que acepte un arreglo de nmeros y retorne el modo o una indicacin de que el modo no existe. using namespace std; int main() { system("color 1f"); int V[10], N[10], Rep[10]; int i, j, k, total, indice, elementos, existeModa; cout<<"ingrese datos del vector :"; cout<<endl<<endl; // Lectura de numeros for(i=0; i<10; i++) { cout <<"V["<<i+1<<"] = "; cin >> V[i]; } // Saca copia del arreglo for(i=0;i<10;i++) N[i]=V[i]; // Saca numeros distintos elementos = 10; total = elementos; for(i=0;i<elementos;i++) { for(j=i+1;j<elementos;j++) { // Si encuentra numero repetido if(N[i]==N[j])

if(v[i]>v[i+1]) { aux = v[i]; v[i]=v[i+1]; v[i+1]=aux; }

{ // Recorre una posicion elementos posteriores for(k=j+1;k<elementos;k++) N[k-1]=N[k]; elementos--; j--; } } } // Halla repeticiones de cada numero distinto for(i=0; i<elementos; i++) Rep[i] = 0; for(i=0; i<elementos; i++) for(j=0;j<total;j++) if(N[i]==V[j]) Rep[i]++; // Halla indice del elemento que mayor numero de veces se repite indice = 0; for(i=1; i<elementos; i++) if(Rep[i]>Rep[indice]) indice = i; // Verificacion por si 2 numeros se repiten igual numero de veces existeModa=1; for(i=0;i<elementos;i++) if(i!=indice) { if(Rep[i]==Rep[indice]) { existeModa = 0; break; } } if(existeModa==1) { cout<<"La moda es: "<<N[indice]; cout<<"\nNumero de repeticiones:"<<Rep[indice]; } else cout<<"No existe moda"; getch(); } 12. Sea una cadena de almacenes de 20 departamentos, cada uno vende 10 articulos. Cada mes un administrador de almacen presenta la siguiente informacin el numero de almacen y el numero de articulo y un valor de venta en dlares menores que 100 000, representa la venta para ese articulo en esa sucursal. Sin embargo algunos administradores de los almacenes pueden no reportar esta informacin (no todos los artculos se venden en todas las sucursales), en este caso la suma de venta de artculos en ese almacen es cero (0). Realizar un algoritmo y codificacin para leer esta informacin y mostrar una tabla de 12 columnas donde la 1 columna representa el numero de sucursales de 1 a 20 y la palabra total en la ultima lnea. Las 10 columnas siguientes deben contener los valores de las ventas totales de cada una de las 20 sucursales para todos los artculos con un total general de ventas para toda la cadena de almacenes.

using namespace std; int main () { system("color 1f"); int a=10,b=12,i,j; int v[a][b]; //llenando la primera columna con el numero de sucursal for(i=0;i<a;i++) { v[i][0]=i+1; } // dando valores aleatorios del 0-9 para las ventas for(i=0;i<a;i++) { for(j=1;j<b-1;j++) { v[i][j]=(rand()%9)+0; // se puede cambiar el valor maximo a 99,999 solo que no saldra ordenado } } // estableciendo a 0 el total de venta por sucursal for(i=0;i<a;i++) { v[i][11]=0; } //hallando el total de venta por sucursal for(i=0;i<a;i++) { for(j=1;j<b-1;j++) { v[i][11]=v[i][11]+v[i][j]; } } //mostrando en pantalla la tabla de ventas cout<<" alm. "; for(i=1;i<=a;i++) { cout<<"t"<<i<<"."<<setw(4); } cout<<" tot."; cout<<endl<<endl; for(i=0;i<a-1;i++) { for(j=0;j<b;j++) { cout<<setw(4)<<"["<<v[i][j]<<"]"; } cout<<endl<<endl; } for(i=0;i<b;i++) { cout<<setw(3)<<" ["<<v[9][i]<<"] "; } getch(); return(0); }

13.

Realizar un algoritmo para: salvar una matriz, recuperar una matriz y copiar una matriz.

Accin salvar__matriz(A[][],f,c) Inicio Primer(F) Poner(F,c) Para i0 hasta f hacer Para j 0 hasta c hacer Leer(A[i][j]) VA[i][j] Poner(F,v) finPara finPara marcar(F) fin accion recuperar_matriz(A[][] , f , c) inicio entero k primer(F) tomar(F,V) c v k 0 mientras((ultimo(F))) k k+1 tomar(F,v) para (i1) hasta c hacer A[k][i]v Tomar(F,v) finPara finMientras fin accin copiar_matriz(A,M,N,B,M1,N2) inicio Para (i1) hasta M hacer Para (j1)hasta N hacer B[i][j]A[i][j] finPara finPara M1 M N1 N Fin

14. Realizar la codificacin o implementacin en lenguaje C++ para calcular el promedio de cada columna en una matriz. a. Por ingreso de datos en una matriz . b. Por declaracin como constante de los elementos de la matriz. using namespace std; const int MaxF=10, MaxC=10,Max=100 void leerMatriz(int X[MaxF][MaxC],int *dimF,int *dimC); void mostrarMatriz(int X[MaxF][MaxC],int dimF, int dimC);

void promColumnas(int X[MaxF][MaxC],int dimF, int dimC); int main() { int nf,nc,A[MaxF][MaxC]; leerMatriz(A,&nf,&nc); mostrarMatriz(A,nf,nc); promedio_columnas(A,nf,nc); return (0);

} void promedio_columnas(int X[MaxF][MaxC],int dimF, int dimC) { int i,j,suma;//i:filas j:columnas float promC; for(j=0;j<dimC;j++){//recorrido columnas suma=0; for(i=0;i<dimF;i++){//recorrido de filas suma+=X[i][j]; } promC=float(suma)/dimF; cout<<endl<<"Promedio de Columna"<<j+1<<": "<<promC; cout<<endl; } cout<<endl; system("pause"); } 15. Realizar la codificacin de la actualizacin de una matriz. La actualizacin consiste en realizar las siguientes operaciones: a. Mostrar la matriz b. Adicionar un elemento a la matriz c. Insertar por valor un elemento en la matriz d. Eliminar por posicin un elemento de la matriz e. Eliminar por valor un elemento de la matriz f. Ordenar en orden ascendente la matriz por filas, por columnas g. Ordenar en orden descendente la matriz por filas, por columnas h. Rotar una matriz i. Salvar una matriz j. Recuperar una matriz

16. Realizar la codificacin o implementacin en C++ para realizar la multiplicacin de dos matrices. #define d 3 using std::cout; using std::cin; using std::endl; int main(){ int i,j,k,a[m][n],b[n][d],c[d][d]; cout<< "MATRIZ A." <<endl; //Introduce los elementos de la matriz A for(i=0 ;i<d;i++) {

} cout<<endl; for(i = 0 ; i < for(j = 0 ; cout << if(j == cout } } cout << endl; cout << "MATRIZ for(i = 0 ; i < for(j = 0 ; cout <<

for(j=0; j < d;j++) { cout << "Introduzca el valor del elemento [" << i << "][" << j << "]: "; cin >> a[i][j]; } d ; i++){ // Imprime los elementos de la matriz A j < d ; j++){ a[i][j] << " "; 2) << endl;

B." << endl; // Introduce los elementos de la matrizB d ; i++){ j < d ; j++){ "Introduzca el valor del elemento [" << i << "][" << j << "]: "; cin >> b[i][j];

} cout << endl << "MATRIZ C (Matriz A*B)." << endl; cout << endl; for(i=0;i<d;i++){ // Imprime la matriz resultado for(j=0;j<d;j++){ cout << c[i][j] << " "; if(j==2) cout << endl; } } system("PAUSE"); return 0; } 17. Realizar la codificacin o implementacin en C++ para realizar la ordenacin de arreglos por el mtodo rpido o quicksort. //Quick Sort #include <iostream> #define largo 100 #include"leearreglo.h"

} } cout << endl; for(i = 0 ; i < d ; i++){ // Imprime los elementos de la matriz B for(j = 0 ; j < d ; j++){ cout << b[i][j] << " "; if(j == 2) cout << endl; } } for(i=0;i<d;i++){ /* Realiza el producto de matrices y guarda el resultado en una tercera matriz*/ for(j=0;j<d;j++){ c[i][j]=0; for(k=0;k<d;k++){ c[i][j]=c[i][j]+(a[i][k]*b[k][j]); } }

using namespace std; void quicksort(int A[],int izq, int der ) { int i, j, x , aux; i = izq; j = der; x = A[ (izq + der) /2 ]; do{ while( (A[i] < x) && (j <= der) ) { i++; } while( (x < A[j]) && (j > izq) ) { j--; } if( i <= j ) { aux = A[i]; A[i] = A[j]; A[j] = aux; i++; j--; } }while( i <= j ); if( izq < j ) quicksort( A, izq, j ); if( i < der ) quicksort( A, i, der ); } void main () { int A[largo],n; do{ cout<<"Cantidad de numeros a ingresar: ";cin>>n; if(n<=0||n>largo) cout<<"Debe ingresar un valor > a 0 y < a "<<largo<<endl; }while(n<=0||n>largo); leeCadena(n,A); quicksort(A,0,n-1); muestraCadena(n,A); } #include<iostream> using namespace std; void leeCadena(int cant,int n[]) { int i; for(i=0;i<cant;i++) { cout<<"Ingresa numero "<<i+1<<": "; cin>>n[i]; } } void muestraCadena(int cant,int n[]) { int i; for(i=0;i<cant;i++)

{ } 18. } cout<<n[i]<<endl;

Realizar un algoritmo que permita realizar ordenamiento de Matrices por Insersion.