Вариант 9 ("выпрямленная синусоида"). Потому что там была "птичка" )))
<em>// PascalABC.NET 3.2, сборка 1383 от 09.02.2017</em>
uses graphABC;
const
w=1000;
h=600;
function f(x:real):=abs(sin(x));
begin
SetWindowSize(w,h);
// поле для графика в окне
var xLeft:=50;
var yLeft:=50;
var xRight:=w-xLeft;
var yRight:=h-yLeft;
// интервалы по осям
var ax:=-12.0;
var bx:=12.0;
var hx:=1.0;
var ay:=-0.25; // минимум f(x) с запасом
var by:=1.5;
var hy:=0.25;
// масштабы по осям
var mx:=(xRight-xLeft)/(bx-ax);
var my:=(yRight-yLeft)/(by-ay);
// точка начала координат графика
var x0:=xLeft+Trunc(abs(ax)*mx);
var y0:=yRight-Trunc(abs(ay)*my);
// рисование координатных осей
Line(xLeft,y0,xRight+10,y0);
Line(x0,yLeft-10,x0,yRight);
SetFontSize(12); SetFontColor(clBlue);
TextOut(xRight+15,y0-10,'X');
TextOut(x0-4,yLeft-30,'Y');
SetFontSize(8); SetFontColor(clGreen);
// рисование засечек
var s:string;
for var i:=1 to Round((bx-ax)/hx)+1 do begin
var num:=ax+(i-1)*hx;
var x:=xLeft+Trunc(mx*(num-ax));
Line(x,y0-3,x,y0+3);
Str(num,s);
if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)
end;
for var i:=1 to Round((by-ay)/hy)+1 do begin
var num:=ay+(i-1)*hy;
var y:=yRight-Trunc(my*(num-ay));
Line(x0-3,y,x0+3,y);
Str(num,s);
if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)
end;
TextOut(x0-10,y0+10,'0');
// собственно график
var xi:=ax;
while xi<=bx do begin
var yi:=f(xi);
var x:=x0+Round(xi*mx);
var y:=y0-Round(yi*my);
if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed);
xi+=1e-3
end
end.
<em>// PascalABC.NET 3.3, сборка 1590 от 03.12.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(ReadInteger('n='),-100,100); a.Println;
a.Transform(t->t<0?t*20:t); a.Println
end.
<u>Пример</u>
n= 13
-82 6 99 -23 71 -92 50 -70 -82 37 -10 -97 92
-1640 6 99 -460 71 -1840 50 -1400 -1640 37 -200 -1940 92
//Dev-C++ 5.11 (C)
#include <stdio.h>
#include <math.h>
int main(void)
{float x;
scanf("%f",&x);
if(x<0)
printf("%f",pow(3+pow(x,5),0.5));
if(0<=x && x<=3)
printf("325");
if(x>3)
printf("%f",sin(x)-cos(x));
return 0;}
Пример ввода:
4
Пример вывода:
<span>-0.103159</span>
Это же слишком элементарно, чтобы самому не сделать...
var x:real;
begin
writeln('vvedi x:');
readln(x);
writeln('y=',2*x-5/x-1);
end.