Дан массив не нулевых целых чисел. Определить сколько раз элементы массива при просмотре от его начала меняют знак. Например в массиве 10,-4,12,56,-4,-89 знак меняется 3 раза- Pascal(Паскаль)

program Project1;
 
const
  N = 10;
var
  Arr : array[1..N] of Integer;
  i, Cnt : Integer;
begin
  (*Заполнение и распечатка массива.*)
  Writeln('Исходный массив:');
  Randomize;
  for i := 1 to N do begin
    Arr[i] := 1 + Random(10);
    (*С вероятностью 1/3 меняем знак на минус.*)
    if Random(3) = 0 then Arr[i] := -Arr[i];
    if i > 1 then Write(', ');
    Write(Arr[i]);
  end;
  Writeln;
  (*Решение задачи.*)
  Cnt := 0;
  for i := 1 to N - 1 do
    if Arr[i] * Arr[i + 1] < 0 then Cnt := Cnt + 1
  ;
  Writeln('Знак меняется ', Cnt, ' раз.');
  
  Readln;
end.

Leave a Comment

46 − = 45