Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2009, 19:23   #1
-dD
Новичок
Джуниор
 
Регистрация: 23.04.2009
Сообщений: 2
По умолчанию Паскаль. Матрица (массив).

День добрый. Задача состоит в следующем.
Найти среднее арифметическое из всех положительных чисел этой матрицы. (с массивом)
Как мне пояснили: размерность матрицы не более 10, числа целые.
Ввод, вывод вроде нормальный, а вот сама суть выводится не правильно.
Вот мой код:

Цитата:
var a,b: array [1..10,1..10] of integer;
i,j,n,c,s,r: integer;
begin
writeln;
writeln('Vvedite razmernost matrici.');
write('Razmernost = ');readln(n);

for i:=1 to n do
for j:=1 to n do
begin
write ('Vvedite element ', i,'-oi stroki ',j,'-go stolbca: ');
readln (a[i,j]);
end;

for i:=1 to n do
for j:=1 to n do
begin
c:=0;
s:=0;
if a[i,j]>0 then
begin
s:=s+a[i,j];
inc(c);
end;
if c>0 then r:=s div c;
end;

writeln;
writeln ('Vot vasha matrica:');
writeln;
for i:=1 to n do
begin
writeln;
for j:=1 to n do write (a[i,j]:5);
writeln;
end;
writeln('Sred. srifm. vsex polozhitelnix 4isel matrici = ',r);
readln;
end.
-dD вне форума Ответить с цитированием
Старый 23.04.2009, 19:35   #2
DM_bite
Участник клуба
 
Аватар для DM_bite
 
Регистрация: 29.07.2008
Сообщений: 1,091
По умолчанию

Код:
program xx;
const n=10;
var A:array [1..n,1..n] of integer;
    i,j,k,sum: integer;
    begin
    randomize;
    for i:= 1 to n do
     for j:= 1 to n do
     begin
     a[i][j]:=-5+random(n);
     end;
     k:=0;
     sum:=0;
     for i:= 1 to n do
      begin
      for j:= 1 to n do
      begin
       Write(a[i][j],'__');
       end;
       WriteLn;
       end;
     for i:= 1 to n do
      for j:= 1 to n do
      begin
      if a[i][j]>0 then
      begin
      inc(k);
      inc(sum, a[i][j]);
      end;
      end;
      if k=0 then WriteLn('Not')
      else
      WriteLn(sum div k);
      ReadLn;
      end.
Кто бы ты ни был - не думай о себе слишком (с)
DM_bite вне форума Ответить с цитированием
Старый 23.04.2009, 19:45   #3
-dD
Новичок
Джуниор
 
Регистрация: 23.04.2009
Сообщений: 2
По умолчанию

спасибо)
С помощью вашего кода разобрался, что обнуления надо вынести до начала цикла перебора.
А то у меня получалось, что значения обнулялись каждый раз.)
-dD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль матрица Азарт Помощь студентам 3 13.04.2009 16:55
Массив и матрица pashun Помощь студентам 1 15.01.2009 16:56
Матрица (Паскаль) Freia Помощь студентам 2 19.12.2008 21:37
Delphi, матрица, массив… Мага Помощь студентам 3 10.12.2008 23:35
матрица {двумерные массив} Влдислаав3911 Помощь студентам 6 27.05.2008 08:33