Delphi & Pascal (èeská wiki)
Pøejít na: navigace, hledání
//************************************************************************//
// STATIST.C                                                              //
// Funkcie pre statisticke zobrazenie vypoctu
//                                                            11.11.1997  //
//************************************************************************//
#include <dos.h>
#include "mbooldif.h"
#include "glob.h"
#include "error.h"
#include "util.h"
#include "video.h"
#include "okno.h"
#include "menu.h"
 
//************************************************************************//
// ZARAD_STAT zaradi statisticke informacie do struktury                  //
// ako=0 pre udalostou 1=po udalosti                          12.11.1997  //
//************************************************************************//
void zarad_stat( char text[], int ako )
{
struct time t;
long cas;
 
 gettime(&t);
 cas = t.ti_hund + 100.0 * ( t.ti_sec + 60.0 * ( t.ti_min + ( 60.0 * t.ti_hour ) ) );
 
 if( ako == 0 ) {
     strcpy( s_stat[p_stat].s_text, text );
     s_stat[ p_stat ].cas = cas;
     min_mem = 0;
    }
   else
    {
     s_stat[ p_stat ].cas = cas - s_stat[ p_stat ].cas + 1;
     s_stat[ p_stat ].pamet = 10*( min_mem +1 );
     // pocas prace nastavuje min_mem funkcia pamet()
     min_mem = 0;
     if( p_stat < max_stat ) p_stat++;
    }
}
 
 
//************************************************************************//
// STATISTIKA zobrazi udaje o priebehu vypoctu                            //
//                                                            11.11.1997  //
//************************************************************************//
 
int statistika( void )
{
int zx,zy;
int i;                   // devka
FILE *tmp,*fopen();      // ulozi slovnik
long c_cas=0;
 
 zx=_stlpcov/2-38;
 zy=_riadkov/2-10;
 if( view_okno(zx,zy,zx+76,zy+20,atributy[42],atributy[43],3," ›tatistick‚ £daje ")==FALSE) {
   chybove_okno( chyba[1] );
   return(1);
   }
 
 // ideme zapisovat do suboru
 tmp=fopen( strspoj( temp,TmpSubor[7] ) ,"w+t" );// tmp subor STATIST.TMP
 if ( tmp == NULL ) {
    chybove_okno(chyba[17]);		// disk chraneny proti zapisu, alebo tak neako
    return( FALSE );
   }
 
 // zistime celkovy cas
 for( i=0; i < p_stat; i++ ) c_cas = c_cas + s_stat[i].cas;
 
 fprintf( tmp,"\n Doteraj¨¡ v˜po‡et mal nasledovn‚ n roky \n" );
 fprintf( tmp," ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n\n" );
 // vypiseme
 for( i=0; i < p_stat; i++ )
    fprintf( tmp," %23s = %4lu ms [%4.1f%c]  %8lu b [%5.1f%c]\n", s_stat[i].s_text,
             (unsigned long)s_stat[i].cas, (float)( 100.0 * s_stat[i].cas/c_cas), 37,
             (unsigned long)s_stat[i].pamet, (float)( 100.0 * s_stat[i].pamet/volne_mem), 37 );
 
 fprintf( tmp," ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n" );
 fprintf( tmp,"              Celkom ‡as = %4lu ms    Pam„Ÿ : %4lu byte", c_cas, volne_mem );
 fprintf( tmp,"\n\n Celkov˜ ‡as v˜po‡tu je bez zdr‘an¡ sa pri komunik cii s u‘¡vateŒom.");
 fprintf( tmp,"\n Celkov  pam„Ÿ vyjadruje voŒn£ pam„Ÿ pre programov˜ k¢dom a z sobn¡k.\n");
 fclose( tmp );
 
 zapni_kurzor();
 zobraz_tmp ( TmpSubor[7],0 );
 vypni_kurzor();
 zatvor_okno();
 return(0);
}
 
/*---------------------------------END--------------------------------------*/