Разработка пользовательских классов
Пример программы на языке Ruby, демонстрирующий работу с классами, уже приводился в глава 9. Следующий пример демонстрирует использование так называемой переменной класса, которая не принадлежит ни одному из экземпляров данного класса, а используется для хранения информации, относящейся ко всему классу в целом.
Задача
Напишите программу, описывающую класс автомобиль и два его дочерних класса: спортивные машины и машины для семейного использования. В программе нужно предусмотреть возможность печати общего числа созданных автомобилей.
Решение
Поместите в файл с именем car.rb следующую программу:
class Car @@NUM_CARS = 0 def initialize @@NUM_CARS = @@NUM_CARS + 1 puts @@NUM_CARS end end class SportsCar < Car end class FamilyCar < Car end
a = Car.new b = SportsCar.new c = FamilyCar.new
Для запуска программы выполните команду ruby car.rb. При создании каждого автомобиля, независимо от того, к какому (родительскому или дочернему) классу он принадлежит, значение переменной класса @@NUM_CARS увеличивается на единицу.
Пример 1.16.
(html, txt)
Задания
- Напишите программу, запрашивающую с клавиатуры натуральное число, большее 1, и печатающую список всех простых несократимых дробей, заключенных в интервале между 0 и 1, знаменатели которых не превышают введенное число. Например, если ввести число 4, то должна быть напечатана последовательность 1/2, 1/3, 2/3, 1/4, 3/4. Подсказка: используйте функцию нахождения НОД.
- Создайте текстовый файл, в котором разместите фамилии учащихся и их рост в сантиметрах. Напишите программу
- печатающую фамилию и рост самых высоких учеников;
- по введенному числу - росту с сантиметрах - печатающую список всех учащихся, чей рост не превышает введенного числа.
- Напишите программу, вычисляющую методом Монте-Карло площадь криволинейной трапеции, ограниченной графиками функций y=sin(x) и y=0 (x изменяется в интервале от 0 до PI).
![](../../../../img/empty.gif)
![]() | © 2003-2007 INTUIT.ru. Все права защищены. |