Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Программа на Delphi

                 Var F: File;
Файлы c типом состоят из однотипных компонент известной структуры. Допустим
прямой доступ к любой компоненте файла. Пример объявления файловых
переменных для файлов с типом:
                 Type
                       TRec = Record

                       A: Real;

                       B: Integer;

                       C: Char;

                       End;
                 Var
                       F : File of Real;

                       Q : File of String[100];

                       Fr: File of TRec;
В этом примере F объявлена как файловая переменная вещественного типа. Это
означает, что компонентами файла могут быть только вещественные значения.
Файловая переменная Q предназначена для доступа к файлам, которые состоят
из символьных строк длины 100. Файловая переменная Fr предназначена для
работы с файлами, которые состоят из записей типа TRec, объявленного в
секции Type.
                           8. Совместимость типов
Необходимым условием корректного вычисления выражений или выполнения
операторов присваивания является совместимость типов входящих в них
компонент.
Суть совместимости типов удобнее пояснить на примере простейших выражений,
которые состоят из одного (для одноместных операций) или двух (для
двухместных операций) компонент (операндов) и одной операции.
                      8.1. Совместимость по вычислению
Вычисление выражений возможно только при соблюдении следующих условий.
   1. Типы операций и операндов эквивалентны.
      Например, нельзя применять арифметические операции к логическим
      переменным и, наоборот, логические операции – к арифметическим
      переменным:
      Type
      R1, R2 : Real;
      L1, L2 : Integer;
      B1, B2: boolean;
      ...
      Not (R1 + R2) B1 + B2 'Иванов' + ' ' + 'Петр' {недопустимые выражения}
   2. Типы операндов эквивалентны.
   3. Типы операндов целые или вещественные, например:
             R1 + R2 L1 + R2 L2 / R1 / L1 {допустимые выражения}
   4. Один тип является базовым, а второй – ограниченным типом этого же
      базового типа.
      Type
      L11, L12 : Integer;
      K : -199 .. 199;
   1. Типы являются множествами, причем их базовые типы совместимы.
      Type
      L : set of 21 .. 2141;
      K : set of -199 .. 199;
   1. Один тип является строковым, а другой – также строковым либо
      символьным.
      Type
      L : String [34]; Q : String [23]; K: Char;
   2. Один тип является ссылочным, а другой – также ссылочным либо
      безтиповым указателем.
   3. Оба типа являются упакованными символьными массивами с одинаковым
      числом элементов.
   4. Один тип является строковым, а другой – также строковым типом, либо
      упакованным символьным массивом, либо символьным типом.
   5. Один имеет тип Variant, а другой – тип integer, real, string,
      character или Boolean.
   6. Оба типа операндов являются процедурными типами с одинаковым
      количеством параметров и идентичными порядковыми типами этих
      параметров. Для функций должны быть идентичны и типы результата.
                     8.2. Совместимость по присваиванию
Оператор присваивания считается корректным, если тип переменной,
расположенной в его левой части, совместим с типом выражения, располо-
женного в правой части. Выражение T2 может быть присвоено переменной T1,
если будут соблюдены следующие условия.
   1. Оба типа T1 и Т2 идентичны. Недопустимо присваивание файловых типов
      или структур, содержащих файловые типы (о файловых типах подробнее см.
      гл. 17).
   2. T1 и Т2 имеют совместимые простые типы.
   3. T1 и Т2 имеют вещественные типы.
   4. T1 и Т2 имеют целые типы.
   5. T1 и Т2 имеет тип PChar или другой строковый тип, и выражение
      представляет строковую константу.
   6. T1 и Т2 имеют строковые типы.
   7. T1 имеет строковый тип, а Т2 – символ или упакованная строка.
   8. T1 – длинная строка, а Т2 имеет тип PChar.
   9. T1 и Т2 имеют совместимые типы упакованных строк.
  10. .T1 и Т2 имеют совместимые множественные типы.
  11. .T1 и Т2 имеют совместимые Pointer-типы.
  12. .T1 имеет тип PChar или PWideChar, а T2 есть символьный массив вида
      array[0 .. n] of Char.
  13. .T1 и T2 имеют совместимые процедурные типы.
  14. .T1 имеет тип Variant, а T2 – один из типов integer, real, string,
      character или Boolean.
  15. .T1 имеет тип integer, real, string, character или Boolean, а Т2 – тип
      Variant.
                                9. Выражения
Вычислительная система выполняет вычислительные и управляющие операции по
командам, которые представлены в программе с помощью операторов.
Большинство таких операторов строится с использованием выражений, которые в
практике программирования играют большую роль, определяя способ и порядок
преобразования данных. Выражения состоят из операндов (значений, констант,
переменных, функций), соединенных с помощью операций. Для изменения порядка
выполнения операций могут быть использованы круглые скобки. Наиболее важную
роль играют арифметические, логические и строковые выражения.
                        9.1. Арифметические выражения
При описании арифметических выражений для простоты типом Integer обозначен
любой целый тип, а типом Real – любой вещественный тип. Выражение строится
с помощью арифметических значений, констант, переменных, функций,
арифметических операций. В выражениях можно применять круглые открывающие и
закрывающие скобки. При этом количество открывающих скобок должно быть
равно количеству закрывающих скобок.
При вычислении выражения операции выполняются в строго определенной
последовательности в соответствии с их приоритетом. Порядок выполнения
операций можно изменить применением блоков, включающих подвыражения,
заключенные в круглые скобки.
В языке Object Pascal существует шесть арифметических операций. Учитывая,
что арифметические операции образуют подмножество множества всех операций
языка, в табл. 7 показано абсолютное значение приоритета каждой операции.
                                                                   Таблица 7
|Операция  |Наименование          |Приоритет  |
|+         |Сложение              |2          |
|-         |Вычитание             |2          |
|*         |Умножение             |1          |
|/         |Деление               |1          |
|div       |Деление нацело        |1          |
|mod       |Остаток от деления    |1          |


При вычислении выражения его тип определяется типами операндов. Операндом
называется любая компонента, к которой применяется операция. Операндом
может быть, например, значение, константа, переменная или выражение,
заключенное в скобки. Типы элементарных выражений показаны в табл. 8.
                                                                   Таблица 8
|Операция|Тип операндов  |Тип результата |Пример             |
|+       |Integer, real  |integer, real  |X + Y              |
|–       |Integer, real  |integer, real  |Result - 1         |
|*       |Integer, real  |integer, real  |P * InterestRate   |
|/       |Integer, real  |real           |X / 2              |
|div     |Integer        |integer        |Total div UnitSize |
|mod     |Integer        |integer        |Y mod 6            |


Примеры:
     4*5 = 20, 6/5 = 1.2, 8+7 = 15, 7-3 = 4, 16 div 5 = 3, 16 mod 5 = 2.
Порядок выполнения операций определяется приоритетом операций и
расположением внутренних выражений, заключенных в круглые скобки. Все
операции в арифметическом выражении выполняются слева направо.
Пример:
|Выражение:                    |15 * ((25/5-5*9 + (j-8) * 7.55) /     |
|                              |8.67)                                 |
|Порядок выполнения операций:  |       8       2  5 3    6     1     4|
|                              |             7                        |


                          9.2. Логические выражения
Результатом вычисления логического выражения может быть одно из двух
логических значений: True (истина ) или False (ложь).
Логическое выражение строится с помощью других выражений, (арифметических,
строковых и др.), значений, констант, переменных, функций, логических
операций и логических отношений.
В языке существует четыре логических операций. Приоритет операций показан в
табл. 9.
                                                                   Таблица 9
|Операция |Наименование          |Приоритет  |
|Not      |Отрицание             |3          |
|And      |Конъюнкция            |4          |
|Or       |Дизъюнкция            |5          |
|Xor      |Спец. дизъюнкция      |6          |


Значения элементарных логических выражений, поясняющих назначе-ние этих
операций, приведены в табл. 10.
                                                                  Таблица 10
|A     |B     |not A  |A and B|A or B|A xor B|
|True  |True  |False  |True   |True  |False  |
|True  |False |False  |False  |True  |True   |
|False |True  |True   |False  |True  |True   |
|False |False |True   |False  |False |False  |


В табл. 11 представлены логические отношения.
                                                                  Таблица 11
|Отношение   |Наименование      |
|>           |Больше            |
|<           |Меньше            |
|>=          |Больше или равно  |
|<=          |Меньше или равно  |
|=           |Равно             |
|<>          |Не равно          |


Все отношения равноприоритетны.
Порядок выполнения операций при вычислении логического выра-жения
следующий:
    . сначала вычисляются арифметические выражения;
    . затем – отношения;
    . в последнюю очередь вычисляются логические операции.
           Примеры (для x=12, z = 0, y=1):
                                                                  Таблица 12
|Выражение                  |Результат  |
|5 >
Пред.678910След.
скачать работу

Программа на Delphi

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ