Zo vstupného súboru so 6 stĺpcami vyberie číslo častice - tretí stĺpec

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Category:

Program: Castice.cppCastice.zip
File exe: Castice.exe
need: Ccastic.cppCcastic.h
Example: Vstup.txt

Zo vstupného súboru so 6 stĺpcami vyberie číslo častice - tretí stĺpec. Program pre všechny častice s týmto číslom vypočíta veličinu Pt. Pt = V ((px*px) + {py*py)), Px - 4 stĺpec, Py - 5 stĺpec. Vypočítané hodnoty sa zapíšu do vystupného súboru pt.txt. V prípade že Pt vyjde 0 nebo 0.0 atd., tak takáto hodnota sa do súboru nezapíše.
/* ========================================================================== */
/*                                                                            */
/*   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 <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#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");
}