2. users -> uses
3. AND -> OR
4. Переменные нигде не выводились (сами глянете как надо в writeln)
Да и вообще у вас повсюду надо объединять блоками begin/end конструкции в операторах if
Код
program func;
uses crt;
var x,a,y,k1,k2:real;
begin
clrscr;
x:=0.844;
a:=0.83756;
y:=a*(1-exp(-0.2));
if (0<x) and (x<2) then
begin
k1:=y*arctan(1-sqr(x));
writeln ('k1=', k1);
end
else
begin
if (x>=2) OR (x<=(-y)) then
begin
k2:=ln(abs(1-x/y));
writeln ('k2=',k2);
end
else
begin
writeln ('no solution');
end
end;
readln();
end.
uses crt;
var x,a,y,k1,k2:real;
begin
clrscr;
x:=0.844;
a:=0.83756;
y:=a*(1-exp(-0.2));
if (0<x) and (x<2) then
begin
k1:=y*arctan(1-sqr(x));
writeln ('k1=', k1);
end
else
begin
if (x>=2) OR (x<=(-y)) then
begin
k2:=ln(abs(1-x/y));
writeln ('k2=',k2);
end
else
begin
writeln ('no solution');
end
end;
readln();
end.
Код вообще-то принято отлаживать.