- •Алгоритм накопления суммы:
- •Вычисление целочисленных степеней (алгоритм накопления произведения)
- •Алгоритм вычисления количества элементов (счетчик)
- •Программирование алгоритмов со структурой вложенных циклов
- •Операторы форматного ввода/вывода
- •Оператор Формат
- •Спецификация I
- •Спецификация f
- •Спецификация e
- •20 Format(1x,a/) ! пропустить первый символ и напечатать текст строки
- •Группы спецификаций (использование повторителя)
- •Запись повторяющихся спецификаций и групп спецификаций
20 Format(1x,a/) ! пропустить первый символ и напечатать текст строки
! переходя на новую строку
на экране: DISITION
Заметим, что формат неопределенной длины допускается только для спецификации А.
Группы спецификаций (использование повторителя)
Пусть P1,...,Pk ⎯ список переменных в операторе ввода или вывода, а S1,...,Sl ⎯ список спецификаций в соответствующем операторе format, который связан с данной записью (строкой). Количество символов в строке однозначно определяется списком спецификаций. Каждой спецификации в порядке слева направо отводится соответствующее поле в строке. При этом спецификации пробелов при вводе-выводе и спецификации текста при выводе присутствуют в соответствующих местах строки, без каких либо изменений.
Числовые и логические спецификации из списка S1,...,Sl в порядке слева направо ставятся с соответствие переменным P1,...,Pk, которые согласно этим спецификациям представляются в строке. Если список переменных меньше, чем количество числовых и логических спецификаций, то ввод-вывод осуществляется на первой строке до конца списка спецификаций, а последующие переменные вводятся или выводятся с новой строки вместе с переходом в начало списка спецификаций, и т.д. до конца списка переменных.
Запись повторяющихся спецификаций и групп спецификаций
Запись
m format(...,S,S,...,S,...)
N раз
эквивалентна записи:
m format(...,NS,...)
А запись
m format(...,S1,...,Sn,..., ,S1,...,Sn,...)
N раз
эквивалентна записи
m format(...,N(S1,...,Sn),...)
При форматном выводе первый символ интерпретируется как управляющий. Если в качестве первого символа стоит символ 0, то происходит переход через две строки; 1 – переход в начало следующей строки; + – не происходит переход к следующей строке; любой другой символ – переход к следующей строке.
Пример 7. Бесформатный ввод с клавиатуры числа a и форматный вывод на экран чисел на a+1, b=a+2 и c=a+3.
program redd1
integer*2 a,b,c
write (*,*) ' Vvedite celoe chislo a'
read (*,*) a
b=a+2
c=a+3
write (*,4) a+1,b,c
4 format (2x,' 1-е Chislo=',i2,2(' Drugoe chislo=',I3))
end
Еще примеры: Вывести числа a=8.978, b=0.3, c=1.25
В программе:
WRITE(*,5) a,b,c
5 FORMAT(3F6.3) ! все три числа выводятся по одному формату, в одну строку
Тогда на экране увидим: _8.978_0.3_ _ _1.25_ (пробелы показаны знаком подчеркивания)
Если записать оператор формата в виде: 5 FORMAT(F5.3/F3.1/F4.2),
То на экране вы увидите вывод в три строки:
8.978
0.3
1.25
Вопросы к лекции 6:
-
Сформулируйте задачу табулирования функции.
-
Объясните, как происходит накопление суммы нескольких слагаемых?
-
Приведите пример программы вычисления суммы.
-
Для чего при программировании алгоритма накопления суммы начальное значение переменной S должно быть равно нулю?
-
Как строится программа вычисления произведения? Какое начальное значение для переменной произведения P необходимо задать до начала цикла?
-
В каких случаях можно использовать алгоритм накопления произведения?
-
Почему алгоритм вычисления количества элементов является частным случаем накопления суммы?
-
Какое начальное значение дается переменной-счетчику K при вычислении количества элементов и почему?
-
Приведите блок-схему вычисления факториала произвольного числа.
-
Какой из алгоритмов применяется при вычислении факториала?
-
Что такое вложенные циклы?
-
Сформулируйте и покажите с помощью схем правила использования вложенных циклов в программе.
-
Что называют форматным вводом/выводом? Какой оператор используется для форматного ввода/вывода?
-
Почему чаще всего формат используют при выводе информации?
-
Запишите общий вид операторов форматного ввода/вывода.
-
Какой оператор используется для задания формата, как он записывается в программе?
-
Для чего служат различные спецификации формата?
-
Для вывода каких типов данных используется спецификация I?
-
Какие спецификации используются для вывода вещественных чисел в Фортране?
-
Какой тип переменных можно выводит с помощью спецификации G?
-
Какой записать оператор форматного вывода текста на экран? Какой тип спецификатора в этом случае надо использовать?
-
Что такое повторитель и для чего он используется в форматном выводе?
-
Для чего используются знаки / (слэш) и \ (обратный слэш) при форматном выводе в Фортране?
-
Что вы увидите в выводе числа на экране, если в спецификации формата выделено недостаточно позиций под число?
-
Как сделать форматный вывод нескольких чисел с учетом пробелов между ними?