Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

76 1e7 12e7 13D123 1

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.6.2024

8. Все разновидности чисел INTEGER и REAL, представление чисел в Фортране, операции над числами

  1.  

Тип

Примеры явных констант

Разновидности и
диапазоны порядков

Пояснения

integer

–2147

integer*1 *2 *4   ±1010

Точное значение

Real

-1.76  1e7  1.2e7   
1.3
D+123
1.2
Q-1234

real* 4  10±38      7 цифр
real* 8  10±308     17 цифр
real*16 10± 4932 33 цифры

Неточное представление, неточное вычисление

Complex

(-1.76 , 1)

Пара вещественных чисел

неточно

Logical

.true.  .false.

Logical*1 *2 *4

1 бит

character

х=’     “OK

character*1 *32767

Кодировка ANSI

В Фортране 6 общепринятых операций над числами  

  1. смена знака    -x
  2. Сложение      x+y
  3. Вычитание    x-y
  4. Умножение   x*y знак * нельзя опускать
  5. Деление      x/y - в Си и Паскаль есть еще деление нацело
  6. Возведение в степень   x**y

3.5**3 = 3.5*3.5*3.5 3-целое

3.5**6.5 = exp( 6.5*log(3.5) ) 6.5-вещественное

9. Основные принципы записи формул в виде выражений, арифметические выражения и порядок действий при их вычислении

Числовые формулы - арифметические выражения

Осмысленная математическая формула, записанная по правилам Фортрана, называется арифметическим выражением. Правила записи выражений - это компромисс между способом, привычным для математика и способом, возможным для компьютера.

Основная идея записи формул  в языках программирования - превратить любую витиеватую многоэтажную математическую формулу в строку символов, пусть даже длинную. По известным правилам переноса ее можно записать в нескольких последовательных строках бланка. Необходимость записывать формулы в строку обусловлена тем, что  компиляторы вводят формулы последовательно символ за символом, как с клавиатуры. Основные принципы записи формулы в виде арифметического выражения развивают указанную идею и состоят в следующем:

• оформить формулу как длинную строку символов

• именовать все величины по смыслу, а не обозначать

• единообразно именовать, а не обозначать функции

• единообразно писать операции, скобки ( в Фортране - только круглые скобки)

• иметь в виду тот же тип результата операции, что и тип операндов - это соответствует тому, что в системе команд компьютера есть два разных комплекта команд - для целых чисел и для вещественных чисел, но нет команд со смешанными операндами

• иметь в виду, что результат вычисления выражения или его части с однотипными операндами лежит том же классе чисел

• иметь в виду, что результат вычисления любого смешанного выражения или его части всегда в самом широком классе чисел по отношению к операндам (самый узкий - целые, шире - вещественные, еще шире - комплексные числа)

Операнды арифметического (числового) выражения могут быть целого, вещественного или комплексного типа. В числовом выражении допускаются операции:

Операция

Порядок

Пример

Примечания

Вычисление функции

1

sin(X)

одноместная (унарная) операция

Возведение в степень

2

X**2

несколько подряд – справа налево 

Смена знака

3

X

одноместная (унарная) операция

Деление, умножение

4

X/Y, X*Y

несколько подряд – слева направо 

Сложение,  вычитание

5

X+Y, X-Y

несколько подряд – слева направо

Знаки двуместных операций - возведение в степень, умножение, деление, сложение и вычитание записываются между операндами. В отличие от математики, знак операции умножения опускать нельзя. Численное значение результата зависит от порядка выполнения операций. Если надо, порядок действий изменяют скобки; разрешаются только круглые. В выражении без скобок операции выполняются в порядке старшинства.

Строковое выражение

Операнды строкового выражения должны быть строкового типа. В строковом выражении допускается только одна операция – сцепление строк или конкатенация. Сцепление обозначается «//», например s=s1//s2, символы в строке s нумеруются слева направо как 1,2,…len(s), len(s1//s2)=len(s1)+len(s2).  Подстрока - несколько символов строки подряд.

Пример: результат вычисления ba =ab(14:26)//ab(1:13) – строка, в которой меняются местами первая и вторая половины алфавита:

Character*26 :: ba, ab=’abcdefghijklmnopqrstuvwxyz

Обратите внимание на то, что оператор s1=s1//s2 с повторением s1 слева и справа от “=” не имеет смысла. В Фортране строки постоянной длины, а именно той, что заявлена в описании строки. В то же время оператор s1=trim(s1)//s2 вполне осмыслен, если в s1 хвостовых пробелов, не менее чем символов в  s2. Функция trim(s1) обрезает хвостовые пробелы.

Логическое выражение

Логическое выражение имеет значение «истина» или «ложь», состоя из:

  1.  логических констант и переменных;
  2.  пяти логических операций с операндами  логического типа;
  3.  шести отношений, которые сравнивают либо два числовых выражения, либо два символьных выражения.

Результат вычисления отношения – это либо .true. – «истина» либо  .false.– «ложь». В Фортране шесть операций отношения

Отношения

Фортран 90
сейчас пишут так

В стиле Фортран 77,
устаревающее

меньше чем A<b

a<b

a .lt. b

меньше или равно Ab

a<=b

a .le. b

равно A=b

k==m

a .eq. b

не равно Ab

k/=m

a .ne. b

больше или равно Ab

a>=b

a .ge. b

больше чем a>b

a>b

a .gt. b

Отношения вычисляются после вычисления их операндов. Например, при A=2, B=0 для отношения  A+3 >B  порядок действий такой: сначала вычисляется А+3 и получается 5; затем 5 сравнивается с В, которое равно 0; результат вычисления выражения 5>0 – «истина».

Логические операции выполняются после вычисления отношений. В Фортране пять логических операций

Операция

Обозначение

Старшинство

Пример

Отрицание НЕ

.not.

1

.not.a

Конъюнкция И

.and.

2

a.and.b

Дизъюнкция ИЛИ

.or.

3

a.or.b

Эквивалентность

.eqv.

4

a.eqv.b

Неэквивалентность

.neqv.

4

a.neqv.b

Операция .not.a является, как и (x), одноместной (унарной) и пишется перед операндом, остальные знаки логических операций записываются между операндами. Две логические операции могут следовать в выражении непосредственно друг за другом, только если второй операцией является операция отрицания. Например, допустимо    a.and. .not.b.

Введем обозначения: T – «истина» и F – «ложь». Строки и столбцы таблиц истинности помечены значениям операндов, а на пересечении строки и столбца записан результат двухместной операции

.AND.

F

T

.OR.

F

T

F

F

F

F

F

T

T

F

T

T

T

T

.EQV.

F

T

.NEQV.

F

T

F

T

F

F

F

T

T

F

T

T

T

F

Операция .not. – одноместная и дает результат «истина», если значение операнда «ложь», и результат «ложь», если значение операнда «истина»

.NOT.

F

T

T

F

Пример логического выражения: a>3 .and.  a<5. Выражение истинно, когда оба отношения истинны, то есть а(3,5).

Сложные выражения вычисляются в следующем порядке:

  1.  числовые операции  или строковые операции;
  2.  операции отношения;
  3.  логические операции.

10. Логические выражения и порядок действий при их вычислении. Интерпретация отношений, логических значений, операций, выражений. Булева алгебра и ее законы

Осмысленная логическая формула, изучаемая в математической логике и записанная по правилам Фортрана, называется логическим выражением. Принципы написания логических выражений те же, что и для числовых формул

  1. вытянуть формулу в строку символов
  2. именовать по смыслу все величины, а не обозначать буквами разнообразных алфавитов
  3. писать единообразно знаки функций, операции, скобки
  4. имеются аналогии в сопоставлении
  5. логического и обычного умножения,
  6. логического и обычного сложения,
  7. логического и обычного отрицания
  8. для лучшего понимания полезно сопоставлять понятия алгебры логики и обычной алгебры

В математической логике имеют дело с истинностью высказываний, число “1” интерпретируют как TRUE - истину, а число “0” как FALSE- ложь. Именно эти слова, окруженные точками, выбраны в качестве логических констант в ФОРТРАНе. Операндами в логической формуле являются логические переменные, отношения и подвыражения, каждое из которых принимает одно из двух указанных значений. Значение кодируется в компьютере одним битом из 4, 2 или 1 байтов. Логические переменные и логические именованные константы надо описывать в операторе описания типа, например

Logical L2, h4;    Logical, Parameter ::On=.TRUE.

Логические выражения используются

  1. в логическом операторе присваивания
  2. при инициализации
  3. как элемент списка вывода
  4. для записи условий в операторах IF, DO и WHERE
  5. вообще в каждом языке программирования и в электронных таблицах, наподобие EXCEL
  6. в качестве аргументов функций и процедур

Логическое выражение имеет значение «истина» или «ложь», состоя из:

  1.  логических констант и переменных;
  2.  пяти логических операций с операндами  логического типа;
  3.  выражения, либо два символьных выражения.

Результат вычисления отношения – это либо .true. – «истина» либо  .false.– «ложь». В Фортране шесть операций отношения

Отношения

Фортран 90
сейчас пишут так

В стиле Фортран 77,
устаревающее

меньше чем A<b

a<b

a .lt. b

меньше или равно Ab

a<=b

a .le. b

равно A=b

k==m

a .eq. b

не равно Ab

k/=m

a .ne. b

больше или равно Ab

a>=b

a .ge. b

больше чем a>b

a>b

a .gt. b

Отношения вычисляются после вычисления их операндов. Например, при A=2, B=0 для отношения  A+3 >B  порядок действий такой: сначала вычисляется А+3 и получается 5; затем 5 сравнивается с В, которое равно 0; результат вычисления выражения 5>0 – «истина».

Логические операции выполняются после вычисления отношений. В Фортране пять логических операций(Булева алгебра)

Операция

Обозначение

Старшинство

Пример

Отрицание НЕ

.not.

1

.not.a

Конъюнкция И

.and.

2

a.and.b

Дизъюнкция ИЛИ

.or.

3

a.or.b

Эквивалентность

.eqv.

4

a.eqv.b

Неэквивалентность

.neqv.

4

a.neqv.b

Операция .not.a является, как и (x), одноместной (унарной) и пишется перед операндом, остальные знаки логических операций записываются между операндами. Две логические операции могут следовать в выражении непосредственно друг за другом, только если второй операцией является операция отрицания. Например, допустимо    a.and. .not.b.

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)

По виду блок-схема та же, но в прямоугольнике единственный простой оператор

13. Сравнение трех видов циклов, вспомогательные операторы

Циклы – конструкции DO

Циклом в программе называют группу (блок) многократно выполняемых операторов.  Конструкция do обрамляет цикл

do

блок_do

enddo

Имеется три разновидности циклов в Фортране:

  1.  бесконечный цикл;
  2.  итеративный цикл (цикл по условию);
  3.  цикл по переменной  (с заранее известным числом повторений).

Бесконечный цикл

Блок-схема

Конструкция Do

do 

 блок_do, в том числе

 if (на_выход)  exit

enddo  ! только повтор do 

Чтобы выполнение цикла когда-либо закончилось, среди операторов блока_DO должен быть хотя бы один exit с условием выхода из цикла.

Цикл по условию (итеративный цикл)

Блок-схема

Конструкция Do

Пока условие выполняется, цикл продолжается

Do while(условие) 

 блок_do

enddo ! только повтор do

Цикл по переменной

Переменная в операторе DO – предпочтительнее целая, но также допускается вещественная или вещественная двойной точности. Формула расчета числа повторений цикла .

Начало xn, конец xk и шаг step – константы, переменные или выражения одного из перечисленных типов. Функция int() вычисляет целую часть указанного частного, отбрасывая дробную, без округления. Результат max :  
max (0, +) => +    max (0, –) => 0   max (0, 0) => 0 .
Опуская подробности, цикл рисуют так:

Блок-схема

Конструкция Do

do переменная = xn, xk, step

 блок_do

enddo 

Цикл не выполнится ни разу, то есть kp=0, если

или

Шаг цикла step регламентируется следующим образом:

  1.  step≠0;
  2.  эквивалентны Do i= 1,10,1  и  Do i = 1,10 – по умолчанию step=1;
  3.  если step>0, x возрастает, по окончании цикла x > xk;
  4.  если step<0, x убывает, по окончании цикла x < xk.

Переменная цикла x изменяется по закону арифметической прогрессии. Для понимания того, как это происходит, покажем подробную блок-схему, в которой проясняются все детали и правила для цикла по переменной.

14. Цикл с заранее известным числом повторений, его подробная блок-схема

Подробная блок-схема цикла по переменной

Блок-схема

Пояснения

Здесь  х – переменная цикла;

xn, xk, step – константы, переменные или выражения.

 1) do x=xn,xk,step

 2)    блок_do

 3) enddo

 4) продолжение

enddo – это пункт (3), включающий в себя 3 действия:

  1.  изменение переменной x,
  2.  уменьшение k на 1,
  3.  переход к (1).

В соответствии с подробной блок-схемой цикла по переменной выполнение цикла регламентируется следующими правилами:

  1.  переменная x в цикле do изменяется автоматически по закону арифметической прогрессии – изменять ее в блоке_do запрещено;
  2.  не разрешается входить внутрь блока_do извне, поскольку в этом случае не определено число повторений цикла kp и переменная x;
  3.  переменные xn, xk, step можно изменять в цикле – это не повлияет на число повторений уже запущенного цикла;
  4.  оператор Cycle, встретившийся в блоке_do, прерывает пункт (2) и вызывает переход к enddo – пункту (3);
  5.  оператор Exit, встретившийся в блоке_do, прерывает цикл, завершает его досрочно и вызывает переход к пункту (4) – на оператор непосредственно следующий в тексте за end do;
  6.  при нормальном завершении цикла переменная x достигает значения x  =  xn + step *kp, а при досрочном выходе сохраняется достигнутое значение x из [xn,xk].

Цикл по вещественной переменной x имеет неустойчивый характер:

  1.  при некоторых xn, xk, step цикл выполняется для значения x = xk;
  2.  при других xn, xk, step цикл пропускает последнее значение x = xk.

Причина: ошибка в вычислении kp и накопление погрешности округления в  x=x+step, особенно при сравнительно малом step по отношению к x.

Такой цикл можно скорректировать, возможны два варианта:

  1.  переделать радикально – построить цикл по целой переменной int, через которую выразить вещественную переменную x. Количество повторений kp при этом следует рассчитать самостоятельно перед циклом; int будет изменяться точно, x не станет накапливать погрешность, хотя разовая погрешность сохранится

integer int, kp; real x

kp = . . .  !  количество повторений цикла

do int = 0, kp-1  !    kp – число повторений цикла

 x = xn + int * step

 ! содержимое прежнего блока_do

enddo

  1.  «подправить» цикл по вещественной переменной, «обманув»  Do и  переписав его так:   do x = xn, xk + step/2, step  .

Среди операторов блока_do может встретиться конструкция Do. В этом случае говорят о вложенном цикле. Оценивая количество повторений оператора WRITE внутри вложенного цикла в примере, показанном ниже, необходимо помнить, что при каждом повторении внешнего цикла, внутренний цикл повторяется заново:

Пример вложенных конструкций Do

DO y = -1.0, 1.1, 0.2    !   11 раз

do x = -1.0, 1.1, 0.2   !   11 раз

   WRITE(1,*) x,y         !   121=11*11 раз

enddo

ENDDO

В файл будет выведена 121 пара значений х и y.




1. философия техники в своей работе
2. чужой религиозную рознь и нетерпимость
3. Античная культура
4. МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им1
5. Тема 2 Технологические процессы обработки информации 1
6. Коломенский медицинский колледж Учебная сестринская история болезни стационарного б
7. Женские образы в произведениях Н. С. Лескова
8. Административно-правовые и организационные основы лицензирования отдельных видов деятельности в Республике Беларусь
9. тематическая модель Обозначим через хij ~ количество деталей распиленного из досок iой партии для j ~ ой де
10. Реферат Выполнил- Ф
11. 15 пен 16 жаста~ы ~ызметкерлерге белгіленген ~ыс~артыл~ан ж~мыс аптасыны~ ~закты~ы-24 са~ат; 16 жастан 18 жас
12. Якості людини які потрібні для спілкування Мета Навчальна закріплення та узагальнення знань учнів пр
13. а определяемая наличием или внезапным появлением на рабочем месте производственном участке опасной зоны.html
14. Нормированное пространство Банахово пространство
15. Проблема групп в социальной психологии
16. тема об~єктивних закономірностей
17. Механизмы преодоления убыточности предприятий и обеспечения их финансовой устойчивост
18. Комплексное нормирование работ при изготовлении машины
19. Анализ финансового состояния предприятия1
20. Глухарева ЛИ Права человека в современном мире