65824

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

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

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

Условие задачи Спецификация программы(SRS) Тест план с результатами выполнения тестов Текст программы 1)Условия задачи: Реализовать программу: В одномерном массиве размерностью N, состоящем из чисел: 1) Найти среднее арифметическое элементов, попадающих в заданный интервал...

Русский

2014-08-06

68 KB

1 чел.

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

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

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

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

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

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

Выполнил

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

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

Содержание

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

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

Реализовать программу:

           В одномерном массиве размерностью N, состоящем из чисел:

1) Найти среднее арифметическое элементов, попадающих в заданный интервал [a,b].

2) Многочлены P(x) и Q(x) заданы своими коэффициентами. Определить коэффициенты R(x) = P(x) + Q(x).

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

  1.  Массивы должны быть заданы корректно.
    1.  Если аргумент N или N2 не является числом – сообщение “Inccorect N(N2)” .
    2.  Если аргумент N или N2 является числом < 1 – сообщение N(N2) must be greater or equal then 1".
  2.  Элементы массивов должны быть заданы корректно.
    1.  Если какой-либо член массива Mass или Mass2 не является числом – сообщение “ Incorrect member of the Mass(2)”
  3.  Диапазон [a,b] должен быть задан корректно.
    1.  Если аргумент A или B должен быть числом – сообщение “Incorrect value”.
    2.  Если аргумент A>B – сообщение “Incorrect range”.

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

№ Специф.

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

Вывод

1.1

N = e

Incorrect N

1.2

N2 = 0

N2 must be greater or equal then 1

2.1

Mass[3] = f

Incorrect member of the Mass

3.1

B = %

Incorrect value

3.2

A=5; B=4.5

Incorrect range

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

General.cpp

#include<iostream>

using namespace std;

long double srarf(const double *Mass,const int N);

void sloz(double * M1, int N1, double * M2, int N2, double * M3);

int main(int argc, char **argv)

{

 try

{

 int N;

 double *Mass;

 cout<<"Enter the numbers of massive: ";

 cin>>N;

 if(!cin)throw "Incorrect N";

 if(N<=0)throw "N must be > 0";

 Mass = new double [N];

 cout<<"Coefficients of the polynomial P(x): "<<endl;

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

 {

  cout<<"Mass["<<i+1<<"]: ";

  cin>>Mass[i];

  if(!cin) throw "Incorrect member of the Mass.";

 }

 try

 {

  long double Sr = srarf(Mass,N);

 }

 catch(const int)

 {

  cerr<<"No element in the gap."<<endl;

 }

 int N2;

 double *Mass2;

 cout<<"Enter the numbers of massive 2: ";

 cin>>N2;

 if(!cin)throw "Incorrect N2.";

 if(N<=0)throw "N2 must be > 0.";

 cout<<"Coefficients of the polynomial Q(x): "<<endl;

 Mass2 = new double [N2];

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

 {

  cout<<"Mass2["<<i+1<<"]: ";

  cin>>Mass2[i];

  if(!cin) throw "Incorrect member of the Mass2.";

 }

 double *Mass3;

 int N3;

 (N>N2)? N3=N : N3=N2;

 Mass3 = new double[N3];

 sloz(Mass,N,Mass2,N2,Mass3);

 cout<<"The coefficients of the polynomial P(x): " <<endl;

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

 {

  cout<<Mass[i]<<"x^"<<i;

  if(i!=(N-1)) cout<<'+';

 }

 cout<<endl;

 cout<<"The coefficients of the polynomial Q(x): " <<endl;

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

 {

  cout<<Mass2[i]<<"x^"<<i;

  if(i!=(N2-1)) cout<<'+';

 }

 cout<<endl;

 cout<<"The coefficients of the polynomial U(x)=Q(x)+P(x): " <<endl;

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

 {

  cout<<Mass3[i]<<"x^"<<i;

  if(i!=(N3-1)) cout<<'+';

 }

}

 catch(const char *Err)

{

 cerr<<Err;

 return -1;

}

 return 0;

}

Sloz.cpp

#include<iostream>

void sloz(double * M1, int N1, double * M2, int N2, double * M3)

{

 if (N1>N2)

{

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

 {

  if (i<N2) M3[i]=M1[i]+M2[i];

  else M3[i]=M1[i];

 }

}

 else 

{

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

 {

  if (i<N1) M3[i]=M1[i]+M2[i];

  else M3[i]=M2[i];

 }

}

}

Srarf.cpp

#include<iostream>

using namespace std;

long double srarf(const double *Mass,const int N)

{

 long double A, B, Sum=0, Kol=0;

 long double Sr;

std::cout<<"Enter the range [A;B] for arithmetic mean in this range: "<<std::endl;

std::cout<<"A,B: "<<std::endl;

   std::cin>>A>>B;

   if(!std::cin) throw "Incorrect value.";

 if(A>B) throw "Incorrect range.";

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

{

 if ((Mass[i]>=A)&&(Mass[i]<=B))

 {

  Kol++;

  Sum+=Mass[i];

 }

}

 if (Kol == 0) throw 1;

 return((double)Sum/(double)(Kol));

}


 

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

20081. Конструирование при циклическом нагружении. Факторы, повышающие и снижающие предел выносливости 101.5 KB
  Уменьшение концентрации напряжений. Если устранить концентраторы напряжений полностью невозможно то следует заменять сильные концентраторы умеренно действующими. Концентраторы следует удалять из наиболее напряженных участков детали и переносить если это допускает конструкция в зоны наименьших напряжений. С целью уменьшения номинальных напряжений целесообразно увеличивать сечения детали на участках расположения концентраторов.
20082. Условия обеспечения качественной и производительной сборки. Исключение неправильной сборки 92 KB
  Исключение неправильной сборки. Для обеспечение правильной и быстрой сборки и разборки конструкций при проектировании нужно учитывать следующие условия: использовать где это возможно взаимозаменяемые детали и узлы; исключать подгоночные работы и и работы по обеспечению взаимного расположения деталей непосредственно при сборке; предусматривать удобный подход инструмента и оснастки используемой при сборке; использовать в конструкциях агрегатный способ сборки т. Так же увеличивается скорость сборки так как сборку узлов и агрегатов можно...
20083. Осевая и радиальная сборка. Особенности, достоинства и недостатки этих схем 420.5 KB
  В конструкциях с продольными и поперечными осями симметрии часто применяют схемы с осевой и радиальной сборки. При осевой сборке все детали устанавливают в осевом направлении при радиальной в радиальном поперечном. При осевой сборке конструкция корпуса как правило простая удобно производить механическую обработку не сложно уплотнять внутренние полости при герметизации. НЕДОСТАТКИ: конструкция корпуса сложная следовательно механическая обработка более сложная чем в осевой сборке.
20084. Компоновка приборов. Моноблочные и др. конструкции. Схемы компоновки 138 KB
  конструкции. Если в конструкции прибора применен подход на основе функционального разделения на части то в этом случае говорят о блочно модульных конструкциях. Моноблочные конструкции монтируются в едином корпусе и применяют в следих случаях: когда изделие выполняет мало частных функций и разбиение на узлы не целесообразно; для миниатюрных конструкций медицинские зонды; для приборов которые изготавливаются в малом количестве либо имеет небольшой срок службы шариковая ручка. Блочно модульные конструкции это конструкции которые...
20085. Разработка компактных конструкций. «Разнесение» конструкции в радиальном направлении и др. приемы конструирования. Проблемы миниатюризации 125.5 KB
  Разнесение конструкции в радиальном направлении и др.существенное уменьшение осевых размеров конструкции м.достигнуто за счет разнесения конструкции в радиальном направлении Основная идея не встраивать все элементы последовательно друг за другом а встраивать один элемент в другой Конструкция дифференциального винтовой передачи 4. незначительно увеличиваем диаметр и уменьшаем длину 5уменьшение размеров может быть достигнуто за стчет пустот имеющихся в конструкции или создания канавки Н2Н1 Проблема миниатюризации.
20086. Рабочая конструкторская документация. Основные этапы работ на данной стадии 22.5 KB
  При разработке рабочей документации возможны два варианта: Рабочая документация разрабатывается на единичное изделие или небольшую партию. документация разрабатывается без присвоения литеры все недостатки и ошибки устраняют в процессе сборки в чертеже вносят изменения. Документация разрабатывается для серийного или массового производства: 2.
20087. КОНСТРУИРОВАНИЕ НА ОСНОВЕ РАЗДЕЛЕНИЯ И СОВМЕЩЕНИЯ ФУНКЦИЙ; ОСОБЕННОСТИ, ДОСТОИНСТВА И НЕДОСТАТКИ 229 KB
  Если конструкция отдельного узла обеспечивает выполнение нескольких функций то в узле осуществлен принцип объединения. уменьшение объема сборочных и регулировочных работ опоры на центрах со смещенным центром регулировка в двух направлениях Решение на основе совмещения функций имеет отрицательные качества:1 не удается обеспечить оптимальное выполнение отдельных фий особенно это важно в отношении точности и надежности 2.появляется опасность взаимного отрицательного влияния отдельных частных функций друг на друга.
20088. Эскизный проект. Цели и задачи данной стадии разработки. Результаты разработки 22 KB
  Эскизный проект это совокупность конструкторских документов которые разрабатываются с целью установления принципиальных конструктивных решений. Результат разработки варианты конструкции соответствующие расчеты обязательная документация ведомость проекта пояснительная записка появляется чертеж общего вида. Эскизный проект и ТП не являются обязательными и выполняются если это предусмотрено в ТЗ а эскизный проект выполняется еще если если это предусмотрено техническим заданием.
20089. Техническое предложение 31.5 KB
  Техническое предложение. Техническое предложение ТП совокупность технических документов которые содержат техническое и техникоэкономическое обоснование целесообразности разработки. 2 Техническое задание. 3 Техническое предложение.