это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
ID (номер) заказа
4086310
Ознакомительный фрагмент работы:
9ВВЕДЕНИЕ.Курсовая работа посвящена решению задач машинного анализа электрических цепей. Итогом курсовой работы являются программа на языке С++ (Си плюс плюс) с пояснительной запиской. Для заданного варианта электрической цепи и входного сигнала программа должна уметь: А) рассчитывать значения входного сигнала, Б) рассчитывать значения выходного сигнала, Цель работы: улучшение своих навыков в программирование на языке C++, а также реализация программы для анализа поставленной задачи.ОПИСАНИЕ РАБОТЫЗадание передаточной характеристики в виде графика (Код 23).Рисунок 1 – график зависимости напряжения выходного сигнала от напряжения входного сигналаРабочий набор:U1=20 В;U2=40 В; a=0,1 1ВВыходное напряжение имеет квадратичную зависимость.Задание входного сигнала в виде системы (Код 23).Uвxt= U1-e-at, при tнач≤t≤t1U1-e-at1e-b(t-t1), при t1U1Выходное напряжение имеет квадратичную зависимость.Задание входного сигнала в виде графика.Выражение: Uвxt= U1-e-at, при tнач≤t≤t1U1-e-at1e-b(t-t1), при t1 eps) вызов функции form_t для n точек вызов функции form_Uvx для n точек вызов функции form_Uvix для n точек par1=вызов функции parametr для n точек p=fabs(par-par1)/par1 cout<<”n=”<#include #include #include #include using namespace std;void zastavka() // распечатывается файл Name.txt с именем и фамилией{string x;ifstream info;info.open("Name.txt");while (getline(info, x))cout << x << endl;info.close();}void Menu() { // функция вывода текста менюcout << endl << "" << "Menu" << endl;cout << "1. Вывод таблицы для n точек" << endl;cout << "2. Расчет погрешности для входа" << endl;cout << "3. Расчет погрешности для выхода" << endl;cout << "4. Сохранить результаты в файле .txt" << endl;cout << "5. Закрыть консоль" << endl;}void Time(int n, double* t) { // Формирование массива времени tdouble tn = 0, tk = 40; // Начальное и конечное времяdouble dt = (tk - tn) / (n - 1); // Расчет шагаfor (int i = 0; i < n; i++)t[i] = tn + i * dt; // расчет каждого элемента массива времени}void inputU(int n, double* t, double* Uvx) { // Формирование массива Uvxdouble a = 0.25, b = 0.75, tn = 0, U = 75, tk = 40, t1 = 20; // Начальные данныеfor (int i = 0; i < n; i++)if (tn <= t[i] && t[i] <= t1) // Если tn <= t <= t1Uvx[i] = U * (1 - exp(-a * t[i])); // происходит данное действиеelse if (t1 < t[i] && t[i] <= tk)Uvx[i] = U * (1 - exp(-a * t1)) * exp(-b * (t[i] - t1)); // иначе происходит данное}void outputU(int n, double* Uvx, double* Uvix) // Формирование массива Uvix{double U1 = 20, U2 = 40, a = 0.1; // Начальные данныеfor (int i = 0; i < n; i++)if (Uvx[i] <= U1)Uvix[i] = a * pow(Uvx[i], 2);elseUvix[i] = U2;}void table(int n, double* t, double* Uvx, double* Uvix) // Вывод данных в виде таблицы{cout << "№tUvxUvix" << endl;for (int i = 0; i < n; i++) // Вывод данных в виде таблицыprintf("\n % 4d % 8.3f % 8.3f % 8.3f", i, t[i], Uvx[i], Uvix[i]);}int tablefile(int n, double* t, double* Uvx, double* Uvix, double x, double y) //записывает данные в файл{float cdt;string path = "myFile.txt";ofstream fout;fout.open(path);if (!fout.is_open()){cout << "Error 404";}else {fout << "№tUvxUvix" << endl;for (int i = 0; i < n; i++){fout << i << "" << t[i] << "" << Uvx[i] << "" << Uvix[i] << endl;}fout << endl << "tok1: "; //вывод параметровfout << x << endl;fout << endl << "tok2: ";fout << y << endl;}fout.close();return 0;}double Indpulse(int n, double* U) { // Нахождение длительности переднего фронта импульса входного сигналаdouble Umax = U[0], // максимальное значение массива отсчетов сигналаdlit = 0; // длительность импульсаdouble tn = 0, tk = 40; // начальное и конечное времяdouble dt = (tk - tn) / (n - 1); // рассчет шагаfor (int i = 0; i < n; i++)if (U[i] > Umax)Umax = U[i]; // находим максимальное значение в массивеdouble U1 = 0.9 * Umax,U2 = 0.1 * Umax;for (int i = 0; i < n; i++)if (U[i] < U1 && U[i] > U2 && U[i - 1] < U[i])dlit += dt;return dlit;}double Outdpulse(int n, double* U) { // Нахождение длительности заднего фронта импульса выходного сигналаdouble Umax = U[0], // максимальное значение массива отсчетов сигналаdlit = 0; // длительность импульсаdouble tn = 0, tk = 40; // начальное и конечное времяdouble dt = (tk - tn) / (n - 1); // рассчет шагаfor (int i = 0; i < n; i++)if (U[i] > Umax)Umax = U[i]; // находим максимальное значение в массивеdouble U1 = 0.9 * Umax,U2 = 0.1 * Umax;for (int i = 0; i < n; i++)if (U[i] < U1 && U[i] > U2 && U[i - 1] > U[i])dlit += dt;return dlit;}void inaccuracyI() {double p = 1, // Текущая погрешностьeps = 0.01, // Заданная погрешностьpar = 100000, // начальное значение параметра (очень большое число)parl = 0;int n = 11;double* pt, *pUvx;pt = new double[n];pUvx = new double[n]; // инициализация динамических массивов с заданным количеством точекwhile (p > eps){pt = new double[n];pUvx = new double[n]; // инициализация динамических массивов с заданным количеством точекTime(n, pt);inputU(n, pt, pUvx);parl = Indpulse(n, pUvx);p = fabs(par - parl) / parl;cout << "n = " << n << " Параметр = " << parl << " Погрешность = " << p << endl << endl;par = parl;n *= 2;}delete[] pt;delete[] pUvx;}void inaccuracyO() {double p = 1, // Текущая погрешностьeps = 0.01, // Заданная погрешностьpar = 100000, // начальное значение параметра (очень большое число)parl = 0;int n = 11, pi = 0;double* pt, *pUvx, *pUvix;pt = new double[n];pUvx = new double[n]; // инициализация динамических массивов с заданным количеством точекpUvix = new double[n];while (p > eps){pt = new double[n];pUvx = new double[n]; // инициализация динамических массивов с заданным количеством точекpUvix = new double[n];Time(n, pt);inputU(n, pt, pUvx);outputU(n, pUvx, pUvix);parl = Outdpulse(n, pUvix);p = fabs(par - parl) / parl;cout << "n = " << n << " Параметр = " << parl << " Погрешность = " << p << endl << endl;par = parl;n *= 2;}delete[] pt;delete[] pUvix;delete[] pUvx;}int main(){setlocale(LC_ALL, "RUS");double* t, *Uvx, *Uvix; int n = -1, ns = 1;double cvix = -1, cvx = -1, x = 0, y = 0;double dt = 0;zastavka();while (ns < 5) {Menu();cin >> ns;switch (ns){case 1:cout << "Введите необходимое количество точек: ";cin >> n;t = new double[n];Uvx = new double[n]; // инициализация динамических массивов с заданным количеством точекUvix = new double[n];Time(n, t); // формирование массива tinputU(n, t, Uvx); // формирование массива UvxoutputU(n, Uvx, Uvix); // формирование массива Uvixtable(n, t, Uvx, Uvix); // Вывод всех массивовcout << endl << "inputU: ";cout << Indpulse(n, Uvx) << endl;cout << endl << "outputU: ";cout << Outdpulse(n, Uvix) << endl;delete[] t;delete[] Uvix;delete[] Uvx;break;case 2:inaccuracyI(); //погр. входbreak;case 3:inaccuracyO(); //погр. выходbreak;case 4:cout << "Введите необходимое количество точек: ";// Ввод необходимого количества точекcin >> n;t = new double[n];Uvx = new double[n]; // инициализация динамических массивов с заданным количеством точекUvix = new double[n];Time(n, t); // формирование массива tinputU(n, t, Uvx); // формирование массива UvxoutputU(n, Uvx, Uvix); // формирование массива Uvixx = Indpulse(n, Uvx);y = Outdpulse(n, Uvix);tablefile(n, t, Uvx, Uvix, x, y);delete[] t;delete[] Uvix;delete[] Uvx;break;default:break;}}return 0;}
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Требуется разобрать ст. 135 Налогового кодекса по составу напогового...
Решение задач, Налоговое право
Срок сдачи к 5 дек.
Школьный кабинет химии и его роль в химико-образовательном процессе
Курсовая, Методика преподавания химии
Срок сдачи к 26 дек.
Реферат по теме «общественное мнение как объект манипулятивного воздействий. интерпретация общественного мнения по п. бурдьё»
Реферат, Социология
Срок сдачи к 9 дек.
Выполнить курсовую работу. Образовательные стандарты и программы. Е-01220
Курсовая, Английский язык
Срок сдачи к 10 дек.
Изложение темы: экзистенциализм. основные идеи с. кьеркегора.
Реферат, Философия
Срок сдачи к 12 дек.
Заполните форму и узнайте цену на индивидуальную работу!