Материал: 521_Kokoreva,_e._V._Modelirovanie_v_srede_network_

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

построения 8 различных гистограмм;

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

зависимости и статистика по всей сети, отдельно по узлам и звеньям;

результаты могут быть сохранены в текстовые файлы, а графики – в формате .tiff или .jpeg.

31

Лабораторная работа №1

Применение языка Tcl для моделирования информационных систем

Цель работы: Овладеть основными принципами создания, отладки и запуска скриптов и процедур на языке Tcl (Tool Command Language). Научиться работать в среде ns2 под управлением эмулятора Cygwin операционной систе-

мы Linux.

Краткая теория:

1. Команды Tcl

Присвоение значений переменным: set переменная значение

Пример: set x 10

Значение переменной можно получить, используя символ $.

Например, команда set y $x присвоит y значение 10, ранее присвоен-

ное переменной x.

Вычисление математических выражений: expr выражение Синтаксис математических выражений такой же, как в языке C. Пример: expr 3.4 + 2

С использованием переменных: expr $x*$y

Вложенные команды:

Пример: set y [expr $x/2]

Переменная y получит результат вычисления: значение x разделить на 2.

Вывод на экран: puts содержимое

Пример: puts [expr {$y*$x}]

2. Математические операции

См. рисунок 22.

Рисунок 22 – Математические операции в Tcl

32

3.Логические операции

&&- Логическое и

||- Логическое или

4.Управляющие конструкции

4.1.Ветвление

Синтаксис: if {условие}{команды} else {команды}

Пример: if {k > 0}{ return $k } else {

return [expr {$k**$k}]

}

4.2. Циклы

Синтаксис: while {условие} {

команды

}

Пример: while {i <= 10} {

incr i

}

Синтаксис: for {инициализация}{условие}{действие}{

команды

}

Пример: set p 1

for {set i 1} {i <= 5} {incr i} { set p [expr {$p*$i}]}

5. Математические функции

abs(x)

round(x)

sin(x), cos(x), tan(x)

log(x), log10(x)

sqrt(x), pow(x,y)

Пример:

set a 2;

set b [expr pow

-абсолютное значение (модуль);

-округление;

-тригонометрические функции;

-логарифмирование;

-извлечение корня и возведение в степень.

($a,3)];

33

puts $b;

6. Процедуры

Создание процедуры:

proc имя {параметры} {

команды

return результат

}

Запуск процедуры: имя фактические параметры

Пример:

proc factorial {n} {

if {$n

<=

1}{

return

1 } else {

set i

1

 

set p

1

 

while

{$i

<= $n} {

set p

[expr {$p*$i}]

incr i

}

 

return

$p

}

}

# Пример вызова процедуры factorial

set n 5

set result [factorial $n] puts $result

Задание:

Запрограммировать две формулы (по варианту). Получить результат выполнения скрипта.

Порядок выполнения:

1.В любом текстовом редакторе (например, Notepad или Notepad++) создать скрипт на языке Tcl для выполнения задания (по варианту из таблицы 1) и сохранить его с расширением .tcl (например, lab1.tcl) в папку d:/ns2/. (Папку можно назвать по-другому, латинскими буквами, без пробелов и знаков препинания).

2.Запустить эмулятор Linux Cygwin.

3.Запустить в командной строке Linux графический X-сервер командой startx. (Этот пункт необязателен – он будет нужен для сценариев ns2).

34

4.Указать путь к файлам примеров командой: cd d:/ns2/.

5.Запустить скрипт на выполнение командой: ns lab1.tcl.

6.Просмотреть результат (можно проверить результат в Mathcad).

7.Повторить пп.1-6 для второго задания.

8.Сдать и защитить лабораторную работу.

9.Выйти из эмулятора командой exit.

Содержание отчёта:

1.Номер, название и цель лабораторной работы.

2.ФИО и группа студента, выполнившего лабораторную работу.

3.Номер варианта и задание к лабораторной работе.

4.Tcl-скрипт в соответствии с заданием.

5.Результаты выполнения лабораторной работы со скриншотами.

6.Описание выполнения лабораторной работы и полученных результатов.

7.Выводы по проделанной работе.

Контрольные вопросы:

1.Перечислите составляющие пакета ns2.

2.Что представляет собой скрипт ns2.

3.Как присвоить значение переменной в языке Tcl?

4.Как вывести на экран значение переменной в языке Tcl?

5.Какие выражения и команды языка Tcl вы знаете?

6.Что представляет собой язык OTcl?

7.Как создать и запустить процедуру?

Задания:

1. y ((x5x)!)x

2.

3.

y (x3!x)!

x! x

y

 

 

4x! 2x

 

 

y2x! (2x)!

4.2x

35

Источник: https://studfile.net/preview/16709022/