Паскаль. Какое обращение к процедуре S содержит ошибку? Procedure S (a:byte; b:real; var...

0 голосов
69 просмотров

Паскаль.

Какое обращение к процедуре 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, y+x, z);
S(2, sin(x), z);
S(x*2, x, z);
S(y+x, y, z);


Информатика (22 баллов) | 69 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
S(y+x, y, z); - ошибка
y+x имеет тип real+byte = real и не может быть подставлен туда, где ожидался byte. Это связано с запретом в Паскале неявного приведения вещественного типа к целочисленному.

image
(142k баллов)
0

Спасибо большое! помогите пожалуйста еще с одним https://znanija.com/task/27582521

0

а почему первый вариант верный? там ведь тоже два разных типа складывается?

0

Там параметр real в процедуре. И при сложении real