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

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

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


 

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

14441. Обробка нижнього зрізу спідниці 654 KB
  Тема: 2.3.7. Обробка нижнього зрізу спідниці. Мета: Навчити обробляти низ спідниці відповідно до виду тканини. Виховувати любов до праці бережливе ставлення до інструменту уважність під час трудових завдань. Розвивати точність вміння працювати самості
14442. Кінцева обробка спідниці 98 KB
  Тема:2.3.8 Кінцева обробка спідниці. Мета: Навчити виконувати кінцеву обробку виробу. Виховувати любов до праці бережливе ставлення до інструменту уважність під час трудових завдань. Розвивати естетичний смак вміння працювати самостійно використовуючи роздатковий ...
14443. Остаточна обробка виробу. Волого - теплова обробка. Контроль якості готового виробу 133 KB
  Тема. Остаточна обробка виробу. Волого теплова обробка. Контроль якості готового виробу. Мета. Навчити виконувати остаточну обробку виробу. Виховувати любов до праці бережливе ставлення до інструменту уважність під час трудових завдань. Розвивати вміння пра...
14444. В’язання спицями 279 KB
  Тема. Вязання спицями Мета. Ознайомити учнів з одним із видів декоративноужиткового мистецтва вязанням інструментами і матеріалами для вязання спицями. Організацією робочого місця. Правилами безпечної праці та санітарногігієнічні вимоги. Прийомами роботи спиця...
14445. Добавляння й убавлення петель 416 KB
  Тема. Добавляння й убавлення петель Мета. Ознайомити учнів з способами добавлення і убавлення петель. Основні поняття: спиця пряжа трафарет петля. Очікувані результати навчальної діяльності: проводити добавлення і убавлення петель. Інструменти і матеріали: с...
14446. Технологія вишивання мережок 85.5 KB
  Тема. Технологія вишивання мережок. Мета: ознайомити учнів із технологією виконання мережок навчити виконувати мережки одинарний прутик подвійний прутик; виховувати акуратність і точність під час виконання вишивальних робіт. Обладнання: зразки швів виробів
14447. Технологія вишивання мережок. Розробка композиції виробу 74.5 KB
  Тема. Технологія вишивання мережок. Розробка композиції виробу. Мета: розширити знання учнів про технологію виконання мережок навчити виконувати мережку роздільний прутик; формуй ти художній смак почуття стилю й кольору під час розробку композиції вишивки підбору ...
14448. Кінцева обробка виробу. Догляд за вишитими виробами 45.5 KB
  Тема. Кінцева обробка виробу. Догляд за вишитими виробами. Мета: удосконалювати прийоми оздоблення виробів; навчити оформляти краї вишитих виробів доглядати за вишитими виробами; виховувати акуратність під час виконання вишивальних робіт; розвивати творчі здібності у...
14449. Технологія приготування страв. Приготування страв із крупів. Варіння основним способом 71.5 KB
  Тема: Технологія приготування страв. Приготування страв із крупів. Варіння основним способом. Мета: ознайомити з видами крупів їхнім значенням у харчуванні людини навчити визначати вид і якість крупів за зовнішніми ознаками готувати страву із крупів; удосконалювати в