Метрология, стандартизация и сертификация в информатике и радиоэлектронике
Особенности замены элементов массива, находящегося в строках и столбцах с четными номерами, максимальным элементом данного массива. Код программы, проверка ее работы. Метрики Маккейба для разработанного алгоритма и определение базисных независимых путей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | практическая работа |
Язык | русский |
Дата добавления | 26.09.2017 |
Размер файла | 390,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Республики Беларусь
Учреждение Образования «Белорусский государственный университет информатики и радиоэлектроники»
Кафедра метрологии и стандартизации
Индивидуальная практическая работа
На тему: «Метрология, стандартизация и сертификация в информатике и радиоэлектронике»
Выполнил: студент гр. 522402
Рынденко А.В.
Проверил: Трус В.В.
Минск 2016
Задание: Ввести массив А (10, 10). Заменить элементы массива, находящиеся в строках и столбцах с четными номерами, максимальным элементом данного массива. Вывести максимальный элемент, номера строки и столбца, в которых он находится, исходный и результирующий массивы.
Код программы:
#include<conio.h>
#include<iostream>
#include<time.h>
#include<stdlib.h>
#include<iomanip>
#include<math.h>
using namespace std;
int main()
{
int **A,N=10,M=10, MAX=0, I=0,J=0; //переменные
A=new int*[N];//динамическое выделение памяти для строк
for(int i=1;i<=N;i++)
A[i]=new int[M];//динамическое выделение памяти для столбцов
srand(time(NULL));// функция генерации случайных чисел
for(int i=1;i<=10;i++)//цикл переключения строк
for(int j=1;j<=10;j++)//цикл переключения столбцов
{
A[i][j]= -10+rand()%100; //генерация случайного числа для определенного //элемента массива
}
for(int i=1;i<=10;i++)
for(int j=1;j<=10;j++)
{
if(A[i][j]>MAX && A[i][j]%2==0) //условный оператор if else
{// если элемент массива больше максимального
MAX=A[i][j];// если он четный
I=i;
J=j;
}
}
cout<<endl<<"max element="<<MAX<<endl;//оператор вывода MAX
cout<<"stroka="<<I<<endl<<"stolbec="<<J<<endl<<endl;
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10;j++)
{
cout<<setw(5)<<A[i][j];//вывод начального массива
}
cout<<endl;
}
cout<<endl;
cout<<endl;
int i,j;
for(int i=1;i<=10;i++)
for(int j=1;j<=10;j++)
if( i%2==0 && j%2==0) // замена элементов массива находящихся в
A[i][j]=MAX; // столбцах и строках с четными номерами на
for(int i=1;i<=10;i++) // максимальный элемент массива
{
for(int j=1;j<=10;j++)
{
cout<<setw(5)<<A[i][j]; // вывод результирующего массива
}
cout<<endl;
}
for (int i=1;i<=N;i++) //освобождение динамической памяти
delete [] A[i];//выделенной под двумерный массив
delete [] A;
getch();
return 0;
}
Работа программы:
Схема алгоритма:
Метрики Маккейба для разработанного алгоритма и определение базисных независимых путей.
Данная метрика определяется по формуле:
Z(G) = e - ? + 2p
где е - число дуг ориентированного графа G; ? - число вершин; р - число компонентов связности графа.
Таким образом, для данного алгоритма: e=70, v=51, p=1
Цикломатическое число Маккейба равно Z(G) =70-51+2=21.
Можно выделить 21 базисный независимый путь. Приведем три примера независимых путей: массив код программа алгоритм
1-й путь: 1 - 2 - 3 - 4(да) - 5 - 6 - 4(нет) - 7 - 8 - 9(да) - 10 - 11(да) -12 - 13 - 11(нет) - 14 - 9(нет) - 15 - 16(да) - 17 - 18(да) - 19(да) - 20 - 21 - 18(нет) - 22 - 16(нет) - 23 - 24 - 25(да) - 26 - 27(да) - 28 - 29 - 27(нет) - 30 - 25(нет) - 31 - 32(да) - 33 - 34(да) - 35(да) - 36 - 37 - 34(нет) - 38- 32(нет) - 39 - 40(да) - 41 -42(да) - 43 - 44 - 42(нет) - 45 - 40(нет) - 46 - 47(да) - 48 - 49 - 50 - 47(нет) - 51.
2-й путь: 1 - 2 - 3 - 4(да) - 5 - 6 - 4(нет) - 7 - 8 - 9(да) - 10 - 11(да) -12 - 13 - 11(нет) - 14 - 9(нет) - 15 - 16(да) - 17 - 18(да) - 19(нет) - 18(нет) - 22 - 16(нет) - 23 - 24 - 25(да) - 26 - 27(да) - 28 - 29 - 27(нет) - 30 - 25(нет) - 31 - 32(да) - 33 - 34(да) - 35(нет) - 34(нет) - 38- 32(нет) - 39 - 40(да) - 41 -42(да) - 43 - 44 - 42(нет) - 45 - 40(нет) - 46 - 47(да) - 48 - 49 - 50 - 47(нет) - 51.
3-й путь: 1 - 2 - 3 - 4(нет) - 7 - 8 - 9(нет) - 15 - 16(нет) - 23 - 24 - 25(нет) - 31 - 32(нет) - 40(нет) - 47(да) - 48 - 49 - 50 - 47(нет) - 51.
Метрика Джилба. Количество условных операторов в схеме алгоритма (абсолютная сложность программы) CL = 14.
Насыщенность программы условными операторами, характеризующая относительную сложность программы cl = CL/(v-2)=14/49=0.286.
Максимальный уровень вложенности условного оператора CLI=13.
Метрика граничных значений. Относительная граничная сложность данной программы равна
Свойства подграфов программы
Свойства подграфов программы |
Номер вершины выбора |
||||||||||||||
4 |
9 |
11 |
16 |
18 |
19 |
25 |
27 |
32 |
34 |
35 |
40 |
42 |
47 |
||
Номера вершин перехода |
5 7 |
10 15 |
1214 |
17 23 |
19 22 |
20 18 |
26 31 |
28 30 |
33 39 |
35 38 |
36 34 |
41 46 |
43 45 |
48 51 |
|
Скорректированная сложность вершины выбора |
4 |
7 |
4 |
8 |
5 |
4 |
7 |
4 |
8 |
5 |
4 |
7 |
4 |
5 |
|
Номера вершин подграфа |
5 6 |
10 11 12 13 14 |
12 13 |
17 18 19 20 21 22 |
19 20 21 |
20 21 |
26 27 28 29 30 |
28 29 |
33 34 35 36 37 38 |
35 36 37 |
36 37 |
41 42 43 44 45 |
43 44 |
48 49 50 |
|
Номер нижней границы подграфа |
7 |
15 |
14 |
23 |
22 |
18 |
31 |
30 |
39 |
38 |
34 |
46 |
45 |
51 |
Скорректированные сложности вершин графа программы
№ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
|
Сл. |
1 |
1 |
1 |
4 |
1 |
1 |
1 |
1 |
7 |
1 |
4 |
1 |
1 |
1 |
1 |
8 |
1 |
5 |
4 |
1 |
1 |
1 |
1 |
1 |
|
№ |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
|||
7 |
1 |
4 |
1 |
1 |
1 |
1 |
8 |
1 |
5 |
4 |
1 |
1 |
1 |
1 |
7 |
1 |
4 |
1 |
1 |
1 |
1 |
||||
№ |
47 |
48 |
49 |
50 |
51 |
Sa |
|||||||||||||||||||
Сл. |
5 |
1 |
1 |
1 |
1 |
113 |
Итоговая таблица расчетов метрик
Метрики сложности потока управления |
||
Метрика Маккейба Z(G) |
21 |
|
Абсолютная сложность программы CL по метрике Джилба |
14 |
|
Относительная сложность программы cl по метрике Джилба |
0,286 |
|
Максимальный уровень вложенности условного оператора CLI по метрике Джилба |
13 |
|
Метрика граничных значений (абсолютная граничная сложность программы) Sa |
113 |
|
Метрика граничных значений (относительная граничная сложность программы) S0 |
0,56 |
Размещено на Allbest.ru
...Подобные документы
Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.
лабораторная работа [12,8 K], добавлен 02.12.2014Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.
лабораторная работа [1,3 M], добавлен 23.11.2014Понятие двумерного массива целых чисел. Создание динамического массива из элементов, расположенных в четырех столбах данного массива и имеющих нечетное значение. Сохранение результатов в файл и выведение их на экран. Использование ввода с файла.
курсовая работа [44,0 K], добавлен 09.11.2014Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.
курсовая работа [115,5 K], добавлен 22.05.2010Вычисление суммы положительных элементов массива. Упорядочивание элементов массива по убыванию. Решение задачи с помощью алгоритма, реализованного в среде Microsoft Visual 2008 Express. Реализация и тестирование программы. Выполнение трассировки функций.
практическая работа [146,3 K], добавлен 23.01.2015Виды информационно-вычислительных сетей: локальные, городские, глобальные; их классификация. Разработка программы на языке программирования С: формирование одномерного массива путем замены нулевых элементов на среднеарифметическое, а пробелов - на слова.
практическая работа [37,5 K], добавлен 20.05.2012Особенности поиска среднеарифметического значения элементов массива. Общая характеристика проблем разработки в среде Turbo Pascal программы упорядочивания массива по возрастанию. Рассмотрение основных этапов разработки программы на языке PASCAL.
курсовая работа [896,7 K], добавлен 18.05.2014Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.
лабораторная работа [259,3 K], добавлен 14.05.2011Одномерные числовые массивы, образование элементами целочисленного массива невозрастающей последовательности. Программное нахождение суммы элементов каждой возможной строки матрицы и формирование массива из найденных сумм, вывод массива-результата.
лабораторная работа [12,8 K], добавлен 09.01.2011Ознакомление с лямбда-выражениями и функциями языка Lisp. Этапы разработки алгоритма функции, производящей удаление из исходного списка всех элементов с четными номерами. Код программы, адаптированной для использования в базах данных больниц и ВУЗов.
лабораторная работа [65,5 K], добавлен 21.05.2014Подсчет количества отрицательных элементов массива. Изменение исходного массива перемещением всех его положительных элементов в начало с исходным порядком их следования. Вывод на дисплей количества перемещенных элементов. Алгоритм и код программы.
лабораторная работа [946,5 K], добавлен 23.11.2014Изучение определения, описания и вызова функций, указателей и ссылок на них. Написание функции умножения произвольного столбца двумерного массива на const. Умножение 2 столбцов массива на константы. Составление блок-схемы алгоритма и текста программы.
лабораторная работа [182,3 K], добавлен 09.01.2012Функции формирования массива времени. Формирование массива входного напряжения, массива выходного напряжения. Функция вывода таблицы, расчета заданной точности, вывода титульного листа. Запись в файл массива времени. Блок–схема и текст программы.
курсовая работа [155,6 K], добавлен 22.04.2012Создание программы визуализации методов сортировки массива, особенности и направления ее практического применения. Выбор и обоснование среды программирования. Разработка руководства пользователя. Листинг программы и оценка эффективности ее использования.
дипломная работа [1,0 M], добавлен 15.06.2014Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
контрольная работа [1,0 M], добавлен 30.04.2013Общая характеристика организации массива в виде двоичного дерева. Особенности линейного и двоичного поиска заданного элемента массива. Методика упорядочения массива методом сортировки деревом. Инструкции и текст программы для нечисленной обработки данных.
курсовая работа [242,3 K], добавлен 12.11.2010Формулировка задачи и методика ее решения. Удаление заданной цифры из данного натурального числа. Структурная схема алгоритма и его описание. Особенности разработки программы и процедур и их описание. Удаление максимальных элементов из заданного массива.
курсовая работа [1,7 M], добавлен 08.02.2013Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.
лабораторная работа [123,5 K], добавлен 15.01.2014Разработка на языке ассемблера алгоритма контроля, на циклический CRC-код, массива данных хранящегося в некоторой области памяти. Сохранение кода для последующей периодической проверки массива данных. Сообщение об искажении данных. Описание алгоритма.
курсовая работа [453,0 K], добавлен 27.02.2009Описание глобальных переменных и подпрограмм. Блок-схема головной функции main. Нахождение произведения элементов с четными номерами. Минимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы. Результаты тестового прогона программы.
курсовая работа [766,4 K], добавлен 10.02.2015