#include <cstdlib>#include <iostream>using namespace std;int series (int n) { int i=0 ,a,b,temp=0; cout<<"introduzca el inicio de todas las series"<<endl; cin>>b; cout<<"introduzca el tope para todas las series "<<endl; cin>>a; cout<<endl<< "Serie de Impares :"<<endl<<endl; if(b % 2 == 0){ for(temp=b+1;temp<a;temp=temp+2) { //serie de impares cout<<temp<<", " ; } if(a % 2 ==! 0){ cout<<a<<endl; } } else { for(temp=b;temp<a;temp=temp+2) { //serie de impares cout<<temp<<", " ; } if(a % 2 ==! 0){ cout<<a<<endl; } } cout<<endl<<endl<<"Serie de Pares :" <<endl<<endl; if (b % 2 == 0) { for (temp=b;temp<a;temp=temp+2){ // Serie de Pares cout<<temp<<", " ; } if(a % 2 == 0){ cout<<a<<endl; } } else { for (temp=b+1;temp<a;temp=temp+2){ // Serie de Pares cout<<temp<<", " ; } if(a % 2 == 0){ cout<<a<<endl; } } cout<<endl<<endl<<"Serie de Cuadrados :" <<endl<<endl; for (i=b;i<=a;i++){ // Serie De cuadrados temp=i; temp=temp*temp; cout<<temp<<", " ; } cout<<endl<<endl<<"Serie de Cubos :" <<endl<<endl; for (i=b;i<=a;i++){ temp=i; temp=temp*temp*temp; cout<<temp<<", " ; } }void serie (int num){ //serie de numeros int num2,i; num2=0; for(i=1; i<=num; i++){ num2=i+num2; cout<<num2<<" "; } cout<<endl; } int fib (int a, int b) { // Serie de Fibonacciint i,c,d=0,e=1 ;if (a==0 && b==1){ cout<<"0 , 1"<<endl; } while(c != a){ c=d+e; e=d; d=c;}cout<<a<<" , ";while(c != b){c = d+e ;e=d ;d=c;cout<<c<<" , ";} }void inv (char p[], int n){ char e; int i,j,cont=1,a; a=n/2; for (i=0;i<n;i++){ cout<<endl<<"Por favor introduzca el caracter de la posicion "<<i<<endl; cin>>p[i]; } for (i=0;i<n;i++){ cout<<p[i]<<" "; } for (i=0; i<a;i=i+1){ e=p[i]; p[i]=p[n-cont]; p[n-cont]=e; cont=cont+1; } cout<<endl<<"la matriz invertida es:"<<endl; for (i=0;i<n;i++){ cout<<p[i]<<" "; } }int factorial ( int c ) { //Factorialint a,b,i ; a=1;for(i=1;i<=c;i++){ a=a*i;}c=a;} int pasca (int nivel){ //pascal long int a,b,d,i,e ; cout<<endl<<endl; a=nivel; cout<<" 1"<<endl; for (i=1;i<=nivel;i++){ for(b=0;b<=nivel;b++) { d = (factorial(i))/((factorial(i-b))*(factorial(b))); cout<<" "<<d;}cout<<endl;} }int rep (int n,int m) { //encontrar repeticiones de caracter, y sus posiciones. int k[n],i,x=0,y; for(i=0;i<n;i++) { cout<<"ingrese el caracter de la posicion "<<i<<endl; cin>>k[i];}cout<<endl<<"Hay repeticiones del caracter '"<<m<<"' "<<"en las posiciones " ; for(i=0;i<n;i++){ if(k[i] == m){ x=x+1; cout<<i<<", ";}}cout<<endl<<"y se repitio "<<x<<" veces"<<endl<<endl ; }void orden (char p[], int n){ int temp,i,j; cout<<endl<<"Usted Introdujo La matriz: "<<endl; for (i=0;i<n;i++){ cout<<p[i]<<" "; } for (int i=1; i<n; i++){ for (int j=0 ; j<n-1; j++){ if (p[j] > p[j+1]){ temp = p[j]; p[j] = p[j+1]; p[j+1] = temp; } } } cout<<endl<<"Matriz Ordenada:"<<endl; for (i=0;i<n;i++){ cout<<p[i]<<" "; } }void mat1 (int m , int n) { //organizar matrices de derecha a izquierda y de abajo hacia arriba int mat[m][n]; int i,j,c=0; for(i=m-1;i>=0;i--){ for(j=n-1;j>=0;j--){ mat[i][j]=c; c=c+1; }}cout<<endl<<"organizar matrices de derecha a izquierda y de abajo hacia arriba"<<endl;for(i=0;i<m;i++){ cout<<endl; for (j=0;j<n;j++){ cout<<mat[i][j] <<"\t"; } }cout<<endl;}void car1(int a, int b){ int x[a][b], num=0,i,j; for(int i=0; i<a; i++){ for(int j=0; j<b; j++){ x[i][j]=num; num=num+1; } } cout<<endl<<endl<<"Organizar por filas de izquierda a derecha y de arriba hacia abajo"<<endl; for (i=0; i<a; i++){ cout << endl; for (j=0; j<b; j++){ cout << x[i][j] << "\t"; } }cout << endl;}void mat2 (int m , int n) { //Por Columnas de derecha izquierda y de abajo hacia arriba int mat2 [m][n] ; int a=0,i,j; for(i=0;i<n;i++){ for(j=m-1;j>=0;j--){ mat2[j][i]=a; a=a+1; } } cout<<endl<<"organizar matrices Por Columnas de derecha izquierda y de abajo hacia arriba"<<endl; for (i=0;i<m;i++){ cout<<endl; for(j=0;j<n;j++){ cout<<mat2[i][j]<<" \t"; }}}void car2 (int a, int b){ int e[a][b], h=0,i,j; for (j=0; j<b; j++){ for (i=0; i<a; i++){ e[i][j]=h; h=h+1; } } cout<<endl<<"ordenar por Columnas de izquierda a derecha de arriba hacia abajo"<<endl; for (int i=0; i<a; i++){ cout << endl; for (int j=0; j<b; j++){ cout << e[i][j] << "\t"; } }cout << endl;}void mat3 (int m, int n) { // las posiciones por encima de la diagonal con 1 int mat[m][n] ,i,j,a=1; for(i=0;i<m;i++){ for(j=0;j<n;j++){ mat[i][j]=0; } } for(i=0;i<m;i++){ for(j=0;j<n;j++){ if(j>i){ mat[i][j]=a; a=a+1; } } } cout<<endl<<endl<<"organizar las posiciones por encima de la diagonal con enteros desde 1 "<<endl; cout<<endl; for (i=0;i<m;i++){ cout<<endl; for(j=0;j<n;j++){ cout<<mat[i][j]<<" "; } } }void mat6 (int m, int n) { // Los posiciones debajo de la diagonal principal con números enteros negativos comenzando en -1 int mat[m][n] ,i,j,a=-1; for(i=0;i<m;i++){ for(j=0;j<n;j++){ mat[i][j]=2; } } for(i=0;i<m;i++){ for(j=0;j<n;j++){ if(j<i){ mat[i][j]=a; a=a-1; } } } cout<<endl<<endl<<"organizar las posiciones por debajo de la diagonal con numeros negativos empezando en -1 "<<endl; cout<<endl; for (i=0;i<m;i++){ cout<<endl; for(j=0;j<n;j++){ cout<<mat[i][j]<<" "; } } }void mat4 (int m , int n){ // diagonal prinicipal con los multiplpos de 5 int mat[m][n] ,i,j,a=1; for(i=0;i<m;i++){ for(j=0;j<n;j++){ mat[i][j]=0; } } for(i=0;i<m;i++){ for(j=0;j<n;j++){ if(i==j){ mat[i][j]=a; a=a*5; } } } cout<<endl<<endl<<"diagonal prinicipal con los multiplpos de 5 "<<endl; cout<<endl; for (i=0;i<m;i++){ cout<<endl; for(j=0;j<n;j++){ cout<<mat[i][j]<<" "; } } }void mat8 (int m , int n){ // diagonal prinicipal con los multiplpos de 5 int mat[m][n] ,i,j,a=3; srand(time(0)); for(i=0;i<m;i++){ for(j=0;j<n;j++){ mat[i][j]=rand()%50; } } for(i=0;i<m;i++){ for(j=0;j<n;j++){ if(i+j==n-1){ mat[i][j]=a; a=a*3; } } } cout<<endl<<endl<<"diagonal opuesta a la diagonal principal con multiplos de 3 "<<endl; cout<<endl; for (i=0;i<m;i++){ cout<<endl; for(j=0;j<n;j++){ cout<<mat[i][j]<<" "; } } }int mat5 (int m, int n, int &c){ //suma de los elementos de la matriz int mat[m][n],i,j,d,a=0; for(i=0;i<m;i++){ for(j=0;j<n;j++){ mat[i][j]=a; a=a+1;}} for(i=0;i<m;i++){ for(j=0;j<n;j++){ d=mat[i][j]; c=c+d; } }}int mat7 (int m, int n){ //suma de las filas int mat [m][n], a=0,b=0,i,j; for(i=0;i<=m;i++){ for(j=0;j<n;j++){ mat[i][j]=a; a=a+1; } } cout<<endl<<endl<<endl<<"suma de las filas "<<endl; cout<<endl; for (i=0;i<m;i++){ cout<<endl; for(j=0;j<n;j++){ cout<<mat[i][j]<<"\t"; } } cout<<endl; for(i=0;i<=m-1;i++){ b=0; for(j=n-1;j>=0;j--){ if(i == 2){ b=mat[j][i]+b; }else{ b=b+mat[i][j]; }}cout<<" la suma de los elementos de la fila: "<<i<<" es "<<b<<endl;}}int mat9 (int m, int n){ //resta de los elementos de las columnas de abajo hacia arriba int mat [m][n], a=0,b=0,i,j; for(i=0;i<=m;i++){ for(j=0;j<n;j++){ mat[i][j]=a; a=a+1; } } cout<<endl<<endl<<endl<<"resta de los elementos de las columnas de abajo hacia arriba "<<endl; cout<<endl; for (i=0;i<m;i++){ cout<<endl; for(j=0;j<n;j++){ cout<<mat[i][j]<<" "; } } cout<<endl; for(i=0;i<=n-1;i++){ b=0; for(j=m-1;j>=0;j--){ if(j == m-1){ b=mat[j][i]-b; }else{ b=b-mat[j][i]; }}cout<<" la resta de los digitos de abajo hacia arriba de la columna : "<<i<<" es "<<b<<endl;}}int mat10 (int m, int n){ //multiplicacion de las columnas en un vector int mat [m][n], a=0,b=1,i,j, vec[m],o=0; for(i=0;i<=m;i++){ for(j=0;j<n;j++){ mat[i][j]=a; a=a+1; } } cout<<endl<<endl<<endl<<"multiplicacion de las columnas y guardarlas en un vector "<<endl; cout<<endl; for (i=0;i<m;i++){ cout<<endl; for(j=0;j<n;j++){ cout<<mat[i][j]<<" "; } } cout<<endl; for(i=0;i<=n-1;i++){ b=1; for(j=m-1;j>=0;j--){ if(j == m-1){ o=o+1; b=mat[j][i]*b; }else{ b=b*mat[j][i]; }vec[o]=b;}cout<<" la multiplicacion de la columna : "<<i<<" es "<<vec[o]<<endl;}}int fibon (int a){ int x; if(a==0||a==1){ x=a;}else{x=fibon(a-1)+ fibon(a-2); } return (x); }int fc (int n){ int x; if(n==0){ x=1; } else{ x=n*fc(n-1); } return(x);}int mult ( int a, int b ){ int n ; if(b==1){ n=a; }else{ n=a+mult(a,b-1);}return(n);} int ex (int n, int m){ int x; if(m==1){ x=n; } else{ x=n*ex(n, m-1); } return(x);}int main(int argc, char *argv[]){ int var=0,a,b,num; char x; int s; system ("cls"); cout<<endl<<"Por favor introduzca la opcion deseada"<<endl; cout<<"Opcion (1) Algoritmos para aplicación de conceptos Basicos"<<endl; cout<<"Opcion (2) Algoritmos con criterios de Simplicidad y Modularidad para el Manejo de Arreglos y Matrices "<<endl; cout<<"Opcion (3) Implementación de Algoritmos Recursivos"<<endl; cout<<"Opcion (4) Para salir a windows "<<endl; cin>>s; switch (s){ case 1 : series (var); cout<<endl<<endl<<"Escriba limite superior de la sucesion 1, 3, 6, 10, 15, 21, 28, 36, 45, ..."<<endl; cin>>num; serie(num); cout<<endl<<endl<<"introduzca el intervalo de la sucesion de fibonacci" <<endl<<endl; cin>>a ; cin>>b ; fib (a,b); cout<<endl<<"Por favor introduzca el nivel maximo del triangulo de pascal"<<endl; cin>>a; pasca (a); break; case 2 : cout<<"Por Favor digite la longitud de un vector dado"<<endl; cin>>b; char vector[b]; inv (vector, b); cout<<endl<<endl<<"por favor digite el caracter a encontrar"<<endl; cin>>a; rep (b,a); cout<<endl<<endl<<"Ordenacion del vector de menor a mayor de izquierda a derecha"<<endl; orden (vector ,b); cout<<endl<<"Por favor ingrese el tamaño de una matriz"<<endl; cin>>a>>b; mat1(a,b); car1(a,b); mat2(a,b); car2(a,b); mat3(a,b); mat6(a,b); mat8(a,b); mat5(a,b,var); mat7(a,b); mat10(a,b); break ; case 3: cout<<endl<<"Introduzca la posicion de la sucesion de fibonacci que desea"<<endl; cin>>a; b=fibon(a); cout<<"El numero de la posicion "<<a<<" es : '"<<b<<"'"<<endl; cout<<endl<<"Digite el numero el cual desea sacar el factorial"<<endl; cin>>a; b=fc(a); cout<<"El factorial del numero "<<a<<" es "<<b<<endl; cout<<endl<<"Introduzca los numeros a multiplicar"<<endl; cin>>a>>b; var = mult (a,b); cout<<endl<<"El Resultado es : "<<var<<endl; cout<<"Digite el numero base"<<endl; cin>>a; cout<<"Digite el numero exponente"<<endl; cin>>b; var=ex(a, b); cout<<a<<" elevado a la "<<b<<" es igual a "<<var<<endl; break ; } system("PAUSE"); return EXIT_SUCCESS;}