
- •Алгоритмитизация и программирование Лекция 1
- •Общие сведения
- •Модель osi. Понятие об интерфейсах и протоколах. Рекомендация itu-t X.200
- •1.3. Системы счисления
- •Лекция 2
- •2.1. Способы описания алгоритмов функционирования узла коммутации
- •2.2. Описание алгоритмов с помощью диаграммы состояний
- •Variable
- •Input port
- •Input signal
- •2.3. Описание алгоритмов с помощью временной диаграммы
- •Описание алгоритмов с помощью текстового описания
- •Лекция 3
- •3.2. Типы данных
- •3.3. Арифметические операторы
- •3.4. Операторы сравнения
- •3.5. Побитовые операторы
- •3.6. Кодовые таблицы
- •Int main()
- •Лекция 4
- •4.2. Переменные
- •4.3. Ввод/вывод
- •4.4. Арифметические операции
- •4.5. Взаимосвязь чисел и литер
- •Лекция 5
- •5.1. Базовые конструкции
- •5.2. Операторы базовых конструкций
- •If (условие) {операторы 1}
- •Лекция 6
- •6.1. Указатели
- •6.2. Функции
- •6.3. Массивы
- •Лекция 7
- •7.1. Создание и инициализация строк
- •7.2. Функции для работы со строками
- •Лекция 8
- •8.1. Структуры
- •8.2. Формирование контрольной суммы
- •Лекция 9
- •9.1. Операции с файлами
- •9.2. Открытие текстового файла для записи
- •9.3. Открытие текстового файла для чтения
Какую работу нужно написать?
2.3. Описание алгоритмов с помощью временной диаграммы
Описание алгоритмов с помощью временной диаграммы начинается с горизонтального расположения всех сетевых элементов, участвующих в сетевом взаимодействии. Вертикальные линии от каждого сетевого элемента отображают текущее время. Порядок следования сообщений во времени – сверху-вниз. Направление сообщений отображаются направленными линиями с именем сообщения. Комментарии помещаются внизу временной диаграммы. Описание действия и значения таймеров прилагается в текстовом формате.
Временные диаграммы широко применяются при описании алгоритма функционирования узлов коммутации в сетях связи мобильных абонентов (Public Land Mobile Networks, PLMN) в виде в виде технических спецификаций (3GPP TS).
Например, алгоритм первичной регистрации мобильного абонента в сети 3G представлен в Рекомендации 3GPP TS 23.060 (рис. 2.4).
Рис.
2.4. Первичная регистрация мобильного
абонента (стр.50)
Описание алгоритмов с помощью текстового описания
Описание алгоритма функционирования элементов сети с малым количеством состояний и транзакций принято представлять в текстовом формате.
Текстовое описание широко применяются при описании алгоритма функционирования узлов коммутации в сетях коммутации пакетов Internet в виде запросов для комментариев (Request for Comments, RFC).
Например, текстовое описание алгоритма коммутации пакетов на основе IP-протокола в сети Internet представлено в RFC 791 (рис. 2.5).
Рис.
2.5. Коммутация пакетов на основе
IP-протокола
в сети Internet (стр.7)
Задание. Выполнить лабораторную работу 2 (Способы описания алгоритмов).
Лекция 3
3.1. Компилятор языка С++
Для создания функционального программного обеспечения используются специальные программы, называемые компилятором. Существует множество версий различных компиляторов, в данном курсе будет использоваться компилятор CodeBlocks.
Запуск компилятора осуществляет файл codeblocks.exe. На экране появляется
При выборе опции Create a new project появляется окно,
в котором следует выбрать опцию Console application. Следуя подсказкам (Next/C++Next), в появившемся окне
заполняем поле Project title <имя проекта>. Остальные поля заполняются автоматически. Примечание: папка D:\CodeBlocks\SOURCE должна быть создана перед запуском компилятора!!!
Далее – Next/Finish.
Убеждаемся, что в папке D:\CodeBlocks\SOURCE появились файлы <имя проекта>.cbp и main.cpp.
При запуске файла main.cpp автоматически создается стандартная заготовка
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
Это исходный файл. Для его компиляции следует нажать функциональную клавишу F9. В появившейся папке D:\CodeBlocks\SOURCE/<имя проекта>/bin/debug/ появится исполняемый файл /<имя проекта>.exe.
В общем случае процесс создания программы разбивается на несколько этапов. Сначала набирается программный код, который вставляется в стандартную заготовку между фигурными скобками {}, как показано ниже.
#include <iostream> //стандартная библиотека ввода/вывода
using namespace std;
int main()
{
<ПРОГРАММЫЙ КОД>
return 0;
}
Первые две строки формируют заголовок программы. Инструкция #include <iostream> используется для присоединения внешнего файла. Внешние заголовочные файлы подключаются для того, чтобы использовать те или иные функции и утилиты из библиотеки языка. Файл iostream поддерживает стандартные системы ввода-вывода, а команда using namespace std является инструкцией для компилятора использовать стандартную область имен. В зависимости от программного кода иногда требуется подключать дополнительные внешние файлы для работы с математическими функциями (#include <cmath>), строковыми выражениями (#include <string>) и т.д. Непосредственный код программы начинается с инструкции int main() и заканчивается строкой return 0.
В таком виде исходный файл имеет имя main.cpp. После ее запуска она передается препроцессору, который выполняет директивы, содержащиеся в ее тексте (например, включение в текст заголовочных файлов — текстовых файлов, в которых содержатся описания используемых в программе элементов). Получившийся полный текст программы поступает на вход компилятора, который выделяет лексемы, а затем на основе грамматики языка распознает выражения и операторы, построенные из этих лексем. При этом компилятор выявляет синтаксические ошибки и в случае их отсутствия строит объектный модуль. Компоновщик, или редактор связей, формирует исполняемый модуль программы, подключая к объектному модулю другие объектные модули, в том числе содержащие функции библиотек, обращение к которым содержится в любой программе (например, для осуществления вывода на экран). Если программа состоит из нескольких исходных файлов, они компилируются по отдельности и объединяются на этапе компоновки. Исполняемый модуль имеет расширение main.ехе и запускается на выполнение обычным образом. В дальнейшем этот файл может быть переименован, например, в qwerty.exe.