Лекции. Основные понятия и определения
![]()
|
Вопросы для самопроверки и контроляВопросы для самопроверки1. Каковы примерно максимальные целое и вещественные значения? 2. В каком языке отсутствует логический тип данных? 3. Есть ли отличия в правилах записи строковых литералов в языках C и Basic? 4. Можно ли в языке C задать произвольную нижнюю границу индекса? 5. Что такое длина измерения массива? 6. Можно ли объявить массив произвольных размеров? Если да, то в каком языке? 7. В каком языке есть ключевое слово для описания структур? Контрольные вопросы1. Чем отличаются операции над целыми данными и данными с плавающей точкой? 2. Как можно имитировать логический тип данных в языке C? 3. Как задать переменные типа string в языке C? 4. Чем отличается описание массива в языках C и Basic? 5. Есть ли в языке Basic возможность представления структур? 4. ВЫРАЖЕНИЯВыражение – это представление в тексте программы значения. Оно включает в себя ключевые слова, операторы, переменные, литералы и функции. В результате вычисления этой комбинации может быть получено значение некоторого типа данных. Оператор – это символ(ы) или ключевое слово, обозначающее некоторое действие над элементами выражения. Основные группы операторов: - арифметические; - сравнения; - логические; - конкатенации (сцепления символьных строк). Если в одном выражении встречаются операторы разных групп, то порядок вычисления определяется приоритетом (порядок вычисления сверху вниз): Арифметические ↓ Конкатенация ↓ Сравнения ↓ Логические Для изменения порядка вычисления выражения (не в соответствии с приоритетом операторов) часть выражения заключают в круглые скобки. Замечание. Полный список операторов и их приоритет будет изложен в разделе 11. В зависимости от числа операндов различают одноместные (унарные) и двуместные (бинарные) операторы. Пример. a-b – бинарный оператор; -a – унарный оператор. 4.1. Арифметические операторыОсновныеС Basic возведение в степень нет ^ умножение * * деление / / сложение + + вычитание - - Дополнительныеприсвоение знака + - + - деление нацело нет \ остаток от деления % Mod увеличение, уменьшение ++ -- нет Приоритет+(1) -(1) ++ -- ^ * / % + -(1) +(2) -(2) * / \ Mod +(2) -(2) Замечания. 1. Числа в скобках указывают число операндов. 2. Двуместные операторы с одинаковым приоритетом в одном выражении выполняются в порядке записи слева направо. Рассмотрим особенности выполнения некоторых операторов. C1. При делении целого на целое результат – целый. Дробная часть отбрасывается. 2. Оператор % допустим только с целыми операндами, с другими вызывает ошибку во время трансляции. Результат имеет знак делимого. Пример. 9/5→1 10/5→2 -5/3→-1 -5/-3→1 5/-3→-1 9%5→4 10%5→0 -5%-3→-2 5%-3→2 -5%3→-2 3. Всегда выполняется соотношение для целых: a=a/b*b+a%b. 4. Операторы ++ и -- означают увеличение и уменьшение соответственно значения переменной на 1. Пример. k=4 k++ → k=5 m=-12 m-- → m=-13 BasicРезультаты выполнения операторов \ и Mod для целых операндов совпадают с результатами выполнения операторов / и % языка Си. Для операндов с плавающей точкой результаты вычисляются по замысловатым правилам и могут давать неожиданные результаты из-за ошибок округления, поэтому подобные операции выполнять не рекомендуется. 4.2. Операторы конкатенацииПоскольку в языке C нет типа данных string, там отсутствуют и соответствующие операторы. Работа со строками в этом языке выполняется с помощью функций и будет рассмотрена позже. В языке Basic для этой цели применяются операторы: & + Оператор + выполняет сцепление, если оба операнда имеют тип String. В противном случае – это оператор сложения. Пример. "Собака" & " Бобик" "Кошка" + " Мурка" |