Составить программу формирования динамического прямоугольного масси-ва А из n строк и m столбцов случайными числами, сделать возможным его ре-дактирование. Вычислить суммы элементов в каждой строке до k-ого столбца и вставить их перед k-столбцом.
Delphi 7
Аноним:
Окно или консоль?
Ответы
Ответ дал:
0
{$APPTYPE CONSOLE}
Var
A:array of array of real;
n,m,i,j,C:integer;
Procedure BBODGRANIC();
Begin
Write('n = ');ReadLn(n);
Write('m = ');ReadLn(m);
SetLength(A,n,m);
End;
Procedure ZAPOLNENIERND();
Var i,j:integer;
Begin
Randomize;
For i:= 0 to n-1 do
For j:= 0 to m-1 do
A[i,j]:=random*21-10;
End;
Procedure BbIBOD();
Var i,j:integer;
Begin
Write('':3);
For i:= 0 to m-1 do
Write(i:5,' ');
WriteLn;
For i:= 0 to n-1 do
Begin
Write(i:2,' ');
For j:= 0 to m-1 do
Write(A[i,j]:5:1,' ');
WriteLn;
End;
End;
Procedure RE();
Begin
Write('i = ');ReadLn(i);
Write('j = ');ReadLn(j);
Write('A[',i,',',j,'] = ');ReadLn(A[i,j]);
End;
Procedure SUMDOk();
Var
k,i,j:integer;
S:real;
Begin
Repeat
Write('k = ');ReadLn(k);
Until k > 0;
m:=m+1;
SetLength(A,n+1,m+1);
if k > m then k:=m;
For i:= 0 to n-1 do
Begin
S:=0;
For j:= 0 to k-1 do
S:=S+A[i,j];
For j:= m downto k do
A[i,j]:=A[i,j-1];
A[i,k-1]:=S;
End;
End;
Begin
BBODGRANIC();
ZAPOLNENIERND();
BbIBOD();
Repeat
WriteLn;
WriteLn('1 - изменить размеры массива');
WriteLn('2 - заполнить массив случайными числами');
WriteLn('3 - ввести новое значение заданного элемента');
WriteLn('4 - вычислить суммы элементов в каждой строке до k-ого столбца и вставить их перед k-столбцом.');
WriteLn('5 - вывод массива');
WriteLn('9 - выход');
ReadLn(C);
Case C of
1:BBODGRANIC;
2:
Begin
ZAPOLNENIERND;
BbIBOD;
End;
3:RE;
4:
Begin
SUMDOk();
BbIBOD
End;
5:BbIBOD;
End
Until C = 9;
End.
Var
A:array of array of real;
n,m,i,j,C:integer;
Procedure BBODGRANIC();
Begin
Write('n = ');ReadLn(n);
Write('m = ');ReadLn(m);
SetLength(A,n,m);
End;
Procedure ZAPOLNENIERND();
Var i,j:integer;
Begin
Randomize;
For i:= 0 to n-1 do
For j:= 0 to m-1 do
A[i,j]:=random*21-10;
End;
Procedure BbIBOD();
Var i,j:integer;
Begin
Write('':3);
For i:= 0 to m-1 do
Write(i:5,' ');
WriteLn;
For i:= 0 to n-1 do
Begin
Write(i:2,' ');
For j:= 0 to m-1 do
Write(A[i,j]:5:1,' ');
WriteLn;
End;
End;
Procedure RE();
Begin
Write('i = ');ReadLn(i);
Write('j = ');ReadLn(j);
Write('A[',i,',',j,'] = ');ReadLn(A[i,j]);
End;
Procedure SUMDOk();
Var
k,i,j:integer;
S:real;
Begin
Repeat
Write('k = ');ReadLn(k);
Until k > 0;
m:=m+1;
SetLength(A,n+1,m+1);
if k > m then k:=m;
For i:= 0 to n-1 do
Begin
S:=0;
For j:= 0 to k-1 do
S:=S+A[i,j];
For j:= m downto k do
A[i,j]:=A[i,j-1];
A[i,k-1]:=S;
End;
End;
Begin
BBODGRANIC();
ZAPOLNENIERND();
BbIBOD();
Repeat
WriteLn;
WriteLn('1 - изменить размеры массива');
WriteLn('2 - заполнить массив случайными числами');
WriteLn('3 - ввести новое значение заданного элемента');
WriteLn('4 - вычислить суммы элементов в каждой строке до k-ого столбца и вставить их перед k-столбцом.');
WriteLn('5 - вывод массива');
WriteLn('9 - выход');
ReadLn(C);
Case C of
1:BBODGRANIC;
2:
Begin
ZAPOLNENIERND;
BbIBOD;
End;
3:RE;
4:
Begin
SUMDOk();
BbIBOD
End;
5:BbIBOD;
End
Until C = 9;
End.
Вас заинтересует
5 месяцев назад
5 месяцев назад
1 год назад
1 год назад
2 года назад
2 года назад
7 лет назад