Метрология, стандартизация и сертификация в информационных технологиях
Вычисление элементов массива. Листинг кода программы. Рассмотрение детализированной схемы алгоритма. Метрики сложности потока управления программ и граничных значений. Свойства подграфов программы. Скорректированные сложности вершин графа программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | практическая работа |
Язык | русский |
Дата добавления | 28.11.2014 |
Размер файла | 126,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра Информатики
Факультет компьютерных систем и систем
Специальность «Информатика и технологии программирования»
Индивидуальная практическая работа
по дисциплине «Метрология, стандартизация и сертификация в информационных технологиях»
Вариант № 19
Выполнила студентка гр.353501: Новикова С.А.
Минск 2014
Условие задания
Вычислить элементы массива S(10) по формуле:
Если
Вывести значения .
Листинг кода программы
program Pr1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
mas = array[1..10] of integer;
var
a,b,n,i:integer;
s:mas;
begin
{ TODO -oUser -cConsole Main : Insert code here }
n:=10;
i:=1;
while i<=n do
begin
write('n = ',i);
a:=3*sqr(i)-10*i+6;
write('. A = ',a);
b:=2*i+1;
write(' B = ',b);
if a>b then
s[i]:=a
else
s[i]:=b;
writeln(' S[n] = ',s[i]);
i:=i+1;
end;
readln;
end.
Детализированная схема алгоритма
Метрики сложности потока управления программ
Метрика Маккейба (цикломатическая сложность графа программы, цикломатическое число Маккейба) предназначена для оценки трудоемкости тестирования программы. Данная метрика определяется по формуле:
Z(G) = e - ? + 2p,
где е -- число дуг ориентированного графа G; ? -- число вершин; р -- число компонентов связности графа.
Для схемы алгоритма, приведенной в данной работе, число дуг е = 17, число вершин ? = 16, число компонент связности р = 1. Цикломатическое число Маккейба равно Z(G) = 17 - 16 + 2*1 = 3.
Значение метрики Маккейба показывает, что в схеме алгоритма можно выделить 10 базисных независимых путей (называемых также линейно независимыми контурами):
1-й путь. 1 - 2 - 3 - 4 (нет) - 15 - 16..
2-й путь. 1 - 2 - 3 - 4 (да) - 5 - 6 - 7 - 8 - 9 - 10 (да) - 11 - 13 - 14 - 4 - 15 - 16.
3-й путь. 1 - 2 - 3 - 4 (да) - 5 - 6 - 7 - 8 - 9 - 10 (нет) - 12 - 13 - 14 - 4 - 15 - 16.
Таким образом, для тестирования совокупности базисных независимых путей исследуемой программы необходимо выполнить минимально 3 тестовых прогона.
Метрика Джилба определяет логическую сложность программы как насыщенность программы условными операторами IF-THEN-ELSE
Для данной схемы алгоритма CL = 2, cl = 0,14 (количество операторов программы равно 16). Максимальный уровень вложенности условных операторов CLI = 0 .
Метрика граничных значений
Свойства подграфов программы
Свойства подграфов программы |
Номер вершины выбора |
||
4 |
10 |
||
Номера вершин перехода |
5, 15 |
11, 12 |
|
Скорректированная сложность вершины выбора |
13 |
7 |
|
Номера вершин подграфа |
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 |
11, 12, 13, 14, 4, 15 |
|
Номер нижней границы подграфа |
16 |
16 |
Скорректированные сложности вершин графа программы
Номер вершины графа программы |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
Скорректированная сложность вершины графа |
1 |
1 |
1 |
13 |
1 |
1 |
11 |
1 |
1 |
|
Номер вершины графа программы |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
||
Скорректированная сложность вершины графа |
7 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
Sa = 44
массив метрик граничный программа
Таким образом, абсолютная граничная сложность Sa программы, схема алгоритма которой приведена, равна 44. Относительная граничная сложность данной программы равна
So = l - (17 - 1)/44 = 0,636
Следующая таблица содержит метрики сложности потока управления для программы.
Метрики сложности потока управления программ
Метрики сложности потока управления |
Схема алгоритма |
|
Метрика Маккейба Z(G) |
3 |
|
Абсолютная сложность программы CL по метрике Джилба |
2 |
|
Относительная сложность программы cl по метрике Джилба |
0,14 |
|
Максимальный уровень вложенности условного оператора |
0 |
|
Метрика граничных значений (абсолютная граничная сложность программы) Sa |
44 |
|
Метрика граничных значений (относительная граничная сложность программы) Sa |
0,636 |
Метрики размера программ. Метрики Холстеда
j |
Оператор |
f1j |
i |
Операнд |
f2i |
|
1. |
; |
11 |
1. |
n |
2 |
|
2. |
:= |
7 |
2. |
i |
11 |
|
3. |
+ |
3 |
3. |
a |
4 |
|
4. |
- |
1 |
4. |
b |
4 |
|
5. |
* |
3 |
5. |
1 |
3 |
|
6. |
Sqr() |
1 |
6. |
10 |
2 |
|
7. |
Begin...end |
2 |
7. |
3 |
1 |
|
8. |
Readln |
1 |
8. |
2 |
1 |
|
9. |
Writeln() |
1 |
9. |
6 |
1 |
|
10. |
Write() |
3 |
10. |
S |
3 |
|
11. |
While…do |
1 |
||||
12. |
> |
1 |
||||
13. |
<= |
1 |
||||
14. |
, |
4 |
||||
15. |
. |
1 |
||||
16. |
If…then…else |
1 |
||||
17. |
` ' |
4 |
||||
18. |
[] |
3 |
||||
1 = 18 |
N1 = 49 |
2 = 9 |
N2 = 29 |
Словарь программы = 18 + 9 = 27.
Длина программы N = 49 + 29 = 78.
Объем программы V= 78=312.
Спен программы
Идентификатор |
a |
b |
n |
i |
S |
Суммарный спен программы |
|
Спен |
3 |
3 |
1 |
10 |
2 |
19 |
Идентификаторы a, b, n, i, S инициализируются и используются в теле программы, поэтому их спен равен (f2i - 1) в метриках Холстеда.
Метрики Чепина программы
Полная метрика Чепина |
Метрика Чепина ввода/вывода |
||||||||
Группа переменных |
Р |
М |
С |
Т |
Р |
М |
С |
Т |
|
Переменные, относящиеся к группе |
-- |
S |
a,b,i, n |
-- |
-- |
S |
a,b, i |
-- |
|
Количество переменных в группе |
р = 0 |
m = 1 |
c = 4 |
t = 0 |
р = 0 |
m = 1 |
c = 2 |
t = 0 |
|
Метрика Чепина |
Q = 1*0 + 2*1 + 3*4 + 0,5*0 = 14 |
Q = 1*0 + 2*1 + 3*2 + 0,5*0 = 8 |
Идентификатор S создаётся внутри программы и не является управляющей переменной. Идентификаторы i, n являются счетчиками в циклах, a, b используется в вычислении элементов массива. Эти идентификаторы участвуют в управлении работой программного модуля. В список переменных ввода/вывода программы входят переменные S, a, b, i.
Размещено на Allbest.ru
...Подобные документы
Временная и ёмкостная сложность программы. Размер входных данных. Связь сложности в худшем случае и в среднем. Понятие оптимальной программы. Классы вычислительной сложности программ. Эквивалентность по сложности. Примеры классов вычислительной сложности.
презентация [77,3 K], добавлен 19.10.2014Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.
курсовая работа [115,5 K], добавлен 22.05.2010Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.
контрольная работа [150,4 K], добавлен 03.05.2014Программа формирования матрицы смежности по заданному списку окрестностей вершин ориентированного графа. Формирование динамического списка дуг ориентированного графа по заданному списку окрестностей. Анализ временной и емкостной сложности алгоритма.
курсовая работа [8,1 M], добавлен 07.09.2012История и термины теории графов. Описание алгоритма Дейкстры. Математическое решение проблемы определения кратчайшего расстояния от одной из вершин графа до всех остальных. Разработка программы на объектно-ориентированном языке программирования Delphi 7.
контрольная работа [646,9 K], добавлен 19.01.2016Работа в Pascal, теория рядов. Главные признаки сходимости знакоположительных рядов. Общее понятие о ряде Тейлора. Вычисление конечной суммы факториального ряда для заданного массива значений. Исходный текст программы. Результаты выполнения программы.
контрольная работа [1,6 M], добавлен 06.08.2013Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.
контрольная работа [360,4 K], добавлен 13.06.2012Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.
курсовая работа [446,0 K], добавлен 19.06.2014Создание программы визуализации методов сортировки массива, особенности и направления ее практического применения. Выбор и обоснование среды программирования. Разработка руководства пользователя. Листинг программы и оценка эффективности ее использования.
дипломная работа [1,0 M], добавлен 15.06.2014Микропроцессоры позволяют строить универсальные устройства управления электронными весами. Разработка функциональной схемы, схемы алгоритма прикладной программы. Разработка принципиальной схемы, управляющей программы. Листинг управляющей программы.
курсовая работа [118,0 K], добавлен 04.07.2008Разработка функциональной и принципиальной схемы. Выбор управляющего контроллера. Описание МК PIC16F626, МК AVR, МК 51. Выбор элементной базы. Разработка управляющей программы. Описание алгоритма работы программы. Схема устройства, листинг программы.
курсовая работа [492,9 K], добавлен 28.12.2012Вычисление суммы положительных элементов массива. Упорядочивание элементов массива по убыванию. Решение задачи с помощью алгоритма, реализованного в среде Microsoft Visual 2008 Express. Реализация и тестирование программы. Выполнение трассировки функций.
практическая работа [146,3 K], добавлен 23.01.2015Основные параметры устройства отображения информации. Обоснование выбора используемых ресурсов микроконтроллера и схемы включения. Разработка схемы алгоритма. Описание и отладка программы. Схема электрическая принципиальная и листинг трансляции программы.
курсовая работа [121,3 K], добавлен 12.12.2014Исследование арифметических выражений и разработка простых программ. Таблица переменных для алгоритма и программы. Алгоритм решения, текст программы на языке С. Разработка программы вычисления значений выражений, сравнение результатов с ручным подсчетом.
лабораторная работа [282,7 K], добавлен 30.01.2015Особенности поиска среднеарифметического значения элементов массива. Общая характеристика проблем разработки в среде Turbo Pascal программы упорядочивания массива по возрастанию. Рассмотрение основных этапов разработки программы на языке PASCAL.
курсовая работа [896,7 K], добавлен 18.05.2014Разработка блок-схемы и программы обработки одномерного массива с доступом к элементам с помощью индексов и с помощью указателей. Словесное описание алгоритма и пользовательского интерфейса, листинг программы обработки матрицы и результат её выполнения.
курсовая работа [391,1 K], добавлен 30.09.2013Особенности метода численного интегрирования функции одной переменной. Замена на каждом элементарном отрезке подынтегральной функции на многочлен первой степени (линейную функцию). Разработка алгоритма программы, ее листинг. Пример работы программы.
контрольная работа [217,9 K], добавлен 14.07.2012Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.
лабораторная работа [1,3 M], добавлен 23.11.2014Разработка различных программ для вычисления X и Y по формуле, для вычисления интеграла, для вычисления таблицы значений функции и для вычисления элементов вектора. Составление блок-схемы программы. Ввод значений, описание переменных и условия расчета.
контрольная работа [148,1 K], добавлен 08.11.2013Особенности разработки программы и выбор методов решения задачи. Составление алгоритма, распределение регистров программы и формирование файлов. Описание процедуры очистки памяти, сложения, вычитания, умножения. Тестирование и листинг программы.
лабораторная работа [51,2 K], добавлен 14.05.2011