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

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

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


 

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

41598. ЛАНДШАФТНАЯ АРХИТЕКТУРА 3.28 MB
  Два варианта посадки растений для вертикального озеленения 15. Устройство и подбор ассортимента растений 18. При формировании древеснокустарниковых насаждений учитываются не только композиционные но и биологические и экологические особенности растений. Виды растений используемых для солитеров: крупные кустарники 23 м и более сирень обыкновенная и венгерская боярышник туя западная; красиво и обильно цветущие: чубушники ракитники калина розы.
41599. Понятие ландшафта в ландшафтной архитектуре. Природный, антропогенный, культурный и деградированный ландшафты 3.27 MB
  При формировании древеснокустарниковых насаждений учитываются не только композиционные но и биологические и экологические особенности растений. Виды растений используемых для солитеров: крупные кустарники 23 м и более сирень обыкновенная и венгерская боярышник туя западная; красиво и обильно цветущие: чубушники ракитники калина розы. По величине: малые 23 растения; средние 47 растений; большие 1012 растений. Виды растений предназначенных для стрижки: липа тополь боярышник чубушник барбарис можжевельник туя...
41600. Основные понятия баз данных ACCESS 2007 104.45 KB
  Создание базы данных состоящей из одной таблицы. Цели урока: Познакомиться с основными понятиями баз данных; Научиться создавать таблицы баз данных в режиме Конструктор; Освоить переход из режима Конструктор в режим таблицы; Освоить основные приемы заполнения и редактирования таблиц; Познакомиться с простой сортировкой данных и с поиском записей по образцу; Научиться сохранять и загружать базы данных. В окне системы управления базы данных щелкнуть по значку Новая база данных . Справа в появившемся окне дать имя новой...
41601. Background Radioactivity of Environment 19.23 KB
  Shchetynsk ICS 405 Lbortory work Bckground Rdioctivity of Environment im: to lern the methods of mesure of bckground rdioctivity simply gmmrdition. Theoreticl informtion Mny forms of “rdition†re encountered in the nturl environment nd re produced by modern technology. Even sunlight the most essentil rdition of ll cn be hrmful in excessive mounts. Most public ttention is given to the ctegory of rdition known s “ionizing rdition.
41602. Photosynthesis 379.06 KB
  Theoreticl informtion Photosynthesis converts light energy into the chemicl energy of sugrs nd other orgnic compounds. Light energy from light drives the rections. Photosynthesis uses light energy to drive the electrons from wter to their more energetic sttes in the sugr products thus converting solr energy into chemicl energy. The solr energy clled visible light drives photosynthesis.
41603. Hardness of Drinking Water 53.38 KB
  Shchetynsk ICS 405 Lbortory work 3 Hrdness of Drinking Wter im: to reserch the types of the hrdness of drinking wter. Theoreticl informtion Sources of Hrdness Minerls in Drinking Wter Wter is good solvent nd picks up impurities esily. Pure wter tsteless colorless nd odorless is often clled the universl solvent. When wter is combined with crbon dioxide to form very wek crbonic cid n even better solvent results.
41604. Nitrates and Nitrites 19.97 KB
  Shchetynsk ICS 405 Lbortory work 4 Nitrtes nd Nitrites Theoreticl informtion Nitrte nd nitrite re compounds tht contin nitrogen tom joined to oxygen toms with nitrte contining three oxygen toms nd nitrite contining two. In nture nitrtes re redily converted to nitrites nd vice vers. Nitrtes re used primrily to mke fertilizer but they re lso used to mke glss nd explosives. Nitrites re mnufctured minly for use s food preservtive nd both nitrtes nd nitrites re used extensively to enhnce the color nd extend the shelf life of processed mets.
41605. ИССЛЕДОВАНИЕ ТЕХНОЛОГИИ РЕШЕНИЯ ПРОСТЕЙШИХ МАТЕМАТИЧЕСКИХ ЗАДАЧ СРЕДСТВАМИ ТАБЛИЧНОГО ПРОЦЕССОРА 58.58 KB
  В ячейки A5, A6 и A7 введите поясняющий текст, а в ячейки B5, B6 и B7 соответствующие формулы. Например, для вычисления первого значения можно ввести формулу =4+3*X+2*X^2+X^3. Однако лучше провести вычисления по схеме Горнера, которая позволяет уменьшить число выполняемых операций. В этом случае формула примет вид =((X+2)*X+3)*X+4. Предложенные формулы используют в качестве операндов созданные имена, что делает их похожими на соответствующие математически формулы. Введите в ячейки 3 B3 и C3 конкретные значения переменных например 1. В ячейки 5 6 и 7 введите поясняющий текст а в ячейки B5 B6 и B7 соответствующие формулы. При необходимости в формулах также можно использовать и ссылки...
41606. Установка локального сервера Denwer та знайомство із середовищем phpMyadmin 205.2 KB
  Створити в папці home директорію з ім'ям, співпадаючим з ім'ям віртуального хоста (у нашому випадку test1.ru). Ім'я директорії містить крапку. Ця директорія зберігатиме директорії документів доменів третього рівня для test1.ru. Наприклад, ім'я abc.test1.ru зв'язується сервером з директорією /home/test1.ru/abc/, а ім'я abc.def.test1.ru - з /home/test1.ru/abc.def/. Піддиректорія www відповідає адресам www.test1.ru і просто test1.ru. На малюнку показано, як може виглядати директорія /home.