Страница 1 из 1

Pascal. Массивы.

Добавлено: 13 дек 2008, 14:45
_d_D_
Решите задачку плз.Тоже с массивом:
Задана матрица X[N,M],где N=15;M=20.Найти среднее арифметическое элементов строк с чётными номерами.Если найденное с.а.>0,то отрицательные элементы матрицы заменить их модулями.В противном случае все положительные элементыматрицы заменить нулём.Преобр.матрицу вывести на экран.

Re: Pascal. Массивы.

Добавлено: 13 дек 2008, 21:16
Naeel Maqsudov
Отделил тему

Re: Pascal. Массивы.

Добавлено: 14 дек 2008, 01:10
demon416

Код: Выделить всё

program matrix;

var
x: array [1..15,1..20] of integer;
i,j,count,sar: integer;

begin
randomize;
count:=0;
sar:=0;

for i:=1 to 15 do
for j:=1 to 20 do
begin
x[i][j]:=random(90);
if random(2)=1 then
x[i][j]:=0-x[i][j];
end;

for i:=1 to 15 do
begin
writeln('');
for j:=1 to 20 do
write(x[i][j],' ');
end;

for i:=1 to 15 do
begin
if i mod 2 =0 then
for j:=1 to 20 do
begin
count:=count+1;
sar:=sar+x[i][j];
end;
end;
sar:= sar div count;

if sar > 0 then
for i:=1 to 15 do
for j:=1 to 20 do
{if x[i][j] < 0 then //этот иф нужен по условию, но не является необходимым, так как модуль положительного числа равен самому числу.Закоментирован потому что неправильно обрабатывается компилятором}
x[i][j]:=abs(x[i][j])

else
for i:=1 to 15 do
for j:=1 to 20 do
if x[i][j] > 0 then
x[i][j]:=0;

writeln('');

for i:=1 to 15 do
begin
writeln('');
for j:=1 to 20 do
write(x[i][j],' ');
end;


readln;
end.