不是VIP会员,不能显示答案

题目解答

题目:
【一元一次方程求解】(3+3+3+4=13分)
数学中在求解形如ax+b=c的一元一次方程时,首先会移项(把b移到等号右边),然后利用算式x=(c-b)/a来计算出未知数x的值。
下列程序就是用来对形如ax+b=c的一元一次方程进行求解,其中,b、c可以是任意整数,而a则为不等于零的整数。而且规定,从键盘输入的一元一次方程的形式都为ax+b=c这样的格式(也可为ax-b=c的形式),方程输入时以字符形式保存到字符数组exp[ ]中(输入时,无论a,b为何值,它们的值都必须原样写在对应的位置上。如,a=1,b=0时,则方程应以“1x+0=c”的形式输入,而不能以“x=c”的形式输入),并且以“.”作为输入结束标志。请完善程序。
program test8;
var
 str_a,str_b,str_c:string;
 x,a,b,c,i,j,k,code:integer;
 op,ch:char;
 exp:array[1..20] of char;
begin
 write('input expression:');
 read(ch);i:=0;
 repeat
i:=i+1;exp[i]:=ch;
  read(ch);
 until   ch='.'   ;
 j:=1;
 while exp[j]<>'x' do
 begin
  str_a:=  str_a+exp[j]   ;j:=j+1;
 end;
 j:=j+1;
 op:=exp[j];
 j:=j+1;
 while exp[j]<>'=' do
 begin
  str_b:=str_b+exp[j];j:=j+1;
 end;
 j:=j+1;
 for k:=j to  i  do str_c:=str_c+exp[k];
 val(str_a,a,code);val(str_b,b,code);val(str_c,c,code);
 if op='-' then b:=-b;
 x:=   (c-b) div a   ;
 writeln('x=',x);
end.
考点:
分析:
解答:
评论:
老师: