var a, n, b, f:integer;
begin
readln(a);
readln(n);
if (a<0) and (n<0) then f:=1;
if (a<0) and (n>0) then f:=2;
if (a>0) and (n<0) then f:=3;
if (a>0) and (n>0) then f:=4;
case f of
1:b:=a+n;
2:begin if a+n>=0 then b:=a+n+1 else b:=a+n end;
3:begin if a+n<=0 then b:=a+n+1 else b:=a+n end;
4:b:=a+n
end;
writeln(b);
end.
Вроде так. По крайней мере у меня работает
Ps: проверь версию паскаля, а то мало ли.
Будем обозначать года нашей эры положительными числами, а года до нашей эры — отрицательными. При этом года с номером 0 не существует, то есть нумерация лет выглядит так: ...−3, −2, −1, 1, 2, 3, ..
В летописях написано, что какое-то событие произошло в году номер A, а другое событие произошло спустя n лет после первого события (или за n лет до первого события). Определите, в каком году произошло второе событие.
Входные данные
Первая строка входных данных содержит число A — год, в котором произошло первое событие. Вторая строка содержит число n. Если n > 0, то второе событие произошло через n лет после первого события, а если n < 0, то второе событие произошло за |n| лет до первого события. Оба числа могут быть как положительными, так и отрицательными.
Выходные данные
Программа должна вывести одно целое число — номер года, в который произошло второе событие.
Язык – free pascal или С++