- •Предисловие.
- •1. Введение.
- •2. Количество информации.
- •2.1. Формула хартли.
- •2.2. Формула шеннона.
- •2.3. Свойства энтропии.
- •2.4. Энтропия в информатике и физике.
- •2.5. Вероятностный и объемный подходы к измерению количества информации.
- •2.6. Различные аспекты анализа информации.
- •3. Принципы кодирования и декодирования информации.
- •3.1. Буква (знак, символ). Алфавит.
- •3.2. Кодировщик и декодировщик.
- •3.3. Международные системы байтового кодирования.
- •3.4. Помехоустойчивое кодирование информации.
- •4. Передача информации.
- •4.1. Из истории развития передачи информации.
- •4.2 . Общая схема передачи информации.
- •4.3. Теорема котельникова.
- •4.4.Информационная емкость дискретного сигнала (сообщения). Формула шеннона.
- •4.5. Предельная скорость передачи информации по шеннону. Формула хартли - шеннона.
- •4.6. Теорема шеннона для дискретного канала с помехами.
- •5. Дискретные двоичные (бинарные) сигналы.
- •5.1. Регенерация двоичных сигналов.
- •5.2. Помехозащищенность двоичных сигналов.
- •5.3. Кодирование двоичных сигналов.
- •6. Аналоговые и дискретные процессы.
- •6.1. Аналоговые и дискретные сигналы.
- •6.2. Измерение отношения сигнал – шум.
- •6.3. Дискретизация и кодирование аналогового сигнала.
- •7. Цифровая телефонная связь.
- •8. Цифровая телеграфная связь.
- •9. Цифровое телевидение.
- •10. Системы передачи информации
- •10.1. Параметры радиосигналов.
- •10.2. Многоканальные линии связи. Уплотнение информации.
- •11. Оптоволоконная связь.
- •11.1. Из истории кабельной связи.
- •11.2. Принцип оптоволоконной связи.
- •12. Локальные сети.
- •12.1. Аппаратные средства.
- •12.2. Конфигурация локальных сетей.
- •12.3. Организация обмена информацией.
- •13. Спутниковая связь.
- •13.1. Общая характеристика спутниковой связи.
- •13.2. Принципы спутниковой связи.
- •14. Системы счисления.
- •14.1. Непозиционные системы счисления.
- •14.2. Позиционные системы счисления.
- •14.3. Перевод чисел из десятичной системы в другую систему.
- •14.4. Перевод чисел в десятичную систему из других систем.
- •14.5. Взаимные преобразования двоичных, восьмеричных и шестнадцатеричных чисел.
- •14.6. Двоично-десятичная система.
- •15. Языки программирования.
- •15.1. Языки программирования. Общая характеристика.
- •15.2. Язык программирования си. История создания. Общая характеристика.
- •15.3. Язык программирования си. Процесс создания исполняемого файла.
- •15.4. Язык программирования си. Распределение памяти программы.
- •15.5. Язык программирования си. Основные понятия.
- •15.6. Язык программирования си. Данные.
- •15.7. Язык программирования си. Структура простой программы.
- •Приложение 1. Система семибитного кодирования.
- •Приложение 2. Модифицированная альтернативная кодировка.
- •Приложение 3: клод элвуд шеннон.
- •Литература.
- •Оглавление.
15.5. Язык программирования си. Основные понятия.
Идентификаторы – это имена переменных, констант, функций, меток и т.п. Внешние идентификаторы (имена функций и глобальных переменных, участвующих в процессе компоновки) согласно ANSI/ISO C99 имеют длину до 31 символа. Внутренние идентификаторы (не участвующие в процессе компоновки) согласно ANSI/ISO C99 имеют длину до 63 символов. В C++ минимальная длина любого идентификатора 1024 символа. Верхние и нижние регистры символов рассматриваются как различные. Следовательно, count, Count и COUNT – это три разных идентификатора. Идентификатор не может совпадать с ключевым словом языка Си или с именем библиотечной функции. По традиции переменные обозначаются строчными буквами, а константы прописными.
Функция main() – функция, с которой всегда начинается выполнение программы.
Круглые скобки () – признак функции. В общем случае в скобках может передаваться входная информация (входные аргументы).
Фигурные скобки {} – отмечают начало и конец тела функции или блока (совокупности) операторов. Фигурные скобки в языке Си аналогичны операторам begin и end в языках Паскаль, Алгол.
Комментарии /* Я комментарий */ Комментарии записываются между символами /* */ и могут занимать отдельную строку или ту же строку, что и операторы.
15.6. Язык программирования си. Данные.
Базовые типы данных;
-
char- символьные;
-
int - целые;
-
float – с плавающей точкой;
-
double – с плавающей точкой двойной длины;
-
void – пустой, не имеющий значения.
Тип void представляет пустое множество значений и используется для указания типа функций, не возвращающих значения.
Модификаторы типов данных:
-
signed - знаковый;
-
unsigned - беззнаковый;
-
long - длинный;
-
short - короткий.
Основные типы данных получаются путем сочетания базовых типов данных и модификаторов типов данных.
Сложные типы данных:
-
массивы;
-
указатели;
-
struct – структуры;
-
enum – перечисления;
-
union – объединения;
-
typdef – собственные типы данных (переопределения типов данных).
ОСНОВНЫЕ ТИПЫ ДАННЫХ.
ТИП ДАННЫХ |
РАЗМЕР БИТЫ (БАЙТЫ) |
ИНТЕРВАЛ ИЗМЕНЕНИЯ |
|
ОТ |
ДО |
||
сhar |
1(8) |
-128 |
127 |
signed char |
1(8) |
-128 |
127 |
unsigned char |
1(8) |
0 |
255 |
int |
2(16) |
-32768 |
32767 |
signed int |
2(16) |
-32768 |
32767 |
unsigned int |
2(16) |
0 |
65535 |
short int |
2(16) |
-32768 |
32767 |
signed short int |
2(16) |
-32768 |
32767 |
unsigned short int |
2(16) |
0 |
65535 |
long int |
4(32) |
-2147483648 |
2147483647 |
signed long int |
4(32) |
-2147483648 |
2147483647 |
unsigned long int |
4(32) |
0 |
4294967295 |
float |
4(32) |
3.4E-38 |
3.4E+38 |
double |
8(64) |
1.7E-308 |
1.7E+308 |
long double |
10(80) |
3.4E-4932 |
3.4E+4932 |
Целые константы.
-
Десятичные целые константы определены как последовательности десятичных цифр, начинающиеся не с нуля (если это не число нуль). Например: 584, 0, 1024.
-
Восьмеричные целые константы определены как последовательности десятичных цифр, начинающиеся с нуля и не содержащие десятичных цифр, старших семи. Например: 016 (0168=1410).
-
Шестнадцатеричные целые константы определены как последовательности цифр (1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F), начинающиеся с 0x или 0X. Например: 016 (01616=2210).
Вещественные константы.
Вещественные константы представлены в памяти ЭВМ в форме с плавающей точкой. Например: 44., 3.1415E1, 45e0, 0.0.
Перечисляемые константы (enum).
Enumeration – перечисление.
Перечисляемые константы вводят целые именованные константы:
enum DAY{SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY};
enum BOOLEAN{NO, YES};
Если в списке нет ни одного элемента со знаком =, то значения констант начинаются с нуля и увеличиваются на единицу слева направо. Поэтому SUNDAY=0, FRIDAY=5, NO=0, YES=1.
enum {ONE=1, TWO, THREE, FOUR};
Если в списке есть элемент со знаком =, то значения констант начинаются с этого значения и увеличиваются на единицу слева направо. Поэтому TWO=2, THREE=3, FOUR=4.
Символьные константы (символы).
Символьные константы используются для изображения отдельных знаков, имеющих индивидуальные коды. Каждая символьная константа – это лексема (единица текста программы, которая при компиляции программы воспринимается, как единое целое и не может быть разделена на более мелкие элементы), которая состоит из символа и ограничивающих апострофов. Например: ‘A’, ‘a’, ‘8’, ‘+’, ‘,’, ‘&’.
Строковые константы.
Строковые константы определяется как последовательность символов, заключенная в двойные кавычки: ”Строковая константа”.
ПРИМЕЧАНИЕ: См. 4. СТРОКИ И СТРОКОВЫЕ КОНСТАНТЫ.
Константа нулевой указатель (Null – указатель).
Нулевой указатель неарифметическая константа (см. указатели).
Специальные символьные константы (символы с обратным слэшем (backslach), управляющие последовательности, ESC – последовательности).
‘\n‘ |
Перевод строки |
|
‘\t‘ |
Горизонтальная табуляция |
|
‘\r‘ |
Возврат курсора к началу строки |
|
‘\\‘ |
Обратная косая черта |
|
‘\‘‘ |
Апостроф (одинарная кавычка) |
|
‘\”‘ |
Двойная кавычка |
|
‘\0‘ |
Нулевой символ |
|
‘\a‘ |
Сигнал –звонок |
|
‘\b‘ |
Удаление предыдущего символа |
|
‘\f‘ |
Перевод страницы |
|
‘\v‘ |
Вертикальная табуляция |
|
\?‘ |
Знак вопроса |
|
‘\ddd‘ |
Восьмеричное представление символьной константы |
d – восьмеричная цифра от 0 до 7 |
‘\xhh‘ ‘\Xhh‘ |
Шестнадцатеричное представление символьной константы |
H – шестнадцатеричная цифра от 0 до F |
Переменные в языке Си должны быть всегда объявлены до их первого использования. Локальные переменные объявляются внутри функций. Формальные переменные объявляются в определении параметров функции. Глобальные переменные объявляются вне всех функций. При объявлении указываются:
-
список переменных,
-
тип переменных,
-
класс памяти переменных.
Инициализаторы.
Для присваивания начальных значений переменным при их определении используются инициализаторы.
Инициализаторы имеют форму:
= значение;
= {список значений}; /* сложные значения */
Например:
int i=0;
int j=0; k=0;
static float eps=0.0001;
int year[12]={31,28,31,30,31,30, 31,31, 30,31, 30,31};
Статическим и внешним переменным по умолчанию присваиваются нулевые значения.
Автоматическим переменным по умолчанию никаких значений не присваивается.
Инициализатор может быть вложенным:
Float matrix[4][3]={
{1.0, 1.0, 1.0}
{2.0, 2.0, 2.0}
{3.0, 3.0, 3.0}
{4.0, 4.0, 4.0}
};
Классы памяти данных:
-
auto – автоматический;
-
static – статический;
-
extern – внешний;
-
register – регистровый.
В некоторых случаях объявление класса памяти необязательно, но всегда желательно. По умолчанию класс памяти – auto.