Семинар 3 (Вариант 5)

Семинар 1 (Вариант 5)

Условие: Напишите программу расчета по двум формулам.

,

Листинг программы

#include <iostream>

#include <cmath>

using namespace std;

 

int main()

{

setlocale(LC_ALL, "Russian");

double z1 = 0, z2 = 0, a = 0;

 

cout << "Введите a: ";

cin >> a;

z1 = 1 - sin(2 * a) * sin(2 * a) / 4 + cos(2 * a);

z2 = pow(cos(a), 2) + pow(cos(a), 4);

 

cout << "z1 = " << z1 << endl;

cout << "z2 = " << z2 << endl;

 

return 0;

}

 

Скриншот работы

 

Семинар 2 (Вариант 5)

Условие: Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от xнач до xкон с шагом dx с точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.

Листинг программы

#include <iostream>

#include <iomanip>

#include <cmath>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

double x0 = 0, xn = 0, eps = 0, dx = 0;

cout << "Введите xнач, xкон, dx и eps: ";

cin >> x0 >> xn >> dx >> eps;

cout << endl << "Табулирование функции" << endl;

cout << " x     y n" << endl;

cout.setf(ios::right | ios::fixed);

for (double x = x0; x < xn + dx / 2; x += dx)

{

   double sum = 1, ai = x;

   int i = 1;

   for (i = 1; abs(ai) > eps; i++)

   {

       ai *= -x * x / (2 * i) / (2 * i + 1);

       sum += ai;

   }

   cout << setw(6) << setprecision(2) << x

       << setw(12) << setprecision(6) << sum

       << setw(4) << i << endl;

}

return 0;

}

Скриншот работы

 

Семинар 3 (Вариант 5)

Условие:

1. Найти максимальный элемент массива

2. Найти сумму элементов массива, расположенных до последнего положительного элемента.

3. Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a, b]. Освободившиеся в конце массива элементы заполнить нулями.

 

Листинг программы

#include <iostream>

#include <cmath>

using namespace std;

 

int main()

{

setlocale(LC_ALL, "Russian");

 

int n;

double* arr;

cout << "Введите размер массива: ";

cin >> n;

arr = new double[n];

cout << "Введите элементы массива: ";

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

   cin >> arr[i];

 

int imax = 0;

for (int i = 1; i < n; i++)

   if (arr[i] > arr[imax])

       imax = i;

cout << "Максимальный элемент: " << arr[imax] << endl;

 

int ilastpos = n - 1;

double sum = 0;

for (ilastpos = n - 1; ilastpos >= 0 && arr[ilastpos] <= 0; ilastpos--) {}

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

   sum += arr[i];

cout << "Сумма элементов перед последним положительным: " << sum << endl;

 

double a, b;

cout << "Введите отрезок [a, b]: ";

cin >> a >> b;

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

{

   if (abs(arr[i]) >= a && abs(arr[i]) <= b)

   {

       for (int j = i + 1; j < n; j++)

           arr[j - 1] = arr[j];

       arr[n - 1] = 0;

       i--;

   }

}

 

cout << "Массив после сжатия: ";

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

{

   cout << arr[i] << " ";

}

cout << endl;

 

delete[] arr;

return 0;

}

 

 

Скриншот работы

 

 




double arrow
Сейчас читают про: