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

Простые типы данных языка программирования Crystal

Язык программирования Crystal

Онлайн среда выполнения кода  языка программирования  Crystal

Изучение любого языка программирования начинается с изучения простых типов данных. Изучение языка программирования Crystal начинаем с изучения типов данных по методике итерационного и инкрементного подхода, рассмотренного ранее в статье «Как правильно изучать языки программирования». Изучение типов данных также подразделяется на отдельные этапы. На первом этапе будем изучать простые(стандартные) типы данных.

Примечание. Для более эффективного усвоения изучаемого материала познакомьтесь с методикой и стилем познания.

Изучение языка программирования Crystal осуществляется с помощью онлайн среды программирования. Откроется окно, показанное на рисунке. Среда выполнения кода имеет поле редактора, где записывается код, кнопку “Скомпилировать и Выполнить”  и поле вывода результатов, которое появляется  после нажатия кнопки.

Изучение типов данных в среде программирования в режиме онлайн

Для сохранения написанного кода необходимо: скопировать и загрузить в файл в Загрузки ПК, сделав щелчок левой клавишей мышки по кнопке  Download.

Для дальнейшего использования сохраненного кода необходимо:

  • Открыть файл в блокноте и скопировать в буфер;
  • Скопировать из буфера в редактор среды Crystal.

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

К простым типам данных языка программирования Crystal относятся: целочисленные, вещественные, символьные и строковые.

Изучение целочисленных типов данных

Для обработки целых чисел применяются целочисленные простые типы данных, которые  в Crystal имеют две разновидности — знаковые  Int8(16, 32,64) и беззнаковые UInt8(16, 32,64). Их можно записывать с суффиксом типа, отделяемому от числа знаком подчеркивания, например, 123_i16 – тип  Int16,  и без суффикса, тогда тип по умолчанию выбирается из наиболее подходящих к числу типов: Int32, Int64 и UInt64.

Целочисленные типы данных  в Crystal можно представлять в двоичной форме, начиная с 0b: 0b1100(число 12), в восьмеричной форме, начиная с 0o: 0o123 (число 83) и в шестнадцатеричной форме, начиная с 0x: 0x012D (число 62)

Для закрепления данного материала необходимо выполнить ряд действий с целыми числами, как в области допустимых значений, так и за ее пределами. Допустимыми операторами для целых чисел являются :+ :- :* :/

Изучение целочисленных типов языка программирования Crystal

Хорошим способом усвоения синтаксиса и семантики языка программирования является анализ ошибок выполнения кода(…и опыт сын ошибок трудных…). Вот пример.

Ошибки с целыми типами языка программирования Crystal

Вещественные числа

Для работы с дробными числами используются простые вещественные типы данных. В языке  Crystal есть два вещественного типа с плавающей точкой:  Float32  и  Float64,  которые соответствуют типам, определяемым IEEE: binary32 и binary64.

Запись вещественного числа также может  с суффиксом типа после символа подчеркивания и без суффикса, тип по умолчанию Float64. Например, 121.0_f32( Float32), 125.0  (Float64).

Примечание. Для разделения цифр на группы, чтобы сделать числа удобными для чтения, можно использовать символ подчеркивания. Например, 1_000_000, лучше, чем 1000000, аналогично, 1_023_000.125_321,  лучше, чем 1023000.125321.

Для закрепления данного материала необходимо выполнить ряд действий с вещественными числами, как в области допустимых значений, так и за ее пределами, используя операторы :+ :- :* :/.

Изучение типов данных -действия с вещественными данными в языке Crystal

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

Ошибки с вещественным типом языка программирования Crystal

Из рисунка видно, что компилятор не может определить возможное переполнение разрядной сетки, поэтому это проблема программиста. Решается она правильным выбором типа данных. Аналогично можно экспериментируя, познавать различные исключительные ситуации. Компилятор — хороший учитель.

Символьные и строковые типы

Символьный тип(Char) в языке  Crystal представляется в Unicode в кодировке UTF-8.  Это означает, что для стандартных символов коды ASCII (0-127) и коды UTF-8 идентичны и занимают один байт памяти. Другие символы требуют от 2 до 4 байтов. В частности, то, что начинается с 110, представляет собой двухбайтную последовательность, то, что начинается с 1110, представляет собой трехбайтную последовательность, и то, что начинается с 11110, представляет собой четырехбайтную последовательность.

Записывается UTF-8 символ, окруженный одинарными кавычками: ‘a’ ‘Z’ ‘5’.

Строковый тип(String) представляет неизменяемую последовательность символов в кодировке UTF-8. Создается String  с помощью строкового литерала, заключая UTF-8 символы в двойные кавычки: например, «hello world»

Константа(тип Symbol) в языке  Crystal определяется именем, без необходимости давать ей числовое значение, например, без пробелов :hello, :good_bye, и с пробелами и символами — :»symbol with spaces». Изучение простых типов данных языка программирования Crystal на этом можно было бы закончить. Однако на практике применяются не только наборы простых типов, но и их комбинации.

Изучение массива данных

Особым типом данных являются массивы(Array). Массив это универсальная структура данных, содержащая элементы определенного типа. Массивы на языке Crystal создается с помощью следующих литералов массива:

  1. [1, 2, 3]         # Array(Int32)
  2. [1, «hello», ‘x’]    # Array(Int32 | String | Char)

Массив может иметь элементы смешанного типа, это значит, что массив будет являться объединением типов, и они будут вычисляться при создании массива: либо при явном определении типа, либо используя литерал массива.

Совместные (или комбинированные) типы данных являются мощной особенностью Crystal: выражение может иметь набор из множества типов во время компиляции, и компилятор тщательно проверяет, разрешены ли все вызовы метода для всех этих типов.

При создании пустого массива мы всегда должны определить тип:

[] of Int32    # создастся как Array(Int32).new.

[]          # синтаксическая ошибка – не определен тип.

Способы объявления массивов.

  1. c=[12, 27, 31]         # Array(Int32)
  2. b=[11, "hello", 'x']    # Array(Int32 | String | Char)
  3. d=[] of Int32    # создастся как Array(Int32).new
  4. # []      # синтаксическая ошибка, не определен тип
  5. sum=c[1]+c[2]
  6. puts "Суммирование элементов массива с[]"
  7. puts sum

Можно легко добавлять значения массива с помощью оператора «<<«, но только для целых и строковых типов.

c=[12, 27, 31] << 43

puts  c[3] # результат c=[12, 27, 31, 43]

Для итерации массивов можно использовать любой оператор цикла, но лучше использовать метод «each». Он намного быстрее простого цикла «while».

            Преобразование типов

Язык программирования Crystal сильно типизирован,  поэтому надо быть очень аккуратным с преобразованиями типов. Преобразование типа  следует выполнять явно т.е. недвусмысленно и ясно для компилятора Crystal. Это можно выполнить с помощью разных методов типа «to_*», где вместо «звездочки» указывается краткое обозначение типа. Для простейших типов данных компилятор языка Crystal вполне справляется с преобразованиями автоматически, например, int8 в int32.

Например, для преобразования типа «float» в целое число можно использовать метод to_i, но следует иметь в виде, что преобразование осуществляется “отбрасыванием” дробной части без предупреждения.

 Синтаксис имеет вид;

   х = 64.34603985

   х.to_i # результат 64

Метод  to_s преобразует любой тип в тип String .Для преобразования в числа с плавающей запятой, надо использовать метод ‘to_f ‘.

Кроме того,  Crystal делает различие между двумя понятиями:

  • Тип на стадии компиляции: какой тип видит компилятор, он задается с помощью «typeof»;  
  • Тип времени выполнения: какой тип объект имеет, когда программа уже запущена и он определяется методом «class».

Но об этом позже.

Заключение

Изучение нового языка программирования Crystal не сложно, особенно для тех, кто знает хотя бы один из языков программирования. Но тв любом случае начинать надо с изучения типов данных.

Хорошую помощь в освоении языка программирования оказывает его среда программирования. В данном случае используется онлайн режим ее работы. Изучение типов данных языка программирования Crystal всегда следует осуществлять в консольном режиме работы среды программирования.

Для изучения языка программирования Crystal используется методика итерационного и инкрементного подхода, управляемого профессиональными требованиями, подробно описанная в статье «Как правильно изучить язык программирования?».

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

Изучение управляющих
конструкций языка
программирования Crystal
Изучение языка программирования Crysal Управляющие конструкции Процедурное программирование
на языке Crystal
Процедурное программирование на языке Crystal
Структурированные
типы данных языка
программирования Crystal
Структурированные типы данных Объектно — ориентированное
программирование на языке Crystal
Объектно ориентированное программирование
  1. Что такое программирование?
  2. Как выбирать язык программирования высокого уровня для изучения
  3. Что выбирать язык или платформу программирования?
  4. Онлайн школы и курсы программирования
  5. Дистанционный курс «Python-разработчик»
  6. Обучение программированию дистанционно в Ставрополе
  7. Как изучать алгоритмы решения задач?
  8. Как стать специалистом по большим данным?
Кто хочет своевременно узнавать о выходе новой статьи на сайте должен подписаться.

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

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

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

brasm

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

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

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