Program liczy predkosc radialna z przesuniec linii widmowych. Plik z danymi zawiera predkosci laboratoryjne, obserwowane oraz blad wyznaczenia dl.linii obserwowanych.



#include<stdio.h>
#include<math.h>

#define C 3E5   /*predkosc swiatla w prozni (km/s)*/

main()
{
 int i,N;
 float lab[N], obs[N], vr[N], deltaObs[N], deltaVr[N];
 float PredRad, deltaPredRad;
 FILE *plik, *plik2;
 char *nazwa, *nazwa2;
 int d;
 
 nazwa="Procjon.dat";
 plik=fopen(nazwa,"r");
 nazwa2="Procjon_wynik.dat";
 plik2=fopen(nazwa2,"w");
 
 N=0;
 
 while ((d=fgetc(plik)) != EOF)
 {
  if (d==10)    /* 10 oznacza znak nowej linii */
  {N=N+1;} 
 }
 
 fclose(plik);
 
 plik=fopen(nazwa,"r");
 
 for (i=1; i<=N; ++i)
 {
  fscanf(plik,"%f%f%f\n",&lab[i],&obs[i],&deltaObs[i]);
  vr[i]=C*(obs[i]-lab[i])/lab[i];
  deltaVr[i]=C*deltaObs[i]/lab[i];
 
fprintf(plik2,"%10.2f%10.2f%10.2f%10.2f%10.2f\n",lab[i],obs[i],deltaObs[i],vr[i],deltaVr[i]);
 }
 
 fprintf(plik2,"wyniki [km/s]:\n");
 
 PredRad=0;
 deltaPredRad=0;
 
 for (i=1; i<=N; ++i)
 {
  PredRad=PredRad+vr[i];
  deltaPredRad=deltaPredRad+deltaVr[i];
 }
 
 PredRad=PredRad/N;
 deltaPredRad=deltaPredRad/N;
 
 fprintf(plik2,"%10.5f%10.5f\n",PredRad,deltaPredRad);
 
 fclose(plik);
 fclose(plik2);

return 0;
}
-- AgnieszkaB - 16 Mar 2005

Zobacz ModelowaKrzywa#wykresy dla komentarze o plotutils i info awk itd...

wykres przykłady

  • na ekranu: awk '{print $1 " " $4}' Procjon_wynik.dat | graph -T X -S 3 0.1 -m 0 -X "fala w laboratium" -Y "predkosc"
  • plik postscript: awk '{print $1 " " $4}' Procjon_wynik.dat | graph -T ps -S 3 0.1 -m 0 -X "fala w laboratium" -Y "predkosc" > plik_ps.ps
  • awk '{print $1 " " $4}' Procjon_wynik.dat | graph -T png -S 3 0.1 -m 0 -X "fala w laboratium" -Y "predkosc" > wykres.png
    wykres.png
Topic attachments
ISorted ascending Attachment Action Size Date Who Comment
Procjon.datdat Procjon.dat manage 0.3 K 16 Mar 2005 - 11:39 AgnieszkaB plik z danymi
wykres.pngpng wykres.png manage 2.5 K 16 Mar 2005 - 14:26 BoudRoukema przez awk itd
Topic revision: r2 - 16 Mar 2005, BoudRoukema
 
This site is powered by FoswikiCopyright © CC-BY-SA by the contributing authors. All material on this collaboration platform is copyrighted under CC-BY-SA by the contributing authors unless otherwise noted.
Ideas, requests, problems regarding Foswiki? Send feedback