Вопрос задан 28.02.2019 в 21:41. Предмет Информатика. Спрашивает Матеевич Анастасия.

Какое обращение к процедуре S содержит ошибку? Procedure S (a:byte; b:real; var c:char); Begin

c:=Chr(a); b:=b+a; end; Var x:byte; y:real; z:char; Begin ... S(x+2, y*y, z); S(1, 2, 'z'); S(2, sin( y ), z); S(x+x, x+y, z);
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Malishava Tamriko.
S(1, 2, 'z'); - неверный вызов.
Фактический параметр 'z' - константа и он не может сопоставляться параметру процедуры с, имеющему описатель var.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Процедура S имеет следующую сигнатуру:

```pascal Procedure S(a: byte; b: real; var c: char); Begin c := Chr(a); b := b + a; end; ```

В вашем коде есть несколько моментов, которые могут вызывать проблемы:

1. В вызове `S(1, 2, 'z');` третий параметр - `c: char` - передается как строка `'z'`. В Pascal, тип `char` предназначен для хранения одного символа. Вместо этого вы можете передать только одиночный символ, например, `S(1, 2, 'z'[1]);`. Однако, это может не соответствовать вашим ожиданиям, и вам, возможно, нужно будет изменить тип параметра `c` на `string` в процедуре.

2. В вызове `S(2, sin(y), z);` второй параметр - `b: real` - принимает значение `sin(y)`. Убедитесь, что тип переменной `y` - `real`, и это значение имеет смысл в вашем контексте.

3. В вызове `S(x + x, x + y, z);` первый параметр - `a: byte` - выражение `x + x` может превысить диапазон значений типа `byte`. Убедитесь, что результат этого выражения не будет больше 255, иначе может возникнуть переполнение.

Итак, внесение соответствующих изменений, код может выглядеть следующим образом:

```pascal Var x: byte; y: real; z: char;

Begin // ...

S(x + 2, y * y, z); S(1, 2, z[1]); // или измените тип параметра c на string S(2, sin(y), z); S(x + x, x + y, z);

// ... End. ```

Обратите внимание, что в зависимости от вашего контекста и требований, вам может потребоваться вносить дополнительные изменения в код.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос