это быстро и бесплатно
Оформите заказ сейчас и получите скидку 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 заданиями. Контролируйте процесс написания работы в режиме онлайн
Выпускная квалификационная работа
Курсовая, Автоматизация технологических процессов и производств
Срок сдачи к 19 мар.
сделать отчет по практике
Отчет по практике, Производственная практика (научно-исследовательская работа)
Срок сдачи к 18 мар.
Формирование фонетических навыков речи на начальном этапе обучения китайскому языку в условиях дополнительного образования
Диплом, Китайский язык
Срок сдачи к 1 мая
Выполнить курсовую работу по уголовному праву. Е-02310
Курсовая, Уголовное право
Срок сдачи к 28 мар.
Современные тенденции и особенности формирования кредитных портфелей коммерческих банков и оценка их эффективности
Отчет по практике, Банковское дело
Срок сдачи к 28 мар.
требуется решить контрольную работу по водоснабжению, вариант №6
Контрольная, Водоснабжение и водоотведение
Срок сдачи к 20 мар.
Написать контрольную
Контрольная, Дисциплина "Технология анализа информации о персонале"
Срок сдачи к 17 мар.
Управление операционной эффективности предприятия на основе бережливого производства (на примере ооо «хлебный дом»)
Курсовая, Экономика
Срок сдачи к 18 мар.
Отчет по правоприменительной практике в мо мвд (отдел дознания)
Отчет по практике, Уголовное право
Срок сдачи к 4 апр.
Заполните форму и узнайте цену на индивидуальную работу!