Cтраница 1
Если индекс DO-цикла не достигает еще числа 100, управление передается оператору чтения после прибавления к I единицы. Однако он может кончиться и раньше, если оператор IF встретит отрицательное число. [1]
Область действия DO-цикла может быть вложена в область другого DO. Глубина вложения может быть практически неограниченной. [2]
Можно такжщ использовать DO-цикл, в котором шаг приращения должен быть положительным. [3]
Известно, что DO-циклы выполняются по крайней мере один раз. Если Q 0, нужна проверка, чтобы избежать входа в цикл. Остается обработать случай, когда имеется всего один пробел в правом краю. Цикл прекращается при обнаружении первого пробела. [4]
Чтобы понять структуру DO-циклов, надо знать, что такое Массивы, индексирование и оператор DIMENSION, Рассмотрим их. [5]
Почему не следует во всех DO-циклах ссылаться на одну и ту же метку. [6]
Эта инструкция не может быть инструкцией DO-цикла или другим логическим оператором IF; таким образом, запрещается любой вид вложенной структуры инструкций. [7]
Причину нетрудно понять, если вспомнить, что изменять значение индексов начала и конца DO-цикла внутри этого цикла запрещается. [8]
Иногда приращение и проверка выполняются специальными счетчиками, называемыми индекс-регистрами, В программе один и тот же индекс-регистр мажет использоваться для нескольких DO-циклов. В результате у программиста нет способов определения, что содержит индекс-регистр вне ТЮ-цтгала. Иначе, приращение и проверка выполняются непосредственно в ячейке памяти, где находится переменная I, так как каждое конкретное значение будет всегда вычисляться в той ячейке. Изучение результата работы компилятора дает возможность определить, как DO-циклы реализуются на данной вычислительной машине, и тем самым после завершения цикла использовать значение параметра без его переопределения. Однако здесь одинаковые результаты на различных вычислительных машинах получены не будут. [9]
Прежде всего необходимо найти первое Т ( 1), равное нулю, начиная поиск с Т ( 3), поскольку достоверно известно, что Т ( 2) не было исключено. Здесь не используется DO-цикл, так как бесполезно проверять, что индекс не превосходит заранее фиксированного конечного значения, известно только, что между 2 и 3000 имеются простые числа. Четыре инструкции, начинающиеся с I 3 и предшествующие метке 8, позволяют вычислить индекс I первого нулевого элемента. Заметим, что бессмысленно готовить место, где было простое число, полагая T ( J) - 0, потому что все числа, которые еще предстоит переместить, расположены справа и со временем они сотрут прежние значения. Достаточно того, что часть массива Т, лежащая правее наибольшего из найденных простых чисел, не печатается. [10]
Трансляция большинства инструкций Фортрана довольно проста и может выполняться последовательно, строка за строкой. Единственной сложной структурой в программе является DO-цикл. Транслятор должен найти для каждой инструкции DO помеченную инструкцию, завершающую тело цикла, и проверить, выполняются ли многочисленные ограничения, накладываемые на структуру и вложенность DO-циклов. [11]
Программирование по этой блок-схеме не составляет никакого труда. Важно, однако, не попасть в ловушку, связанную с использованием DO-цикла с управляющей переменной 1, поскольку возникает опасность войти в пределы DO-цикла, не сделав предварительно начальной установки. [12]
Программирование по этой блок-схеме не составляет никакого труда. Важно, однако, не попасть в ловушку, связанную с использованием DO-цикла с управляющей переменной 1, поскольку возникает опасность войти в пределы DO-цикла, не сделав предварительно начальной установки. [13]
Оператор с меткой 30 выполняется, как только будет найден первый отрицательный элемент в массиве. Проблема в следующем: если в операторе IF m есть 10, то управление будет передано либо оператору 30, либо IF, и тем самым программа зациклится. Это возникает потому, что DO-цикл заканчивается оператором передачи управления. Требуется придумать такой способ передачи управления от оператора IF, чтобы цикл мог быть продолжен. [14]
Список ввода может содержать скалярные переменные, а также массивы ( сечения) и структуры. Список вывода, кроме того, может содержать выражения. Списки ввода-вывода могут содержать также неявные DO-циклы, аналогичные описанным ранее. [15]