Pascal nyelven kellene elkészíteni az alábbi programot, úgy hogy tartalmazzon legalább egy procedure-t. Tudnak valaki segíteni?
Amit én csinálnám (józan paraszti és és nem biztos, hogy a legoptimálisabb):
Az első (a,b,c) egyenletből kifejezném az x-et: x = (c-by)/a
Ezt beírnám a másodikba:
d(c-by)/a + ey = f, ebből kifejezném y-ont és ha nem számoltam el akkor valami ilyesmi jön ki:
y = (fae - dce)/(a-bde). Ezt (vagy az ehhez hasonló alakot) bármikor ki tudod számolni, mert a jobb oldalon csak ismert szám szerepel. Aztán ha y megvan, akkor az x = ... egyenletbe behelyettesíted és megvan az x is. Ellenőrzöd, hogy pozitívak-e v. sem és ennek függvényében új sort generálsz v. befejezed a futást.
Jah látom már hol akadtál el.
determinánsról hallottál már? Mátrixos alakban old meg az "könnyebben" be lehetadni a gépnek
csinálj egy függvényt ami kiszámítja 2*2-es mátrix determinánsát ha ezzel megvagy:
A lineáris egyenletrendszert mint ezt fel lehet írni ilyen alakban is:
a_11x_1+a_12x_2=b1
a_21x_2+a_22x_2=b2
Ebből egy két művelettel meg lehet mondani az egyenletrendszered megoldását
x=|c b| / |a b|
|f e| |d e|
y=|a c| |a b|
|d f| / |d e|
Ahol a | | jelek a determináns képzést jelenti, ami c b f e mátrix esetén c*e-f*e műveletet jelenti. Tehát írsz egy függvényt a determinánsra ez úgyis egy változót ad eredményül.
Csinálsz egy eljárást ami a fenti képletetek alapján megoldja az egyenletrendszert.
function det( var a, b ,c ,d: integer):integer
begin
det:=a*d-c*b;
end;
Ennyit segítek nem tanulsz ha nem próbálod lekódolni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!