Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Untitled;
- uses Crt,sysutils;
- type
- EnergiaRecord=Record
- temperatura:real;
- Energia:real;
- end;
- var rozmiar: real;
- energiaTable= array[1..500] of EnergiaRecord;
- var energia:EnergiaRecord;
- tablica:energiaTable;
- i:integer;
- j:integer;
- x:real;
- y:real;
- w1:real;
- w2:real;
- s:real;
- {
- EnergiaTable= array[1..500] of EnergiaRecord;
- var tablica:EnergiaTable;
- i:Integer;
- x:real;
- y:real;
- }
- Function Wylicz(x:real; tablica:energiaTable; rozmiar:integer):real;
- Begin
- s:=0;
- w1:=1;
- for j:=1 to 10 do
- begin
- w1:=w1*(x-tablica[j].temperatura);
- w2:=1;
- for i:=1 to 10 do
- begin
- if i<>j then w2:=w2*(tablica[j].temperatura-tablica[i].temperatura)
- end;
- s:=s+(tablica[j].energia/(w2*(x-tablica[j].temperatura)));
- end;
- Wylicz:=w1*s;
- end;
- Function Wylicz2(x: real; tablica: energiaRecord; rozmiar: Integer) : Real;
- var
- i : Integer ;
- begin
- for i:=1 to rozmiar do
- begin
- if tablica[i].temperatura=x then exit( tablica[i].entropia);
- end;
- Wylicz2 := Wylicz(x,tablica,rozmiar);
- end;
- {------------------------------------------}
- {- GLOWNY PROGRAM -}
- {------------------------------------------}
- { zmienna do przechowywania temperatury wprowadzonej z klawiatury }
- var TemperatreValue: real;
- begin
- writeln ('Program do obliczenia Energii Swobodnej Gibbsa');
- writeln;
- writeln ('Wartosci zadane do programu');
- { ODCZYT DANYCH Z PLIKU DO TABLICY }
- tablica[1].temperatura:=200.00;
- tablica[1].energia:=-3.5956;
- tablica[2].temperatura:=400.00;
- tablica[2].energia:=-3.5168;
- tablica[3].temperatura:=600.00;
- tablica[3].energia:=-4.0112;
- tablica[4].temperatura:=800.00;
- tablica[4].energia:=-4.5386;
- tablica[5].temperatura:=1000.00;
- tablica[5].energia:=-5.0454;
- tablica[6].temperatura:=1200.00;
- tablica[6].energia:=-5.5341;
- tablica[7].temperatura:=1400.00;
- tablica[7].energia:=-6.0111;
- tablica[8].temperatura:=1600.00;
- tablica[8].energia:=-6.4814;
- tablica[9].temperatura:=1800.00;
- tablica[9].energia:=-6.9481;
- tablica[10].temperatura:=2000.00;
- tablica[10].energia:=-7.4130;
- { WYSWIETLENIE DANYCH Z PLIKU ZNAJDUJACYCH SIE W TABLICY }
- for i:= 1 to 10 do
- begin
- write(i);
- write( ' ');
- write( FloatToStrf(tablica[i].temperatura,ffnumber,15,5)) ;
- write( ' ');
- writeln( FloatToStrf(tablica[i].Energia,ffnumber,10,5)) ;
- end;
- writeln;
- writeln ('Wspolczynniki wielomianu');
- { OBLICZANIE WSPOLCZYNNIKOW WIELOMIANU }
- writeln;
- writeln ('Podaj temperature dla ktorej program ma policzyc energii ');
- {Pobieranie temperatury z klawiatury }
- Readln(TemperatreValue);
- { Kontrolne wbyświetlanie czy działa }
- { Writeln(FloatToStrf(TemperatreValue,ffnumber,10,2)); }
- writeln;
- writeln ('Obliczanie Energii Gibbsa');
- { OBLICZANIE ENERGII GIBBSA }
- GibbsEnergyValue:= Wylicz2(x, tablica, 10);
- writeln( 'Dla temperatury ', FloatToStrf(temperatura,ffnumber,15,3) ,' entergia wynosi: ', FloatToStrf(GibbsEnergyValue,ffnumber,15,5) );
- readln;
- end.
Add Comment
Please, Sign In to add comment