Mihao

v2

Jan 22nd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.48 KB | None | 0 0
  1. program Untitled;
  2. uses Crt,sysutils;
  3.  
  4. type
  5.     EnergiaRecord=Record
  6.     temperatura:real;
  7.     Energia:real;
  8. end;
  9.  
  10. energiaTable=array[1..500] of EnergiaRecord;
  11. var energia:energiaRecord;
  12.     tablica:EnergiaTable;
  13.     i:integer;
  14.     j:integer;
  15.     x:real;
  16.     y:real;
  17.     w1:real;
  18.     w2:real;
  19.     s:real;
  20.   {
  21. EnergiaTable= array[1..500] of EnergiaRecord;
  22. var tablica:EnergiaTable;
  23.     i:Integer;
  24.     x:real;
  25.     y:real;
  26.    }
  27.  
  28. {Function Wylicz(x:real; tablica:energiaTable; rozmiar:integer):real;
  29. Begin
  30.      s:=0;
  31.      w1:=1;
  32.      for j:=1 to 10 do
  33.          begin
  34.               w1:=w1*(x-tablica[j].temperatura);
  35.               w2:=1;
  36.               for i:=1 to 10 do
  37.                   begin
  38.                        if i<>j then w2:=w2*(tablica[j].temperatura-tablica[i].temperatura)
  39.                   end;
  40.               s:=s+(tablica[j].energia/(w2*(x-tablica[j].temperatura)));
  41.          end;
  42.      Wylicz:=w1*s;
  43. end;  }
  44.  
  45.    {
  46. Function Wylicz2(x: real; tablica:  energiaRecord; rozmiar: Integer) : Real;
  47. var
  48. i : Integer ;
  49. begin
  50.    for i:=1 to rozmiar do
  51.    begin
  52.        if tablica[i].temperatura=x then exit( tablica[i].entropia);
  53.    end;
  54.      Wylicz2 := Wylicz(x,tablica,rozmiar);
  55. end;
  56.   }
  57.  
  58.  {------------------------------------------}
  59.  {-            GLOWNY PROGRAM              -}
  60.  {------------------------------------------}
  61.  
  62.  { zmienna do przechowywania temperatury wprowadzonej z klawiatury }
  63.  var TemperatreValue: real;
  64.  
  65.  
  66. begin
  67.  
  68.  
  69.  
  70.  
  71.      writeln ('Program do obliczenia Energii Swobodnej Gibbsa');
  72.      writeln;
  73.      writeln ('Wartosci zadane do programu');
  74.  
  75.  
  76.      { ODCZYT DANYCH Z PLIKU DO TABLICY }
  77.  
  78.      tablica[1].temperatura:=200.00;
  79.      tablica[1].energia:=-3.5956;
  80.      tablica[2].temperatura:=400.00;
  81.      tablica[2].energia:=-3.5168;
  82.      tablica[3].temperatura:=600.00;
  83.      tablica[3].energia:=-4.0112;
  84.      tablica[4].temperatura:=800.00;
  85.      tablica[4].energia:=-4.5386;
  86.      tablica[5].temperatura:=1000.00;
  87.      tablica[5].energia:=-5.0454;
  88.      tablica[6].temperatura:=1200.00;
  89.      tablica[6].energia:=-5.5341;
  90.      tablica[7].temperatura:=1400.00;
  91.      tablica[7].energia:=-6.0111;
  92.      tablica[8].temperatura:=1600.00;
  93.      tablica[8].energia:=-6.4814;
  94.      tablica[9].temperatura:=1800.00;
  95.      tablica[9].energia:=-6.9481;
  96.      tablica[10].temperatura:=2000.00;
  97.      tablica[10].energia:=-7.4130;
  98.  
  99.  
  100.      { WYSWIETLENIE DANYCH Z PLIKU ZNAJDUJACYCH SIE W TABLICY }
  101.  
  102.      for i:= 1 to 10 do
  103.          begin
  104.                write(i);
  105.                write( '  ');
  106.                write(     FloatToStrf(tablica[i].temperatura,ffnumber,15,5)) ;
  107.                write( '  ');
  108.                writeln(     FloatToStrf(tablica[i].Energia,ffnumber,10,5)) ;
  109.          end;
  110.  
  111.      writeln;
  112.      writeln ('Wspolczynniki wielomianu');
  113.  
  114.  
  115.      { OBLICZANIE WSPOLCZYNNIKOW WIELOMIANU }
  116.  
  117.  
  118.      writeln;
  119.      writeln ('Podaj temperature dla ktorej program ma policzyc energii ');
  120.  
  121.  
  122.      {Pobieranie temperatury z klawiatury }
  123.  
  124.      Readln(TemperatreValue);
  125.     {     Kontrolne wbyświetlanie czy działa }
  126.     {     Writeln(FloatToStrf(TemperatreValue,ffnumber,10,2)); }
  127.  
  128.  
  129.      writeln;
  130.      writeln ('Obliczanie Energii Gibbsa');
  131.  
  132.  
  133.      { OBLICZANIE ENERGII GIBBSA  }
  134.  
  135.     { GibbsEnergyValue:= Wylicz2(x, tablica, 10);     }
  136.      writeln( 'Dla temperatury ', FloatToStrf(temperatura,ffnumber,15,3) ,' entergia wynosi: ', FloatToStrf(GibbsEnergyValue,ffnumber,15,5) );
  137.  
  138.      readln;
  139.  
  140. end.
Add Comment
Please, Sign In to add comment