ayuda con c++

eltoxiboz

Lanero Regular
14 Ago 2004
42
nesecito realizar este algoritmo , si lo tiene o tienen uno parecido para poder guiarme les agradesco su ayuda......Hacer el Algoritmo e Implementar en lenguaje de
programación Borland C++ el siguiente problema:

Dada la fecha de nacimiento (AÑO, MES, DIA, HORA,
MINUTO, SEGUNDOS) de una persona y la fecha de su muerte
(AÑO, MES, DIA, HORA, MINUTO, SEGUNDOS) informe: Cuantos
años estuvo vivo? Cuantos meses estuvo vivo? Cuantos
dias estuvo vivo? Cuantos minutos estuvo vivo? Cuantos
segundos estuvo vivo? Para esto hay que tener en cuenta
la cantidad de días reales que tiene un mes, y
dependiendo si el año es bisiesto o no controlar la
cantidad de dias del mes de FEBRERO.

Además, se debe validar que la fecha de nacimiento y
muerte es correcta para cada uno de sus componentes. Los
formatos de tiempo se validarán de la siguiente forma:

de 00 hasta 23 para la hora de 00 hasta 59 para minutos
de 00 hasta 59 para segundos

ademas, si alguien tiene un software para organizar una escuela( certificados, constancias, Boletines, archivos de estudiantes, hojas de vidas de estudiantes, si se puede imprimir desde el mismo software, y tambien se pueda generar diplomas etc.....
se lo compro.. oigo ofertas
 
Esta facil lo primero que dices, si te pones a hacerlo seguro lo terminas mas temprano que tarde, parece una de esas tareas que dejan los profesores de matematica desocupados
 
bueno pues mira, yo soy amiga de no hacerle los trabajos a nadie pero el problema se ve sencillo... largo si es, pero no es complicado, aparte de todo son operaciones básicas.

Sólo pon condicionales con los años bisiestos, eso te queda fácil pues haces la función que se cumpla cada 4 años....
Si quieres empieza a programar, montas acá lo que llevas y en donde no puedas seguir te colaboramos
 
si disculpen por lo del foro repetido,,, pero es queee,,,, ese es el problema cual es la formula para un año bisiesto, y la formula para tratar las fechas,,,,, solo necesito eso,, les digo ,,, yo soy un completo lamer,,, soy nuevo en esto y me gusta.
 
mmm, pues lo de la formula esos años no la recuerdo, yo utilzaba la ley de charles (dividir por cuatro si el residuo es 0 es viciesto). Para lo de la fecha, pues yo convertiria todo a una sola unidad de tiempo (minutos segundos el que sea), o por una lado dias meses años, y por el otro la hora(me parece mas largo asi), despues de calucular la diferencia, si lo volvio un solo valor conviertalo de nuevo y sale. Respecto a lo de validacion de datos, quizas una funcion te ahorre codigo. Mirandolo bien no es ni tan largo.
 
la verdad soy un lamers con talento y hoy con un amigote de esos que te ayudan en las buenas y en las malas hice esto,,, y me corre y todo,,,, hay se los dejo,,, y eso que apenas estoy aprendiendo,,,,

#include<conio.h>
#include<iostream.h>
void main()
{
int
AA,AN,MA,MN,DA,DN,HA,HN,MIA,MIN,SA,SN,C1,C2,A,M,D,H,MI,S,A1,A2,H1,H2,M1,M2,S1,S2;
cout<<"Escriba datos de nacimiento (a¤o mes dia hora minuto segundo)\n";
cin>>AN>>MN>>DN>>HN>>MIN>>SN;
cout<<"Escriba datos de fallecimiento (a¤o mes dia hora minuto segundo)\n";
cin>>AA>>MA>>DA>>HA>>MIA>>SA;
A1=(AA-AN);
A2=(AA-AN-1);
if (MA>MN) {A=A1;}
else {
if (MA==MN) {
if (DA>DN){A=A1;}
else {
if (DA==DN) {
if (HA>HN) {A=A1;}
else {
if (HA==HN) {
if (MIA>MIN) {A=A1;}
else{
if (MIA==MIN) {
if (SA>=SN) {A=A1;}
else {A=A2;}
}
else {A=A2;}
}
}
else{A=A2;}
}
}
else {A=A2;}
}
}
else {A=A2;}
}

if ((31-DN+A)>=31) {
M=(((AA-AN-1)*12)+12-MN+MA);}
else {
M=(((AA-AN-1)*12)+12-MN+MA-1);}
C1=((365*(AA-AN-1))+(A/4));
switch (MA)
{
case 1:C2=(C1+DA);;break;
case 2:C2=(C1+DA+31);;break;
case 3:C2=(C1+DA+59);;break;
case 4:C2=(C1+DA+90);;break;
case 5:C2=(C1+DA+120);;break;
case 6:C2=(C1+DA+151);;break;
case 7:C2=(C1+DA+181);;break;
case 8:C2=(C1+DA+212);;break;
case 9:C2=(C1+DA+243);;break;
case 10:C2=(C1+DA+273);;break;
case 11:C2=(C1+DA+304);;break;
case 12:C2=(C1+DA+334);;break;
}
switch (MN) {
case 1:D=(C2+31-DN+334);;break;
case 2:D=(C2+31-DN+306);;break;
case 3:D=(C2+31-DN+275);;break;
case 4:D=(C2+31-DN+245);;break;
case 5:D=(C2+31-DN+214);;break;
case 6:D=(C2+31-DN+184);;break;
case 7:D=(C2+31-DN+153);;break;
case 8:D=(C2+31-DN+122);;break;
case 9:D=(C2+31-DN+92);;break;
case 10:D=(C2+31-DN+61);;break;
case 11:D=(C2+31-DN+31);;break;
case 12:D=(C2+31-DN);;break;
}
H1=(D*24)+HA+HN-24;
H2=((D-1)*24)+HA+(24-HN);
if ((HA+HN)>=24) {H=H1;}
else {H=H2;}
M1=(H*60)+MIA+MIN-60;
M2=((H-1)*60)+MIA+(60-MIN);
if ((MIA+MIN)>=60) {MI=M1;}
else {MI=M2;}
S1=(MI*60)+SA+SN-60;
S2=((MI-1)*60)+SA+(60-SN);
if ((SA+SN)>=60) {S=S1;}
else {S=S2;}
cout<<"\nEl hombre vivio:\n "<<A<<" a¤os\n"<<M<<" meses\n"<<D<<"dias\n"<<H<<" horas\n"<<MI<<" minutos\n"<<S<<" segundos";
getch();
clrscr();
}
 
|Nc| t763rm3n eres un gran presumido, la verdad nunca te pedi que me la hicieras completamente,, solo pedi una idea de como se hacia,,,,,
 
Tienes que tener en cuenta que la formula de los años bisiestos no es tán facil como decir que es cada 4 años.
Un año es bisiesto cuando cumple estas 3 reglas
* Regla 1: Los años exactamente divisibles entre 4 son años bisiestos.
* Regla 2: Los años exactamente divisibles entre 100 no son años bisiestos.
* Regla 3: Los años exactamente divisibles entre 400 son años bisiestos.
Tomado de El año 2000 ¿año bisiesto?
 

Los últimos mensajes

Los últimos temas