Кто, что сумеет. Решите, пожалуйста на Паскале2а.1. Отыскать номер первого отрицательного

Кто, что сумеет. Решите, пожалуйста на Паскале

2а.1. Найти номер первого отрицательного элемента массива.
2а.2. Отыскать значение и номер заключительного четного положительного элемента.
2а.3. Найти номер второго элемента, кратного 5.
2а.4. Сколько положительных чисел между вторым и третьим нулевыми элементами?
2а.5. Напечатать номера первых 4 положительных элементов.
2а.6. Найти номера первого и заключительного отрицательных частей.
2а.7. Сколько четных частей находится меж первым положительным и заключительным отрицательными элементами.

Задать свой вопрос
1 ответ
 // PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программка не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-11,11); a.Println;
  // 1
  begin
    var s:=a.Where(t-gt;tlt;0);
    if s.Count=0 then
      Writeln('1. Нет отрицательных частей')
    else
      Writeln('1. 1-ый отрицательный элемент номер ',
          a.IndexOf(s.First)+1)
  end;
  // 2
  begin
    var s:=a.Select((v,i)-gt;(v,i)).Where(t-gt;(t[0]gt;0) and t[0].IsEven);
    if s.Count=0 then
      Writeln('2. Нет четных положительных частей')
    else begin
      var r:=s.Last;
      Writeln('2. Последний четный положительный элемент номер ',r[1]+1,
          ', значение ',r[0])
      end
  end;
  // 3
  begin
    var s:=a.Select((v,i)-gt;(v,i)).Where(t-gt;t[0] mod 5=0);
    if s.Countlt;2 then
      Writeln('3. Нет 2-ух частей, кратных 5')
    else
      Writeln('3. Номер второго элемента, кратного 5, равен ',
          (s.Skip(1).Take(1)).First[1]+1)
  end;
  // 4
  begin
    var s:=a.Select((v,i)-gt;(v,i)).Where(t-gt;t[0]=0);
    if s.Countlt;3 then
      Writeln('4. Нет 3-х нулевых элементов')
    else begin
      s:=s.Skip(1).Take(2);
      Writeln('4. Количество положительных частей между ',
          'вторым и третьим нулевыми элементами равно ',
          a[s.First[1]+1:s.Last[1]].Where(t-gt;tgt;0).Count)
      end
  end;    
  // 5
  begin
    var s:=a.IndexesOf(t-gt;tgt;0).Take(4).Select(t-gt;t+1);
    if s.Countlt;4 then
      Writeln('5. Нет 4 положительных частей')
    else begin
      Write('5. Номера первых четырех положительных частей: ');
      s.Println
      end
  end;
  // 6
  begin
    var s:=a.IndexesOf(t-gt;tlt;0);
    if s.Count=0 then
      Writeln('6. Нет отрицательных элементов')
    else
      Writeln('6. Номера первого и заключительного отрицательных частей: ',
          s.First+1,' ',s.Last+1)
  end;
  // 7
  begin
    var s:=a.IndexesOf(t-gt;tgt;0);
    if s.Count=0 then
      Writeln('7. Нет положительных частей')
    else begin
      var i1:=s.First;
      s:=a.IndexesOf(t-gt;tlt;0);
      if s.Count=0 then
        Writeln('7. Нет отрицательных частей')
      else begin
        var i2:=s.Last;
        Writeln('7. Количество четных частей меж первым ',
            'положительным и последним отрицательными элементами: ',
            a?[i1+1:i2].Where(t-gt;t.IsEven).Count)
        end
      end  
  end
end.
Слонина Валя
Спасибо громадное!!!
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт