Param17. Описать процедуру ArrayToMatrix2($$A$$, $$K$$, $$M$$, $$N$$, $$B$$), формирующую по вещественному массиву $$A$$ размера $$K$$ матрицу $$B$$ размера $$M \times N$$ (матрица заполняется элементами массива $$A$$ по столбцам). «Лишние» элементы массива игнорируются; если элементов массива недостаточно, то оставшиеся элементы матрицы полагаются равными $$0$$. Двумерный массив $$B$$ является выходным параметром. С помощью этой процедуры на основе данного массива $$A$$ размера $$K$$ и целых чисел $$M$$ и $$N$$ сформировать матрицу $$B$$ размера $$M \times N$$.
Решение:
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 55 56 57 58 59 60 |
program Param17; type RArray = array[1..10] of real; Matrix = array[1..10,1..10] of real; var A:RArray; K,M,N:integer; B:Matrix; Procedure ArrayToMatrix1(A:RArray; K:integer; M:integer; N:integer; var B:Matrix); var j,j2,j3:integer; begin j3:=0; for j2:=1 to M do for j:=1 to N do if j3<=K then begin inc(j3); B[J2,J]:=A[j3]; end else B[J2,J]:=0; 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 InputMatrix(B:Matrix; M,N:integer); var j,j2:integer; begin Writeln('---'); for j:=1 to N do begin for j2:=1 to M do Write (B[J2,J],' '); Writeln; end; Writeln('---'); end; begin EnterArray(A,K); Write('M: '); Readln(M); Write('N: '); Readln(N); ArrayToMatrix1(A,K, M,N,B); Inputmatrix(B,M,N); end. |
Другие задачи из раздела Param можно посмотреть здесь.
Комментарии: