Информация по теме

Цель: познакомиться с основными методами работы с контейнерами, описания логики внутри блоков и использования стандартных итераторов.

Материалы для кодготовки

  • Глава №4 книги Programming Ruby 2.0
  • Глава №5 книги Изучаем Ruby
  • Глава №8 книги Путь Ruby

Презентация

Презентацию можно скачать по данной ссылке.

Код, написанный на паре, можно скачать по данной ссылке

Практическое занятие

Цель занятия: научиться использовать стандартные контейнеры для решения поставленных задач, использовать стандартные итераторы.

В качестве основы мы будем использовать предыдущее задание. Вам необходимо восстановить код предыдущего задания:

  • Класс для описания одной записи об оплате.
  • Класс для описания всех наборов записей.
  • Методы для считывания данных из CSV-файлов.

В процессе решения следующих задач вам необходимо написать по 2 метода. Первый метод должен использовать цикл for для обхода значений массива. Вы можете использовать также цикл while. Название данного метода должно иметь суффикс _for.

Второй метод должен использовать итераторы для решения данной задачи. Название метода должно иметь суффикс _iter. Желательно, чтобы методы располагались друг за другом.

Задачи

  • Найти среднее арифметическое значение всех поступивших платежей.
  • Найти 10 самых больших платежей, поступивших за всё время. Отсортировать их по убыванию объёма платежа.
  • Сфромировать список месяцев и объёмов платежей, поступивших за каждый из них. Результатом работы должен быть Хеш. Ключ - название месяца, значение - общий объём платежей.
  • Найти платёж, наиболее близкий к среднему арифметическому значению.
  • Найти по 5 самых больших платежей за каждый месяц. Отсортировать их по времени получения.
  • Указать какой из домов принёс наибольшую прибыль по каждому месяцу.

    Документация

  • Официальная документация на методы класса Array
  • Официальная документация на методы класса Hash
  • Официальная документация на модуль Enumerable