Дан массив P (n, n). Элементы выше главной диагонали заменить на ноль, а ниже главной диагонали – округлить.
Помогите найти ошибку! Я написала программу, но он не округляет числа и не все значения округляет до 0.
Program lab5;
Var
P: array [1..10,1..15] of real;
i, j, n, z: integer;
Begin
writeln('Введи n');
read(n);
writeln('Введи массив P');
for i:=1 to n do for j:=1 to n do
read(P[i,j]);
z:=0;
for i:=1 to n do
begin
if i if i>j then P[i,j]:=round(P[i,j]);
end;
for i:=1 to n do for j:=1 to n do
writeln ('P[',i,j,']= ',P[i,j]);
End.
Answers & Comments
Verified answer
Program lab5;const n=5;
Var
P: array [1..n,1..n] of real;
i, j : integer;
Begin
Randomize;
writeln('Исходный массив P:');
for i:=1 to n do
begin
for j:=1 to n do
begin
P[i,j]:=10*random;
write(P[i,j]:5:1);
end;
writeln;
end;
for i:=1 to n do
for j:=1 to n do
if j>i then P[i,j]:=0 else P[i,j]:=round(P[i,j]);
writeln('Изменённый массив P:');
for i:=1 to n do
begin
for j:=1 to n do write(P[i,j]:5:1);
writeln;
end;
End.
Пример:
Исходный массив P:
6.0 6.5 4.2 0.6 4.6
5.7 8.8 0.3 6.2 9.0
3.0 5.3 4.0 6.0 4.8
6.0 3.0 5.0 5.3 8.7
8.9 8.8 6.8 5.3 5.1
Изменённый массив P:
6.0 0.0 0.0 0.0 0.0
6.0 9.0 0.0 0.0 0.0
3.0 5.0 4.0 0.0 0.0
6.0 3.0 5.0 5.0 0.0
9.0 9.0 7.0 5.0 5.0