Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на билеты по информатике.docx
Скачиваний:
15
Добавлен:
27.09.2019
Размер:
690.47 Кб
Скачать

Вопрос 34

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

Имена, использующиеся для переменных, функций, меток и определяемых пользователем объекты, называются идентификаторами. Идентификаторы могут состоять как из одного, так и из нескольких символов, к которым относятся прописные и строчные латинские буквы, цифры и символ подчеркивания. При этом идентификатор обязательно должен начинаться с буквы или символа подчеркивания и не должен совпадать с ключевым словом с учетом регистра.

Данные, с которыми работает программа, хранятся в оперативной памяти. Естественно, что компилятору необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа.

Тип данных однозначно определяет:

  1. внутреннее представление данных, а следовательно, и диапазон их возможных значений;

  2. допустимые действия над данными (операции и функции).

Например, целые и вещественные числа, даже если они занимают одинаковый объем памяти, имеют совершенно разные диапазоны возможных значений; целые числа можно умножать друг на друга, а, например, символы — нельзя. Каждое выражение в программе имеет определенный тип. Компилятор использует информацию о типе при проверке допустимости описанных в программе действий.

Выражение — это правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами выражения могут быть константы, переменные и вызовы функций. Операции выполняются в определенном порядке в соответствии с приоритетами, как и в математике. Для изменения порядка выполнения операций используются круглые скобки, уровень их вложенности практически не ограничен. Результатом выражения всегда является значение определенного типа, который определяется типами операндов. Величины, участвующие в выражении, должны быть совместимых типов. Например, допускается использовать в одном выражении величины целых и вещественных типов. Результат такого выражения будет вещественным.

Операции целочисленной арифметики.

К операциям целочисленной арифметики относятся:

    1. целочисленное деление div;

    2. остаток от деления mod.

При целочисленном делении операция div возвращает целую часть частно­го (дробная часть отбрасывается), а операция mod - остаток от деления. Ниже приведены примеры этих операций:

11 mod 4 =3;

11 div 4 =2;

7 mod 3 =1;

7 div 3 =2.

В ЭВМ числа представляются в двоичном виде (двоичной системе счисления).

Пример.

                     (5)10=(00000101)2=(0000000000000101)2

Замечание. Данный пример соответствует типам byte (8 бит) и integer (16 бит) в языке паскаль (в языке object pascal системы Delphi тип integer 32-битный).

Для удобства существует сокращенная шестнадцатеричная запись двоичного числа. Шестнадцатеричная система удобна тем, что здесь легко осуществляется перевод в двоичную систему и обратно с помощью следующей таблицы:

Операции битовой арифметики.

Во всех операциях битовой арифметики действия происходят над двоичным представлением целых чисел.

К операциям битовой арифметики относятся следующие операции Паскаля.

1.                Арифметическое И (and). Оба операнда переводятся в двоичную систему, затем над ними происходит логическое поразрядное умножение операндов по следующим правилам:

1 and 1 =1;

1 and 0 = 0;

0 and 1 = 0;

0 and 0 = 0.

Рассмотрим пример использования арифметического И:

Var A, B: integer;

Begin

A:=13;

B:=23;

Writeln (A and B);

End.

Этот участок программы работает следующим образом. Число А=13 и В=23 переводятся в двоичное представление 0000000000001101 и 0000000000010111. Затем над ними поразрядно выполняется логическое умножение:

      0000000000001101

And

      0000000000010111

      000000000000101

Результат переводится в десятичную систему счисления, в нашем случае получится число 5. Таким образом, 13 and 23 = 5.

2.                Арифметическое ИЛИ (or). Здесь также оба операнда переводятся в двоичную систему, после чего над ними происходит логическое поразрядное сложение операндов по следующим правилам:

1 or 1 =1;

1 or 0 =1;

0 or 1 =1;

0 or 0 =0.

Пример:

Var A, B: integer;

Begin

A:=13;

B:=23;

Writeln (A or B);

End.

Над двоичным представлением значений А и В выполняется логическое сложение:

   0000000000001101

Or

   0000000000010111

   0000000000011111

После перевода результата в десятичную систему имеем 13 ог 23 =31.

3.                Арифметическое исключающее ИЛИ (хог). Здесь также оба операнда переводятся в двоичную систему, после чего над ними происходит логическая поразрядная операция хог по следующим правилам:

1 xor 1 = 0;

1 xor 0 = 1;

0 xor 1 = 1;

0 xor 0 = 0.

4.                Арифметическое отрицание (not). Эта операция выполняется над одним операндом. Применение операции not вызывает побитную инверсию двоичного представления числа. Например, рассмотрим операцию not 13.

            0000000000001101

Not a   11111111111110010

После перевода результата в десятичную систему получаем not 13 = -14.

Сдвиг влево (М shl L). Двоичное представление числа М сдвигается влево на L позиций. Рассмотрим пример использования операции shl: 17 shl3. Представляем число 17 в двоичной системе: 10001. Сдвигаем его на три позиции влево: 10001000. В десятичной системе это число 136: 17 shl 3 =136. Заметим, что сдвиг на один разряд влево соответствует умножению на 2, на два разряда - умножению на 4, на три - умножению на 8. Таким образом, операция Mshl L эквивалентна М • 2L.

Сдвиг вправо (М shr L). В этом случае двоичное представление числа М сдвигается вправо на L позиций, что эквивалентно целочисленному делению числа М на 2L.

Например, 25 shr 1 =12, 25 shr 3= 3.

Операции отношения выполняют сравнение двух операндов и определяют, истинно выражение или ложно. Их результат - логический. Определены следующие операции отношения: <, >, = . <= .>= ,<>.

Пример операций отношения:

3.14<>2, 6>4.

Операции отношения определены и над символьными переменными и строками:

'a'< 'b';

'abc'< 'abd'.

Логические операции выполняются над логическими данными. Определены следующие логические операции (табл.1).

t –true (истина), f—false ( ложь). 

В логических выражениях могут использоваться операции отношения, логические и арифметические.

Пример логического выражения:

(a +x) >( c + d* cos(y)) or (a > b)

В сложных выражениях порядок, в котором выполняются операции, соответствует приоритет операций. В Паскале приняты следующие приоритеты:

  1. унарные операции;

  2. *, /, div, mod, and, shl, shr;

  3. +, -, or, xor;

  4. =, <>, >, <, >=, <=.

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