|
Mostrar Temas
|
Páginas: 1 [2]
|
11
|
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); }
|
|
|
12
|
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); }
|
|
|
13
|
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
|
|
|
14
|
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); }
|
|
|
|
|
|
|