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

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

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


 

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

42890. Дивідендна політика в банку та методи її реалізації 101.48 KB
  Дивідендна політика це сукупність заходів які здійснюються банком і спрямовані на прийняття рішень із нарахування та виплати дивідендів власникам акцій цього банку. Використання коштів на виплату дивідендів акціонерам перший із двох основних шляхів розподілу прибутку банку після оподаткування другим є спрямування коштів на інвестиції для подальшого розвитку банку що приводить до збільшення майбутніх грошових потоків. Перший підхід носить назву Теорія нарахування дивідендів за залишковим принципом . Іншими словами сума виплачених...
42891. Анализ финансового состояния ООО «Алексеевское» Горьковсвского района Омской области 170.8 KB
  Огромное значение в этом вопросе имеют такие понятия рыночной экономики как деловая активность платежеспособность и кредитоспособность предприятия порог рентабельности запас финансовой прочности запас безопасности степень риска эффект финансового рычага и др. В процессе снабженческой производственной сбытовой и финансовой деятельности происходит непрерывный процесс кругооборота капитала изменяется структура средств и источников их формирования потребность в финансовых ресурсах и как следствие финансовое состояние предприятия....
42892. Сестринский процесс при сахарном диабете 231.9 KB
  Сахарный диабет это группа метаболических обменных заболеваний характеризующихся гипергликемией которая является результатом дефектов секреции инсулина действия инсулина или обоих этих факторов. САХАРНЫЙ ДИАБЕТ Заболевание обусловленное абсолютной или относительной недостаточностью инсулина в организме и характеризующееся в связи с этим нарушением всех видов обмена веществ и в первую очередь обмена углеводов. Главной причиной развития...
42893. Дослідження цільових програм готельного обслуговування в Україна та світі 108.1 KB
  Ринок туристичних послуг€ провадиться описання характерних типів сегментованого ринку Любіцева О. Ринок туристичних послуг. Навчальний посібник “Уніфіковані технології готельних послуг†знадобився авторові при виділенні сукупності факторів що впливають на комплексність надання послуг у готельних підприємствах Лук‘янова Л.
42894. Моделирование динамических систем 652.61 KB
  Модель несёт системообразующую и смыслообразующую роль в научном познании. На модели изучают неизвестные свойства предметов. Модель стремится как можно более ярко выразить структуру явления, его главные аспекты; является концентрированным выражением сущности предмета или процесса, выделяя только его основные черты.
42895. Информационная система Проверка выполнения плана отгрузки продукции заказчикам 3.92 MB
  В процессе договорной компании составляется договор на поставку товаров. Договор состоит из двух частей: общей части, включающей в себя реквизиты заказчика и поставщика, предмет поставки и т. д. , и спецификации, в которой приводятся подробные сведения о товарах и сроках поставки. На основе договоров составляется финансовый план и разрабатываются цеховые помесячные планы выпуска товарной продукции.
42896. Методы и способы измерения толщины окисных пленок, диффузионных и эпитаксиальных слоев, их физические основы 851 KB
  Совершенствование технологии производства полупроводниковых материалов и приборов связано с необходимостью повышения точности и экспрессности лабораторного и промышленного контроля их электрофизических параметров. От качественных характеристик измерительной техники зависит уровень технологических потерь на различных этапах производства.