|
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 #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! #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?
// 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? #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 #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 #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 #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
|
|
|
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 #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 #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 #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); }
|
|
|
|
|
|
|