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));

}


 

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

51217. Фильтрация изображения от импульсных помех 145.44 KB
  Цель: Составить программу, выполняющую фильтрацию изображения от импульсных помех. Необходимые характеристики: изображение хранится во внешнем файле; программно в изображение вносятся помехи (точки, линии, ...); программа должна выводить исходное и отфильтрованное изображения, должна присутствовать возможность выбора уровня зашумления, порога фильтра, размера окна.
51218. Исследовательская работа по линейному программированию 46 KB
  Цель: Сравнение методов решения задач по линейному программированию. Задание: Решить задачу линейного программирования различными методами: Ручным; С использованием MS Excel; С использованием среды Delphi. Оформление отчета о проделанной работе.
51219. Трехфазные электрические цепи 740.51 KB
  Измерим фазные ЭДС и линейные напряжения трехфазного источника. Исследуем симметричный режим трехфазной цепи, соединенной звездой
51220. Выделение контурных признаков изображения 287.94 KB
  Цель работы: Изучить методы выделения контурных признаков изображения и применить полученные знания на практике. Задание: Cоставить программу, выполняющую выделение контурных признаков изображения.
51221. ИССЛЕДОВАНИЕ ХАРАКТЕРИСТИК ЗВЕНЬЕВ САУ 770.3 KB
  Исследование пропорционального звена Собрать схему исследования пропорционального звена. Подключить переключателем S источник E1 входу In исследуемого звена. В режиме анализа Trnsient получить переходную характеристику переходную функцию исследуемого звена реакцию на единичную функцию.
51222. Моделювання BPMN структури підприємства 1.41 MB
  Виділяють чотири основні категорії елементів: Обєкти потоку управління: події дії і логічні оператори Зєднуючі обєкти: потік управління потік повідомлень та асоціації Ролі: пули і доріжки Артефакти: дані групи і текстові анотації. Опис технологічних процесів і функційОбєкти що описують процеси і функції поділяються на три основних типи: Події events Дії ctivities Логічні оператори gtewys. ПодіїПодії зображуються колом. Згідно розташуванню в процесі події можуть бути класифіковані на початкові strt проміжні...
51223. МОДЕЛИРОВАНИЕ БИЗНЕС-ПРОЦЕССА ПРЕДПРИЯТИЯ В НОТАЦИИ BPMN 767 KB
  Графическое представение Наименование None Ничто Conditionl event Условные события Messege event Сообщение события Multiple event Несколько событий Prllel multiple event Параллельные множественные события Signl event Знаковые события Timer event Событие таймера None Никто Compenstion event Компенсация события Conditionl event Условные события Escltion event Расширение наращивание постепенное усиление события Link event Ссылка событий Messege event Сообщение события Multiple event Несколько...