Просмотров-74
0

Пример ООП на языке программирования Crystal

В данной статье показано, что объектно ориентированное программирование на языке Crystal при решении практических задач эффективнее процедурного программирования.

Для примера использования ООП в языке программировании Crystal рассмотрим задачу измерения температуры и давления воздуха. Для получения измерений  применяется два датчика – один в качестве датчика температуры, другой  — датчика давления.

В программе предусматривается базовый класс Sensor, отражающий общие свойства любого датчика, и два производных от него класса SensorTemp  и  SensorDavl, соответственно, представляющие объекты — датчик температуры и давления. Измерения передаются в эти классы для хранения.

В качестве измеренного значения формируется среднее арифметическое всех измерений — сумма всех измерений, деленная на их количество. Для этого создается отдельный класс Izmer, в котором в методе srZnach осуществляется суммирование элементов массива измерений и вычисление среднего значения.

Код программы.

  1. class Sensor                #измеритель — базовый класс
  2.    @n=5
  3.    @k=15
  4.   @sum=0
  5.              @izmPar =[] of Float64    #создаем пустой массив Array(Float64)
  6.   def initialize(@n : Int32, @k : Int32, izmPar=[] of Float64)
  7.             z = gen(n,k,izmPar)  # генерируем массив izmPar(Float64) из n элементов
  8. #          puts izmPar # оператор для отладки программы
  9.   end
  10.    def gen(n,k,mas=[] of Float64)
  11.              i=0
  12.                         while i<n
  13.              mas<<k+0.01*k*rand
  14.                            i+=1
  15.                          end
  16. #    puts mas # оператор для отладки программы
  17.    end
  18. end
  1. class SensorTemp  < Sensor  #измеритель температуры — производный класс
  2.             def srTemp                 # метод вычисления среднего значения температуры
  3.             end
  4. end

Далее создается класс для создания объекта — измеритель давления, — как производный класс от базового класса Sensor.

  1. class SensorDavl  < Sensor  #измеритель давления — производный класс
  2.  def srDavl                 # метод вычисления среднего значения давления
  3.             end
  4. end
  1. class Izmer  # вычислитель самостоятельный класс
  2.   def initialize()
  3.   end
  4.    def srZnach(n,mas=[] of Float64)
  5.              i=0
  6.     sum=0
  7.                         while i<n
  8.              sum += mas[i]
  9.                            i+=1
  10.                          end
  11.     srZnach=sum/n
  12. #    puts «Среднее в классе», srZnach # оператор для отладки программы
  13.     return srZnach
  14.    end
  15. end

# Программа вычисления температуры и давления воздуха будет иметь следующий код.

  1. puts «Имитация измерителя температуры и давления»
  2. n=5
  3. srGenT=25
  4. srGenD=760
  5. izmPar =[] of Float64    #создаем пустой массив Array(Float64)
  6. sensor = Sensor.new(n,5,izmPar)
  7.  izmer=Izmer.new()
  8. izmTemp =[] of Float64
  9. sensTemp = SensorTemp.new(n,srGenT,izmTemp)
  10. printf «Массив температур  —  «
  11. #puts «\n», izmTemp # оператор для отладки программы
  12. izmTemp.each_with_index{ |n, idx| print «%#{3.2}f » % n; print «\n» if idx % 10 == 5 }
  13. srTemp=izmer.srZnach(n,izmTemp)
  14. puts «\n», «Средняя температура», «%3.2f» %srTemp
  15. izmDavl =[] of Float64
  16. sensDavl = SensorDavl.new(n,srGenD,izmDavl)
  17. printf «Массив давлений  —  «
  18. izmDavl.each_with_index{ |n, idx| print «%#{3.2}f » % n; print «\n» if idx % 10 == 5 }
  19. srDavl=izmer.srZnach(n,izmDavl)
  20. puts «\n», «Среднее давление», «%3.2f» %srDavl

Результаты выполнения приведенной выше программы в среде разработки и выполнения языка Crystal представлены на следующем рисунке.

Объектно-ориентированное программирование на языке Crystal- результаты выполнения программы

Анализ представленных результатов свидетельствует о работоспособности программы на языке Crystal. Это подтверждает возможности языка программирования Crystal создавать достаточно сложное и эффективное программное обеспечение.

Заключение

Объектно ориентированное программирование на языке Crystal при решении практических задач эффективнее процедурного программирования.

Программа, созданная на основе ООП на языке программирования Crystal, более компактна и удобочитаемая по сравнению с такой же программой на основе процедурного программирования.

Другой вариант объектно-ориентированного программирования при создании оконного приложения методом событийно-визуального программирования представлен в статье.

Статьи по теме

Изучение управляющих
конструкций языка
программирования Crystal
Изучение языка программирования Crysal Управляющие конструкции Простые типы данных
языка программирования
Crystal
Язык программирования Crystal
Структурированные
типы данных языка
программирования Crystal
Структурированные типы данных Объектно — ориентированное
программирование на языке Crystal
Объектно ориентированное программирование

А также…

На этом пока все. До скорой встрече на сайте brasmlibras.ru.

Внимание! Кто хочет своевременно узнавать о выходе новой статьи на сайте должен подписаться.

ПОДПИСКА НА РАССЫЛКУ

Статьи об онлайн курсах обучения

Дистанционное обучение
Обучение программированию
Проектирование информационных систем
 

brasm

Пенсионер с 33 - летним педагогическим стажем

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *