Допустимы ли присваивания:1) k:=5;2) k:=10;3) k:=-0;4) k:='5';5) k:=ord(d);6)...

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

Допустимы ли присваивания:
1) k:=5;
2) k:=10;
3) k:=-0;
4) k:='5';
5) k:=ord(d);
6) k:=ord(d)-ord('0');
Если k: 0 .. 9;


Информатика (20 баллов) | 19 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Первый допустим.
2) k:=10; Не должен быть допустим, поскольку 10 не входит в 0..9. НО...по умолчанию Паскаль игнорирует эту ошибку, позволяя даже 255 присвоить.
Третий оператор допустим.
4) k:='5'; недопустимо, потому что нельзя преобразовать тип char в правой части к типу 0..9, являющемуся подмножеством однобайтных целых.
5) k:=ord(d); в таком виде записать нельзя, потому что d нигде не описано. Если предположить, что на месте d находится цифра, то оператор допустим.
6) k:=ord(d)-ord('0'); Как и для 2) - оператор не должен быть допустим... но он допустим. Допустим он будет и в варианте k:=ord(d)-ord(0), даже когда выдаст отрицательные значения.

Все это сужает область возможного применения данных типа "диапазон" и в целом типа "set of ...". не позволяя во многих случаях использовать их для организации эффективных проверок . Например, для можно было бы описать диапазон 6..18 для контроля принадлежности возраста к школьному. Можно было БЫ... но, как выясняется, нельзя.




(142k баллов)