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

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

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

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

Изучение любого языка программирования начинается с изучения простых типов данных. Простые типы данных нового языка программирования Crystal изучаются в среде программирования итерационно-инкрементным методом.

В соответствие с указанным подходом изучение типов данных языка программирования Crystal осуществляется в несколько отдельных этапов. На первом этапе будем изучать простые (стандартные) типы данных. Об этом и пойдет речь далее.

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

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

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

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

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

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

-Открыть файл в блокноте и скопировать в буфер;

-Скопировать из буфера в редактор среды Crystal.

В соответствие с методикой итерационного и инкрементного подхода изучения языков программирования на первом цикле обучения методам процедурного программирования начинать  надо с изучения простых типов данных. Простые типы данных нового языка программирования 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. # []      # синтаксическая ошибка, не определен тип

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

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

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

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

Над массивами можно выполнять различные действия. Например, суммирование элементов массива.

sum=c[1]+c[2]

puts "Суммирование элементов массива с[]"

puts sum

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

Простые типы данных нового языка программирования Crystal можно преобразовывать из одного типа в другой. Но следует учесть, что язык программирования 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
Объектно ориентированное программирование

А также…

Что такое программирование?

Как выбирать язык программирования высокого уровня для изучения

Что выбирать язык или платформу программирования?

Онлайн школы и курсы IT профессий

Как стать программистом?

Дистанционный курс «Python-разработчик»

Обучение программированию дистанционно в Ставрополе

Как изучать алгоритмы решения задач?

Как стать специалистом по большим данным?

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

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

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

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

brasm

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

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

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