<u>PascalABC.NET 3.4.0, сборка 1670 от 23.05.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
<em>1. Современное решение, возможно, на первый взгляд непонятное, но зато "в одну строку"</em>
begin
SeqWhile(-2.0,t->t+0.25,t->t<=2.0)
.ForEach(x->Writeln(x:4:1,(x<-1 ? -3*x+2+Sin(x) :
x<0 ? Abs(x) : x*Ln(x+1)):16:12))
end.
<em>2. "Школьный" вариант</em>
var
x,y:real;
begin
x:=-2;
while x<=2 do begin
if x<-1 then y:=-3*x+2+Sin(x)
else
if x<0 then y:=Abs(x)
else y:=x*Ln(x+1);
Writeln(x:4:1,y:16:12);
x:=x+0.25
end
end.
<em>Результат:</em>
-2.0 7.090702573174
-1.8 6.266014053126
-1.5 5.502505013396
-1.3 4.801015380644
-1.0 1.000000000000
-0.8 0.750000000000
-0.5 0.500000000000
-0.3 0.250000000000
0.0 0.000000000000
0.3 0.055785887829
0.5 0.202732554054
0.8 0.419711840952
1.0 0.693147180560
1.3 1.013662770270
1.5 1.374436097811
1.8 1.770301595437
2.0 2.197224577336
//PascalABC.NET 3.2 сборка 1318
Var x1,y1,x2,y2,x,y,x3,y3,x4,y4:integer;
begin
read(x1,y1,x2,y2,x,y);
x3:=x1;
y3:=y2;
x4:=x2;
y4:=y1;
if (x<x1) and (y<=y3) and (y>=y1) then writeln('W') else
if (x<x1) and (y>y3) then writeln('NW') else
if (x>=x1) and (x<=x2) and (y>y3) then writeln('N') else
if (x>x2) and (y>y3) then writeln('NE') else
if (x>x2) and (y<=y2) and (y>=y4) then writeln('E') else
if (x>x2) and (y<y4) then writeln('SE') else
if (x<=x4) and (x>=x1) and (y<y4) then writeln('S') else
if (x<x1) and (y<y1) then writeln('SW');
end.
Пример ввода:
-2 1 4 4 -3 5
Пример вывода:
NW
1)
program qq;
var a,b,s,p : integer;
begin
writeln('Введите стороны прямоугольника');
read(a,b);
s:=a*b;
p:=2*(a+b);
writeln('Площадь прямоугольника равна ',s);
writeln('Периметр прямоугольника равен ',p);
end.
2)
Var a,b : Real;
Function SrAr(aa,bb :Real) : Real;
Begin
SrAr:=(aa+bb)/2;
end;
Begin
Readln(a,b);
Writeln(SrAr(a,b));
end.
<em>// PascalABC.NET 3.3, сборка 1547 от 07.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var (x1,y1):=ReadReal2('Координаты 1-й точки:');
var (x2,y2):=ReadReal2('Координаты 2-й точки:');
var a:=Abs(x2-x1); // считаем, что координаты указаны верно
var d:=a*Sqrt(2);
var (xc,yc):=((x2+x1)/2,(y2+y1)/2);
Writeln('Длина стороны ',a,', диагональ ',d);
Writeln('Координаты центра пересечения диагоналей: ',xc,' ',yc)
end.
<u>Пример</u>
Координаты 1-й точки: -3 3.5
Координаты 2-й точки: 4 -3.5
Длина стороны 7, диагональ 9.89949493661167
Координаты центра пересечения диагоналей: 0.5 0
Var time:integer;
var summa:real;
var month:string;
k:=1.05;
begin
month := ' месяцев';
summa:=10000;
while summa<20000 do begin
summa:=summa*k;
time:=time+1;
end;writeln('Ответ:',time + month);
end.