Чтобы ответить на вопрос, нужно проанализировать объявления процедур и функций, а также параметры, которые они принимают.
У нас есть следующие объявления:
- Procedure P(i: integer; var j: integer; x: real);
- Function F(x, y: char; z: integer): real;
Теперь давайте рассмотрим каждый из предложенных вызовов:
- a) F(‘a’, ‘2.3’, c)
В этом вызове:
- первый параметр ‘a’ - корректный (тип char);
- второй параметр ‘2.3’ - некорректный, так как ожидается char, а передан строковый литерал, который не может быть представлен как символ;
- третий параметр c - корректный (тип integer).
Таким образом, вызов a) некорректен.
- b) F (‘a’, ‘4’, n)
В этом вызове:
- первый параметр ‘a’ - корректный (тип char);
- второй параметр ‘4’ - корректный (тип char);
- третий параметр n - корректный (тип integer).
Таким образом, вызов b) корректен.
- c) F(b, ‘v’, 7.1)
В этом вызове:
- первый параметр b - корректный (тип char);
- второй параметр ‘v’ - корректный (тип char);
- третий параметр 7.1 - некорректный, так как ожидается integer, а передан real.
Таким образом, вызов c) некорректен.
- d) P(k, a, 7)
В этом вызове:
- первый параметр k - корректный (тип integer);
- второй параметр a - некорректный, так как ожидается var j: integer, а передан real;
- третий параметр 7 - корректный (тип real).
Таким образом, вызов d) некорректен.
- e) P(m, 6.0, 3)
В этом вызове:
- первый параметр m - корректный (тип integer);
- второй параметр 6.0 - некорректный, так как ожидается var j: integer, а передан real;
- третий параметр 3 - корректный (тип real).
Таким образом, вызов e) некорректен.
- f) P(n, m, a)
В этом вызове:
- первый параметр n - корректный (тип integer);
- второй параметр m - корректный (тип integer, так как передан по ссылке);
- третий параметр a - корректный (тип real).
Таким образом, вызов f) корректен.
Итак, резюмируя:
- a) некорректен;
- b) корректен;
- c) некорректен;
- d) некорректен;
- e) некорректен;
- f) корректен.