…aut discede

«Все есть число»

Типы данных

Слова Пифагора Самосского как нигде применимы в «компьютерной науке». Электронно-вычислительные машины все свои действия сводят к манипулированию числами. Но что можно представить числами?

Все. Температуру, цвет, звук. Но все многообразие данных невозможно анализировать без определения того, какие операции для них применимы. Нельзя сложить число и геометрическую фигуру, умножить множество на слово и так далее. Для этого данные определяются по типам. А типы определяют действия, которые с ними можно производить.

Числа

Из математики мы знаем, что числа бывают натуральный, целые и дробные. Есть еще комплексные, «но это уже совсем другая история»1). Над числами можно производить математические операции - сложения (+), вычитания (-), умножения (*) и деления (/). Все более сложные операции, такие как извлечение корня, можно свести к этим четырем основным операциям. Десятичные дроби используют в качестве разделителя точку (.) вместо запятой. Все остальное - хорошо нам известно из школьной программы - у операций умножения и деления есть приоритет над операциями сложения и вычитания, скобки используются для определения собственных приоритетов.

(2+2*2-9/(2+1))/3-1

Символы

Все буквы, цифры, знаки препинания и другие символы пронумерованы и составляют таблицу символов. К примеру, заглавная латинская «A» имеет номер 65, строчная - 97, пробел (а это тоже «буква») записан под номером 32. То есть символ это тоже число. Складывать и перемножать эти числа, конечно, можно - но никакого практического смысла в этом нет. Буквы - это то, из чего состоят слова.

Существует несколько способов «нумеровать» символы, в этом случае говорят о различных «кодовых таблицах». Разные таблицы символов используются в разных языках, разных системах и вообще «так исторически сложилось». Есть и универсальные многоязычные кодовые таблицы. В общем, способов представления символов в избытке и каждый уместен на своем месте. К слову сказать, приведенные только что коды символов - из таблицы ASCII 2).

Строки

«Привет», «Мир» - это слова. Слово - это не одна буква, а несколько.

В компьютерном представлении это последовательность символов. Строки можно складывать, но результатом сложения двух цепочек символов будет не побуквенное сложение, а объединение строк в одну «ПриветМир». А если мы хотим, чтобы пример был осмысленным, то лучше сложить три строки.

a=«Привет»
b=«Мир»
c=a+«, »+b

Получим фразу «Привет, Мир», с пробелом после запятой.

Массивы

Если строка это последовательность символов, то массив это последовательность любых других цифр, не обязательно связанных с буквами из таблицы символов. Математическое понятие для объединения нескольких чисел еще называется вектором, и может быть, например, точкой в многомерном пространстве. Или вектором. Так или иначе, массив - это несколько цифр, связанных одной переменной. Переменной типа «массив».

a[1] = 2
a[3] = 1
b[1] = a[3]
c[0] = a[1] + 2*(b[1]*a[3])

Значение в квадратных скобках - это индекс, порядковое место в цепочке. С элементами массива можно обращаться как с любыми другими переменными. Массив может быть из чисел, из строк, из других массивов. Массив массивов - это матрица. Так, в одну переменную можно поместить матрицу любого размера и любой размерности. Зачем это надо - вопрос другой, но в математике для задач с матрицами есть целый раздел.

Структуры

Структура - это переменная, которая содержит в себе другие переменные. Которые, в свою очередь, могут содержать другие переменные. Таким способом можно описать почти все, в любых терминах.

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

И все это будет одна переменная, содержащая в себе сложную структуру. Другая переменная такой же структуры будет описывать другой объект, в нашем примере другой автомобиль. Они будут похожи по структуре, но различаться содержимым, как отличаются друг от друга реальные автомобили за окном. Этот уровень абстракций уже позволяет структурировать информацию для более комфортного их понимания.

1)
Стругацкие, «Понедельник начинается в субботу»
2)
Таблица символов, разработанная и стандартизированная в США в 1963 году
3)
ну, или «бренд» - если вам более привычен этот англицизм