|
|||
Пример №1. Пример №2. Пример №3.Пример №1 Задан массив Y(8) из восьми элементов, как положительных так и отрицательных. Если индекс YMAX<7, то заменить в исходном ряду положительные элементы Yi на YMAX.
Исходный массив (значения): 4 3 -45 2 -98 10 2 -67 Индексы элементов: 1 2 3 4 5 6 7 8 YMAX=10 N=6 N<7 Результирующий массив: 10 10 -45 10 -98 10 10 -67
N- индекс YMAX I – переменная цикла
PROGRAM LAB; VAR Y:ARRAY[1..8] OF REAL; YMAX:REAL; N,I:INTEGER; BEGIN WRITELN(‘Ввод массива Y’); FOR I:=1 TO 8 DO READ(Y[I]); YMAX:=Y[1]; N:=1; FOR I:=1 TO 8 DO IF YMAX<Y[I] THEN BEGIN YMAX:=Y[I]; N:=I; END; IF N<7 THEN BEGIN FOR I:=1 TO 8 DO IF Y[I]>0 THEN Y[I]:=YMAX; END; WRITELN(‘Новый массив Y’); FOR I:=1 TO 8 DO WRITELN(Y[I]:8:3); WRITELN(‘YMAX=’, YMAX:9:3, ‘N=’,N:2); END.
Пример №2
Дано: массив B(12) из двенадцати элементов. Заменить BMIN на сумму первых трех элементов массива B.
Исходный массив : 5 2 8 6 3 -45 4 2 34 7 23 16 Индексы элементов: 1 2 3 4 5 6 7 8 9 10 11 12 BMIN=-45 S=5+2+8=15 Результирующий массив:5 2 8 6 3 15 4 2 34 7 23 16 Индексы: 1 2 3 4 5 6 7 8 9 10 11 12 N – индекс BMIN S – сумма первых трех элементов массива B I – переменная цикла
PROGRAM LAB; VAR B:ARRAY[1..12] OF REAL; BMIN,S:REAL; N,I: BYTE; BEGIN WRITELN(‘Ввод массива B’); FOR I:=1 TO 12 DO READ(B[I]); BMIN:=B[1]; N:=1; FOR I:=1 TO 12 DO IF BMIN>B[I] THEN BEGIN BMIN:=B[I]; N:=I; END; S:=0; FOR I:=1 TO 3 DO S:=S+B[I]; B[N]:=S; WRITELN(‘BMIN=’,BMIN:8:3, ‘S=’,S:9:3, ‘N=’,N:2) WRITELN(‘Новый массив B’); FOR I:=1 TO 12 DO WRITELN(B[I]:8:3); END.
Пример №3.
Задан массив R(10) из десяти элементов. Определить номера первого и последнего отрицательных элементов. Найти сумму этих элементов.
Исходный массив: 5 9 -4 -8 2 1 6 -8 -34 4 Индексы массива: 1 2 3 4 5 6 7 8 9 10 N1 – индекс первого отрицательного элемента массива N2 - индекс последнего отрицательного элемента N1=3 N2=9 S - сумма этих элементов S=-4-34=-38 I – переменная цикла
PROGRAM VAR31; VAR R:ARRAY[1..10] OF REAL; N1,N2,I:BYTE; S:REAL; BEGIN WRITELN(‘Ввод массива R’); FOR I:=1 TO 10 DO READ(R[I]); N1:=1; WHILE R[N1]>0 DO N1:=N1+1; N2:=10; WHILE R[N2]>0 DO N2:=N2-1; S:=R[N1]+R[N2]; WRITELN(‘N1=’,N1:2,’N2=’,N2:2,’S=’,S:9:3); END.
|
|||
|