Witam.
Mam problem z konwersją tego programu na program który by obliczał dzień cyklu biorytmu. Mógłby ktoś mi powiedzieć jak się z tym uporać, jestem totalnie zielony jeśli chodzi o projektowanie w c++.
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int d, m, r;
}
data;
void pobierz_date( data * str )
{
printf( "Dzien: " );
scanf( "%d", & str->d );
printf( "Miesiac: " );
scanf( "%d", & str->m );
printf( "Rok: " );
scanf( "%d", & str->r );
}
int rok_przestepny( int r )
{
if(( r % 4 == 0 ) &&(( r % 400 == 0 ) ||( r % 100 != 0 ) ) )
return( 1 );
else
return( 0 );
}
int ile_dni_w_roku( int r )
{
int x = 0;
if( rok_przestepny( r ) )
x = 366;
else
x = 365;
return( x );
}
int ile_dni_w_miesiacu( int m, int r )
{
int x = 0;
switch( m )
{
case 1: x = 31; break;
case 2:
if( rok_przestepny( r ) )
{
x = 29; break;
}
else
{
x = 28; break;
}
case 3: x = 31; break;
case 4: x = 30; break;
case 5: x = 31; break;
case 6: x = 30; break;
case 7: x = 31; break;
case 8: x = 31; break;
case 9: x = 30; break;
case 10: x = 31; break;
case 11: x = 30; break;
case 12: x = 31; break;
default: x = 0; break;
}
return( x );
}
int ile_dni_od_poczatku_roku( data * str )
{
int tmp_d;
int tmp_m;
int tmp_r;
int tmp_x;
int i;
tmp_d = str->d;
tmp_m = str->m;
tmp_r = str->r;
tmp_x = 0;
for( i = 0; i < tmp_m; i++ )
{
tmp_x = tmp_x +( ile_dni_w_miesiacu( i, tmp_r ) );
}
tmp_x = tmp_x + tmp_d;
return( tmp_x );
}
int ile_dni_do_konca_roku( data * str )
{
int tmp_r;
int tmp_x;
tmp_r = str->r;
tmp_x = 0;
tmp_x = ile_dni_w_roku( tmp_r );
tmp_x = tmp_x - ile_dni_od_poczatku_roku( str );
return( tmp_x );
}
int dni_odstepu( data * str1, data * str2 )
{
int tmp_r1;
int tmp_r2;
int tmp_x;
int i;
tmp_r1 = str1->r;
tmp_r2 = str2->r;
tmp_x = 0;
for( i = tmp_r1; i <= tmp_r2; i++ )
{
tmp_x = tmp_x + ile_dni_w_roku( i );
}
tmp_x = tmp_x - ile_dni_od_poczatku_roku( str1 );
tmp_x = tmp_x - ile_dni_do_konca_roku( str2 );
return( tmp_x );
}
int main( int argc, char * argv[] )
{
data D1, D2;
data * dp, * dk;
dp = & D1;
dk = & D2;
printf( "DATA POCZATKOWA\n" );
pobierz_date( dp );
printf( "DATA KONCOWA:\n" );
pobierz_date( dk );
printf( "Odstep: %d dni", dni_odstepu( dp, dk ) );
printf( "\n" );
system( "PAUSE" );
return 0;
}