- •Вопрос 1
- •Вопрос 2
- •Вопрос 3
- •Вопрос 4
- •Вопрос 5
- •Вопрос 6
- •Вопрос 8
- •Вопрос 9
- •Формальные свойства алгоритмов
- •Вопрос 10
- •Виды алгоритмов
- •Вопрос 12
- •Вопрос 13
- •3.2 Графический способ записи алгоритмов
- •Вопрос 14
- •Вопрос 15
- •Вопрос 16
- •Вопрос 20
- •Вопрос 21
- •Вопрос 62
- •Вопрос 22
- •Вопрос 23
- •Вопрос 24
- •Вопрос 25
- •Вопрос 26
- •Вопрос 27
- •Вопрос 28
- •Вопрос 29
- •Вопрос 30
- •Вопрос 31
- •Вопрос 32
- •Вопрос 33
- •Вопрос 34
- •Вопрос 35
- •Вопрос 37
- •Вопрос 39
- •Вопрос 40
- •Visual Basic. Типы данных в языке.
- •Вопрос 41
- •Вопрос 42
- •Вопрос 43
- •Вопрос 44
- •Вопрос 45 Математические функции
- •Функции преобразования данных
- •Функции даты и времени
- •Вопрос 46
- •Вопрос 47 Строковые функции
- •Вопрос 48
- •Visual Basic. Основные операторы.
- •Вопрос 49
- •Вопрос 50
- •Вопрос 51
- •Вопрос 52
- •Вопрос 53
- •Вопрос 54
- •Вопрос 55
- •Вопрос 57
- •Вопрос 59
- •Вопрос 60
- •Вопрос 61
- •Вопрос 62
- •Вопрос 63
- •1) Функция uBound служит для определения верхней границы (индекса самого последнего элемента) массива по заданному измерению.
- •2) Функция lBound (Lower Bound) служит для определения нижней границы (индекса самого первого элемента) массива по заданному измерению.
- •3) IsArray Служит для проверки, является ли переменная массивом. Применение функции IsArray особенно полезно для переменных типа Variant, содержащих массивы.
- •4) Функция Array служит для обработки массивов.
- •Вопрос 64
- •Характерные ошибки программирования
Вопрос 34
Основной задачей большинства программ является ввод, хранение, модификация и вывод некоторой информации. Для того чтобы программа могла на протяжении своего выполнения сохранять определенные данные, используются переменные и константы.
Имена, использующиеся для переменных, функций, меток и определяемых пользователем объекты, называются идентификаторами. Идентификаторы могут состоять как из одного, так и из нескольких символов, к которым относятся прописные и строчные латинские буквы, цифры и символ подчеркивания. При этом идентификатор обязательно должен начинаться с буквы или символа подчеркивания и не должен совпадать с ключевым словом с учетом регистра.
Данные, с которыми работает программа, хранятся в оперативной памяти. Естественно, что компилятору необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа.
Тип данных однозначно определяет:
внутреннее представление данных, а следовательно, и диапазон их возможных значений;
допустимые действия над данными (операции и функции).
Например, целые и вещественные числа, даже если они занимают одинаковый объем памяти, имеют совершенно разные диапазоны возможных значений; целые числа можно умножать друг на друга, а, например, символы — нельзя. Каждое выражение в программе имеет определенный тип. Компилятор использует информацию о типе при проверке допустимости описанных в программе действий.
Выражение — это правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами выражения могут быть константы, переменные и вызовы функций. Операции выполняются в определенном порядке в соответствии с приоритетами, как и в математике. Для изменения порядка выполнения операций используются круглые скобки, уровень их вложенности практически не ограничен. Результатом выражения всегда является значение определенного типа, который определяется типами операндов. Величины, участвующие в выражении, должны быть совместимых типов. Например, допускается использовать в одном выражении величины целых и вещественных типов. Результат такого выражения будет вещественным.
Операции целочисленной арифметики.
К операциям целочисленной арифметики относятся:
целочисленное деление div;
остаток от деления 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)
В сложных выражениях порядок, в котором выполняются операции, соответствует приоритет операций. В Паскале приняты следующие приоритеты:
унарные операции;
*, /, div, mod, and, shl, shr;
+, -, or, xor;
=, <>, >, <, >=, <=.
Использование скобок в выражениях позволяет менять порядок вычислений.