Первый небольшой практикум по Ruby (начинающий уровень)
Писатель не может научиться писать, читая книги. Программист не может научиться программировать без практики. Поэтому это занятие будет целиком практическим.
Итак, если вы читали все мои уроки по Ruby, то поздравляю вас — сейчас вы уже должны владеть неким базисом этого языка. Конечно, все что мы прошли – это начальный уровень подготовки, однако пренебрегать этими уроками не стоит.
Давайте закрепим с вами полученные знания. Я сейчас разберу пару скриптов и дам вам домашнее задание. Оно будет простым, но вам нужно обязательно его сделать. Программированию не учат. Программированию учатся, причем на своем опыте.
Итак, давайте рассмотрим любимый пример многих авторов программы-конвертора. Это простейшие программы по своей структуре, которые сильно нам облегчают жизнь. Это могут быть конвертеры валют, величин и прочее.
Давайте сделаем конвертер градусов по Цельсия в градусы по Кельвина. Итак, у нас будет константа KEL с величиной 273:
KEL=273 #0 градусов по Цельсии равно 273 по Кельвину puts “Введите величину градусов по Цельсии” grad=gets graKel=KEL+grad puts “#{grad} по Цельсия равно #{graKel} + по Кельвина”
Запустите скрипт и посмотрите результат. Как видите, я использовал константу KEL, чтобы не набирать все время 273. Градусы по Кельвина высчитываются просто добавлением нашей константы к градусам по Цельсия. Думаю, алгоритм вы поняли. Давайте теперь добавим немного интерактивности в нашу программу и сделаем выбор. Вдруг пользователь наоборот захочет конвертировать градусы по Кельвина в Цельсия, а мы этого не учли.
KEL=-273 puts “Выберите шкалу отсчета – K или C (ввести символ)” vib=gets if vib!=”C” || vib != “c” || vib!=”K” || vib!=”k” then puts “Вы ввели недопустимый параметр. Расчет невозможен” else if vib==”C” || vib==”c” then puts “Введите вычисляемые градусы” grad=gets gradC=KEL – grad puts “Реузальтат равен #{gradC}” else puts “Введите вычисляемые градусы” grad=gets graKel=KEL+grad puts “#{grad} по Цельсия равно #{graKel} + по Кельвина” end end
Как видите, здесь я ввел ветвление, в котором сначала проверил, какой выбор сделал пользователь и не ошибся ли он при вводе символа с клавиатуры и потом уже организовал два ветвления в зависимости от выбора. Безусловно, эти расчеты лучше сделать отдельными методами, но о них мы еще не говорили. Пока придется оставить все так как есть. Единственное, что здесь лучше ввести цикл, в котором пользоавтелю должна быть дана возможность выбрать выхода из программы или сделать новые расчеты. Попробуйте организовать его сами. Единственное, что выход из программы осуществляется с помощью оператора exit
Еще одно задание будет аналогично этому. Только вы уже сделаете более практичную вещь – запрограммируете конвертер валют.
Итак, задание будет таким: создать скрипт конвертера любых четырех валют. Выбор валюты осуществить посредством оператора case. Валюты и величины брать произвольные.
Безусловно, все эти скрипты абсолютно противоречат концепции Ruby и даже мои примеры не совсем правильны. Я сознательно упростил вам эти задачи, дабы вы поняли, как их решать. Даже конвертер градусов проще было реализовать с помощью case. Тем не менее, разберитесь в этом сами.
Пока на этом все. Можете придумать любые задания и попытаться их выполнить, чтобы набить руку. Тем не менее, несмотря на свою простоту, Ruby очень мощный язык. Поэтому настоящий практикум пойдет тогда, когда мы полностью пройдемся по работе со строками, числами и массивами. После этого нам нужно будет освоиться с хешами и объектами. Следующая ступень будет заключаться в том, чтобы показать как на Ruby можно писать настоящие графические программы с взаимодействием с операционной системой. Ну а потом мы приступим с вами к тому, ради чего и затевались эти уроки – освоению Ruby on Rails.