elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación C/C++ / Re: Sumar día a una fecha en: 4 Febrero 2015, 18:20 pm
Corregi el programa pero me sigue sin andar

Código:
#include <stdlib.h>
#include <stdio.h>

typedef struct
{
    int dia,
        mes,
        año;
} t_fecha;

void IngrDato();
int EsFechaValida(int,int,int);
int CantDiasMes(int,int);
int EsBisiesto(int);
void SumaUnDia(int,int,int);

int main()
{
    system("cls");
    IngrDato();
    printf("\n");
    return 0;
}

void IngrDato()
{
    t_fecha fecha;
    printf("\n Ingrese el d%ca: ",161);
    scanf("%d",&fecha.dia);
    printf("\n Ingrese el mes: ");
    scanf("%d",&fecha.mes);
    printf("\n Ingrese un a%co: ",164);
    scanf("%d",&fecha.año);

    if (EsFechaValida(fecha.dia,fecha.mes,fecha.año) == 1)
        printf("\n Es valida");
    else
        printf("\n No es valida");
     SumaUnDia(fecha.dia,fecha.mes,fecha.año);
}



int EsFechaValida(int dia,int mes,int año)
{
    int fv = 0;
    if (año > 1600)
        if (mes >= 1 && mes <= 12)
            if (dia >= 1 && dia <= CantDiasMes(mes,año))
                fv = 1;
    return (fv);
}


int CantDiasMes(int mm,int aa)
{
    int cdm;
    cdm = 31;

    if(mm == 4 || mm == 6 || mm == 9 || mm == 11 )
    {
        cdm = 30;
    }
    else
    {
        if (mm == 2)
        {
            cdm = 28+EsBisiesto(aa);
        }
    }
    return(cdm);
}

int EsBisiesto(int a)
{
    int b;
    if ((a%4==0 || a%100==0)||(a%400==0))
        b=1;
    else
        b=0;
    return(b);
}

void SumaUnDia(int d,int m,int a)
{
int df, mf, af;
df = d+1;
mf = m;
af = a;

if (df <= CantDiasMes(mf,af))
{
mf++;
df = 1;
if (mf>12)
{
af++;
mf = 1;
}
}
printf("\n\n Dia: %d  Mes: %d  Año:%d", df, mf, af);
}
12  Programación / Programación C/C++ / Error en ejercicio de exponencial en: 4 Febrero 2015, 16:19 pm
Hola!
Estoy tratando de encontrarle el error a mi ejercicio de Exponencial y no lo veo. Creo que el problema está en el tipo de dato que estoy usando en la función potencia. probé con int y a partir de la potencia 14 me la calcula mal!. Puse double y directamente me calcula todo mal y ahora pruebo con long int y tengo el mismo problema que con int.
Si alguien lo puede ver se los dejo!
Código:
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

double exponencial(int,double);
int factorial(int);
long int potencia(int,int);
int vector(int[]);

void main(void)
{
    int num;
    double tol;
    printf("Ingrese un numero entero: ");
    scanf("%d",&num);
    printf("Ingrese la tolerancia: ");
    scanf("%lf",&tol);
    printf("e elevado a %d es: %ld \n", num, exponencial(num,tol));
}
///////////////////////////////////////////////////
int factorial(int num)
{
    int f=1,i;
    for(i=1;i<=num;i++)
       f*=i;
    return f;
}
////////////////////////////////////////////////////
long int potencia(int x, int y)
{
  int i;
  long int pot=1;
  for(i=0;i<y;i++)
        pot*=x;
  printf("%ld elevado a %d es:  %d\n",x,y,pot);
  return pot;
}
/////////////////////////////////////////////////
double exponencial(int x, double t)
{
    double exp=0,tot;
    int i=0;
    do{
        tot=(double) potencia(x,i)/factorial(i);
        exp+=tot;
        ///printf("\n%d\t%f\n\t",i,exp);
        i++;
    }while(t<tot);
return exp;
}
13  Programación / Programación C/C++ / Sumar día a una fecha en: 4 Febrero 2015, 15:28 pm
Hola gente tengo la siguiente codificación pero no puedo resolver los errores, que puede ser?

Código:


// Función Es fecha válida by Módica

#include <stdlib.h>
#include <stdio.h>

typedef struct
{
    int dia,
        mes,
        año;
} t_fecha;

void IngrDato();
int EsFechaValida(int,int,int);
int CantDiasMes(int,int);
int EsBisiesto(int);

int main()
{
    system("cls");
    t_fecha fecha;
    IngrDato();
    if (EsFechaValida(fecha.dia,fecha.mes,fecha.año) == 1)
        printf("\n Es valida");
    else
        printf("\n No es valida");
    SumaUnDia(fecha.dia,fecha.mes,fecha.año);
    printf("\n");
    return 0;
}

void IngrDato()
{
    //t_fecha fecha;
    printf("\n Ingrese el d%ca: ",161);
    scanf("%d",&fecha.dia);
    printf("\n Ingrese el mes: ");
    scanf("%d",&fecha.mes);
    printf("\n Ingrese un a%co: ",164);
    scanf("%d",&fecha.año);


}



int EsFechaValida(int dia,int mes,int año)
{
    int fv = 0;
    if (año > 1600)
        if (mes >= 1 && mes <= 12)
            if (dia >= 1 && dia <= CantDiasMes(mes,año))
                fv = 1;
    return (fv);
}


int CantDiasMes(int mm,int aa)
{
    int cdm;
    cdm = 31;

    if(mm == 4 || mm == 6 || mm == 9 || mm == 11 )
    {
        cdm = 30;
    }
    else
    {
        if (mm == 2)
        {
            cdm = 28+EsBisiesto(aa);
        }
    }
    return(cdm);
}

int EsBisiesto(int a)
{
    int b;
    if ((a%4==0 || a%100==0)||(a%400==0))
        b=1;
    else
        b=0;
    return(b);
}


14  Programación / Programación C/C++ / Función esfechavalida que valide de forma separada en: 2 Febrero 2015, 14:52 pm
Hola tengo la siguiente codificación, me anda pero como hago para que me indique si el día, el mes o el año son incorrectos de forma separada?


Código:
#include <stdlib.h>
#include <stdio.h>

typedef struct
{
    int dia,
        mes,
        año;
} t_fecha;

void IngrDato();
int EsFechaValida(int,int,int);
int CantDiasMes(int,int);
int EsBisiesto(int);

int main()
{
    system("cls");
    IngrDato();
    printf("\n");
    return 0;
}

void IngrDato()
{
    t_fecha fecha;
    printf("\n Ingrese el d%ca: ",161);
    scanf("%d",&fecha.dia);
    printf("\n Ingrese el mes: ");
    scanf("%d",&fecha.mes);
    printf("\n Ingrese un a%co: ",164);
    scanf("%d",&fecha.año);

    if (EsFechaValida(fecha.dia,fecha.mes,fecha.año) == 1)
        printf("\n Es valida");
    else
        printf("\n No es valida");
}



int EsFechaValida(int dia,int mes,int año)
{
    int fv = 0;
    if (año > 1600)
        if (mes >= 1 && mes <= 12)
            if (dia >= 1 && dia <= CantDiasMes(mes,año))
                fv = 1;
    return (fv);
}


int CantDiasMes(int mm,int aa)
{
    int cdm;
    cdm = 31;

    if(mm == 4 || mm == 6 || mm == 9 || mm == 11 )
    {
        cdm = 30;
    }
    else
    {
        if (mm == 2)
        {
            cdm = 28+EsBisiesto(aa);
        }
    }
    return(cdm);
}

int EsBisiesto(int a)
{
    int b;
    if ((a%4==0 || a%100==0)||(a%400==0))
        b=1;
    else
        b=0;
    return(b);
}


15  Programación / Programación C/C++ / duda con sobrecarga de operadores en clase vector [c++] en: 5 Diciembre 2014, 01:33 am
Hola gente estuve haciendo este ejercicio, pero al intentar hacer sobrecargar el operador resta (cuando son negativos los valores, al resultado me lo convierte a positivo )y el de división (me toma todos los valores como ceros) no me funciona correctamente, que podría ser?

main.cpp

Código:
#include <iostream>
#include "Vector.h"


using namespace std;


int main()
{
    Vector vec;
    vec.mostrar();
    cin>>vec;
    vec.mostrar();
    Vector vec1;
    cin>>vec1;
    vec1.mostrar();
    cout<<endl;
    cout<<"Suma de los vectores"<<endl;
    cout<<endl;
    cout<<(vec+vec1);
    cout<<"Resta de los vectores"<<endl;
    cout<<endl;
    cout<<(vec-vec1);
    cout<<"Multiplicacion de los vectores"<<endl;
    cout<<endl;
    cout<<(vec*vec1);
    cout<<"Division de los vectores"<<endl;
    cout<<endl;
    cout<<(vec/vec1);
    return 0;
    cout<<"\n"<<endl;
}


vector.cpp
Código:
#include "Vector.h"
#include <iostream>
#include <cstdlib>


using namespace std;


void igualarvector(int*,int*,int);
int* generarvector(int);




//vector::vector()
//{
//    tam=0;
//    *vec=NULL;
//}
Vector::Vector(int ta)
{
    this->tam=ta;
    vec=generarvector(tam);
    if(!vec && tam)
        cerr<<"sin memoria";
}
Vector::Vector(const Vector& obj)
{
    tam=obj.tam;
    vec=generarvector(tam);


    if(!vec && tam)
        cerr<<"sin memoria";
    else
        igualarvector(vec,obj.vec,tam);
}


Vector::~Vector()
{
    delete []vec;
}


int* generarvector(int tam)
{
    if(tam)
    {
        try
        {
            int* aux;


            aux=new int[tam];
            return aux;
        }
        catch(bad_alloc &ex)
        {
            cerr<<ex.what();
        }
    }


    return NULL;
}
///////////////////////////////////////////
void igualarvector(int* destino,int* origen,int tam)
{
    int i;


    for(i=0; i<tam; i++)
    {
        destino[i]=origen[i];
    }
}
/////////////////////////////////////////////////////////////
void Vector::mostrar()
{
    int i;


    if(vec)
    {
        for(i=0; i<tam; i++)
        {
            cout<<"vec["<<i<<"]: "<<vec[i]<<endl;
        }
    }
    else
    {
        cout<<"el vector no tiene elementos"<<endl;
        cout<<endl;
    }




}
//////////////////////////////////////////////////////////////////
istream& operator>> (istream& entrada,Vector& obj)
{
    int i;
    cout<<endl;
    cout<<"Ingrese el tamanio"<<endl;
    entrada>>obj.tam;
    delete [] obj.vec;
    obj.vec=generarvector(obj.tam);
    if(obj.tam)
    {
        cout<<endl;
        cout<<"Ingrese elemento: "<<endl;


        for(i=0; i<obj.tam; i++)
        {
            entrada>>obj.vec[i];
        }


    }
    else
        cerr<<"vector vacio error..."<<endl;
    cout<<endl;


    return entrada;
}
//////////////////////////////////////////////////////////////////////////////
Vector Vector :: operator+ (const Vector& obj)const
{


    int i;


    if(obj.tam==tam)
    {
        Vector resultado(tam);
        for(i=0; i<tam; i++)
        {


            resultado.vec[i]=obj.vec[i]+ vec[i];
        }
        return resultado;
        cout<<endl;


    }
    else
        cerr<<"error de tamanio"<<endl;
    cout<<endl;


    return Vector(0);
}


Vector Vector :: operator- (const Vector& obj)const
{


    int i;


    if(obj.tam==tam)
    {
        Vector resultado(tam);
        for(i=0; i<tam; i++)
        {


            resultado.vec[i]=obj.vec[i]- vec[i];
        }
        return resultado;
        cout<<endl;


    }
    else
        cerr<<"error de tamanio"<<endl;
    cout<<endl;


    return Vector(0);
}


Vector Vector :: operator* (const Vector& obj)const
{


    int i;


    if(obj.tam==tam)
    {
        Vector resultado(tam);
        for(i=0; i<tam; i++)
        {


            resultado.vec[i]=obj.vec[i] * vec[i];
        }
        return resultado;
        cout<<endl;


    }
    else
        cerr<<"error de tamanio"<<endl;
    cout<<endl;


    return Vector(0);
}


Vector Vector :: operator/ (const Vector& obj)const
{


    int i;


    if(obj.tam==tam)
    {
        Vector resultado(tam);
        for(i=0; i<tam; i++)
        {


            resultado.vec[i]=obj.vec[i]- vec[i];
            if (vec[i]==0)
                std::exit(EXIT_FAILURE);
        }
        return resultado;
        cout<<endl;


    }
    else
        cerr<<"error de tamanio"<<endl;
    cout<<endl;


    return Vector(0);
}






ostream& operator<<(ostream&salida,const Vector&obj)
{
    if(obj.vec)
    {
        for(int i=0; i<obj.tam; i++)
        {
            salida<<obj.vec[i]<<endl;
        }
    }
    else
        cout<<"no existe vector"<<endl;
    cout<<endl;


    return salida;
}

vector.c

Código:
#ifndef VECTOR_H
#define VECTOR_H
#include <iostream>


using namespace std;


class Vector
{
    public:
       //Vector();
        Vector(int=0);
        Vector(const Vector&);
        ~Vector();
    void mostrar();
    friend istream& operator>>(istream&,Vector&);
    Vector operator+(const Vector&)const;
    Vector operator-(const Vector&)const;
    Vector operator*(const Vector&)const;
    Vector operator/(const Vector&)const;
    friend ostream& operator<<(ostream&,const Vector&);
    private:
        int tam;
        int* vec;


};


#endif // VECTOR_H
16  Programación / Programación C/C++ / Re: Error de variable no definida [Ansi C] en: 4 Diciembre 2014, 22:50 pm
muchas gracias  :D
17  Programación / Programación C/C++ / Error de variable no definida [Ansi C] en: 4 Diciembre 2014, 22:16 pm
Me aparece el siguiente error en la siguiente línea
 verarchivo(pf);

||=== Build: Debug in archivos (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `main':|
[ruta del archivo]\archivos\main.c|22|undefined reference to `verarchivo|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|

sin embargo tengo la función  verarchivo en funciones.h , que puede ser?

main.c

Código:
#include <stdio.h>
#include <stdlib.h>
#include "funciones.h"


int main()
{
    datos d[10];
    int i=0,op;
    FILE * pf;
    //lectura
    pf=fopen("arch.bin","rb");
    if(!pf)
    {
        printf("Error al abrir el archivo");
        exit(1);
    }
    printf("oprima 1 si desea ver el archivo y dejarlo como estaba");
    scanf("%d",&op);
    if (op==1)
    {
        verarchivo(pf);
        fclose(pf);
    }
    else
    {


        pf=fopen("arch.bin","wb");
        if(!pf)
        {
            printf("Error al abrir el archivo");
            exit(1);
        }

        do
        {
            printf("ingrese texto (60 letras)");
            fflush(stdin);
            gets(d[i].letras);
            printf("ingrese un numero entero:");
            fflush(stdin);
            scanf("%d",&d[i].entero);
            printf("Ingrese un numero con coma:");
            fflush(stdin);
            scanf("%f",&d[i].flotante);
            printf("si desea terminar S/N");
            scanf("%d",&d[i].f);;
            fwrite(&d[i],sizeof(datos),1,pf);
            i++;
        }
        while(d[i-1].f!=0 && i<20 );  //i-1 por que sino nunca compara con el recien ingresado

        fclose(pf);

    }
    return 0;
}

funciones.h

Código:
#ifndef FUNCIONES_H_INCLUDED
#define FUNCIONES_H_INCLUDED
#include <stdio.h>
typedef struct
{
   char letras[60];
   int f;
    int  entero;
    float flotante;
}datos;
//void entradaaleatoria(FILE * );
void verarchivo(FILE *);

#endif // FUNCIONES_H_INCLUDED

funciones.c

Código:
#include "funciones.h"
void verArchivo(FILE * pf)
{
    int i;
    datos d;
    pf= fopen("arch.bin","rb");
   if(!pf)
    {
        printf("Error al abrir el archivo");
        exit(1);
    }
    fread(&d,sizeof(datos),1,pf);
    while (!feof(pf))
    {
        printf("\n ESCRITURA %s\n NUMERO %d\t FLOAT: %f\n",d.letras,d.entero,d.flotante);
        fread(&d,sizeof(datos),1,pf);
        i++;
    }
fclose(pf);
}
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines