Вопросы и упражнения для подготовки к зачету по курсу «Программирование вычислений», страница 2

a) IF(.27D10) 6,4,1                                        c)    B=–4.1

b) IF(3*A+0.3) 2,5,7 если A=–0.4                      S=3*B-6.1

                                                                              IF(1–S) 8,9,1

Определите, какой из операторов получит управление после выполнения следующих групп операторов:

a)         IF(X+B*Y.GT.0) IF(X+2.07) 3,5,4

     4     A=(B+X)*Y                                              если X=–2.07, B+1.4, Y=4.25.

b)                                                          IF(X.OR.Y.AND.Z) IF(A–B) 7,24,31

            IF(A+B) 6,100,27                                     если X=.TRUE., Z=Y=.FALSE., A=3.6, B=4.1.

c)         IF(X.AND..NOT.Y) GOTO 10

            X=A.GT.0                                                 если X=.TRUE., Y=.FALSE..

Напишите операторы, обеспечивающие переход:

a) к оператору с меткой 6, если A>3, и к оператору с меткой 30 в противном случае;

b) к оператору с меткой 2, если арифметическое выражение A+B/C принимает значение больше нуля, к оператору с меткой 4, если это выражение равно нулю, и к оператору с меткой 9, если это выражение принимает значение меньше нуля;

c) к оператору с меткой 100, если точке x принадлежит одновременно отрезкам [a,b] и [с,d]; к оператору с меткой 101, если x принадлежит отрезку [a,b], но не принадлежит отрезку [с,d].

10. Вспомогательные операторы управления. В каких случаях используются и как работают вспомогательные операторы управления: а) оператор продолжения,
б) оператор возврата, в) оператор останова?

11. Операторы цикла. Какие операторы называются начальным и конечным операторами цикла? Что называется областью цикла? Может ли параметр цикла быть а) переменной с индексом, б) простой переменной вещественного типа? Может ли параметр цикла принимать нулевое или отрицательное значения? В каком случае можно опустить значение приращения параметра цикла в заголовке цикла? Какие операторы не могут быть конечными операторами цикла?

Определите количество выполнений следующих циклов:

a)         DO 1 K=1,50,3                  b)         DO 2 J=2,10

  1        S=S+A(K)                            2        S=S+A(J)

Напишите последовательность операторов, содержащую цикл, для вычисления значения функции  для всех , если  и .

Напишите последовательность операторов, содержащую цикл, для вычисления величин:

a) , где  – компоненты вектора ;

b) , где  – элементы матрицы .

Важная задача [2]. Двух студентов попросили написать фрагмент программы на Фортране 77, которая находит сумму всех различных значений, хранящихся в упорядоченном массиве M. Определите, кто из них написал правильно?

Фрагмент первого студента:                       Фрагмент второго студента:

         S=M(I)                                                                  S=M(I)

10     DO 20=2,N                                                  10      DO 15=2,N

         If(N(I).EQ.N(I–1)) GOTO 10                               If(N(I).EQ.N(I–1)) GOTO 15

         S=S+M(I)                                                              S=S+M(I)

20     CONTINUE                                                15      CONTINUE

         PRINT*,S                                                               PRINT*,S

Операторы спецификаций.

12. Какие описания можно выполнить с помощью явного оператора описания типа? Как задать тип переменной (функции, массива)? С какой целью используется оператор IMPLICIT? В чем состоят отличия оператора IMPLICIT от явного оператора описания типа? Какие средства используются в операторе IMPLICIT для сокращения перечисления букв в списке L, N, O, P, R, S?

13. Можно ли с помощью оператора DIMENSION описать размерность массива, если его тип и длина ни в каком из операторов фортран-программы не описаны? В каком случае в указателе размерности массива может быть задана простая переменная целого типа в качестве максимального значения индекса?

14. Для каких целей используется оператор COMMON? В каком случае для массива, размещаемого в общей области, задается указатель размерности в операторе общих областей? В каком порядке размещаются величины в общей области? Могут ли в разных программных модулях задаваться операторы общих областей с одинаковыми именами общих областей? Какие требования предъявляются к одноименным общим областям различных программных модулей одной и той же фортран-программы?