Читаем Учись программировать полностью

srand 1776 puts(rand (100)) puts(rand(100)) puts(rand(100)) puts(rand (100)) puts(rand(100)) puts '' srand 1776 puts(rand(100)) puts(rand(100)) puts(rand (100)) puts(rand(100)) puts(rand(100))

Одно и то же будет выдаваться каждый раз, когда вы «посеете» то же самое число в качестве зерна. Если вы снова хотите получать различные числа (также, как происходит, если вы не применяли до этого srand), то просто вызовите srand 0. Этим вызовом в генератор «засевается» действительно причудливое число с использованием (кроме всего прочего) текущее время в вашем компьютере, с точностью до миллисекунды.

Объект Math

Наконец, давайте рассмотрим объект Math. Наверное, нам следует сразу окунуться в примеры:

puts(Math::PI)

puts(Math::E)

puts(Math.cos(Math:

:PI/3))

puts(Math.tan(Math:

:PI/4))

puts(Math.log(Math:

:E**2))

puts((1 + Math.sqrt(5))/2)

Первое, что вы, возможно, заметили, это символы :: в обозначениях констант. Объяснение оператора пределов видимости (а это именно он) на самом деле выходит за, хм… пределы этого учебника. Я не хотел каламбурить. Честное слово. Достаточно сказать, что вы можете просто использовать Math::Pi в ожидаемом вами значении.

Как видите, в Math есть всё, что вы предполагаете иметь в приличном научном калькуляторе. И как и прежде, дробные числа действительно близко представляют правильные результаты. [Точность вычислений десятичных чисел ограничена их двоичным представлением в компьютере. – Прим. перев.]

А теперь перейдём к выполнению!

<p>6. Управление выполнением</p>

Ааааа, управление выполнением… Вот где всё соединяется воедино. И хотя эта глава короче и легче, чем глава о методах, она откроет вам целый мир программных возможностей. После этой главы мы сможем писать по-настоящему интерактивные программы; до этого мы создавали программы, которые выводили разные вещи в зависимости от вашего ввода с клавиатуры, но после этой главы они также будут действительно делать разные вещи. Но прежде, чем мы сможем сделать это, нам нужно иметь возможность сравнивать объекты в наших программах. Нам нужны…

Методы сравнения

Давайте быстро пробежимся по этому разделу, чтобы можно было перейти к следующему разделу, «Ветвления», где будут происходить самые классные вещи. Так, чтобы узнать, что один объект больше или меньше другого, мы применяем методы > и <, вот так:

puts 1 > 2 puts 1 < 2

false

true

Ничего сложного. Подобным же образом мы можем выяснить, что объект больше или равен другому (или меньше или равен) с помощью методов >= и <=.

puts 5 >= 5 puts 5 <= 4

true

false

И наконец, мы можем выяснить, равны ли два объекта или нет, используя == (что обозначает «они равны?») и != (что обозначает «они различны?»). Важно не путать = с ==. = используется, чтобы заставить переменную указывать на объект (присваивание), а == используется для ответа на вопрос: «Эти два объекта равны?»

puts 1 == 1 puts 2 != 1

true

true

Конечно, мы также можем сравнивать строки. Когда сравниваются строки, они сопоставляются в лексикографическом порядке, что обычно означает словарную упорядоченность. cat в словаре идёт перед dog, поэтому:

puts 'cat' < 'dog'

true

Однако, здесь таится ловушка: обычно в компьютерах устроено так, что устанавливается такой порядок букв, в котором заглавные располагаются перед строчными буквами. (Так хранятся буквы в шрифтах, например: сначала все заглавные буквы, а за ними – строчные.) Это означает, что компьютер будет думать, что ' Zoo' располагается перед ' ant', так что, если вы хотите выяснить, какое слово идёт первым в настоящем словаре, обязательно примените метод downcase (или upcase или capitalize) к обоим словам прежде, чем вы попытаетесь их сравнить.

Последнее замечание перед «Ветвлением»: методы сравнения не возвращают нам строки 'true' и 'false'; они возвращают нам специальные объекты true и false.

(Конечно, true.to__ s вернёт нам ' true', именно поэтому puts напечатал ' true'.)

true и false всегда используются для…

Ветвления

Ветвление – это простое, но очень мощное понятие. Фактически, оно настолько простое, что, ей-Богу, мне совсем даже и не нужно объяснять его; я просто покажу его вам:

puts 'Привет, как Вас зовут?' name = gets.chomp puts 'Привет, ' + name + '.' if name == 'Chris'

puts 'Какое милое имя!' end

Привет, как Вас зовут?

Chris

Привет, Chris.

Какое милое имя!

Но если мы введём другое имя…

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных