Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Задачка на Pascal (https://forum.antichat.xyz/showthread.php?t=110510)

LASS0 11.03.2009 17:04

Задачка на Pascal
 
Помогите пожалуйста решить задачку двумя способами, через цикл repeat until
и через for

--------------------------------------------------
Дано a=2.8 , b=-0.3 , c=4
Вычислить и напечатать значение функции:

y=(a+b*x)/sqrt(x*x+4) ,если x<1.4
y=a*(x*x)+b*x+c ,если x=1.4
y=a/x+exp(a*b) ,ecли x>1.4

где x изменяется в интервале от 0.8 до 2.8 с шагом 0.2
--------------------------------------------------

Через while do смог написать, а через repeat until
и через for незнаю :(



Код:

Program z1;
uses crt;
 var a,b,c,x,y:real;

 begin
  a:=2.8;
  b:=-0.3;
  c:=4;
  x:=0.8;
    while x<2.8 do
      begin if x<1.4 then
          y:=(a+b*x)/sqrt(x*x+4)
          else
          if x=1.4 then
          y:=a*(x*x)+b*x+c
          else
          y:=a/x+exp(a*b);
            writeln ('x=',x:8:2,' y=',y:8:2);
          x:=x+0.2;
      end;
 readkey;
 end.


eLWAux 11.03.2009 17:20

через while:
Код:

program _while;
uses crt;
const a  = 2.8;
      b  = -0.3;
      c  = 4;
      x0 = 0.8;
      xE = 2.8;
      h  = 0.2;
var
 x,y:double;

begin
 x:=x0;
 clrscr;
 while x<xE do begin
      if x<1.4 then y:=-1 else
      if x=1.4 then y:=0  else
      if x>1.4 then y:=1;
      writeln('x =',x:3:3,',  y =',y:3:3);
      x:=x+h;
 end;

 readln;
end.


eLWAux 11.03.2009 17:21

через repeat..until:
Код:

program _for;
uses crt;
const a  = 2.8;
      b  = -0.3;
      c  = 4;
      x0 = 0.8;
      xE = 2.8;
      h  = 0.2;
var
 x,y:double;
begin
 x:=x0;
 clrscr;
 repeat
      if x<1.4 then y:=-1 else
      if x=1.4 then y:=0  else
      if x>1.4 then y:=1;
      writeln('x =',x:3:3,',  y =',y:3:3);
      x:=x+h;
 until x>xE;

 readln;
end.


RedAlert 11.03.2009 17:21

eLWAux опередил :)


Время: 08:57