Mihao

Untitled

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