- писать простые программы на Ruby
Концепции:
- if-else, перем
- циклы
- типы данных
- ввод-вывод
- типы данных
- методы
Цитата из книги "основы python":
Программа — это последовательность инструкций, в которых указано, как выполнять вычисления. Вычисления могут быть математическими, такими
как решение системы уравнений или поиск корней многочлена, но это также могут быть символические вычисления, например поиск и замена текста
в документе, или что-то графическое, например обработка изображения или воспроизведение видеоролика.
Детали реализации выглядят по-разному на разных языках, но несколько основных инструкций универсальны для любого языка:
— ввод данных (input):
Получение данных с клавиатуры, из файла, по сети или с другого устройства.
— вывод данных (output):
Отображение данных на экране, сохранение их в файл, отправка по сети и так далее.
— математические операции (math):
Выполнение основных математических операций, таких как сложение и умножение.
— условное выполнение (conditional execution):
Проверка определенных условий и выполнение соответствующего кода.
— повторение (repetition):
Выполнение некоторого действия несколько раз, часто с некоторыми изменениями.
Верьте или нет, но это все, что нужно знать. Каждая программа, которую вы когда-либо использовали, независимо от ее сложности, состоит из таких инструкций. Таким образом, вы можете представить программирование как процесс разбиения большой и сложной задачи на всё более мелкие подзадачи, пока подзадачи не станут достаточно простыми, чтобы их можно было сформулировать с помощью одной из этих инструкций.
Объекты, переменные, условный оператор IF
Типы данных в Ruby
Поток выполнения, работа с массивами
Циклы в Ruby
Ruby loops
- что такое переменная в Ruby?
- как работает логический типа данных (bool)?
- что значит выражение "в Ruby всё является объектом"?
- что такое ввод и вывод данных в программировании? вспомните примеры из того, что делали на прошлых занятиях.
- что такое цикл в программировании? Какие бывают циклы в Ruby?
Будем работать в нашей директории для кода (например, cd ~/apps/ruby-newbie
), вы создавали её и соответствующий репозиторий на уроке "git".
В терминале перейдите в эту директорию. В ней уже должны быть файлы с программами с ознакомительного урока.
Для каждого упражнения создаём отдельный файл (в директории с кодом для курса) с расширением .rb
, например magic_ball.rb
. Запускаем программу: ruby magic_ball.rb
.
Будет удобно открыть вашу директорию в редакторе кода (vs code), там удобно будет создавать файлы для новых упражнений и просматривать/редактировать код. Вы можете запустить интегрированный терминал с помощью клавиш Ctrl+`
Больше об интегрированном терминале
Выполним упражнение Magic Ball с бесплатного курса RubyRush. Вы можете изменить опции по своему желанию.
Изменения в magic ball
Упражнение: сегодня выходной?
gets
- получение ввода от пользователя
STDIN
это специальный объект, который содержит ссылку на консоль, откуда пользователь вводит данные. Пока не вдаваясь в детали, просто запомните этот подход и впредь используйте только его.
STDIN.gets
- получение ввода от пользователя
При выполнении следующего упражнения "Конвертор" обратите внимание на особенности работы с числовыми типами (читайте подсказку). При делении целых чисел Ruby даст результат в виде целого числа:
irb(main):001> 3/2
=> 1
Чтобы получить результат с плавающей точкой (float), нужно привести делимое к этому типу:
irb(main):002> 3.to_f/2
=> 1.5
Работа с массивами
Объединение массивов
Дополнение к заданию "объединение массивов":
представим, что мы на уроке и выберем, кого мы вызовем к доске случайным образом. Это можно сделать с помощью метода sample
Выведите на экран:
"К доске пойдёт: (имя)"
Затем выберите двух других учеников случайным образом и "задайте им дополнительное задание".
Дополнительное задание для учеников: (имена)
Для более красивого вывода массивов строк можно использовать метод join
Пользуйтесь советом из подсказки - сначала составьте схему, как должна работать программа.
Выведите на экран числа с 1 до 10 с помощью циклов: while
, for
Циклы vs итераторы:
The iterator is an object (sometimes we say method) allowing to iterate over the data set. So, we can go in loop over each object in the collection and do some repeatable work. When you look at this definition you can say that functionality, I mean what iterators do, is the same like for loops. That’s true, but they do that in different ways. When you use loops, you use external object to do that. Like in our example, you use robot to put mugs in boxes. In iterators case, collection itself do this iterations. Or in other words collection itself has its own iterator. So, this is like a collection of mugs packing themselves to the boxes without an external robot.
Выведите на экран числа с 1 до 10 с помощью методов times
, upto
.
Упражнение:
- создайте массив имён, выведите последовательно на экран с помощью метода
each
- создайте массив чисел, с помощью метода
map
измените его - каждый элемент увеличьте на 2; выведите каждый элемент массива на экран с помощью методаeach
Внесите код, написанный на занятии, в репозиторий (который вы создавали на прошлых занятиях)ю
Ruby Iterators
Упражнение "свой текстовый квест"
Аргументы командной строки
Enumerable methods
Упражнение "Виселица"