Компьютерное моделирование беспроводных 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].
Протестируем методом Черного ящика процедуру ввода данных о м