online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include <cmath> #include <cstdlib> #include <time.h> using namespace std; // Funciones pregunta 1 void aleatorio(int *v, int N){ for(int i = 0; i<N; i++){ *(v+i) = (rand()% (2*N)+1) + N; // El +1 es necesario, pues caso contrario se generan hasta 2N-1 } return; } // Funciones pregunta 2 bool EsPrimo(int n){ for(int i = 2; i<n; i++){ if(n % i == 0){ return false; } } return true; } int *primo(int v[], int *n, int *m, int N){ for(int i = 0; i<m-n; i++){ if(EsPrimo(v[i])){ return &v[i]; } } return 0; } void intercambiar(int *a, int*b){ //Intercambia dos variables int aux = *a; *a = *b; *b = aux; return; } int numprim(int *v, int N){ //Contabiliza la cantidad de números primos en el arreglo int j = 0; for(int i = 0; i<N; i++){ if(EsPrimo(*(v+i))){ j++; } } return j; } int *minimo(int *v, int *dim){ //Devuelve la posición del menor número int *min = v; for(int i = 0; i<dim-v; i++){ if(*(v+i) < *min){ min = v+i; } } return min; } void ordenaraux(int *n, int*m){ //Ordena un vector desde la posicion n hasta la posicion m for(int i = 0; i<m-n; i++){ intercambiar((n+i),minimo((n+i),m)); } } void ordenar_primos(int v[],int N){ int *j; int k = 0; for(int i = 0; i<N; i++){ //Este bloque pone a los numeros primos a la derecha y los no primos a la izquierda (sin orden) j = primo(v,&v[i],&v[N],N); //Asigna a j el primer primo encontrado if(j != 0){ intercambiar(j,&v[N-k-1]); //Si j no es cero lo manda al final del vector, y si ee jugar ya esta ocupado por k++; //un primo lo pone una posición antes } } int a = numprim(v,N); //Asigna a "a" el valor del numero de primos que hay en el arreglo ordenaraux(&v[0],&v[N-a]); //Ordena los numeros de 0 hasta la posición N-a, es decir los no primos ordenaraux(&v[N-a],&v[N]); //Ordena los numeros de N-a hasta la posición N, es decir los primos } // Funciones pregunta 3 void llenar(double a_n[], double x, int N){ for(int i = 0; i<N; i++){ a_n[i] = pow(-1,i) * pow(x,-1-i); } } double Serie(double a[], double x, int N, double *S, double delta){ for(int i = 0; i<N; i++){ if(abs(a[i]) < delta){ //Por definición del valor absoluto se tiene las condiciones dadas en menos espacio *S += a[i]; } else{ *S += pow(a[i],2); } } return *S; } int main(){ int n; srand(time(NULL)); //Para generar números aleatorios, si no se escribe esta linea siempre saldrá el mismo cout<<"Ingrese el ejercicio: "; cin>>n; switch(n){ case 1:{ int N; cout<<"Ingrese el valor de N: "; cin>>N; int v[N]; aleatorio(v,N); cout<<endl; cout<<"El vector generado es: "<<endl; for(int i = 0; i<N; i++){ cout<<v[i]<<"\t"; } break; } case 2:{ int N; cout<<"Ingrese el valor de N: "; cin>>N; int v[N]; aleatorio(v,N); //Se genera un vector aleatorio de dimensión N cout<<"Vector generado: "<<endl; for(int i = 0; i<N; i++){ cout<<v[i]<<"\t"; } cout<<endl<<endl; ordenar_primos(v,N); cout<<"Vector ordenado: "<<endl; for(int i = 0; i<N; i++){ cout<<v[i]<<"\t"; } break; } case 3:{ int N; double x; double delta; cout<<"Ingrese el valor de N mayor a 1: "; cin>>N; cout<<"Ingrese el valor de x mayor a 2: "; cin>>x; cout<<"Ingrese el valor de delta entre 0 y 1: "; cin>>delta; double a_n[N]; llenar(a_n,x,N); double S=0; Serie(a_n,x,N,&S,delta); cout<<endl; cout<<"El valor de la serie es: "<<S; break; } default : {cout<<"Ejercicio no valido"; break; } } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue