- •8. Все разновидности чисел integer и real, представление чисел в Фортране, операции над числами
- •Строковое выражение
- •Логическое выражение
- •10. Логические выражения и порядок действий при их вычислении. Интерпретация отношений, логических значений, операций, выражений. Булева алгебра и ее законы
- •11. Оператор присваивания, арифметический, логический, строковый. Смешанные числовые выражения и порядок их вычислений
- •12. Структурный if, одноблочный if, логический if, многоблочный if Ветвления – конструкция If
- •13. Сравнение трех видов циклов, вспомогательные операторы
- •Цикл по переменной
- •14. Цикл с заранее известным числом повторений, его подробная блок-схема
11. Оператор присваивания, арифметический, логический, строковый. Смешанные числовые выражения и порядок их вычислений
Оператор присваивания переменная = выражение
позволяет сохранить в переменной значение, вычисленное по формуле, в данном случае знак "=" используется не как знак тождества, а как знак присваивания.
Имеется три разновидности оператора присваивания
· арифметический оператор присваивания
Числовая_переменная = арифметическое_выражение
· логический оператор присваивания
логическая_переменная = логическое_выражение
· строковый оператор присваивания
строковая_переменная = строковое_выражение
Относительно выражения справа от "=" и переменной слева от "=" в логическом операторе присваивания действуют следующие правила
· оба должны быть одного и того же логического типа logical, но могут иметь не одинаковые разновидности logical*4 logical*2 logical*1
· сначала вычисляется логическое выражение
· в случае одинаковых разновидностей результат вычисления выражения будет сразу присвоен переменной слева от "="
· в случае не одинаковых разновидностей (разнятся по числу байтов) до присваивания изменяется форма представления результата по числу байтов в ПК
· потом результат присваивается переменной
Относительно строкового выражения справа от "=" и переменной слева от "=" в строковом операторе присваивания действуют следующие правила
· оба должны быть одного и того же строкового типа character, но могут иметь не одинаковую длину строки, указанную в character * длина , заметим, что просто character подразумевает длину строки равную 1
· сначала вычисляется строковое выражение
· в случае одинаковых длин строк результат вычисления выражения будет сразу присвоен переменной слева от "="
· в случае не одинаковых длин строк (разнятся по числу символов-байтов) до присваивания изменяется длина строки результата по числу байтов на длину строки переменной
· результат справа усекается, если результат длиннее переменной
· результат справа дополняется пробелами, если результат короче переменной
· потом результат присваивается переменной
Относительно выражения справа от "=" и переменной слева от "=" в наиболее сложном арифметическом операторе присваивания действуют следующие правила
· обязательно оба они должны быть числового типа из integer, real, complex
· не обязательно оба они должны быть одного и того же типа и одной и той же разновидности
· сначала вычисляется арифметическое выражение справа от "=" с автоматическим определением типа выражения и всех его подвыражений
· в случае одинаковых типов и одинаковых разновидностей у обоих результат вычисления выражения будет сразу присвоен переменной слева от знака "="
· в случае разных типов до присваивания тип результата вычисления арифметического выражения будет преобразован к типу числовой переменной
· в случае одинаковых типов, но не одинаковых разновидностей (разнятся по числу байтов) до присваивания изменяется форма представления числа в компьютере по числу байтов
12. Структурный if, одноблочный if, логический if, многоблочный if Ветвления – конструкция If
Под блоком в Фортране понимают один или несколько выполняемых операторов внутри составного оператора. Передача управления извне внутрь блока запрещена. Конструкции if различаются по числу блоков 0, 1, 2, 3, …. Для реализации многоблочного разветвления имеется расширение elseif (условие) then , а также конструкция, называемая переключателем Select case по целочисленной или символьной переменной.
Двухблочный (структурный) условный оператор |
|
Блок-схема |
Конструкция If |
|
If (логическое_выражение) then блок_then между then и else else блок_else между else и endif endif |
Одноблочный условный оператор (нет блока_else) |
|
Блок-схема |
Конструкция If |
|
If (логическое_выражение) then блок_then между then и endif endif |
Безблочный, по-другому логический, условный оператор |
|
Блок-схема |
Конструкция If |
|
If (логическое_выражение) оператор Пример If (x<0) y=abs(x) По виду блок-схема та же, но в прямоугольнике – единственный простой оператор |
