Вопрос:

В каких строках программы допущены ошибки? Program test2; Var x1, x2: real; a1, a2: integer; s1, s2:string; Begin [a1:=abs (5); ] [x1:=sqr (-16); ] [ a2:=sqrt (16); ] [ x2:=sqrt (5); ] [s1:=16+5; ] [s2:='16'+'5'; ] End

Ответ:

Анализ ошибок в программе:

  1. Строка [a1:=abs (5); ]: Функция abs() возвращает абсолютное значение числа. Переменная a1 имеет тип integer. В данном случае ошибка отсутствует.
  2. Строка [x1:=sqr (-16); ]: Функция sqr() вычисляет квадрат числа. Квадрат отрицательного числа является положительным, поэтому sqr(-16) корректно вычислит 256. Переменная x1 имеет тип real, что подходит для хранения результата. Ошибка отсутствует.
  3. Строка [a2:=sqrt (16); ]: Функция sqrt() вычисляет квадратный корень. Корректно вычисляет sqrt(16) = 4. Переменная a2 имеет тип integer, что подходит для хранения результата. Ошибка отсутствует.
  4. Строка [x2:=sqrt (5); ]: Функция sqrt() вычисляет квадратный корень. Переменная x2 имеет тип real, что подходит для хранения результата. Ошибка отсутствует.
  5. Строка [s1:=16+5; ]: Переменная s1 имеет тип string. Попытка сложить два числа (16 и 5) и присвоить результат строковой переменной приведет к ошибке типа данных. В данном случае должно быть конкатенация строк или преобразование типов.
  6. Строка [s2:='16'+'5'; ]: Переменная s2 имеет тип string. Оператор + для строк выполняет конкатенацию. Результатом будет строка '165'. Ошибка отсутствует.

Ответ: Ошибка допущена в строке [s1:=16+5; ].