Найти номер последнего отрицательного числа в массиве Паскаль , господа.

0 голосов
96 просмотров

Найти номер последнего отрицательного числа в массиве
Паскаль , господа.


Информатика (96 баллов) | 96 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Я не стану указывать эпитетов к своему коду, пусть он сам скажет за себя.
Алгоритм такой: просматриваем массив от конца к началу. И завершаем работу, как только встретим отрицательный элемент. А если так и не встретим до начала массива, значит таких элементов в массиве нет.

const
  n=20; { размер массива }
var
  a:array[1..n] of integer;
  i:integer;
  found:boolean;
begin
  Randomize;
  Writeln('Элементы массива');
  for i:=1 to n do begin
    a[i]:=Random(21)-10; { случайное число на интервале [-10;10] }
    Write(a[i]:4)
  end;
  Writeln;
  { собственно задание }
  i:=n;
  repeat
    found:=(a[i]<0);<br>    Dec(i)
  until (i=0) or found;
  if found then Writeln('Номер элемента равен ',i+1)
  else Writeln('Отрицательных элементов нет')
end.

Тестовое решение:
Элементы массива
  -3   5  -2   3   2  -2  -5   7   9  -3   1  -2  -1  -6   1  -6   2   8   7   1
Номер элемента равен 16

(142k баллов)
0 голосов

Вот код простой и понятный
В строке №7 мы записали переменную для хранения индекса отрицательного элемента.
В строке №19 мы задаем условие, при котором перебираются все 10 сгенерированных чисел и среди них ищется отрицательный, и если отрицательное число находится, то его индекс (номер) заносится в переменную K (строка №21).
В строке №23 записывается условие: если переменная «K» больше 0 (т.е. есть отрицательные элементы), то на экран выводится сообщение (строка №24). В обратном случае (если нет отрицательных элементов, и «K» так и останется равным 0), выведется сообщение (строка №26)


image
(14 баллов)