Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практика ИСиОП (здесь почти все задачи, если вдруг не ходили к Павлухиной).docx
Скачиваний:
3
Добавлен:
04.01.2025
Размер:
240.94 Кб
Скачать

Int main() {

double x;

int n;

cout << "Введите значение x: ";

cin >> x;

cout << "Введите количество членов ряда n: ";

cin >> n;

if (n < 0) {

cout << "Количество членов ряда должно быть неотрицательным." << endl;

}

else {

double summExp = 0.0;

double term;

double fact;

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

term = 1.0; // Объявление члена ряда

for(int j = 0; j < i; j++){ // Вычисление x^i

term *=x;

}

fact = 1.0; //Объявление факториала

for(int k = 1; k <=i ;k++){ // Вычисление i!

fact *=k;

}

summExp += term / fact; // Суммируем текущий член ряда

}

double realExp = exp(x);

cout << "Приближенное значение e^" << x << " (ряд Тейлора): " << summExp << endl;

cout << "Реальное значение e^" << x << ": " << realExp << endl;

return 0;

}

}

Листинг результатов:

Рис. 14 – Результат расчета ряда Тейлора

Массивы:

Массив — это переменная, которая может хранить несколько значений одного типа.  Это определённое число ячеек памяти, расположенных подряд. Они позволяют эффективно хранить однотипные данные. 

Объявление массива выглядит так: 

тип данных имя массива [размер массива]

Например, int x [6]

Доступ к элементам в массиве осуществляется через индексы, которые начинаются с 0. Если размер массива равен n, последний элемент хранится с индексом (n-1). 

Массивы — неизменяемые. Можно скорректировать значения отдельных элементов, но не сам массив — нельзя изменить его длину или присвоить одному массиву другой. 

Если показывать наглядно:

int x[100];

int t;

for (t = 0; t < 100; ++t)

x[t] = t;

for (t = 0; t < 100; ++t)

cout << x[t] << " ";

Это работает почти так же, как в вышеописанном примере цикла for. Однако в том случае переменная была переписана 100 раз, как новая, а здесь это одна переменная, включающая в себя 100 элементов. Ещё одно отличие будет заключаться в том, что на выводе будут получены числа не от 1 до 100, а от 0 до 99. Это связано с вышеописанной особенностью массива (индексы, начинающиеся с 0).

Рассмотрим пример взаимодействия с элементами:

int n, a, b=0;

int x[10000];

cout << "";

cin >> n;

for (b = 0; b < n; ++b)

{

cout << "";

cin >> a;

a = a + b;

x[b] = a;

}

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

{

cout << x[t] << "";

}

Возьмём 5 элементов. Их индексы соответственно [0], [1], [2], [3], [4]. Далее вводим значение каждого из элементов, предположим, 1 (для всех). На выходе после цикла for мы получим строку, в которой будут выписаны суммы значения элемента со значением их индекса (1+0), (1+1) и т.д., то есть 1, 2, 3, 4 и 5.

Для эффективного хранения данных, они должны быть упорядочены, и к ним должен быть организован быстрый доступ. Для этого существуют алгоритмы сортировки массивов. Одним из простейших алгоритмов сортировки является сортировка пузырьком.

Алгоритм, словно пузырёк под водой, поднимается по массиву. Он проходит по списку и сравнивает каждую пару соседних элементов. Если элементы находятся в неправильном порядке (первый больше второго для сортировки по возрастанию) — они меняются местами. Этот процесс повторяется для всех пар элементов в списке. После каждого полного прохода самый большой элемент «всплывает» на своё место (как на поверхность), и поэтому он больше не участвует в следующих проходах. Процесс повторяется до тех пор, пока список не будет отсортирован.

#include <iostream>

using namespace std;