1. книги
  2. Программы
  3. Вадим Никитин

Julia. Язык программирования. Быстрый старт

Вадим Никитин (2023)
Обложка книги

Начните писать программы на Julia в первый же день. Необходимы только минимальные знания в использовании компьютеров и программировании. Вы знаете что такое файл или каталог? Вам известны алгоритмы? Этого достаточно. Ничего лишнего. В этом справочнике раскрыты самые важные и часто затрагиваемые темы в краткой и ясной форме, а для желающих погрузиться в тему глубже представлены ссылки на необходимые источники информации. Подробные инструкции не упускают ни единого шага, а наглядные примеры полностью отображают в себе весь процесс работы. Вы всегда будете знать, что должно получиться в результате. Все примеры были протестированы на актуальной версии языка программирования Julia, доступной на момент написания данного справочника. Удобный дизайн оглавления позволяет быстро находить нужные примеры функции и команд. Нет нужды держать все в голове или постоянно лезть в интернет. Теперь третье издание с добавлением нового и обновлением старого.

Оглавление

Купить книгу

Приведённый ознакомительный фрагмент книги «Julia. Язык программирования. Быстрый старт» предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Базовые операторы Julia

Следующие арифметические операторы поддерживаются для всех примитивных числовых типов:

Несколько простых примеров с использованием арифметических операторов:

julia> 1+10-5

6

julia> 2-6

–4

julia> 5*20/10

10.0

julia> 20\10

0.5

julia> 3^3 27

julia> 5.5%-2

1.5

Число, помещенное непосредственно перед идентификатором или круглыми скобками, например, 2x или 2(x+y), рассматривается как умножение.

Логические операторы

Для типов Bool поддерживаются следующие логические операторы:

Примеры использования логических операторов:

julia>!true

false

julia>!false

true

julia> true && true

true

julia> true && false

false

julia> false && false

false

julia> true true

true

julia> true false

true

julia> false false

false

Побитовые операторы

Следующие побитовые операторы поддерживаются для всех примитивных целочисленных типов:

julia> ~100

–101

julia> 121 & 232

104

julia> 121 232

249

julia> 121 ⊻ 232 #Знак юникода

145

julia> xor(121, 232)

145

julia> ~UInt32(121)

0xffffff86

julia> ~UInt8(121)

0x86

Операторы обновления

Каждый арифметические и побитовый оператор имеет обновляющую версию, которую можно сформировать, поставив знак равенства (=) сразу после оператора. Этот оператор обновления присваивает результат операции обратно своему левому операнду.

Версии всех двоичных арифметических и побитовых операторов:

Пример использования операторов обновления:

julia> x = 25

25

julia> x += 25

50

julia> x

50

Оператор обновления переопределяет переменную в левой части. В результате тип переменной может измениться:

julia> x = 0x01

0x01

julia> typeof(x)

UInt8

julia> x *= 2

2

julia> typeof(x)

Int64

Векторизированные “точечные” операторы

Для каждого бинарного оператора существует соответствующий"точечный"оператор, который применяет оператор поэлементно над многоэлементными структурами (массивы и т.п.).

Примеры использования “точечного” оператора:

julia> [2, 4,6].^2

3-element Vector{Int64}:

4

16

36

julia> x=[1 2 3 4 5; 6 7 8 9 10]

2×5 Matrix{Int64}:

1 2 3 4 5

6 7 8 9 10

julia> x.+1

2×5 Matrix{Int64}:

2 3 4 5 6

7 8 9 10 11

julia> x

2×5 Matrix{Int64}:

1 2 3 4 5

6 7 8 9 10

julia> x.+=1

2×5 Matrix{Int64}:

2 3 4 5 6

7 8 9 10 11

julia> x

2×5 Matrix{Int64}:

2 3 4 5 6

7 8 9 10 11

Обратите внимание,"точечные"операторы обновления изменяют исходные значения, в отличии от остальных, создающих новые.

Операторы сравнения

Для всех примитивных числовых типов определены стандартные операции сравнения:

Пример использования операторов сравнения:

julia> 2 == 2.0

true

julia> 3 == 5

false

julia> 3!= 5

true

julia> 3 < 5

true

Целочисленные числа сравниваются стандартным образом — путем сравнения битов. Числа с плавающей точкой сравниваются в соответствии со стандартом IEEE 754:

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

Положительный ноль равен, но не больше отрицательного нуля.

Inf равно самому себе и больше, чем все остальные, кроме NaN.

–Inf равно самому себе и меньше всех остальных, кроме NaN.

NaN не равно, не меньше и не больше ничего, включая самого себя.

Использование"точечных"операторов сравнения для многоэлементных структур возвращает булев массив с результатами сравнения для каждого элемента:

julia> [1,2,3,4,5].<= 3

5-element BitVector:

1

1

1

0

0

Сравнения в Julia можно объединять в цепочки:

julia> 10 < 15 <= 20 < 30 == 30 > 20 >= 10 == 10 < 30!= 5

true

julia> x=[1 2 3 4 5; 6 7 8 9 10]

2×5 Matrix{Int64}:

1 2 3 4 5

6 7 8 9 10

julia> 1.< x.< 7

2×5 BitMatrix:

0 1 1 1 1

1 0 0 0 0

Приоритет и ассоциативность операторов

Julia применяет следующий порядок и ассоциативность операций, от высшего к низшему:

Числовые коэффициенты, например, 2x, рассматриваются как умножение с более высоким старшинством, чем любая другая двоичная операция, за исключением ^, где они имеют старшинство только как экспонента:

julia> x = 3

3

julia> 2x^2

18

julia> 2^2x

64

Оглавление

Купить книгу

Приведённый ознакомительный фрагмент книги «Julia. Язык программирования. Быстрый старт» предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Вам также может быть интересно

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я