Написать программу построения графика функции у= sqrt 3*x.(PascalABC)(программа не...

0 голосов
41 просмотров

Написать программу построения графика функции у= sqrt 3*x.(PascalABC)(программа не работает)

uses graphabc;
var i: integer;
x, y: real;
function f (x:real):real;
begin f:=sqrt (3*x);
end;
Begin line (0, 240, 620, 240);
line (300, 0, 300, 900);
for i:= -450 to 45 do
begin x:= 0.03*i;
y:=f(x);
setpixel (round (300+10*x), round (240-10*y), clgreen);
end;
textout (300,10, 'y=sqrt(3x)');
End.


Информатика (68 баллов) | 41 просмотров
0

Так Вы уже написали, что еще надо?

0

ОДЗ x>0

Дан 1 ответ
0 голосов
Правильный ответ

Uses graphabc;
var
    i: integer;
    x, y: real;

function f(x: real): real;
begin
    f := sqrt(3 * x);
end;

begin
    Line(0, 240, 620, 240);
    Line(300, 0, 300, 900);
    TextOut(310, 10, 'y=sqrt(3x)');
    
    x := 0;
    repeat
        x := x + 0.03;
        y := f(x);
        SetPixel(round(300 + 10 * x), round(240 - 10 * f(x)), clGreen);
    until 300 + 10 * x > 620
end.

с апгрейдом

uses graphabc;
const
    scale = 20;

var
    i: integer;
    x, y: real;

function f(x: real): real;
begin
    if x < 0 then
        f := 0
    else
        f := sqrt(3 * x);
end;

begin
    Window.Init(0, 0, 1000, 1000, clMoneyGreen);
    Window.CenterOnScreen;
   
    Line(0, Window.Height div 2, Window.Width, Window.Height div 2);
    Line(Window.Width div 2, 0, Window.Width div 2, Window.Height);
    TextOut(Window.Width div 2 + 5, 10, 'y=sqrt(3x)');
   
    x := -1;
    repeat
        SetPixel(round(Window.Width div 2 + scale * x), round(Window.Height div 2 - scale * f(x)), clRed);
        x := x + 0.03;
    until scale * x > Window.Width div 2
end.

(53.1k баллов)