Алгоритмический язык PASCAL. Алфавит языка. Идентификаторы. Операции над данными, страница 10

BEGIN                

CLRSCR;

SUM := 0;  I:=1;

REPEAT 

J:=1;    

REPEAT

IF  I=J  THEN  GOTO  10;

Y := (I+J) / ((I-J)*(I-J));   SUM := SUM + Y;

10:  J := J+1;    UNTIL  J > 3;

I:=I+1;  UNTIL  I > 5 ;  

WRITELN(’    SUM =’,SUM );    END.

                                

SUM = 30.21

9.7.4. Математический  способ организации цикла.

При  организации  этого  цикла  также  не  известно  число    повторений, то есть цикл повторяется до тех  пор,  пока истинно  поставленное  условие,  то  есть  ставится  условие  повторения  цикла.

Пример:   Составить  программу  вычисления  суммы      натуральных  чисел  от 1  до 100.

PROGRAM    SUM;

USES    CRT, PRINTER;

LABEL 10;

VAR    I, S: INTEGER;

BEGIN       

CLRSCR;

S:=0;  I:=1;

10:  S:=S+I;

I:=I+1

IF I<=100 THEN GOTO 10;

WRITELN (’ S:=’,S );

END.

Результат:  S=5050

Пример для  самостоятельной  работы: 

Вычислить  функцию  Y=X2  при  Х ,  равном  2, 4, 6, 8, 10, 12.

PROGRAM    FUNC;

USES   CRT, PRINTER;

VAR    X, Y: INTEGER;

BEGIN

CLRSCR;

X:=2;

REPEAT

Y:=X*X;

WRITELN('  X=', X,'  Y=', Y);

X:=X+2;

UNTIL    X>12;

END.

Результат:  X=  2     Y=  4

X=  4     Y= 16

X=  6     Y= 36

X=  8     Y= 64

X=10     Y=100

X=12     Y=144

Пример:  Составить  программу  вычисления суммы    

.

PROGRAM   SUMMA;

USES   CRT, PRINTER;

LABEL  10, 20;

VAR  I, J : INTEGER;

SUM, Y :  REAL;            

BEGIN                

CLRSCR;

SUM := 0;   I=1;   J:=1;            

20:   IF  I=J  THEN  GOTO  10;

Y := (I+J) / ((I-J)*(I-J));   SUM := SUM + Y;

10:    J:= J + 1;                                        

IF  J <= 3 THEN  GOTO 20 ;

I: = I + 1;

IF  I <= 5 THEN  GOTO 20 ;

WRITELN(’    SUM =’,SUM );    END.

 

SUM = 30.21

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

 


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

Пример:   Составить  программу  вычисления  сумм   эле-ментов  строк  матрицы А(6,8).  

PROGRAM  MATR;

CONST  N=6;

M=6;

VAR  SUM, N, M, I, J: INTEGER;

A: ARRAY[1..N,1..M] OF INTEGER;

ASTR:ARRAY[1..N]  OF  INTEGER;

BEGIN

WRITE(’       ’);        

FOR   I:=1   TO   N   DO  BEGIN

FOR   J:=1   TO   M   DO  BEGIN

A[I,J]:=RANDOM(100);  WRITE(A[I,J]:4)

END;

WRITE(’       ’);

END;          

FOR I:=1  TO  N  DO BEGIN

SUM:=0;

FOR J:=1  TO  M  DO BEGIN   

SUM:=SUM+A[I,J];

ASTR[I]:=SUM

END;END;                 

WRITE(’       ’); 

FOR I:=1  TO  N  DO

WRITE(ASTR[I]:4);

END.

В  результате  выполнения  программы  будет напечатан     результат:

96    20    53    13    87     2

47    95    31    76    68    87

30    62    82    66    46    96

22    95    55    97    12    45

99    19    68    66    37      7

81    42    46    80    56    46

269  404  382  326  296  351

Пример для самостоятельной  работы: 

1. Посчитать     сумму   .

PROGRAM   FUNC1;

USES   CRT;

LABEL   10;

VAR   I, J: INTEGER;

B, Y, S: REAL;

BEGIN

CLRSCR;

WRITELN; WRITELN; WRITELN;

S:=0;

FOR   I:=0   TO   20   DO   BEGIN                                            FOR   J:=0   TO   I   DO   BEGIN

B:= 1-SIN(I/J);

IF   B<=0   THEN   GOTO   10;

Y:=SIN(I/J)/SQRT(B);

S:=S+Y;

10:  END;  END;

WRITE('      S=', S:6:2);

END.

В результате выполнения программы  будет напечатан  ре-зультат:                               S=113.59

2.  Заменить  в  матрице  В(10,10)  первые  цифры каждой    строки  на  суммы элементов  этой же строки. 

PROGRAM   MATR;

USES   CRT;

VAR   I, J, S: INTEGER;

B:ARRAY[1..6,1..6]   OF   INTEGER;

BEGIN

CLRSCR;

WRITELN;  WRITELN;  WRITELN;

WRITE('        ');

FOR   I:=1   TO   6   DO   BEGIN

S:=0;