Логотип Автор24реферат
Задать вопрос
%
уникальность
не проверялась
Контрольная работа на тему:

Результаты вычислений Задания 1 занести в массив и найти в нём все элементы, которые лежат в заданном интервале [p1;p2]

уникальность
не проверялась
Аа
2759 символов
Категория
Программирование
Контрольная работа
Результаты вычислений Задания 1 занести в массив и найти в нём все элементы, которые лежат в заданном интервале [p1;p2] .pdf

Зарегистрируйся в 2 клика в Кампус и получи неограниченный доступ к материалам с подпиской Кампус+ 🔥

Условие

Результаты вычислений Задания 1 занести в массив и найти в нём все элементы, которые лежат в заданном интервале [p1;p2]. Если таковых элементов в массиве нет, то выдать соответствующее сообщение. Использовать рекуррентные соотношения.

Нужно полное решение этой работы?

Решение

Потяни, чтобы посмотреть
Для занесения элементов в массив добавим в список параметров функции table ссылку на указатель на массив и ссылку на размер массива, который определяется количеством точек в таблице по формуле:
, где квадратные скобки означают взятие целой части числа.
Для поиска элементов из заданного интервала создадим функцию, находящую и выводящую на экран такие элементы. Функция принимает указатель на массив, его размер, а также границы диапазона. В цикле проходим по элементам массива и выводим те из них, которые лежат в диапазоне. Если таких элементов не нашлось, после завершения цикла выводим соответствующее сообщение.
Текст программы:
#include <iostream>
using namespace std;
double F(double t, int N); //вычисление значения функции
void table(double tn, double tk, double dt, int N, double *&A, int &size); //построение таблицы функции
void printEl(double *A, int size, double p1, double p2); //выводит значения, лежащие в интервале [p1;p2]
int main()
{
int N;
cout << "N = ";
cin >> N; //ввод N
int size;
double *A;
table (-5, 5, 2, N, A, size); //построение таблицы для заданных данных
cout << "Input p1, p2: ";
double p1, p2;
cin >> p1 >> p2;
cout << "Elements from " << p1 << " to " << p2 << ":" << endl;
printEl(A, size, p1, p2); //вывод элементов из интервала
delete [] A;
return 0;
}
double F(double t, int N)
{
double slag = 1.0/((2*t)*(2*t)) / 2; //первое слагаемое
double sum = slag; //значение суммы
for (int i = 2; i <= N; i++)
{
slag = slag * 2*t / (2*i*(2*i-1)); //вычисляем следующее слагаемое при помощи рекуррентной формулы
sum += slag; //добавляем его к сумме
}
return sum;
}
void table(double tn, double tk, double dt, int N, double *&A, int &size)
{
size = (int)((tk-tn)/dt) + 1;
A = new double[size];
//для t от tn до tk с шагом dt
int i = 0;
for (double t = tn; t <= tk; t+=dt, i++)
{
double f = F(t, N);
A[i] = f;
cout << t << "\t" << f << endl;
}
}
void printEl(double *A, int size, double p1, double p2)
{
bool found = false; //установим в true, если элементы есть
for (int i = 0; i < size; i++)
{
if (A[i] <= p2 && A[i] >= p1)
{
cout << A[i] << endl;
found = true;
}
}
if (!found)
cout << "No such elements" << endl;
}
50% задачи недоступно для прочтения
Переходи в Кампус, регистрируйся и получай полное решение
Получить задачу
Больше контрольных работ по программированию:

Если максимальный элемент матрицы A лежит на главной диагонали

2167 символов
Программирование
Контрольная работа

Построить полный граф состояний по схеме двухфазной СМО состоящей из 2-х фаз

739 символов
Программирование
Контрольная работа

Создайте массив на языке С для хранения списка группы

2445 символов
Программирование
Контрольная работа
Все Контрольные работы по программированию
Закажи контрольную работу

Наш проект является банком работ по всем школьным и студенческим предметам. Если вы не хотите тратить время на написание работ по ненужным предметам или ищете шаблон для своей работы — он есть у нас.