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

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

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


 

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

45451. Виды операционных систем реального времени. QNX. OS-9. VxWorks. Операционные системы реального времени для Windows. IA-Spox, RTX, Falcon, Hyperkernel 190.5 KB
  Операционные системы реального времени для Windows. ОСРВ по Windows Windows CE система ориентирована на небольшие контроллеры и включает большую часть функций ядра стандартной ОС для поддержки средств являющихся зарегистрированной маркой Microsoft. ОС РВ Стандартная ОС с поддержкой общих функций Поддержка расширений служащих для выполнения задач РВ Расширения ISPOX В расширении ОС Windows для реального времени. Данное расширение разработано для системы Windows95 98.
45452. Средства создания операторского интерфейса автоматизированных систем (SCADA-приложения). Применение. Особенности. Возможности и средства, присущие SCADA-пакетам. Состав SCADA. Виды SCADA. TraceMode. Citect. InTouch. iFix. Wizcon GeniDAQ. WinCC. MasterSCA 103 KB
  Под SCADA – приложением подразумевается любое ПО, которое получает данные с внешних устройств, формирует управляющие команды, сохраняет информацию на внешних носителях и формирует графическое приложение системы. Любое SCADA – приложение должно иметь набор инструментальных средств, позволяющих создавать уже в разработанных интерфейсах типовые модули подключения новых объектов и создание однотипных интерфейсов оператора для типовых автоматизированных систем.
45453. Базы данных РВ. Структура. Применение. Особенности. Особенности Industrial SQL Server. Функциональные возможности сервера базы данных. Интеграция с другими компонентами комплекса. Возможность организации клиент-серверной системы 454 KB
  Эта БД позволяет обеспечить доступ к БД при помощи языка SQL и обеспечить хранение информации в заданном пользователем виде. Для системы РВ не являющейся СЖРВ реляционная БД является оптимальной но для СЖРВ требуется обеспечение следующих условий: высокоскоростной сбор информации 1015 параметров за 1 секунду возможность хранения больших объемов информации обеспечение доступа к информации с различных рабочих станций по сетевому протоколу Для решения проблемы были разработаны БД БД реального времени: Industril SQLserver WizSQL...
45454. Комплексные программные средства разработки приложений РВ. Инструменты разработки систем автоматизации. IPC@Chip. Организация приложений на базе промышленного Ethernet 109 KB
  На текущий момент существует 3 различные системы обеспечивающие интеграцию АСУП и АСУТП. WizFctory Fctory Suile TFctory Данные системы объединяют уровень производственной информации т. Система позволяет строить диаграммы линейной логики и диаграммы функционирования системы. Гибкость и универсальность подхода создания любой системы автоматизации любой сложности 2.
45455. Устойчивость систем управления 57.5 KB
  В соответствии с классическим методом решение дифференциального уравнения ищется в виде: yt = yвынt yсвt. Здесь yсвt общее решение однородного дифференциального уравнения то есть уравнения с нулевой правой частью: oyn 1yn1 . Поэтому решение данного уравнения называется свободной составляющей общего решения. yвынt частное решение неоднородного дифференциального уравнения под которым понимается уравнение с ненулевой правой частью.
45456. Математические модели объектов управления в системах управления 1.07 MB
  Применять интегральный закон регулирования нельзя так как это приводит к повышению порядка астатизма системы второй порядок ибо сам объект является интегрирующим звеном. Системы с астатизмом второго порядка построить можно но требуется сложное корректирующее звено обладающее дифференцирующими свойствами. Часто системы с регуляторами рассматриваются как системы с встречнопараллельными корректирующими цепями. не учитывать некоторые особенности характеристик исследуемых элементов а также не учитывать отдельные связи если они не...
45457. Системы управления и регулирования. Использование структурных схем. Законы управления. Принципы управления, качество 83 KB
  И интегральный регулятор : Преимуществом данного регулятора является лучшая по сравнению с Прегулятором точность установки режима а недостатками худшие по сравнению с Прегулятором показатели качества а именно большая колебательность и меньшее быстродействие. ПИ регулятор : Объединяет два регулятора П и И следовательно обладает наилучшими свойствами по сравнению с вышеописанными регуляторами а именно за счет Псоставляющей улучшается показательные качества в переходном процессе а за счет Исоставляющей уменьшается...
45458. Системы управления при случайных воздействиях. Преобразование стационарного случайного сигнала стационарной линейной динамической системой 265.5 KB
  Системы управления при случайных воздействиях. Если задающее воздействие gt является случайным процессом то выходная координата системы yt и ошибка воспроизведения xt = gt yt представляют собой также случайные процессы. Следовательно при случайных воздействиях речь может идти об определении не мгновенных а лишь некоторых средних значений выходной переменной системы и ошибки. Такими средними значениями являются среднее значение квадрата выходной переменной системы 9.
45459. Основные задачи анализа систем с минимальной средней квадратичной ошибкой: задача фильтрации, задача экстраполяции, задача дифференцирования и др 265.5 KB
  Если задающее воздействие gt является случайным процессом то выходная координата системы yt и ошибка воспроизведения xt = gt yt представляют собой также случайные процессы. Следовательно при случайных воздействиях речь может идти об определении не мгновенных а лишь некоторых средних значений выходной переменной системы и ошибки. Такими средними значениями являются среднее значение квадрата выходной переменной системы 9.23 Следовательно для исследования статистической точности автоматических систем необходимо вычисление...