Метрология, стандартизация и сертификация в информатике и радиоэлектронике

Особенности замены элементов массива, находящегося в строках и столбцах с четными номерами, максимальным элементом данного массива. Код программы, проверка ее работы. Метрики Маккейба для разработанного алгоритма и определение базисных независимых путей.

Рубрика Программирование, компьютеры и кибернетика
Вид практическая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.