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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2011, 17:54   #1
Катакомба
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 25
По умолчанию Исправить ошибку в программе.Количество в двумерном массиве.

Помогите пожалуйста исправить ошибку в программе!
Нодо,чтобы она выводила количество строк матрицы,в которых число положительных элементов больше числа отрицательных.
Код:
begin
write('stroki - ');
readln(n);
write('stolbcy - ');
readln(m);
 For i:=1 to n do
For j:=1 to m do
begin write('a[',i,',',j,']=  ');
readln(a[i,j]);
end;
writeln;
writeln('massiv');
for i := 1 to n do
  begin
  for j := 1 to m do
    write(a[i,j]:5:1);
    writeln;
  end;
  writeln;
  readln;

   c:=0;
   pol:=0;
   otr:=0;
   for i := 1 to n do
   begin
   for j := 1 to m do
  if a[i,j]>=0 then
 begin
  l:=pol+1;
  //
  writeln('pol= ',l);
  //
  end
  else
  b:=otr+1;
  //
  writeln('otr= ',b);
  //
   if l>b then
 begin
kol:=c+1;
end;

writeln('kol-vo strok= ',kol);
readln;
   end;
end.
Катакомба вне форума Ответить с цитированием
Старый 14.11.2011, 19:04   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Обнуляй счетчики во внешнем цикле каждый раз )
Son Of Pain вне форума Ответить с цитированием
Старый 14.11.2011, 19:42   #3
Катакомба
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 25
По умолчанию

как это сделать?
Катакомба вне форума Ответить с цитированием
Старый 14.11.2011, 20:44   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

)
вместо
Код:
pol:=0;
otr:=0;
for i := 1 to n do
begin
написать
Код:
for i := 1 to n do
begin
pol:=0;
otr:=0;
Son Of Pain вне форума Ответить с цитированием
Старый 14.11.2011, 21:30   #5
Катакомба
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 25
По умолчанию

всё равно не работает.
он по несколько ответов пишет и те не правильные
Катакомба вне форума Ответить с цитированием
Старый 14.11.2011, 21:55   #6
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Осталось привести в порядок использованные переменные в коде, убрать лишний вывод во writeln, и все заработает.
Son Of Pain вне форума Ответить с цитированием
Старый 14.11.2011, 21:59   #7
Exoo
Пользователь
 
Регистрация: 25.03.2010
Сообщений: 53
По умолчанию

Код:
for i := 1 to n do
       begin
       pol:=0;
       otr:=0;
       for j := 1 to m do
           begin
           if a[i,j]>=0 then inc(pol)
           else inc(otr);
           end;
       if pol>otr then writeln('in ',i,'-th line pol elements > otr at ', pol-otr)
       else writeln('in ',i,'-th line pol elements <= otr ');
       end;
readln;
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок, а в том, чтобы писать программы, работающие при любом количестве ошибок.
Exoo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти и исправить ошибку в программе inforus Общие вопросы Delphi 3 25.05.2010 23:52
Помогите исправить ошибку в программе Antifa Помощь студентам 3 29.04.2009 23:17
Помогите исправить ошибку в программе Paul_AG Общие вопросы C/C++ 12 24.03.2009 19:36
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 07.12.2008 19:42
ПОМОГИТЕ исправить ошибку в программе SYL@R Помощь студентам 1 21.11.2008 14:48