это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
ID (номер) заказа
4050506
Ознакомительный фрагмент работы:
ВВЕДЕНИЕ. 3
1.ОПИСАНИЕ РАБОТЫ 4
2. АНАЛИЗ ЗАДАЧИ И ВЫБОР МЕТОДА РЕШЕНИЯ 5
2.1 РАСЧЕТНЫЕ ВЫРАЖЕНИЯ 5
Задание передаточной характеристики в виде графика. 5
2.2 КОНТРОЛЬНЫЙ РАСЧЕТ 6
2.3 ГРАФИКИ, ПОЛУЧЕННЫЕ С ПОМОЩЬЮ ПРОГРАММЫ8
2.4 СХЕМА ОБОБЩЕННОГО АЛГОРИТМА12
2.5 ТАБЛИЦА ИДЕНТИФИКАТОРОВ13
2.6 ТАБЛИЦА ПОДКЛЮЧЕННЫХ БИБЛИОТЕК14
2.7 ТАБЛИЦА МЕТОДОВ ПРОГРАММЫ15
3.РАЗРАБОТКА АЛГОРИТМОВ16
ЗАКЛЮЧЕНИЕ 18
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 18
КОД ПРОГРАММЫ 19
ВВЕДЕНИЕ.Курсовая работа посвящена решению задач машинного анализа электрических цепей. Итогом курсовой работы являются программа на языке С++ (Си плюс плюс) с пояснительной запиской. Для заданного варианта электрической цепи и входного сигнала программа должна уметь: А) рассчитывать значения входного сигнала, Б) рассчитывать значения выходного сигнала, Цель работы: улучшение своих навыков в программирование на языке 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 дек.
Заполните форму и узнайте цену на индивидуальную работу!