Param14. Описать процедуру Split1($$A$$, $$N_A$$, $$B$$, $$N_B$$, $$C$$, $$N_C$$), формирующую по вещественному массиву $$A$$ размера $$N_A$$ два вещественных массива $$B$$ и $$C$$ размера $$N_B$$ и $$N_C$$ соответственно; при этом массив $$B$$ содержит все элементы массива $$A$$ с нечетными порядковыми номерами $$(1, 3,…)$$, а массив $$C$$ — все элементы массива $$A$$ с четными номерами $$(2, 4,…)$$. Массивы $$B$$ и $$C$$ и числа $$N_B$$ и $$N_C$$ являются выходными параметрами. Применить эту процедуру к данному массиву $$A$$ размера $$N_A$$ и вывести размер и содержимое полученных массивов $$B$$ и $$C$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
program Param14; type RArray = array[1..10] of Real; var A,B,C:RArray; Na,Nb,Nc:integer; Procedure Split1(A:RArray; Na:integer; var B:RArray; var Nb:integer; var C:RArray; var Nc:integer ); var k,k2:integer; begin Nb:=0; Nc:=0; for k:=1 to Na do if k mod 2 <> 0 then begin inc(Nb); B[Nb]:=A[k]; end else begin inc(Nc); C[Nc]:=A[k]; end; end; Procedure EnterArray(var A:RArray; var N:integer); var i:integer; begin Write('Size:'); Readln(N); for i:=1 to N do begin Write(i,': '); Readln(A[i]); end; end; Procedure InputArray(var A:RArray; var N:integer); var i:integer; begin Writeln('---'); Writeln('Size: ',N); for i:=1 to N do Writeln(i,': ',A[i]); Writeln('---'); end; begin EnterArray(A,Na); Split1(A,Na,B,Nb,C,Nc); InputArray(B,Nb); InputArray(C,Nc); end. |
Другие задачи из раздела Param можно посмотреть здесь.
Комментарии:
Комментарии 1