Układ równań za pomocą pętli

0

Chodze do LO i na informatyce przerabiamy pętle. Nauczyciel kazał nam napiasac program dzieki któremu można obliczyc układ trzech równań za pomocą pętli. Czy ktoś wie jak napisać taki program bo ja jestem kompletnie zielony. ściągnełem od kolegi program do obliczania równania z dwoma niewiadomymi (ale chyba nie jest dokończony). czy mógłby mi ktos napisać taki programik ?

var A: array[1..2,1..2] of real;
    x,C: array[1..2] of real;
    temp,w:array[1..2] of real;
    i,j:integer;
    wg:real;
begin
for i:=1 to 2 do
for j:=1 to 2 do
begin
writeln('podaj ',i,j,' skadowĄ tab A');
readln(A[i,j]);
end;
for i:=1 to 2 do
begin
writeln('podaj ',i,' skadowĄ tab C');
readln(C[i]);
end;
wg:=A[1,1]*A[2,2]-A[1,2]*A[2,1];
writeln('wyznacznik g˘wny wynosi ',wg:0:3);
for i:=1 to 2 do begin temp[i]:=a[i,1];
                       a[i,1]:=c[i];
                       end;
w[1]:=A[1,1]*A[2,2]-A[2,1]*A[1,2];
readln;
end.
0

Stary. Napisz jakie to mają być równania, liniowe, kwadratowe czy inne, poza tym czy to mają być stałe równania (wpisane w kodzie) czy użytkownik ma podawać parametry, czy ma operować tylko na liczbach całkowitych czy na rzeczywistych itd... i dodatkowo czy ten nauczyciel nie dał żadnych wskazówek?

Przychodzi mi do głowy jeden pomysł ale nie wiem czy o to chodzi, więc odpowiedz na powyższe pytanie i wtedy pomyślimy.

0

Stary. Napisz jakie to mają być równania, liniowe, kwadratowe czy inne, poza tym czy to mają być stałe równania (wpisane w kodzie) czy użytkownik ma podawać parametry, czy ma operować tylko na liczbach całkowitych czy na rzeczywistych itd... i dodatkowo czy ten nauczyciel nie dał żadnych wskazówek?

Przychodzi mi do głowy jeden pomysł ale nie wiem czy o to chodzi, więc odpowiedz na powyższe pytanie i wtedy pomyślimy.

0
frickle napisał(a)

Stary. Napisz jakie to mają być równania, liniowe, kwadratowe czy inne, poza tym czy to mają być stałe równania (wpisane w kodzie) czy użytkownik ma podawać parametry, czy ma operować tylko na liczbach całkowitych czy na rzeczywistych itd... i dodatkowo czy ten nauczyciel nie dał żadnych wskazówek?

Przychodzi mi do głowy jeden pomysł ale nie wiem czy o to chodzi, więc odpowiedz na powyższe pytanie i wtedy pomyślimy.

Ze wszystkim co napisał Frickle zgadzam sie. Ponad to, dwa równania liniowe mozna rozwiązywać metodą wyznaczników (macierzy). Trzy można też. Niestety nigdy nie słyszałem aby ktoś rozwiązytwał równania za pomocą pętli... może się myle to wyglądałoby na metodę prób i błędów...
Widzę że jednak zastosowałęś wyznacznik. Musisz jeszcze skorzystać z Wyznaczników Wx i WY i w zależności od nich określić ilośc rozwiązać, później wiedząć co nieco o rozwiązaniach dzielisz wyznacznik główny przez Wx i otrzymujesz zdaje sie x, nie pamietam juyz. Tak samo postepujesz z Wy. Poszukaj deokłądnie w necie, na bank wwszystko znajdziesz.

0
cx3 napisał(a)

Niestety nigdy nie słyszałem aby ktoś rozwiązytwał równania za pomocą pętli... może się myle to wyglądałoby na metodę prób i błędów...

Właśnie metoda prób i błędów mi przyszła na myśl... :-) bo za pomocą pętli to raczej nic innego nie wchodzi w rachubę.

0

Nie dał żądnych wskazówek. równania mają byc liniowe a parametry mamy wpisywac sami podczs działania programu. Sam juz napisałem taki program i wydaje mi sie ze to jest to

var
x: array[1..4] of double;
y: array[1..4] of double;
z: array[1..4] of double;
w: array[1..4] of double;
begin
writeln('podaj x1,x2,x3,y1,y2,y3,z1,z2,z3, rozw1, rozw2, rozw3:');
readln(x[1],x[2],x[3],x[4]);
readln(y[1],y[2],y[3],y[4]);
readln(z[1],z[2],z[3],z[4]);
w[1]:=x[1]*y[2]*z[3]+x[2]*y[3]*z[1]+x[3]*y[1]*z[2]
     -x[3]*y[2]*z[1]-x[2]*y[1]*z[3]-x[1]*y[3]*z[2];
w[2]:=x[4]*y[2]*z[3]+x[2]*y[3]*z[4]+x[3]*y[4]*z[2]
     -x[3]*y[2]*z[4]-x[2]*y[4]*z[3]-x[4]*y[3]*z[2];
w[3]:=x[1]*y[4]*z[3]+x[4]*y[3]*z[1]+x[3]*y[1]*z[4]
     -x[3]*y[4]*z[1]-x[4]*y[1]*z[3]-x[1]*y[3]*z[4];
w[4]:=x[1]*y[2]*z[4]+x[2]*y[4]*z[1]+x[4]*y[1]*z[2]
     -x[4]*y[2]*z[1]-x[2]*y[1]*z[4]-x[1]*y[4]*z[2];
writeln(w[1], ' ', w[2], ' ', w[3], ' ' , w[4]);
if(w[1]=0.0)and(w[2]=0.0)and(w[3]=0.0)and(w[4]=0.0) then
writeln('Uklad ma nieskonczenie wiele rozwiazan')
else if(w[1]=0.0) then
writeln('Uklad bez rozwiazan')
else
writeln('X[1]= ', w[2]/w[1],', X[2]=',w[3]/w[1],', X[3]=', w[4]/w[1]);
readln;
end.
0

A gdzie pętla???

1 użytkowników online, w tym zalogowanych: 0, gości: 1