Const low=-32768; high=32767; Var i, j :integer; begin readln(i,j); if sign(i)*sign(j)<0 then writeln('Сложение допустимо, результат ',i+j) else if i<0 then if j<low-i then writeln('Сложение недопустимо: возникнет переполнение') else writeln('Сложение допустимо, результат ',i+j) else if j>high-i then writeln('Сложение недопустимо: возникнет переполнение') else writeln('Сложение допустимо, результат ',i+j) end.
procedure MatrA(var a: mass); var i, j: integer; begin for i := 1 to n do for j := 1 to m do begin writeln('a[', i, ',', j, ']: '); readln(a[i, j]) end end;
procedure MatrB(var b: mass); var i, j: integer; begin for i := 1 to n1 do for j := 1 to m1 do begin writeln('b[', i, ',', j, ']: '); readln(b[i, j]) end end;
procedure Sum(a, b: mass; var c: mass); var i, j: integer; begin for i := 1 to n do for j := 1 to m do c[i, j] := a[i, j] + b[i, j]; end;
begin writeln('Введите n,m матрицы A'); readln(n, m); MatrA(a); writeln('Введите n,m матрицы B'); readln(n1, m1); MatrB(b); if (n1 <> n) and (m1 <> m) then writeln('Матрицы сложить нельзя') else begin Sum(a, b, c); writeln('A+B'); for i := 1 to n do begin for j := 1 to m do write(c[i, j]:1:3, ' '); writeln end end; readln; end.
Подберем числа из которых можно получить данные нам числа 87 из 1222 250 из 7099 656136 из 9999 Всего 3
Не подошли: 58: только 5 и 8, что противоречит п2 124: только 12 и 4 не нарушают п2. 4 = 1+1+1+1, 1*1*1*1=1 <> 12 4 = 1*1*1*4 = 1*1*2*2 , 1+1+1+4=7 <> 12, 1+1+2+2 = 6 <> 12 411: только 41 и 1 не нарушают п2. 1 = 1+0+0+0, 1*0*0*0 = 0 <> 41 1 = 1*1*1*1, 1+1+1+1 = 4 <> 41 1711: только (17 и 11) и (171 и 1) не нарушают п2. (171 и 1), случай с 1 рассмотрен выше (17 и 11): 17 = 17*1*1*1, 17+1+1+1 = 20 < 11 11 = 11*1*1*1, 11+1+1+1 = 14 < 17 841424: только (84142 и 4) и (8414 и 24) и (841 и 424) не нарушают п2. Максимум суммы 4 цифр = 9+9+9+9 = 36 Максимум произведения 4 цифр = 9*9*9*9 = 6561 (841 и 424): оба числа больше максимума суммы (84142 и 4) и (8414 и 24): 84142 и 8414 больше максимума произведения
low=-32768;
high=32767;
Var i, j :integer;
begin
readln(i,j);
if sign(i)*sign(j)<0 then writeln('Сложение допустимо, результат ',i+j)
else
if i<0 then
if j<low-i then writeln('Сложение недопустимо: возникнет переполнение')
else writeln('Сложение допустимо, результат ',i+j)
else
if j>high-i then writeln('Сложение недопустимо: возникнет переполнение')
else writeln('Сложение допустимо, результат ',i+j)
end.