где k – число повторений , целая константа, d – значение вводимой величины
Пример.
read *, a
где а(1)=а(2)=а(3)=а(4)=а(5)=1.6
тогда строку данных можно записать в виде
5*1.6
9. ОПЕРАТОР ЦИКЛА do Оператор цикла doиспользуется в двух видах
1). do метка i=n1, n2, n3
2) do i=n1, n2, n3
Здесь i – простая переменная (параметр цикла),
n1, n2, n3 –простые переменные или константы или арифметические выражения, которые обозначают
n1 – начальное значение параметра цикла, n2 – конечное значение параметра цикла, n3 – шаг изменения значений параметра цикла. Если n3 – шаг изменения значений параметра цикла, равен 1, то его можно не писать, n3=0 не допускается.
При выполнении оператора doво второй форме (без метки) после последнего оператора следует написать end do
Пример.
Вычисление факториала
read *, n f=1 do 7 k=1,n 7 f=f*k print *, f end
Пример.
Используем оператор doво второй форме для вычисления значений функции 1/x при х=1.1,1.2,…, 2.1
do х=1.1, 2.1, 0.1 y=1/x print *, x, y end do end
10. ПРАВИЛА ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА do
1. Если оператор do оказывается в теле другого оператора цикла, то его тело должно полностью содержаться внутри внешнего цикла
2. Если структурный оператор if оказывается внутри цикла, то связанный с ним оператор end if также должен находиться внутри цикла
3. Если оператор do оказывается оказывается внутри блока if,то его тело должно полностью содержаться внутри этого блока. 4. Если шаг изменения параметра цикла положителен, а начальное значение счетчика больше конечного, то цикл не выполняется ни разу (то же относится к случаю, когда при отрицательном шаге начальное значение счетчика меньше конечного).
5. Не разрешается внутри цикла изменять значение его параметров.
Пример.
do 4 k=1,12 …….. …….. print *, k
Напечатается k=13.
6. Последним оператором цикла, имеющим метку, могут быть только операторы
а) присваивания, read, print, call. continue
б) логический оператор if , в правой части которого стоит один из операторов, перечисленных в а).
7. В современной литературе чаще используется вторая форма оператора цикла с окончанием end do
НЕЯВНЫЕ ЦИКЛЫ Неявный цикл записывается прямо в операторе readилиprintи имеет вид
read *, (список переменных, n1,n2,n3) print *, (список переменных, n1,n2,n3)
Пример. read *, (a(i), i=1,8) оператор read введет первые 8 элементов массива а, независимо от того какова длина массива а, описанная оператором dimension. Ввести эти же 8 элементов массива а можно с помощью обычного цикла: do i=1,8 read *, a(i) Enddo
В этом случае оператор цикла выполняется 8 раз. При каждом выполнении данные берутся с новой строки, поэтому 8 введенных чисел должны быть записаны на 8 строках. Пример. print *, (с(i), i=1,6) компьютер напечатает первые 6 элементов массива с в одну строку. Распечатать эти же 6 элементов массива с можно с помощью обычного цикла: do i=1,6 print *, c(i) Enddo Здесь каждый элемент будет печататься с новой строки, т.е. на 6 строках будет напечатано по одному элементу в строке.
Пример. do i=1,9 read a(i) end do
a(1) a(2) . . . a(9)
Пример. Оператор print *,(b(k), k=2,8,2) напечатает b(2),b(4),b(6),b(8),
Это позволяет вводить (выводить) многомерные, например, двумерные массивы не целиком и в нужном порядке. Для вывода первых m строк и n столбцов матрицы рекомендуется сочетание явного и неявного циклов
do i=1,m print *, (a(i,j), j=1,n) end do
При таком способе вывода строка данных будет соответствовать строке массива и пользователи избавляются от многих неудобствб вроде путаницы со строками и столбцамию
ОПЕРАТОР ФОРМАТ. ФОРМАТЫ i, f, e, g.
Бесформатная форма операторов printи read
print *,список переменных read *,список переменных С оператором format:
print m, список переменных read m, список переменных
Оператор printпоказывает какие переменныевыводятся на экранили печать, а оператор formatс меткой m показывает в каким образом эти числа будут расположены в строке, сколько знаков после запятой они будут иметь и т.д.
ОПЕРАТОР formatВЫПОЛНЯЕТ РАЗМЕТКУ СТРОКИ
Вид оператора format метка format(набор описателей)
Из многочисленных описателей остановимся на описателях i, f, e, g, a Описатель i используется для вывода и ввода целых чисел, описатели f, e, g– для вещественных чисел. Описатель aиспользуется для вывода сопроводительной информации или сообщений типа ‘x=’. Описатель пробелов х используется для образования пробелов в печатающейся строке.
Пример. Напечатать числа n=55, x=43,321, y=65,4, z=7,8
print9, n, x, y, z 9 format (i3, 2x, f6.3, 1x, 2f4.1) компьютер напечатает
5543.32165.47.8
i3 означает, что для целого числа отводится три позиции (поле вывода из трех позиций), 2x означает поле вывода из двух пробелов, f6.3 означает, что для вещественного числа отводится шесть позиций, включая десятичную точку, три позиции - под дробную часть,
2f4.1 означает, что для двух вещественных чисел отводится 2 поля по четыре позиции, включая десятичную точку, одна позиция - под дробную часть. Описатель fудобен, когда имеем дело с не очень большими и не очень малыми числами.
Если разместить данные числа в строке ввода, то с помощью операторов
read9, n, x, y, z 9 format (i3, 2x, f6.3, 1x, 2f4.1)
осуществится форматный ввод и переменные запишутся в указанном выше виде
5543.32165.47.8
Сопроводительную информацию удобно печатать по описателю a без указания числа позиций, которое будет обеспечено автоматически.
Пример. k=55, x=43,321
print9, ‘k’,k, ‘x’, x 9 format (a, i3, a, f6.3)
компьютер напечатает
k=55x=43.321
Если вместо запятой поставить /, то произойдет перевод на новую строку.
Пример.
print9, ‘k’,k, ‘x’, x 9 format (a, i3/a, f6.3)
компьютер напечатает
k=55 x=43.321 ВЫВОД ЧИСЕЛ С ПОМОЩЬЮ ОПИСАТЕЛЯ Е Общий вид описателя е: ew.d, где w – общее число позиций, отводимых под число, w, d – целые константы без знака, причем желательно выбирать w≥d+7. При выводе число печатается в нормализованной форме с экспонентой и занимает w позиций на экране, при этом . d позиций отводится под дробную часть.
Пример.
,
print9, A,h 9 format (e10.3, e12.4) компьютер напечатает 0.602E
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (312)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |