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

Введение

Вычислительная техника, использование передовых программных продуктов является необходимой и неотъемлемой частью работы современного инженера. Широкое и разнообразное использование ЭВМ выдвигает высокие требования к их программному обеспечению. В то же время процесс создания программ требует от специалиста, как проявления творчества, так и владения специальными знаниями и умениями.

Общепризнанно, что с момента разработки и до сих пор Фортран является лучшим языком для решения инженерных и научных задач, получив широкое распространение среди пользователей, занимающихся вопросами численного моделирования.

Название языка Фортран произошло от Formula Translator – переводчик формул. В истории программирования Фортран – живой классический язык. Не одно поколение программистов выросло на Фортране. Хотя многие критиковали Фортран за “примитивность”, но как оказалось, именно простота и четкость помогли ему жить и постоянно развиваться, сохраняя преемственность, совершенствуясь и проходя стандартизацию.

Это объясняется следующими причинами:

1. Существованием огромных фондов прикладных программ на Фортране, накопленных за предыдущий период.

2. Наличием эффективных трансляторов для различных типов машин. Высокой эффективностью программного кода.

3. Переносимостью на другие типы ЭВМ, работающих в различных операционных системах, что достигается наличием стандартов языка.

4. Простотой конструкций языка.

С момента создания первой системы Фортран фирмой IBM в 1950 г. по сегодняшний день было принято три стандарта языка. Все стандарты Фортран предусматривают полную совместимость "снизу-вверх". Первый стандарт Фортран 66 был принят в 1966 г., второй стандарт, Фортран 77, — в 1978 г. В 1992 г. был принят новый стандарт — Fortran 90, который и является предметом изучения. В конце 2004 года опубликован новый международный стандарт языка Фортран - Фортран 2003.

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

Часть 1. Базовые вычислительные процессы и их реализация на языке Фортран

Тема 1.Алгоритм и его свойства. Основные понятия языка Фортран. Арифметические и логические выражения. Разработка и реализация программ с линейной структурой

Алгоритм и его свойства.

Алгоритм – это точное предписание, которое задает процесс, начинающийся с произвольного исходного данного и направленный на получение полностью определяемого этим исходным данным результата. Алгоритм есть формальное предписание (указание), однозначно определяющее содержание и последовательность операций, переводящих определенную совокупность исходных данных в искомый результат.

Процесс разработки алгоритма называется алгоритмизацией и представляет собой процедуру последовательного преобразования данных, называемых конструктивными элементам, и происходящую дискретными «шагами».

Свойства алгоритмов (требования к алгоритмам):

1. Дискретность. Процесс решения задачи должен быть разбит на последовательность отдельных шагов. Образованная структура алгоритма оказывается прерывной (дискретной): только выполнив одну команду, исполнитель сможет приступить к выполнению следующей

2. Понятность. Алгоритм должен быть понятен исполнителю, и исполнитель должен быть в состоянии выполнить его команды.

3. Детерминированность (определенность). Алгоритм не должен содержать команды, смысл которых может восприниматься неоднозначно. (Например, робот будет поставлен в тупик командой "Взять две-три ложки песка": что значит "две-три"?, какого песка?). Недопустимы ситуации, когда после выполнения очередной команды исполнителю не ясно, какую команду выполнять на следующем шаге. Нарушение этого приводит к тому, что одна и та же команда после выполнения разными исполнителями дает неодинаковый результат.

4. Результативность. При точном исполнении всех команд алгоритма процесс решения задачи должен прекратиться за конечное число шагов и при этом должен быть получен определенный постановкой задачи ответ.

5. Массовость. Необходимо разрабатывать алгоритмы, обеспечивающие решение всего класса задач данного типа. Например, если составляется алгоритм решения квадратного уравнения ах2 +вх+ с= 0, он должен обеспечивать возможность решения для любых допустимых исходных значений коэффициентов а, в. с.

Алгоритм может быть представлен в текстовом или графическом виде.

Блок-схема – это графическое представление хода решения задачи на ЭВМ.

Таблица 1.1 Основные элементы блок-схем:

Название Символ (рисунок) Выполняемая функция (пояснение)
1. Блок вычислений Выполняет вычислительное действие или группу действий
2. Логический блок Выбор направления выполнения алгоритма в зависимости от условия
3. Блоки ввода/вывода Ввод или вывод данных вне зависимости от физического носителя
Вывод данных на печатающее устройство
4. Начало/конец (вход/выход) Начало или конец программы, вход или выход в подпрограмму
5. Предопределенный процесс Вычисления по стандартной или пользовательской подпрограмме
6. Блок модификации Выполнение действий, изменяющих пункты алгоритма
7. Соединитель Указание связи между прерванными линиями в пределах одной страницы
8. Межстраничный соединитель Указание связи между частями схемы, расположенной на разных страницах

Правила построения блок-схем:

1. Блок-схема выстраивается в одном направлении либо сверху вниз, либо слева направо

2. Все повороты соединительных линий выполняются под углом 90 градусов

Линейнымназывается алгоритм, в котором результат получается путем однократного выполнения заданной последовательности действий при любых значениях исходных данных. Операторы программы выполняются последовательно, один за другим, в соответствии с их расположением в программе (рис.1.1).

Рис. 1.1. Алгоритмическая структура следование

1.2 Основные понятия языка Фортран

Алгоритмический язык – это способ описания алгоритма, понятный человеку и машине.

Алфавит алгоритмического языка Фортран состоит из 26 букв английского алфавита, 10 цифр, символа пробел и специальных символов: =, +, -, *,/, (, ), ., $,', :, _, #, &, <, >.

Элементы языка:

  • ключевые слова и имена;
  • переменные, константы;
  • выражения;
  • операторы;
  • программные блоки.

Ключевые слова – последовательность литер, имеющая определенный смысл в языке, например, названия типов переменных, команды ввода-вывода и др. Примеры ключевых слов: integer, real, if, else, end, endif.

Имя можно дать константе, переменной, массиву, производному типу данных, конструкции, программе, процедуре, функции, модулю. В отличие от математики в программировании объекты принято не обозначать, а именовать. Например, velocity лучше, чем V.

В Фортране действует следующее соглашение об именах

· в именах разрешается использовать только английские буквы, причем малые и большие буквы не различаются компилятором

· помимо букв разрешается использовать цифры 0:9 и специальные символы “_” и “$”

· первым символом имени может быть только буква

· в Ф-90 допускается длина имени до 31 символа, в Ф-77 – до 8

· пробелы и знаки препинания, русские буквы, а также знаки операций не допустимы в именах

Переменная и константа – это ячейки памяти, которым для простоты обращения дают уникальные имена. Переменная и константа могут содержать только одно значение. При чем во время работы программы значение, хранящееся в переменной, может изменяться, а в константе постоянно.

Перед использованием переменные и константы объявляют при помощи неисполняемых операторов описания. При объявлении применяются операторы, эти операторы называют еще типами данных. В Фортране используются следующие типы данных (табл.1.2):

Таблица 1.2 Типы данных

ТИП FORTRAN Пример
Целые INTEGER 5
Вещественные REAL 3.14159
Комплексные COMPLEX (1.3,0.00)
Логические LOGICAL .true.
Символьные CHARACTER 'd'

Различают 5 типов констант:

· три числовых типа - целые, вещественные, комплексные

· логические

· строки

Каждому типу соответствует своя область допустимых значений, особый способ хранения в памяти компьютера и набор команд для их обработки. Различают явные и именованные константы. Именованные константы, также как и переменные, объявляют в описаниях типа. Тип явной константы понятен по ее внешнему виду.

Целая константа

· записывается в виде последовательности цифр, которым предшествует знак “-“ или “+” (его можно опустить)

· лежит в диапазоне от –2 147 483 648 до 2 147 483 647.

· в памяти компьютера представляется точно

· действия над целыми выполняются точно

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

· примеры записи целых констант: 7 +15 -262

Вещественная константа

· содержит не десятичную запятую, а десятичную точку “.“, как принято в Англии и Америке, например, 3.14 или 3. , причем точку, как признак вещественной константы, опускать нельзя, в то время как нулевую целую или дробную часть числа - можно

· для малых и больших по порядку чисел предпочтительнее экспоненциальную форма 1.0Е-7 (число с мантиссой и порядком, обозначаемым “Е”, вместо "∙10 в степени") вместо фиксированной формы 0.0000001

· лежит в диапазонах
либо отрицательных чисел из [–3.40*1038,–1.17*10-38]
либо ровно 0.0
либо положительных чисел из [+1.17*10-38,+3.40*1038]

· число в памяти компьютера предсталено нормализованной мантиссой 0.1≤m<1, содержащей 7 цифр, и порядком из диапазона ±38

· даже в допустимом диапазоне в памяти компьютера предстаимо не любое число, так что часто хранится приближенное значение

· действия над вещественными числами выполняются с ошибками округления

· примеры записи вещественных констант
3.14 -7.0 160000.0 0.0000001 1.6Е+5 -0.0000000000023
ровно ноль можно записать так 0.0 0. .0 и даже просто точкой.

· при двойной точности 1.6D+5 порядок, обозначен D вместо Е

Комплексная константа

· записывается в виде упорядоченной пары вещественных констант, разделенных символом “,“ и заключенных в круглые скобки, например, (-10., 8.2)

· -10. - соответствует действительной части комплексного числа -10+8,2i

· 8.2 - соответствует мнимой части комплексного числа -10+8,2i

Логические константы: .TRUE.–"истина" и .FALSE.– "ложь".

Символьная (строковая) константа

· это последовательность символов, заключенная в апострофы ‘текст’ или двойные кавычки “O’K”

· количество символов в константе называется длиной строковой константы, максимум 32767

· символ “пробел” является значащим

· пример: ‘при х=’ - это строковая константа из шести символов

Именованные константы, задаются в операторе parameter, например

real, parameter :: pi=3.14, e=2.71

Переменные в Фортране различают по типу: целые, вещественные, комплексные, логические, символьные. Перечисленные 5 типов называют базовыми, на основе которых программист может определять в операторе type производные типы по своему усмотрению. Целесообразно для каждой переменной объявлять ее тип, не полагаясь на принцип "по умолчанию", который отменяется оператором implicit none

Переменную объявляют

· целой в integer , пример: integer x1, y1, m или с инициализацией некоторых переменных integer :: number=1, sec=2, al;

· вещественной в real , пример: real X, I15, Z;

· комплексной в complex , пример: complex complX, complY, complZ;

· логической в операторе logical , пример: logical L1, L2;

· строковой в операторе character,
- - после “*” указывают длину строки для всех переменных из списка, например, character *70 STIN, STOUT;

- character без указания длины, например, character ONE, first подразумевает длину, равную 1

Перед использованием переменной в правой части выражений ее надо инициализировать, то присвоить значение соответствующего типа.

Все описанные элементы подвергаются обработке компилятором.

Комментарий - текст, который компилятор пропускает. Если программисту нужно записать в тексте программы любую информацию, например, поясняющую код программы, названия и суть модулей, заметки "на полях", он может сделать это с помощью комментариев. Комментарий начинается с восклицательного знака «!».

Программа - это запись последовательности инструкций (операторов). Операторы бывают исполняемые и неисполняемые. Исполняемые операторы задают некоторые действия, которые должны быть выполнены. Неисполняемые определяют различные свойства и соглашения в программе. Объекты, которые подлежат описанию или над которыми выполняются действия называются операндами.

Правила записи программы в свободном формате:

· длина строки текста не превышает 132 символа;

· запись оператора может начинаться с любой позиции строки;

· на одной строке могут размещаться несколько разделенных точкой с запятой операторов;

· если строка текста завершается символом &, то последующая строка рассматривается как строка продолжения;

· в операторе FPSможет быть до 7200 символов; число строк продолжения при свободном формате не может быть более 54;

· любые расположенные между восклицательным знаком и концом строки символы рассматриваются как комментарий.

Файл с программой на языке Фортран имеет расширение .F90.

1.3 Арифметические и логические выражения

Выражения – это конструкция, определяющая последовательность действий, которые необходимо выполнить для вычисления какой-либо величины. Выражения состоят из констант, переменных, ссылок на стандартные функции (см. Приложение А) и функции пользователя, операций с одним операндом, например -Х, или несколькими операндами, например X+Y, круглых скобок. Выражение соответствует осмысленной математической формуле, записанной в отличие от математики последовательно символ за символом, то есть в строку. В отличие от математики объекты не обозначают буквами, а функции спецзначками, - все именуются. Выражения, в зависимости от типа объектов, входящих в них, разбивают на

· арифметические, выполняющие действия над числами целого, вещественного или комплексного типа

· логические, выполняющие действия над логическими величинами

· строковые, выполняющие действия над строками из символов

Арифметические выражения

Доступные математические операции и порядок их выполнения приведен в таблице ниже

Таблица 1.3 Приоритет операций в арифметических выражениях

Операция Название Уровень Порядок выполнения Пример
Функция(х) см. приложение А Сначала действия в скобках Sin(x+1)
** Возведение в степень Справа налево X**3
* Умножение Слева направо X*y
/ Деление Слева направо x/y
+ Сложение Слева направо X+y
- Вычитание Слева направо x-y
- Смена знака Слева направо -x

Вычисления в арифметических выражениях производят с лева на право, согласно приоритету операции (табл. 1.3). Для изменения порядка действий используются круглые скобки. Верхние и нижние индексы в записи арифметических выражений недопустимы. При возведении в степень действия выполняются с право налево. Все переменные, используемые в выражении, должны быть к моменту вычисления выражения определены.

Операции с целыми операндами имеют особенности:

результат деления двух целых чисел определен как целая часть частного;

Любое не нулевое целое, не равное 1 или –1 , возведенное в отрицательную степень, будет равно нулю. Это связано с тем, что I**(-J) интерпретируется как 1/I**J и предполагает деление двух целых чисел

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

Наши рекомендации