/* ========================================================================== */ /* */ /* Castice.c */ /* */ /* Description: */ /* Ze vstupnyho souboru o 6 sloupcich veme cislo castice - treti sloupec. */ /* Program pro vsechny castice s timto cislem vypocita velicinu Pt. */ /* Pt = V ((px*px) + {py*py)), Px - 4 sloupec, Py - 5 sloupec. */ /* Vypoctene hodnoty se zapisou do vystupního souboru pt.txt. */ /* V pripade, ze Pt vyjde 0 nebo 0.0 atd., tak tato hodnota se do souboru */ /* nezapise. */ /* */ /* ========================================================================== */ #pragma hdrstop #include #include #include #include #include #include "ccastic.h" #define TMP_FILE "temp.$$$" #define MAX_C 5 CCastic *fcs; // zacne vytvaret pt void MakePt() { FILE *fout; // pro vystup castic cs; float Pt; // zacatek fcs->MoveFirst(); fout = fopen("pt.txt", "wb"); do { cs = fcs->GetCastice(); // vypocet Pt // nenulovy zapiseme if( fcs->CalcPt()) { fprintf(fout,"%8d%7d%9d%12.6g%12.6g%12.6g%12.6g\n", cs.event, cs.poradi, cs.cislo, cs.px, cs.py, cs.pz, fcs->CalcPt()); } // dalsi riadok fcs->MoveNext(); } while (!fcs->IsEOF()); // konec fclose(fout); } //--------------------------------------------------------------------------- #pragma argsused // hlavny program void main(int argv, char*args[]) { char meno[128]; float c; printf("\n"); printf("Program na zpracovani castic.\n"); printf("-----------------------------\n"); // parametre programu if( argv > 1 ) strcpy(meno, args[1]); else { printf("Zadej subor s casticemi (vstup.txt): "); scanf("%s", meno); } if( argv > 2 ) c = atoi(args[2]); else { printf("Zadej cislo castice (-2212):"); scanf("%f", &c); } // ------------------------------------------------------------- // otevre castice fcs = new CCastic(meno,c); // zacne delat ukoly do souboru printf("\nMake pt.txt"); MakePt(); // konec zavreme temp delete fcs; printf("\nFinish\n"); }