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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2012, 20:38   #1
Oksik_
Новичок
Джуниор
 
Регистрация: 05.11.2012
Сообщений: 6
Вопрос Найти номер первой из строк, не содержащих ни одного положительного элемента.

Задание: Найти номер первой из строк, не содержащих ни одного положительного элемента. Подскажите в чём ошибка?
Код:
z:=0;
for i:=1 to n do begin
for j:=1 to n do begin
 if a[i,j]<=0 then z:=z+1
 else begin z:=0;  continue;  end;
 if z=n then begin y:=i; break; end
 end;end;
 writeln(y);
readln;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 07.11.2012 в 01:13.
Oksik_ вне форума Ответить с цитированием
Старый 06.11.2012, 21:17   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
const
  n = 10;

var
  a: array[1..n, 1..n] of integer;
  i, j, y: integer;

begin
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      a[i, j] := random(10) - 5;
      write(a[i, j]:5, ' ');
    end;
    writeln;
  end;
  
  
  y := -1;
  for i := 1 to n do 
  begin
    for j := 1 to n do 
      if a[i, j] > 0 then break;
    if a[i, j] <= 0 then
    begin
      y := i;
      break;
    end;
  end;
  writeln(y);
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.11.2012, 21:18   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Честно говоря, переделать код быстрее, так как ошибка, видимо, в подходе к решению:

Код:
var minus: boolean;         {логическая переменная, определяющая наличие в строке элементов>0}
...
begin
  for i:=1 to n do begin
    minus:=true;              {по-умолчанию считаем, что в строке нет положительных элементов}
    for j:=1 to n do if minus then minus:=a[i,j]<0; {Если minus=true (т.е. все найденные элементы пока отрицательные), то minus принимает значение выражения a[i,j]<0. Таким образом, если a[i,j]>=0 то minus=false }
    if minus then break; {Если minus=true (Все элементы отрицательные) то прерываем цикл}
  end;
  writeln(i); {Выводим значение i, на котором прервался цикл - это и есть наша строка}
  readln;
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти сумму первой и последней цифр любого целого положительного числа. Лина94 Помощь студентам 5 01.02.2012 23:09
C++ Определить количество столбцов, не содержащих ни одного положительного элемента. Dmitry_Web Помощь студентам 6 21.01.2012 02:04
определить количество столбцов, не содержащих ни одного нулевого элемента Larka12 Помощь студентам 1 07.02.2011 20:52
Определить порядковый номер 1-го положительного элемента массива А BaNNeD Помощь студентам 4 19.12.2010 19:10
Дана целочисленная матрица размера M × N. Найти номер последнего из ее столбцов, содержащих равное количе tanjusha Общие вопросы C/C++ 4 01.04.2010 20:03