witam,
mój problem polega na tym iż chce z kodu pascal (mam kod w pascalu w aplikacji konsolowej jednak nie pozwala ona na wykonanie mojego zadania) utworzyć program w delphi, który obliczał by dane i wpisywał je do macierzy (to już mam). Nie znam delphi więc proszę o pomoc. Jak w delphi używać narzędzia StringGrid (chodzi o wpisanie wyników z macierzy czy jest coś lepszego) oraz jak z tych danych utworzyć wykres??
program prac_przejsc_2;
{$APPTYPE CONSOLE}
uses
SysUtils, math, crt;
type typ1=array[1..360,1..3]of double;
typ2=array[1..3]of string;
var n, v1, v2, v, v4, p1, p2, p, pmax, a, c, eps, ms, mr, alfa:double;
i, b:integer;
x:typ1;
procedure wypisz(var y:typ1); //procedura wypisywania macierzy
var i, j:integer;
begin
for i:=1 to 360 do
begin
for j:=1 to 3 do
write(x[i,j]:10:2,' ');
writeln;
end;
end;
begin
n:=0;
v1:=25.6235;
p1:=88;
v2:=1.6015;
v:=v1;
eps:=16;
ms:=1.34;
mr:=1.2;
alfa:=1.8;
writeln('objetosc w DMP ',v1:3:2,' kat obrotu ',n:3:2);
for i:=1 to 180 do
begin
v:=v-(v1-v2)/180;
a:=v1/v;
p:=p1*pow(a,ms);
writeln('objetosc ',v:3:2,' kat obrotu ',i,' cisnienie ',p:3:2);
x[i, 1]:=v;
x[i, 2]:=i;
x[i, 3]:=p;
end;
writeln;
p2:=p1*pow(eps,ms);
writeln('cisnienie p2 = ',p2:0:2,' kPa');
pmax:=alfa*p2;
writeln('cisnienie pmax = ',pmax:0:2,' kPa');
writeln('#################################');
writeln;
readln;
clrscr;
writeln('objetosc w gmp',v);
v4:=1.8;
for i:=181 to 360 do
begin
v:=v+(v1-v2)/180;
if v<=v4 then
begin
p:=pmax;
writeln('objetosc ',v:3:2,' kat obrotu ',i,' cisnienie ',p:3:2 )
end;
if v>v4 then
begin
c:=(v4/v);
p:=pmax*pow(c,mr);
writeln('objetosc ',v:3:2,' kat obrotu ',b,' cisnienie ',p:3:2);
end;
x[i, 1]:=v;
x[i, 2]:=i;
x[i, 3]:=p;
end;
readln;
wypisz(x);
readln;
end.
Program na razie działa i oblicza, oczywiście potrzeba jeszcze kilka szlifów.
Macierz jest postaci 3 kolumny-(mają być dwa wykresy p(v) i p(fi)) 360 wierszy, oczywiście jeden przykład wystarczy.