Вывести все содержащиеся в массиве четные числа в порядке убывания их индексов - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

попробовал решить несложную задачку из встроенного задачника: "вывести все содержащиеся в массиве четные числа в порядке убывания их индексов", решил сразу испробовать большую часть богатого функционала и набросал следующее:
Листинг программы
  1. begin
  2. var a := ArrRandom(10, 0, 9);
  3. println(a);
  4. var b := a.Select((n, i)-> i mod 2 = 0 ? Rec(i, n) : nil).Where(t->t <> nil);
  5. println(b);
  6. var c := b.Sorted.Reverse.Select(n->n.Item2);
  7. println(c);
  8. end.
вроде все правильно, а выводит как то странно, и нечетные и четные числа... [6,0,2,6,7,3,0,6,7,8] [(0,6),(2,2),(4,7),(6,0),(8,7)] [7,0,7,2,6]
вспомнил правда про функцию odd и с ней заработало верно, но мне все равно интересно почему через mod неправильно выходит? ведь odd и сам использует mod внутри...

Решение задачи: «Вывести все содержащиеся в массиве четные числа в порядке убывания их индексов»

textual
Листинг программы
  1. var a := ArrRandom(10, 0, 9);
  2. println(a.Where(n -> n mod 2 = 0).Reverse());

Объяснение кода листинга программы

В данном коде используется язык программирования PascalABC.Net. Постановка задачи заключается в выводе всех четных чисел, содержащихся в массиве, в порядке убывания их индексов.

  1. Объявляется переменная a и присваивается ей значение массива ArrRandom(10, 0, 9).
  2. Выполняется действие println, которое выводит на экран результат работы функции Where и Reverse.
  3. Функция Where применяет к каждому элементу массива a условие n -> n mod 2 = 0, т.е. выбирает только четные числа.
  4. Результат работы функции Where передается в функцию Reverse, которая переворачивает порядок элементов.
  5. Результат работы функции Reverse выводится на экран с помощью функции println.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы