Mam taki jeden problem otóż mam do napisania program który z takiego działania 6x^2+7x-13=0
wyznaczy a,b,c ogólnie sam wiem jak to sie robi tylko mama problem z wykonaniem algorytmu w programie ,
w przypadku tego dzialania wartosci poszczegolnych zmiennych powinny miec wartosc a=6 , b=7 , c=-13
a tu caly algorytm
Uses CRT;
var
a,b,c:array[1..4]of integer;
dz,dza,dzb,dzc:string;
blada,bladb,bladc:byte;
blada1,blada2:byte;
bladb1,bladb2:byte;
bladc1,bladc2,bladc3:byte;
blad,i:byte;
Procedure literaa;
Begin
if dz[1]='x' then a[1]:=1 else
Begin
val(dz[1],a[2],blada1);
val(dz[2],a[3],blada2);
blada:=blada1+blada2;
if blada=0 then
Begin
dza:=dz[1]+dz[2];
val(dza,a[1],blad)
end else
a[1]:=a[2];
end;
end;
PROCEDURE literab;
Begin
i:=0;
Repeat
inc(i);
until (dz[i]='+') or (dz[i]='-');
if dz[i+1]='x' then
Begin
if dz[i]='-' then b[1]:=-1;
if dz[i]='+' then b[1]:=1;
end else
Begin
val(dz[i+1],b[2],bladb1);
val(dz[i+2],b[3],bladb2);
bladb:=bladb1+bladb2;
if bladb=0 then
Begin
dzb:=dz[i+1]+dz[i+2];
val(dzb,b[1],blad)
end else
b[1]:=b[2];
end;
end;
PROCEDURE literac;
Begin
i:=1;
while dz[i]='=' do inc(i);
while (dz[i]='+') or (dz[i]='-') do dec(i);
inc(i);
Begin
val(dz[i],c[2],bladc1);
val(dz[i+1],c[3],bladc2);
val(dz[i+2],c[4],bladc3);
bladc:=bladc1+bladc2+bladc3;
if bladc=2 then c[1]:=c[2] ;
if bladc=1 then
Begin
dzc:=dz[i]+dz[i+1];
val(dzc,c[1],blad);
end;
if bladc=0 then
Begin
dzc:=dz[i]+dz[i+1]+dz[i+2];
val(dzc,c[1],blad);
end;
end;
end;
Begin
Writeln('Podaj działanie');
readln(dz); //Wczytanie Działania
literaa;
literab;
literac;
Writeln('a=',a[1]);
Writeln('b=',b[1]);
Writeln('c=',c[1]);
readln;
end.
W wyniku dostaje a prawidłowe lecz b i c wychodzi zerowe