Kezdőoldal » Számítástechnika » Programozás » Segítene valaki pascalban...

Segítene valaki pascalban 3-ad fokú egyenletre programot írni?

Figyelt kérdés

Igazából csak az elejében kéne segítség h hogyan tudom áttalakítani másodfokúvá.onnantól kezdve már megy.

így csinálnám:

program usergraph;

var a,b,c D:integer;

x1,x2:real;

begin

write('a= '); readln(a);

write('b= ' ); readln(b);

write('c= ' ); readln(c);

D:=b*b-a*a*c;

if D>0 then begin x1=(-b+sqrt (D))/(2*a);

x2(-b-sqrt(D))/(2*a);

writeln( 'x1= ' , x1:0:2);

writeln('x2= ', x2:0:2);

end

else if D=0 then begin

x1=-b/(2*a);

writeln('x= ', x1:0:2);

end

else writeln ('nincs megoldas ');

readln;

end.


Nah ezt kéne vmivel kiegészíteni fent h a 3-adfokubol másodfoku legyen és....A segítséget megköszönném!!


2011. szept. 26. 20:52
1 2
 1/11 anonim ***** válasza:

"Igazából csak az elejében kéne segítség h hogyan tudom áttalakítani másodfokúvá.onnantól kezdve már megy."


Átalakítani? Ha átalakítod az egy másik egyenlet más megoldással, véletlenül ha ugyan az a megoldás.

Ha másodfokúra visszavezethetőre-t akartál írni, amit tanítanak középiskolába, akkor az a rossz hírem van hogy

egy véletlenszerűen felírt harmadfokú egyenlet igen valószínű hogy nem vezethető vissza másodfokúra, amiket adnak feladatot visszalehet azok direkt olyan, iskolapéldák alias gyógyfeladatok.


"A harmadfokú egyenlet valós megoldásait a megoldóképlettel csak úgy találhatjuk meg, ha a számítás során kilépünk a valós számkörből és, ha csak átmenetileg is, de belépünk a komplex számok világába. A harmadfokú egyenlet megoldásának ennélfogva igen nagy a tudománytörténeti jelentősége."


Harmadfokú egyenlet megoldóképlete:

[link]

[link]


Remélem nem haragszol meg ha azt írom hogy szerintem kicsi vagy ehhez egyenlőre, úgy értem zöldfülű.

2011. szept. 26. 21:33
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Hát a matek tanárom adta ezt a feladatot- aki nem ért a programozáshoz.Én agyaltam rajta de nem tudtam megoldani.Ezért gondoltam hátha fogja tudni vki.Azért kössz a választ!
2011. szept. 27. 13:17
 3/11 anonim ***** válasza:

"Hát a matek tanárom adta ezt a feladatot- aki nem ért a programozáshoz."

Te értesz hozzá? Legalább olyan kódot írj ami fordítható, csomó helyen szintaxis hiba miatt "sikít" a fordító.

Szintaktikus hiba nélkül:


program usergraph;

var a,b,c,D:integer;

x1,x2:real;

begin

write('a= '); readln(a);

write('b= ' ); readln(b);

write('c= ' ); readln(c);

D:=b*b-a*a*c;

if D>0 then begin x1:=(-b+sqrt (D))/(2*a);

x2:=(-b-sqrt(D))/(2*a);

writeln( 'x1= ' , x1:0:2);

writeln('x2= ', x2:0:2);

end

else if D=0 then begin

x1:=-b/(2*a);

writeln('x= ', x1:0:2);

end

else writeln ('nincs megoldas ');

readln;

end.


Persze nem jó a program

a= 1

b= 2

c= 3

x1= -0.50

x2= -1.50


Ezt adja eredményül, ami nem jó.

Ha a matektanárod adta akkor mit mondott, pontosan mit kell csinálnia a programnak? Ha egyszerűen csak harmadfokú egyenlet kell megoldani arra ott a képlet.

Írj rá példát hogy miből mit kéne csinálnia!

2011. szept. 27. 19:30
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
Lehet van benne hiba, nem pascalban írtam mert onnan nem tudtam átmásolni (+ ki sem próbáltam) szal nem ellenőriztem le.1 szóval nem mondtam h tudok programozni de ő még ennyire sem, de ennek ellenére találgat ki programokat(hosszú történet h miért de elvileg hasznom kéne h legyen belőle-halkan megjegyzem h eddig csak az ellenkezője van)Nos a feladat annyi volt, hogy kikell számolnia 1 harmadfokú egyenletet a programnak!Ezt segítségül akarta adni (miután mutattam neki h a másodfokú talán menne) ,hogy ha áttírok a program elején vmit akkor a programhoz már csak hozzá írom a 2-odfokús programot és kész.(de utólag kiderült h életében nem programozott ezért a belebeszélése csak ront a helyzeten nem h segít)És ahogy már írtam az elején én sem vagyok a toppon programozás terén ezért hiába van megoldóképletem, azzal sem tudnám megoldani a programot.
2011. szept. 27. 20:13
 5/11 anonim ***** válasza:

20:13

A programot megírni megoldóképlet segítségével a legegyszerűbb.

2011. szept. 27. 23:49
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:
ha olyan egyszerű, leírnád légyszi?
2011. szept. 28. 15:36
 7/11 anonim ***** válasza:

"A programot megírni megoldóképlet segítségével a legegyszerűbb."

Az hogy legegyszerűbb nem azt jelenti hogy egyszerű is hanem azt hogy bárhogy máshogy bonyolultabb. Meg bírnám írni megoldóképlettel de ahhoz ki kell lépni a valós számok halmazából, nincs komplex szám a pascal-ba, kéne csinálni komplex szám osztályt stb. Pepecs munka lenne, de elragadtattam magam, nem azt kéri a tanár hogy minden harmadfokú egyenletet meg tudjon oldani csak olyat ami visszavezethető másodfokúra, vagy esetleg egyéb egyszerűbb esetekben megoldható.


Megírtam egy másodfokú megoldó függvényt a,b,c számok a függvény bemenete, kimenete egy rekord amibe a megoldásokat rakja, free pascal-ba működik. A függvény nem tud semmit csak amit kap 3 számot, nincs semmi előfeltétele hogy használd másik függvényen belül akár.

Van egy EgyenletMegoldasKiir eljárás ez sem tud semmit csak azt hogy egy rekordot kap bemenetnek, fogalma sincs honnan jött a rekord (az "égből") e szerint ír a képernyőre. Vagyis a masodfokuMegoldo függvény kimenetét átadtam a EgyenletMegoldasKiir függvény bemenetének. (Ezt az elvet a procedurális iteratív programozás egyik alappillérének tartok.)

Igazából nemigen kell foglalkozni hogy működik a masodfokuMegoldo függvény, elég azt tudni hogy mit csinál, milyen bemenetből milyen kimenetet csinál.

Lehet íni harmadfokú megoldót is ami megfelelően felparaméterezve meghívja a másodfokú megoldót (a másodfokú megoldón nem kell változtatni), persze nem lehet tökéletesen megcsinálni középiskolai ismerettel amit már írtam, de nem is az a cél.


Írtad hogy nem tudod kimásolni azért vannak ilyen hibák a kódba. Meg kell keresni a pas fájlt meg lehet nyitni jegyzettebbel is, azzal ki tudod másolni legközelebb, vagy fordítva jegyzettebbel hozol létre pas fájlt pl ha ki akarod próbálni amit írtam.


Itt van néhány hasznos leírás: [link]

Itt meg a program amit írtam: [link]


Kicsit "emészd" a kódot, ha bármi kérdésed van írj! Megnézhetjük majd a 3-adfokú megoldását is, másodfokúra visszavezetését, de előbb ezt próbáld megérteni!

2011. szept. 28. 23:44
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:

Azta, hát kössz szépen!!Tényleg nagyon rendes v h elkészítetted.Hát ezzel elleszek 1 darabig. :) Amúgy ezt a szintet középiskolán aligha elvárja valaki.(persze csak ha tudja miről van szó)Megmutattam a tanárnak,(természetesen nem mondtam h én készítettem)nagyot nézett aztán azt mondta h nah jólvan nem kell több programit írni. (beszélt az infótanárral h miket fogunk csinálni és mit tudhatunk)

neked még 1-szer köszönöm és a másodfokú visszavezetést majd esetleg pár év mulva.

2011. szept. 29. 15:38
 9/11 anonim ***** válasza:

"Azta, hát kössz szépen!!Tényleg nagyon rendes v h elkészítetted.Hát ezzel elleszek 1 darabig. :)"

Nagyon szívesen. :)


"Amúgy ezt a szintet középiskolán aligha elvárja valaki.(persze csak ha tudja miről van szó)"

Elhiszem, nekem egyetemi szintű ismeretem van programozás, programozás elmélet terén.


"neked még 1-szer köszönöm és a másodfokú visszavezetést majd esetleg pár év mulva."

Amikor úgy érzed hogy eljött az ideje. :) Viszont azt kihangsúlyozom, lehet hogy félreérthetően fogalmaztam:"A programot megírni megoldóképlet segítségével a legegyszerűbb."

2011. szept. 29. 16:33
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:

"Azta, hát kössz szépen!!Tényleg nagyon rendes v h elkészítetted.Hát ezzel elleszek 1 darabig. :) "

Nagyon szívesen. :)


"Amúgy ezt a szintet középiskolán aligha elvárja valaki.(persze csak ha tudja miről van szó)"

Elhiszem, nekem egyetemi szintű ismeretem van programozásból, programozás elméletből.


"neked még 1-szer köszönöm és a másodfokú visszavezetést majd esetleg pár év mulva."

Ha úgy érzed eljött az ideje.

Lehet hogy félreérthetően fogalmaztam: "A programot megírni megoldóképlet segítségével a legegyszerűbb." Ez abban az esetben igaz, hogy ha a legkülönbözőbb "trükkös" esetbe is működnie kell, különben ha csak egyszerűbb esetere hogy működjön van egyszerűbb módja. pl x^3-125=0

ez részletesen kiírva 1*x^3+0*x^2+x+0=0 vagyis

a=1 b=0 c=0 d=-125 (természetesen itt d nem a diszkriminánst jelenti) ekkor a valós megoldás köbgyök 125 ami 5 stb.

2011. szept. 29. 16:51
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!