Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Понятие переменной в программировании(Понятие и типы переменных)

Содержание:

ВВЕДЕНИЕ

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

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

Хорошим стилем является осмысленное именование переменных. Разрешается использовать строчные и прописные буквы, цифры и символ подчёркивания, который в Си считается буквой. Первым символом обязательно должна быть буква, в имени переменной не должно быть пробелов. В современных версиях компиляторов длина имени практически не ограничена.

Целью данной работы является исследование понятие переменной в программировании, виды и типы переменных, для достижения поставленной цели, были выделены следующие задачи:

- рассмотреть теоретические аспекты исследования переменных в программировании;

- изучить отличие переменной от константы.

Объект исследования - переменные.

Предмет исследования - исследование понятие переменной в программировании, виды и типы переменных.

Структура работы состоит из введения, основной части, заключения и списка литературы.

Теоретической и методологической базой данной работы послужили труды российских и зарубежных авторов в области информатики, материалы периодических изданий и сети Интернет.

ГЛАВА 1 Теоретические аспекты исследования переменных в программировании

1.1 Понятие и типы переменных

Переменная — это именованная область памяти для хранения данных, которые могут изменяться в процессе исполнения программы.

Переменная характеризуется:

  • Именем («обозначением ячейки памяти»)
  • Значением (данными, содержащимися в переменной в конкретный момент времени)
  • Типом (определяющим: а) какие значения может принимать переменная; б) какие операции можно производить с этими значениями; в) как данные представлены в памяти компьютера)

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

Простые типы

Дискретные (можно перечислить возможные значения):

  • целые (integer, longint)
  • символьный (char)
  • логический (boolean)
  • диапазон (часть значений стандартного дискретного типа, например, 1..100)
  • перечисляемый (явно перечислены все допустмые значения)

Вещественные (real, double, extended) — служат для представления действительных чисел с ограниченной точностью.

Структурированные типы

  • Массив (фиксированное количество данных одного типа)
  • Строка
  • Запись (связанные данные, в общем случае, разных типов)
  • Множество
  • Файл (данные одного типа, хранящиеся на внешнем носителе)

var 
  имена переменных : тип;
...
  имена переменных : тип;

Например:

var 
  a, b, c: real;
  i, n: integer;
  f: boolean;

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

Оператор ввода нужен, чтобы компьютер получил исходные данные. В программе на Pascal он записывается следующим образом:

read(переменные);

или

readln(переменные);

При выполнении оператора программа будет приостановлена, пока пользователь не наберет на клавиатуре значения и не нажмет клавишу «Enter». Затем введенные значения будут помещены в переменные, указанные как параметры процедуры ввода. Например, при выполнении оператора

read(a, b);

компьютер будет ожидать ввода двух значений, которые затем будут помещены в переменные a и b.

Операторы read и readln отличаются тем, что во втором случае после ввода данных будет переведена строка, т.е. последующие сообщения компьютера будут выводиться с новой строки.

Оператор вывода нужен, чтобы компьютер показал результаты работы программы или какие-либо вспомогательные сообщения. В программе на Pascal он записывается следующим образом:

write(выражения);

или

writeln(выражения);

При выполнении оператора вычисляются значения выражений, после чего эти значения выводятся на экран монитора. Например, при выполнении оператора

write(a + b, c);

на экран будет выведена сумма переменных a и b, а также значение переменной c. Если нужно вывести на экран какое-либо текстовое сообщение, его нужно заключить в апострофы (одиночные кавычки):

write('Нет решения');

Операторы write и writeln отличаются тем, что во втором случае после вывода данных будет переведена строка, т.е. последующие сообщения компьютера будут выводиться с новой строки.

Для того чтобы переменная получила или изменила свое значение, используется оператор присваивания. В Pascal он записывается следующим образом:

переменная := выражение;

Тип переменной должен совпадать с типом выражения либо быть «более широким» совместимым (т.е. вещественной переменной можно присвоить значение целого выражения; строковой переменной можно присвоить значение символьного выражения).

Компьютер сначала вычисляет значение выражения в правой части оператора присваивания, затем помещает его в переменную, указанную слева от символа присваивания «:=».

Например, при выполнении оператора

x := a + b;

переменная x получит значение суммы переменных a и b. При выполнении оператора

n := n + 1

значение переменной n увеличится на единицу.

При присваивании переменной нового значения старое будет потеряно безвозвратно. Например, после выполнения операторов

a := b;

b := a;

обе переменные будут иметь одинаковые значения, равные тому, которое имела переменная b.

Рассмотрим, как составить простую программу, выполняющую какие-либо вычисления. Для этого нам нужно:

  1. Проанализировав условие задачи, выделить исходные данные и результаты. Выбрать для них имена переменных (если они не заданы в условии). Определить тип данных.
  2. Построить математическую модель задачи — описание в виде набора математических соотношений.
  3. Разработать (или подобрать из известных) алгоритм решения задачи — последовательность действий, приводящую от исходных данных к результатам за конечное число шагов. (Не забудьте, что сначала компьютер должен получить значения исходных данных, а после нахождения результатов — вывести эти результаты на экран).
  4. Если в процессе решения используются промежуточные данные, выбрать имена переменных и определить их тип.
  5. Записать программу в соответствии с правилами синтаксиса языка программирования (в нашем случае — Pascal).

Рассмотрим простейший пример.

Задача

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

Решение

1) Определим исходные данные и результаты задачи. В данном случае они явно указаны в условии: исходная величина — радиус, результаты — длина окружности и площадь круга. Используем для них традиционные обозначения: R, L и S, соответственно. Все эти переменные могут принимать как целые, так и дробные числовые значения, поэтому следует использовать вещественный тип данных, например, Real.

2) Математически задача описывается известными формулами:

L = 2 ⋅ π ⋅ R  
и S = π ⋅ R2   

3) Алгоритм в данном случае предельно прост:

  1. Ввести значение радиуса.
  2. Вычислить длину окружности по формуле [1].
  3. Вычислить площадь круга по формуле [2].
  4. Вывести значения длины окружности и площади круга на экран.

4) При вычислениях нам (точнее, компьютеру) потребуется значение π. Вообще говоря, практически все реализации Pascal имеют встроенную константу PI, но мы объявим подобную константу самостоятельно.

5) Теперь запишем программу:

program circle; { Имя программы можно выбирать произвольно }
{ В фигурных скобках записываем комментарии — этот текст компьютер пропускает }
  const p = 3.14159265358; { Объявление константы }
  var L, R, S: Real; { Все переменные одного тип }
begin
  write ('Введите величину радиуса:'); { Выводим на экран пояснение }
  readln (R); { Вводим значение и переходим на новую строку }
  L := 2 * p * R; { Операция умножения обязательно указывается! }
  S := p * R * R; { Можно записать S := p * sqr(R); }
  writeln ('L=', L:10:3, ' S=', S:10:3); { Выводим поясняющий текст }
  { и значения переменных. Для значений указан }
  { формат: всего 10 знаков, из них 3 — после точки. }
end.

1.2 Переменные в программировании

В программировании переменная (variable) это своего рода емкость для хранения данных. Когда информация записана в переменной (или по-другому, когда переменной присвоено значение), тогда эту информацию можно изменять, выводить в окне Web-броузера, посылать по электронной почте и т.д.

Переменная гибка:

  • в ней можно хранить информацию;
  • можно из неё извлекать информацию, что не повлияет на значение самой переменной;
  • в неё можно записать новые данные.

Причем, эти действия можно выполнять практически сколько угодно раз. Из названия ясно, что переменная – вещь непостоянная. Например, в языке программирования PHP переменные существуют или содержат в себе значение исключительно во время работы скрипта. Как только завершается исполнение скрипта, так и существование переменных прекращается. То есть при переходе с одной страницы web-сайта на другую, переменных и их значений прежней страницы уже нет. Это кроме случаев, когда нужные значения специально передаются другой странице.

Переменные появились с первыми языками программирования. Результат работы любой программы сводится к выполнению действий над какими-либо данными. Напомним, что память (memory) – это последовательность байтов (byte), каждый из которых принимает значения от 0 до 255. Так как байтов неимоверно много, единственный способ различать их - это присвоение каждому из них порядкового номера. Так и есть. Каждый байт оперативной памяти доступен процессору через его порядковый номер. Этот порядковый номер называется адресом байта.

Во времена, когда программы писались на машинном коде, программист должен был запоминать в какой участок памяти он записал нужное значение. Представьте, как усложнялся процесс написания программы, когда возникала необходимость работы с несколькими значениями. Адрес байта памяти есть число, которое мало о чем говорит. Большой объем памяти создает трудности программисту.

С первыми языками программирования появилась полезная возможность связывания определенного участка оперативной памяти с символьным названием (набором символов). По сравнению с адресом название переменной может отражать содержимое этого участка памяти. Но имя переменной не единственная вещь, которая определяет переменную. Процессор может обрабатывать три вида данных: байт, слово и двойное слово[7;15].

(Термины «слово» и «двойное слово» здесь используются в узкоспециальном смысле, отражая собой размер участка памяти, выделенного под переменную.) Поэтому определение вида переменной в языках нижнего и среднего уровней происходит обычно указанием типа переменной. Эти два свойства переменной (название и тип) определяют нужный участок памяти и способ его использования. В большинстве случаев именно тип переменной определяет сколько байтов памяти захватит переменная. Например, переменной типа BYTE присвоено имя A. Процессор по названию переменной (А) определяет её место в памяти и при извлечении значения этой переменной воспользуется командой, предназначенной для извлечения байта (не слова и не двойного слова).

В общем случае, переменная – это поименованный участок оперативной памяти, используемый для временного хранения данных. В зависимости от языка программирования, объявление переменной может сопровождаться указанием его типа. Обычно в языках высокого уровня тип не указывается. Синтаксические различия между языками проявляются как раз в объявлении переменных. В C и C++ необходимо указывать тип, в PHP используется префикс $.

В современном мире программирования программист должен знать не только имя и тип переменной. Также существуют понятия пространства имен и область действия переменной. Представьте, что создается программа, в которой используются несколько переменных. Имена этих переменных составляют список, который определяет пространство имен. Представим, что в ходе создания программы мы, по ошибке, объявили две переменные с одинаковыми названиями. При попытке запуска программы его компилятор сообщит об этой ошибке. Это было бы невозможно, если бы компилятор не контролировал переменные. То есть контроль безупречности пространства имен возлагается от программиста на компилятор; что облегчает процесс создания и отладки программы. На практике, приведенный пример не во всех языках приводит к ошибке. Каждый компилятор (или интерпретатор) имеют собственные требования к пространству имен. То, что является ошибкой в одном языке (в данном случае C или C++), в других языках ошибкой может не быть.

Если раньше программы были небольшие и их исходный код располагался в одном файле, то сейчас текст кода может состоять из нескольких файлов. И запомнить уникальное имя каждой переменной, использующейся в программе, становится практически невозможным. Поэтому (и не только) было введено понятие области действия (или области существования) переменных. Область действия – понятие абстрактное. Это понятие применяется только в языках среднего и высокого уровней. Целью применения области действия является разделение пространства имен на несколько независимых частей. Так в программе могут существовать несколько переменных с одинаковыми именами и типами, не мешаю друг другу. Начинающему идея разделения области действия в пределах отдельных файлов исходного кода программы должна быть более понятна. Например, этот подход используется в PHP. Это означает, что переменная, объявленная в одном файле, может быть абсолютно недоступна в других файлах. Например, мы можем объявить переменную с именем MyVar в нескольких файлах проекта, и это не будет ошибкой.

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

1.3 Инкремент и декремент

Если необходимо изменить значение переменной на 1, то используют инкремент или декремент.

Инкремент - операция увеличения значения, хранящегося в переменной, на 1.

Пример:

x++; // значение переменной x будет увеличено на 1


Декремент - операция уменьшения значения, хранящегося в переменной, на 1.

Пример:

x--; // значение переменной x будет уменьшено на 1


Инкремент и декремент относятся к операциям присваивания. При использовании декремента и инкремента совместно с оператором присваивания "=" применяют постфиксную (x++) или префиксную (++x) запись. Первой выполняется префиксная запись.

Примеры:

y = x++;


Предположим, что в переменной x хранилось значение 5. Тогда в y будет записано значение 5, после чего значение переменной x будет увеличено на 1. Таким образом, в y будет 5, а в x - 6.

y = --x;


Если в x хранилось значение 5, то сначала будет выполнено уменьшение x до 4, а затем это значение будет присвоено переменной y. Таким образом, x и y будет присвоено значение 4.

ГЛАВА 2 ОТЛИЧИЕ ПЕРЕМЕННОЙ ОТ КОНСТАНТЫ

2.1 Калькулятор с константами

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

Согласитесь, что выражение
2 + 3 = 5
достаточно серьезно отличается от выражения:
a + b = c

В чем отличие? Не только в том, что в алгебре вместо цифр применяются буквы латинского алфавита, но отличие и в уровне абстракции.

Численные выражения, хоть что с ними делай, дают в итоге только численный результат. [14;157]

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

Почему так? Потому что определенный, пусть даже небольшой дополнительный уровень абстракции позволяет мыслить иначе, делать иначе, изучать иначе, и показывать иные результаты, чем при меньшем уровне абстракции.

Так же и в компьютерной грамотности. Можно говорить сначала о самом низком уровне абстракции, например, об арифметике в программировании.

Калькуляторы дружат с константами

Например, возьмем калькулятор. Что он может делать? Достаточно много: выполнять ряд арифметических и даже более сложных действий.

  • Вводим на калькуляторе первое число, например, «2»,
  • нажимаем на знак «плюс»,
  • вводим второе число, скажем, «3» (см. рис. 1),
  • и затем нажимаем знак «=».

Что получим? Очевидно, значение «5». Арифметика. Но с использованием компьютерной техники – калькулятора.

константа на калькуляторе

Рис. 1. Суммирование констант 2+3 на калькуляторе (Windows 7)

Не будем дальше углубляться в возможности калькуляторов. Например, можно было бы рассмотреть более сложные калькуляторы: для инженеров, для программистов, для обработки статистических данных и пр. (см. рис. 2).

калькуляторы в Windows 7

Рис. 2. Некоторые виды калькуляторов, имеющихся в Windows 7[7;25]

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

2.2 Программы с переменными величинами

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

Как это работает? Поясним несколько упрощенно, чтобы не требовалось глубокое погружение в сложную область программирования.

Для начала отметим, что в программировании все выражения пишут как бы наоборот по сравнению с тем, как их пишут в алгебре. Если в алгебре сначала указывают операнды (переменные), над которыми следует произвести действия, а потом после знака равенства указывают результат, как в примере

a + b = c,

то в программировании делают все наоборот: сначала указывают результат, а потом действие, то есть:

C = A + B.

Здесь не случайно я пишу строчные (заглавные) буквы вместо прописных (маленьких) букв:

во-первых, чтобы отличить алгебру от программирования, а

во-вторых, потому что первоначально в нашей стране в программировании использовали в основном заглавные буквы латинского алфавита.

Так как вместо прописных букв латиницы у нас делали строчную кириллицу, иначе где еще взять коды для русских букв?! Это связано с тем, что многие трансляторы с языков программирования у нас в стране лишь адаптировали с западных аналогов, а не разрабатывали с нуля. А там, откуда все это копировалось, русского языка не было по понятным причинам. Хотя были и примеры наших «родных» языков программирования.

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

Почему стали в программировании писать наоборот, а именно стали писать C = A + B? Трудно сказать. Так сложилось, что сначала надо было указывать результат, и лишь потом действие.

Что же дает подобное «волшебное» выражение  с буквами вместо цифр для программирования? Казалось бы, в чем разница между константами и переменными:

5 = 2 + 3 (напишем наоборот лишь для сравнения) и

C = A + B ?

константы и переменные

Рис. 3 - Рисунок 2+3

Давайте разберемся. Что может быть результатом сложения 2+3? Большинство ответит, конечно, «5». И хоть это почти правильный ответ, пожалуй, мы с этим согласимся.

Почему почти? Да потому что это правильный ответ для десятичной системы исчисления. Для четверичной системы исчисления, в которой используются только цифры от 0 до 3, ответ был бы «11», да-да, именно одиннадцать, можете не сомневаться. А в пятеричной системе исчисления, где добавляется еще цифра 4, ответ был бы «10».

Но в любом случае, о какой бы системе исчисления мы не говорили, результатом 2+3 всегда будет одно и то же число (константа). В десятичной системе (вернемся к ней теперь надолго), это «5», и только «пять».

А сколько будет A + B? Ответ очевиден: все зависит от того, чему равны A и B. Значит, результатом 2+3 всегда будет 5, а результатом A+B будут разные значения в зависимости от величин A и B.

Достаточно очевидно. Ну и что, что 5 – константа, а тут переменная? А то, что переменные – это другой уровень абстракции. За счет A+B мы теперь можем получать множество разных значений[6;22].

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

Допустим, A – это вес одного товара, а B – это вес другого товара. Значит, A+B – это суммарный вес обоих товаров. Значит, используя выражение C=A+B, программист может запрограммировать автоматическое суммирование двух весов.

Как он это сделает?

  • Например, сначала программист попросит ввести с клавиатуры вес первого товара (не описываю, как это можно сделать в языке программирования, поверим, что так можно сделать), и присваивает введенное значение переменной с именем A.
  • Затем он проделывает то же самое с весом второго товара, и присваивает это уже переменной B.
  • А потом пишет в своей программе теперь уже понятное нам выражение:

C = A + B

Что получается в итоге? Конечно, вы сразу догадались, что переменной C будет присвоено значение суммы весов, сохраненных в переменных A и B.

И далее программист напишет в своей программе (тоже прошу поверить, что это можно сделать средствами языка программирования): вывести на экране дисплея значение переменной C. Что мы увидим на экране? Конечно, сумму весов первого и второго товаров!

И теперь эту, один раз написанную программу, можно использовать снова, но уже для суммирования следующей пары весов.

Если еще убрать ручной ввод веса товара, и сразу автоматически ввести вес, скажем, с электронных весов (которые сейчас широко применяются в тех же супермаркетах), то на экран дисплея будет автоматически выводиться сумма весов 2-х товаров: положил одни товар, затем положил второй, и видишь сразу результат.

А если пойти дальше, и не выводить на экран сумму весов 2-х товаров, а записать это куда-то в базу данных?! А если не ограничиваться 2-я товарами, а, скажем, говорить о миллионе разных видов товаров, подлежащих взвешиванию? Почему бы и нет! Все это можно описать в виде выражений, подобных C = A + B.

И в итоге мы получим, можно без стеснения сказать, серьезную автоматизированную систему для супермаркета, где учитываются и веса всех товаров, и количество, и стоимость, а также все покупки, сделанные покупателями и прочее, и прочее и прочее. Но это стало возможным, когда появилось программирование с использованием переменных величин, тех самых A, B, C и тому подобное! Без этого уровня абстракции, без переменных не было бы программирования.

2.3 Переменные и константы

Справедливости ради, надо сказать, что цифры (простые и не очень простые числа) остались в программировании. Они тоже нужны. Их назвали иностранным словом «константы».

Константы – это величины, которые никогда и ни при каких обстоятельствах не меняют свои значения.

А что такое переменная в программировании?

Переменные, в отличие от констант, то и дело меняют свои значения, постоянно их меняют, оттого они и называются переменными величинами.

Так что наряду с выражением C = A + B, в программировании возможно как выражение C = A + 3, так и C = 2 + B.

Однако в левой части программного выражения (до знака равенства «=») константа не может употребляться. Там может быть только переменная, поскольку значение выражения, которое присваивается переменной в левой части выражения, может меняться в зависимости от значений переменных в правой части выражения. А значит, слева может быть только переменная величина[3;15].

Благодаря латинским буквам, которые используются вместо цифр, арифметика превратилась в алгебру. Так и программирование от калькуляторов перешло к вычислительным машинам благодаря переменным величинам.

Чего стоило разработчикам языков программирования реализовать возможности для применения переменных величин? Это уже отдельная тема. Одно могу сказать, стоило дорого, само собой, не только в деньгах. Дорого в расходовании (применении) интеллекта для изобретения подобных вещей.

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

ЗАКЛЮЧЕНИЕ

В программировании, хорошо описать задачу не всегда означает решить ее. Но любое описание задачи всегда приближает к ее решению. Алгоритмизация и программирование в последнее время уже с большой натяжкой считаются словами-синонимами. Программистов все чаще называют разработчиками. Результатом программирования всегда является описание (переменные + алгоритм) решения задачи.

Переменная имела характерную особенность: она должна была знать, сколько занимает байт в памяти и как ей выровняться на границу слова, а то и двойного слова. Последнее было очень важно для математических программ. Особенности организации оперативной памяти и работа математического сопроцессора обязывали программиста не только правильно и вовремя описать переменную, но и подумать, как она расположится в оперативной памяти. Прим. "Недра" оперативной памяти недоступны современному программированию в подавляющем большинстве случаев.

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

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

Если программа проходила синтаксический контроль и успешно линковалась, проблемы с выполнением начинались только при фатальной ошибке программиста или сбое аппаратуры.

СПИСОК ЛИТЕРАТУРЫ

  1. Александров В. В. Экологическая роль электромагнетизма. - СПб.: Изд-во Поли- техн. ун-та, 2015. - 736 с.
  2. Барабанов А. А., Косов А. А., Ярославцев Н. А. Влияние энергетических форм природы на жизнедеятельность человека // Академический вестник УралНИИпроект РААСН. - 2015. - № 1. - С. 91-96.
  3. Бугакова Т. Ю. Вовк И. Г. Математическое моделирование пространственно-временного состояния систем по геометрическим свойствам и оценка техногенного риска методом экспоненциального сглаживания // Вестник СГГА. - 2012. - Вып. 4 (20). - С. 47-58.
  4. Винер Н. Кибернетика, или управление и связь в животном и машине; или Кибернетика и общество. - 2-е издание. - М.: Наука; Главная редакция изданий для зарубежных стран, 2013. - 344 с.
  5. Галль Л. Н. В мире сверхслабых. Нелинейная квантовая биоэнергетика: Новый взгляд на природу жизни. - 2016. - 317 с.
  6. Гуревич И. М. Оценка основных информационных характеристик Вселенной // Приложение к журналу «Информационные технологии». - 2016. - № 12. - С. 2-17.
  7. Дубров А. П. Когнитивная психофизика: основы. - 2-е изд., исп. и доп. - Ростов н/Д.: Феникс, 2012. - 301 с.
  8. Егоров В. В. Физические поля и излучения организма (на примере человека). Проблемная лекция. - М.: ФГОУ ВПО МГАВМиБ, 2016. - 64 с.
  9. Информация // Большой энциклопедический словарь. - 2-е изд., перераб. и доп. - М.: Большая Российская энциклопедия, 2015. — 1434 с.
  10. Карпик А. П., Осипов А. Г., Мурзинцев П. П. Управление территорией в геоинформационном дискурсе. - Новосибирск: СГГА, 2016. - 279 с.
  11. Концепции целостности эволюции материального мира / Ю. С. Ларионов, Н. А. Ярославцев, С. М. Приходько, Е. В. Екимов // VI Международный конгресс «Слабые и сверхслабые поля и излучения в биологии и медицине». Санкт-Петербург, 2 июня 2012 г.: сб. научных трудов. - Спб., 2012. - С. 268-269.
  12. Ларионов Ю. С. Основы эволюционной теории (Концепции естествознания и аксиомы современной биологии в свете эволюции материи): учеб. пособие. - Омск, изд. ИП Скорнякова Е. В., 2012. - 233 с.
  13. Ларионов Ю. С., Ярославцев Н. А. Зависимость скорости роста растительных тест- объектов семян пшеницы от действия электромагнитных излучений низкой интенсивности естественного происхождения // Вестник СГГА. - 2012. - Вып. 4 (20). - С. 100-106.
  14. Моисеев Н. Н. Расставание с простотой. - М.: АГРАФ, 2012. - С. 98.
  15. Першин С. М. Слабое когерентное излучение ОН и орто-Н2О мазеров как несущая в биокоммуникации: орто-Н2О, как резонансный сенсор // Человек и электромагнитные поля: сб. докладов III Международной конференции. - Саров: РФЯЦ-ВНИИЭФ, 2016. - С. 4- 12.
  16. Петров Н. В. Живой Космос. - СПб.: ООО «Береста», 2015. - 420 с.
  17. Сборник научных трудов VI Международного конгресса «Слабые и сверхслабые поля и излучения в биологии и медицине». - СПб., 2012. - 309 с.
  18. Семенков О. И. Информация. Новейший философский словарь / Сост. и гл. науч. ред. А. А. Грицанов. 3-е изд., испр. - Минск: Книжный дом, 2013. - С. 431-434.
  19. Чернавский Д. С. Синергетика и информация (динамическая теория информации). Изд. 2-е. - М.: Едиториал УРСС, 2014. - 288 с.
  20. Электромагнитный информационный подход к целостной естественнонаучной картине материального мира / Ю. С. Ларионов, В. С. Ларионов, Н. А. Ярославцев, Н. М. При- ходько, Е. И. Баранова // Вестник СГГА. - 2014. - Вып. 4 (28). - С. 158-174.
  21. Энергоинформационные взаимодействия как основа понимания целостной картины мира / Н. А. Ярославцев, Ю. С. Ларионов, С. М. Приходько, Е. В. Екимов // VI Международный конгресс «Слабые и сверхслабые поля и излучения в биологии и медицине». Санкт- Петербург, 2-6 июля 2012 г.: сб. научных трудов. - СПб., 2012. - С. 280-281.
  22. Systems and software engineering - Vocabulary: Although information will necessarily have a representation form to make it communicable, it is the interpretation of this representation (the meaning) that is relevant in the first place [Электронный ресурс]. - Доступ из: https://www/ISO org/obp/ui/#ISO:std: ISO/IEC/IEEE 24765:2010.