Компьютерное моделирование беспроводных AD-HOC сетей для целей расчета времени связи мобильных абонентов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

0;.StringGrid2.Cells[0,p]:=str;.StringGrid2.Cells[1,p]:=TimeToStr(Time);:=;;;;;;;;;

Рекурсивная функция проверки образовавшейся сети и нахождение ее пути:

procedure InfoBeginPatch(i:integer);j,l:integer;,fl:boolean;

// проверка на наличие связи

fl:=true;Length(Net)>1 thenConnect[Net[Length(Net)-1],i]<>1 then:=false;;fl then(Net,length(Net)+1);[length(Net)-1]:=i;j:=0 to k-1 do:=false;l:=0 to length(Net)-1 doj=Net[l] then:=true;;f then;Connect[i,j]=1 then(j);;;;

Аномалии

Ручное редактирование начальных параметров узлов.

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

Ошибка корректности данных - пользователь может удалить какие-либо значения из таблицы начальных параметров или ввести некорректные данные.

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

Задание нулевой скорости узла - пользователь может задать нулевую скорость узла, которая нарушает условие мобильности узлов в поставленной задаче.

Рассмотрим реакции программы на данные аномалии.

Ошибка корректности данных - перед началом моделирования данные в таблице проверяются на наличие, а за корректность ввода отвечает обработчик ввода данных с клавиатуры в таблицу.

Задание большого радиуса узла - данная аномалия не является критичной и может являться дополнительным условие к данному моделированию по желанию пользователя.

Задание нулевой скорости узла - данная аномалия так же не является критичной и может являться дополнительным условие к данному моделированию по желанию пользователя.

 

Оптимизация программы

 

Оптимизация - это процесс изменения программы по определенным критериям с целью повышения ее качества при сохранении смысла исходной программы.[7]

Для сокращения объёма кода программы он разбивается на части - подпрограммы. Каждая подпрограмма может вызываться из разных частей основной программы.

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

В языках программирования высокого уровня используется два типа подпрограмм: процедуры и функции.

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

Процедура - это любая подпрограмма, которая не является функцией.

Например, в программе написана процедура, выполняющая добавление в базу данных новой экзаменационной группы.

Также в оптимизации чаще всего нуждаются циклы. Цикл - это последовательность из нескольких (0 и больше) операторов, которая указывается в тексте программы один раз, но может выполняться несколько (0 и более) раз.

Например, цикл, выполняющий заполнение списка на основе выборки из базы данных.

Form1.ADOTable2.First;not Form1.ADOTable2.Eof do.Items.Add(Form1.ADOTable2.FieldByName(РЕГИОН).AsString);

Form1.ADOTable2.Next;;

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

Отладка и тестирование программы

Отладка - процесс поиска и устранения ошибок. Ошибки можно классифицировать следующим образом[7]:

ошибки кодирования (синтаксические, семантические); например:

fot i:=1 to Length(fld1) do begin.

Здесь присутствует ошибка при написании оператора for. Она была исправлена следующим образом:

for i:=1 to Length(fld1) do begin

ошибки несоответствия алгоритму (логические); например:

if GroupsComb.Items[GroupsComb.ItemIndex]=1 then

Это условие никогда не выполнится, т. к. в списке отсутствует пункт с таким названием. Ошибка была исправлена следующим образом:

if GroupsComb.Items[GroupsComb.ItemIndex]=Все

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

покрытие операторов;

покрытие решений;

покрытие условий;

построение функциональных диаграмм и т.д.

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

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

Объективным критерием правильной работы программы является ее функционирование по корректно составленному контрольному варианту тестирующих данных.

Тестирование программного обеспечения - это процесс, помогающий определить корректность, полноту и качество разработанного программного обеспечения (ПО). Главные цели тестирования - показать, что приложение соответствует требованиям и выявить наличие ошибок в логике программы[7].

Протестируем методом Черного ящика процедуру ввода данных о м