Pascal. Массивы.

Ответить
_d_D_
Сообщения: 18
Зарегистрирован: 13 дек 2008, 14:33

Решите задачку плз.Тоже с массивом:
Задана матрица X[N,M],где N=15;M=20.Найти среднее арифметическое элементов строк с чётными номерами.Если найденное с.а.>0,то отрицательные элементы матрицы заменить их модулями.В противном случае все положительные элементыматрицы заменить нулём.Преобр.матрицу вывести на экран.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Отделил тему
Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

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

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.
ака хинт: коментируйте код, самим же легче будет разобраться ;)
Ответить