1. Предсказать, что напечает программа на Паскале(c объяснением). var x : word; A : array[0..1]
of byte absolute x; begin x := 709; writeln( A[0], ' ', A[1] ); readln; end; 2. Предсказать, что напечает программа на Паскале(c объяснением). var x : integer; A : array[0..1] of byte absolute x; begin x := -834; writeln( A[0], ' ', A[1] ); readln; end;Ответы на вопрос
Получается программа будет печатать что то связанное с текстом. Затем идёт 709. Это цифры. Получается в тексте будут ещё и какие то числа, может быть даже даты
Давайте посмотрим на каждую программу по отдельности и определим, что она будет печатать.
- Программа на Паскале с использованием
absolute:
pascalvar x: word; A: array[0..1] of byte absolute x; begin x := 709; writeln(A[0], ' ', A[1]); readln; end;
В этой программе у нас есть переменная x, которая объявлена как word, что представляет беззнаковое 16-битное целое число (от 0 до 65535). Затем у нас есть массив A с двумя элементами типа byte. Мы используем специальное ключевое слово absolute, чтобы указать, что A[0] и A[1] будут использовать те же байты, что и x.
Поскольку x у нас равно 709 (или x в двоичной системе равно 0000 0010 1101 0101), и A[0] и A[1] используют те же байты, что и x, то:
A[0]будет равно0000 0010в двоичной системе, что равно 2 в десятичной системе,A[1]будет равно1101 0101в двоичной системе, что равно 213 в десятичной системе.
Таким образом, программа выведет следующее:
2 213
- Программа на Паскале с использованием
absolute:
pascalvar x: integer; A: array[0..1] of byte absolute x; begin x := -834; writeln(A[0], ' ', A[1]); readln; end;
В этой программе у нас также есть переменная x, но на этот раз она объявлена как integer, что обычно представляет 32-битное целое число. Затем у нас есть массив A с двумя элементами типа byte, которые будут использовать те же байты, что и x, благодаря ключевому слову absolute.
Поскольку x у нас равно -834 (или x в двоичной системе равно 1111 1110 1101 0010), и A[0] и A[1] используют те же байты, что и x, то:
A[0]будет равно1111 1110в двоичной системе, что равно 254 в десятичной системе (знак числа не учитывается, так какbyte- беззнаковый тип данных),A[1]будет равно1101 0010в двоичной системе, что равно 210 в десятичной системе.
Таким образом, программа выведет следующее:
254 210
Обратите внимание, что значения могут отличаться в зависимости от конкретной реализации компилятора Паскаля, так как стандарт не определяет, как именно должны храниться знаковые значения в переменных типа integer с использованием absolute.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
