Skip to content

Instantly share code, notes, and snippets.

@psylone
Last active March 23, 2018 07:58
Show Gist options
  • Save psylone/0b20769fb4aac017ed76 to your computer and use it in GitHub Desktop.
Save psylone/0b20769fb4aac017ed76 to your computer and use it in GitHub Desktop.
Задания к занятию 1

Задания к занятию 1

  • Типы данных Ruby
  • Ядро языка

1. Установка рабочего окружения

Рекомендуемый текстовый редактор: http://atom.io

2. Методы Ruby Core API

Найдите в документации Ruby по адресу http://ruby-doc.org/core/ методы для объектов разных классов. Поэкспериментируйте с ними в интерактивной оболочке irb

Для класса Fixnum:

  • Метод, увеличивающий число на единицу
  • Метод проверяющий является ли число нулём
  • Метод возвращающий модуль числа

Для класса Float:

  • Метод, округляющий вещественное число вниз до целой части
  • Метод, возвращающий результат деления 2-х чисел в виде массива с целой частью и остатком от деления

Для класса String:

  • Метод, приводящий все символы в строке к нижнему регистру
  • Метод, возвращающий следующий символ за текущим (согласно кодам ASCII)
  • Метод изменяющий текущий объект строки, путём удаления предшествующих и завершающих пробельных символов

Для класса Array:

  • Метод, удаляющий все встречающиеся элементы в массиве равные заданному
  • Метод, возвращающий текущий массив с элементами в случайном порядке
  • Метод, превращающий массив в строку путём объединения его элементов

Для класса Hash:

  • Метод, проверяющий наличие заданного ключа в хэше
  • Метод, объединяющий 2 объекта хэшей

Для класса Range:

  • Метод, возвращающий максимальное значение диапазона

3. Модификация кода

Модифицируйте существующий код:

results = [10, 2, 5, 12, 11, 11, 4]

for sum in results
  puts sum
end

таким образом, чтобы в стандартный поток вывода (на экран) выводилась информация:

Количество очков по партиям
===========================

Партия: 1 / Выпало очков: 10
Партия: 2 / Выпало очков: 2
Партия: 3 / Выпало очков: 5
Партия: 4 / Выпало очков: 12
Партия: 5 / Выпало очков: 11
Партия: 6 / Выпало очков: 11
Партия: 7 / Выпало очков: 4

Подсказка:

  • Используйте дополнительную переменную для слежения за индексом массива
  • Используйте интерполяцию

4. Типы данных в реальном мире

Подумайте, какие типы данных можно использовать для описания:

  • Туристической группы
  • Количества денег на счету в банке - Списка книг и их количества
  • Признака есть ли у человека суперспособности
  • Количества соток для участка
  • Количества очков жизни игрока
  • Имени пользователя
  • Содержания поста
  • Возрастной категории
  • Названия социальной сети, которое будет использоваться в коде по всему проекту

5. Расширение класса String

Напишите метод разности двух объектов класса String. Например:

"Hello, my Ruby world!" - "om" # => "Hell, y Ruby wrld!"

то есть, все символы второй строки исключаются из первой.

Подсказка: Используйте возможность Ruby, которая позволяет определять методы для существующих классов (в том числе и для классов ядра языка). Например:

class Fixnum
  def add value
    self + value
  end
end

1.add 9 # => 10

Контакты для связи

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment