Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2_изд_испр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

4.7. Заключительные замечания

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

Для языка Basic последовательность преобразования следующая: sbyteintegerlongsingledouble. Исключение: если один операнд имеет тип single, второй – тип long, то результат получает тип double. В случае невозможности преобразования к единому типу возникает ошибка: Type mismatchнесогласование типов.

Пример.

dim Operand1 as sbyte, Orerand2 as single, Operand3 as long, Operand4 as double

...................................................................................................................................

Operand1 + Operand2 single

Operand2 + Operand3 double

Operand1 + Operand3 long

Operand2 + Operand4 double

Для языка C схема автоматических арифметических преобразований аналогична. Исключение: данные float всегда преобразуются к типу double с тем, чтобы вычисления выполнялись с максимально возможной точностью.

Вопросы для самопроверки и контроля

Вопросы для самопроверки

  1. Чему равно выражение: -7\2? На каком языке оно написано?

  2. Известно целое значение n. Как определить младшую цифру числа?

  3. Как следует записать на языке C соотношение a<b<c?

  4. Как на языке Basic записать условие попадания т.M(x,y) в квадрат с ценром в начале координат и стороной a?

Контрольные вопросы

  1. В чем суть оператора ++?

  2. Что означает оператор %? Как записывается аналогичный оператор в другом изучаемом языке?

  3. В каком языке все операторы сравнения имеют одинаковый приоритет, а в каком нет?

  4. Как кратко записать условие, показывающее, что выражения x и y имеют одинаковый знак?

  5. Различаются ли правила обращения к функции в языках Basic и C?

5. ОСНОВНЫЕ ИНСТРУКЦИИ

Инструкция – это синтаксически завершенная единица языка, выражающая либо действие, либо объявление (декларацию).

Basic. Принято записывать по одной инструкции в строку, однако можно поместить и несколько через разделитель ":". Более того, инструкция может занимать несколько строк. В этом случае каждая строка, кроме последней, должна заканчиваться разделителем <пробел>_.

C. Инструкции записываются произвольно. Разделяются символом ";" . Исключение составляет символ }. После него разделитель ";" можно не ставить. Переносить на другую строку следует, не разрывая лексемы.

Инструкции выполняются в порядке их следования, если отсутствуют инструкции перехода.

В данном разделе будут рассмотрены не все, а наиболее употребительные инструкции. Остальные будут вводиться по ходу изложения.

5.1. Объявления

Служат для указания свойств (характеристик) компонентов данных. В данной части курса в качестве таких компонент фигурируют переменные и массивы. Во многих случаях одновременно с заданием компонент происходит выделение памяти под данные. Объявления такого рода принято называть определениями. Здесь будем рассматривать только определения. Определения переменных и массивов должны предшествовать манипуляциям над ними в тексте программы.

C

Для этой цели используются инструкции описания типа: int, short, float, double, char и другие.

Пример.

int Kol, Volume, ChisloStudentsOfCourse[5];

float Dlina, Weight, Matrix[10][10];

char Mistake[50], Message[100];

Замечание. Напомним, что ключевые слова используют малые буквы, в имена можно включать и те, и другие, причем транслятор различает большие и малые буквы.

Basic

В этом языке есть несколько инструкций для объявления. Пока введем только одну.

Формат:

dim <список>

<список>:=<элемент>[,<элемент>...]

<элемент>:={<переменная>|<массив>} as <тип>

Пример.

dim Kol as integer, Volume as integer, ChisloStudents(1 to 5 ) as integer

dim Dlina as single, Weight as single, Matrix(1 to 10, 1 to 10) as single

dim Mistake as string, Message as string

Замечание 1. Напомним, что в данной версии транслятора нижняя граница индекса всегда равна 0 (аналогично языку С), поэтому объявление вида ChisloStudents(1 to 5 ) неполностью использует отведенную под массив память и применять такие определения не рекомедуется. Определение целого массива из 5 элементов разумнее дать в виде ChisloStudents(4).

Замечание 2. В отличие от предыдущих версий Visual Basic 2008 не позволяет объявлять строки фиксированной длины вида Message as string*20.