66527

Итерационные алгоритмы

Лабораторная работа

Информатика, кибернетика и программирование

Дана целочисленная квадратная матрица N*N. Определить: Количество строк, содержащих только различные элементы. Матрицу N*N заполнить натуральными числами от 1 до N*N по спирали, начинающейся в верхнем левом углу и закрученной по часовой стрелке.

Русский

2014-08-22

61 KB

2 чел.

Санкт-Петербургский государственный политехнический университет

Институт информационных технологий и управления

Кафедра «Распределенных вычислений и компьютерных сетей»

ЛАБОРАТОРНАЯ РАБОТА № 3

Итерационные алгоритмы

по дисциплине «Основы программирования »

Выполнил

студент гр. 13507/1  С.С.Недобуга

Преподаватель       Т.Н.Самочадина

Содержание

  1.  Условие задачи
  2.  Спецификация программы(SRS)
  3.  Тест план с результатами выполнения тестов
  4.  Текст программы
  5.  Анализ полученных результатов

1)Условия задачи:

Дана целочисленная квадратная матрица N*N. Определить:

  1.  Количество строк, содержащих только различные элементы.
  2.  Матрицу N*N заполнить натуральными числами от 1 до N*N по спирали, начинающейся в верхнем левом углу и закрученной по часовой срелке.

2)Спецификация программы

  1.  Матрица должна быть задана корректно.
    1.  Если аргумент M не является числом – сообщение “ Incorrect  M ” .
    2.  Если аргумент M является числом < или = 1 – сообщение "M must be greater then 1"

3)Тест план с результатами выполнения тестов

№ Специф.

Вводимые значения M

Вывод

1.1

e

Incorrect M

1.2

0

M must be greater then 1

4)Текст программы

General.cpp

#include<iostream>

#include<fstream>

#include<iomanip>

#include"glob.h"

using namespace std;

int razl(const int P[N][N]);

void snake(int **m2, int a);

int main (int argc, char **argv)

{

 int Matrix[N][N];

 ifstream In("in.txt");

 for(int i = 0; i<N; i++)

{

 for(int j = 0; j<N; j++)

 {

  In>>Matrix[i][j];

 }

}

cout << "Lines with different elements: "<< razl(Matrix) << endl;

 int M;

 try

{

 cout << "Enter the number of rows and columns in: ";

 cin>>M;

 if(!cin) throw "Inccorect M";

 if(M<1) throw "M must be greater then 1";

}

 catch (const char *err)

{

 cerr<<err;

 return 1;

}

cout<<"Matrix filled like the snake:"<<endl;

 int **Matrix2 = new int *[M];

 for (int i = 0; i<M; i++) Matrix2[i] = new int [M];

snake(Matrix2,M);

 for(int i = 0; i<M; i++)

{

 for(int j = 0; j<M; j++)

 {

  cout<<setw(4)<<Matrix2[i][j];

 }

 cout<<endl;

}

 return 0;

}

Razl.cpp

#include"glob.h"

int razl(const int P[N][N])

{

 int Kol = 0;

 for(int i = 0; i<N; i++)

{

 bool yes = false;

 for(int j = 0; j<N; j++)

 {

  for(int k = 0; k<N; k++)

  {

   if((P[i][j]==P[i][k])&&(j!=k))yes=true;

  }

 }

 if (!yes) Kol+=1;

}

 return Kol;

}

In.txt

1 9 4 2 90

8 5 95 4 1

9 -1 3 5 8

0 0 5 1 3

9 4 5 12 8

Snake.cpp

void snake(int **m2, int a)

{

 int e=0;

 int i,j,k,t,f;

 int c=1;

 for(i=e;c<a*a+1;i++)

 {

  for(j=e;j<a-e;j++)

  {

   m2[i][j]=c;

   c++;

   if(j==a-e-1)break;

  }

  e++;

  for(k=e;k<a-e+1;k++)

  {

   m2[k][j]=c;

   c++;

   if(k==a-e)break;

  }

  for(t=a-e-1;t>e-2;t--)

  {

   m2[k][t]=c;

   c++;

   if(t==e-1)break;

  }

  for(f=a-e-1;f>e-1;f--)

  {

   m2[f][t]=c;

   c++;

  }

 }

}

Glob.h

const int N = 5;

5)Анализ полученных результатов

text

M

1

2

1 9 4 2 90

8 5 95 4 1

9 -1 3 5 8

0 0 5 1 3

9 4 5 12 8

5

Lines with different elements: 4

1   2   3   4  5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

1 9 4 2 90

8 5 95 4 1

9 -1 3 5 8

0 0 5 1 3

9 4 5 12 8

6 

Lines with different elements: 4

 1    2    3    4    5    6

20  21  22  23  24   7

19  32  33  34  25   8

18  31  36  35  26   9

17  30  29  28  27  10

16  15  14  13  12  11

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

поставленная задача решена.


 

А также другие работы, которые могут Вас заинтересовать

17732. Основные принципы построения страховых тарифов 76.5 KB
  ТЕМА 6.Основные принципы построения страховых тарифов 1. Актуарные расчеты. 2.Основные положения расчетов страховых тарифов. 3. Тарифная политика в страховании 4.Показатели страховой статистики 1. Актуарные расчеты преставляют собой систему статистических и экономик
17733. Экономические показатели деятельности страховых компаний 43.5 KB
  Экономические показатели деятельности страховых компаний 1. Структура доходов расходов и прибыли страховщика 2.Налогообложение СК 3. Финансовая устойчивость страховых операций. 1. Структура доходов расходов и прибыли страховщика 1.Главной особенностью деятельн...
17734. Страхование ответственности 67.5 KB
  Тема 8 Страхование ответственности Имущественное страхование Особенности страхования в сельском хозяйстве Особенности страхования строенийОсобенности в транспортном страховании Страхование ответственности это отрасль страхования где объектом страхован
17735. Понятие и сущность перестрахования 44.5 KB
  Тема 9 Перестрахование Понятие и сущность перестрахования Виды перестрахования Понятие и сущность перестрахования Перестрахование является необходимым условием обеспечения финансовой устойчивости страховых операций и нормальной деятельности .В больш...
17736. Сетевые адаптеры. Драйверы сетевых адаптеров 40 KB
  Лабораторная работа №8 Сетевые адаптеры. Драйверы сетевых адаптеров. Цель работы: изучить оборудование предназначенное для передачи данных; научиться устанавливать драйверы плат сетевых адаптеров в среде операционной системы Windows NT Server; научиться наст...
17738. ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ ЛОКАЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ 124.87 KB
  Лабораторная работа №1 ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ ЛОКАЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ Цель работы : ознакомиться с основными принципами функционирования локальных вычислительных сетей Основные компоненты и типы ЛВС ЛВС на базе ПК получили в настоящее время
17739. Компоновка локальных вычислительных сетей 103.5 KB
  Лабораторная работа №2. Компоновка локальных вычислительных сетей Цель работы: изучить варианты компоновки локальных вычислительных сетей Понятие топологии сети и базовые топологии Существует большое число способов которыми можно соединить компьютеры
17740. ФИЗИЧЕСКАЯ СРЕДА ПЕРЕДАЧИ ДАННЫХ 205.5 KB
  Лабораторная работа №3 Физическая среда передачи данных Цель работы: изучить оборудование предназначенное для передачи данных Основные типы кабельных и беспроводных сред передачи данных На сегодня большая часть компьютерных сетей используют для соединен...